Как выразить JSON-LD исходного контента?

Как выразить семантику исходного контента (не набора разделенных значений) с помощью JSON-LD вместо микроданных?

Предположим, что этот фрагмент HTML+Microdata в HTML <body>:

<p itemscope itemtype="http://schema.org/Person">
  <span itemprop="name">George Bush</span>, the
  <span itemprop="disambiguatingDescription">44th President of the USA</span>.
</p>

Как преобразовать его микроданные в JSON-LD?


Предположим также, что мы можем использовать множество идентификаторов:

<p>
  <span id="person1-name">George Bush</span>, the
  <span id="person1-rule">44th President of the USA</span>.
</p>

... Итак, я думаю добавить в HTML <head> что-то вроде:

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Person",
  "name": { "@id": "#person1-name" },
  "disambiguatingDescription": { "@id": "#person1-rule" }
}
</script>

Это? То есть любой инструмент «Интерпретатор веб-семантики» примет такую ​​​​относительную внутреннюю ссылку, или она не предназначена для практического использования (только теоретическая) в настоящее время?


person Peter Krauss    schedule 23.04.2020    source источник


Ответы (1)


Это возможно только через свойства cssSelector или xpath, которые в настоящее время доступны только в WebPageElement или SpeakableSpecification. Так что бесполезно для вашего сценария.

Если вы хотите объединить микроданные и json-ld, вы должны использовать itemid в микроданных для соответствия @id в json-ld. Однако Google не поддерживает это.

person Tony McCreath    schedule 25.04.2020
comment
А что касается Модели данных веб-аннотаций, мы можем использовать ее в этом контексте? - person Peter Krauss; 09.03.2021
comment
Интересно читать. Я не уверен, можно ли использовать аннотацию в показанном вами сценарии. Как это будет связано с собственностью? - person Tony McCreath; 09.03.2021
comment
Привет Тони, я предполагаю, что мы можем использовать оба, xpath и cssSelector в случае ID. Для общего случая содержимого HTML5 лучшим выбором будет cssSelector. - person Peter Krauss; 10.03.2021