2016-01-13 3 views
3

У меня возник вопрос о ссылке на разметку JSON-LD schema.org в другой разметке JSON-LD schema.org. У меня есть страница с основным событием, которое находится по адресу http://event.com/, и вот разметка JSON-LD.Schema.org Ссылка JSON-LD

<script type="application/ld+json"> 
{ 
    "@context": "http://schema.org", 
    "@type": "Event", 
    "name": "MainEvent", 
    "startDate": "2016-04-21T12:00", 
    "location": { 
    ... 
    } 
} 
</script> 

Главное событие имеет несколько вспомогательных мероприятий, расположенных на, например http://event.com/sub-event-1/ и вот JSON-LD для разметки, что:

<script type="application/ld+json"> 
{ 
    "@context": "http://schema.org", 
    "@type": "Event", 
    "name": "SubEvent", 
    "startDate": "2016-04-21T12:00", 
    "location": { 
    ... 
    } 
} 
</script> 

То, что я пытаюсь сделать, это разметить подсобытий как часть главное событие. Можно ли создать ссылку с основного события на суб-событие? Что-то вроде этого:

<script type="application/ld+json"> 
{ 
    "@context": "http://schema.org", 
    "@type": "Event", 
    "name": "SubEvent", 
    "startDate": "2016-04-21T12:00", 
    "location": { 
    ... 
    } 
    superEvent { 
    "url": "http://event.com/" 
    } 
} 
</script> 

Если возможно, что такое правильная разметка для справки. Я не могу найти никакой информации об этом.

Или это требуется, чтобы встроить MainEvent в каждых подсобытиях, как это:

<script type="application/ld+json"> 
{ 
    "@context": "http://schema.org", 
    "@type": "Event", 
    "name": "SubEvent", 
    "startDate": "2016-04-21T12:00", 
    "location": { 
    ... 
    }, 
    "superEvent": { 
    "@type": "Event", 
    "name": "MainEvent", 
    "startDate": "2016-04-21T12:00", 
    "location": { 
    ... 
    } 
    } 
} 
</script> 

ответ

3

Что вы ищете идентификаторы узлов (см http://www.w3.org/TR/json-ld/#node-identifiers). Присвоение каждой сущности уникальный идентификатор в виде URL и использовать его в ссылках:

<script type="application/ld+json"> 
{ 
    "@context": "http://schema.org", 
    "@id": "http://event.com/#mainEvent", 
    "@type": "Event", 
    "name": "MainEvent", 
    "startDate": "2016-04-21T12:00", 
    "location": { 
    ... 
    } 
} 
</script> 

Вы видите, что я дал это мероприятие как @id. Я добавил фрагмент (#mainEvent), потому что http://event.com/ обычно идентифицировал бы страницу. Затем вы можете указать событие следующим образом:

<script type="application/ld+json"> 
{ 
    "@context": "http://schema.org", 
    "@type": "Event", 
    "name": "SubEvent", 
    "startDate": "2016-04-21T12:00", 
    "location": { 
    ... 
    } 
    superEvent { 
    "@id": "http://event.com/#mainEvent" 
    } 
} 
</script> 

Внедрение, как показано в вашем примере, также работает. В этом случае вам не понадобятся идентификаторы, так как ясно, какие ссылки какие.

9

Вы можете идентифицировать узел, указав ему URI, указанный в ключевое слово @id. Этот URI можно использовать для ссылки на этот узел.

См. Раздел «Node Identifiers» в спецификации JSON-LD.

Так ваш главный случай мог получить URI http://example.com/2016-04-21#main-event:

<script type="application/ld+json"> 
{ 
    "@id": "http://example.com/2016-04-21#main-event", 
    "@context": "http://schema.org", 
    "@type": "Event", 
    "name": "MainEvent", 
    "startDate": "2016-04-21T12:00" 
} 
</script> 

и вы могли бы дать этот URI в качестве значения для superEvent собственности суб мероприятия:

<script type="application/ld+json"> 
{ 
    "@context": "http://schema.org", 
    "@type": "Event", 
    "name": "SubEvent", 
    "startDate": "2016-04-21T12:00", 
    "superEvent": { "@id": "http://example.com/2016-04-21#main-event" } 
} 
</script> 

(Можно, конечно, дать ваше вспомогательное событие равно @id. Это позволит вам и другим пользователям идентифицировать/ссылаться на это вспомогательное событие.)