Problem polega na tym, że konsument pomyśli, że różne rzeczy są opisane (lub dokładniej: konsument nie będzie wiedział, czy te rzeczy są takie same, czy nie).
Istnieje sposób, aby temu zapobiec: give each thing a URI, aw przypadku rzeczy są takie same, ten sam URI.
Można to zrobić za pomocą @id
w JSON-LD i itemid
w mikrodanych.
Tak prosta sprawa może być:
<!-- markup on the product page,
so the fragment "#this" results in an absolute URI like
"http://example.com/products/foo#this" -->
<!-- JSON-LD -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Product",
"@id": "#this",
"name": "Foo"
}
</script>
<!-- Microdata -->
<article itemscope itemtype="http://schema.org/Product" itemid="#this">
<h1 itemprop="name">Foo</h1>
</article>
W przypadku, gdy nieruchomość jak name
posiada różne wartości, co oczywiste sposób konsument może obsłużyć to dać Rzecz wiele nazw. W przypadku funkcji, w której konsument potrzebuje dokładnie jednej nazwy (np. W przypadku bogatego wyniku), nie jest zdefiniowane, które wartości zostaną użyte. Jeśli konsument jest wyszukiwarką, najprawdopodobniej wykorzysta już istniejące algorytmy do obsługi takich przypadków.
¹ Oczywiście nie jest jasne, czy/jak wszyscy konsumenci go obsługują. Ale jest to właściwy sposób na zrobienie tego i jest to jedyny wyraźny sposób na zrobienie tego. Niejawne sposoby obejmują nadzieję, że konsument rozumie, że identyczne wartości dla typowych (ale niekoniecznie) unikalnych właściwości (np., url
, email
, productID
itd.) Oznaczają, że rzeczy są takie same. Ale taki domyślny sposób może oczywiście być użyty razem z jawnym.