schema.org json-ld

Referencia de Schema.org JSON-LD



(2)

Tengo una pregunta sobre hacer referencia a un marcado JSON-LD schema.org en otro marcado JSON-LD schema.org. Tengo una página con un evento principal que se encuentra en http://event.com/ y aquí está el marcado JSON-LD para ello.

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

El evento principal tiene varios eventos secundarios ubicados en, por ejemplo, http://event.com/sub-event-1/ y aquí está el marcado JSON-LD para eso:

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

Lo que intento hacer es marcar el subevent como parte del evento principal. ¿Es posible crear una referencia del evento principal al evento secundario? Algo como esto:

<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>

Si es posible, ¿cuál es el marcado correcto para referencia? No puedo encontrar ninguna información al respecto.

¿O es necesario incrustar el MainEvent en cada SubEvent como este:

<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>


Lo que está buscando para un identificador de nodo (consulte http://www.w3.org/TR/json-ld/#node-identifiers ). Usted asigna a cada entidad un identificador único en forma de URL y lo usa en referencias:

<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>

Arriba ves que le di al evento un @id . #mainEvent un fragmento ( #mainEvent ) porque http://event.com/ normalmente identificaría la página en sí. Luego puede hacer referencia al evento de la siguiente manera:

<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>

La incrustación como se muestra en su ejemplo también funciona. En ese caso, no necesitará los identificadores, ya que está claro qué hace referencia a qué.


Puede identificar un nodo dándole un URI, especificado en la palabra clave @id . Este URI se puede usar para hacer referencia a ese nodo.

Consulte la sección " Identificadores de nodo " en la especificación JSON-LD.

Entonces, su evento principal podría obtener el 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>

y podría dar este URI como el valor de la propiedad superEvent del sub evento:

<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>

(Por supuesto, también podría darle a su sub evento un @id . Esto les permitiría a usted y a otros identificar / hacer referencia a este sub evento).