Le migliori pratiche di JSON-LD: utilizzo di più elementi ?

Sono curioso della migliore pratica per applicare JSON-LD su un sito per schema.org.

Se ho una pagina con un Article e voglio anche definire il WebSite web sulla mia pagina, avrei questo:

  { "@context": "http://schema.org", "@type": "WebSite", "url": "http://www.example.com/", "potentialAction": { "@type": "SearchAction", "target": "http://www.example.com/search?&q={query}", "query-input": "required" } }    { "@context": "http://schema.org", "@type": "Article", "author": "John Doe", "interactionCount": [ "UserTweets:1203", "UserComments:78" ], "name": "How to Tie a Reef Knot" }  

È corretto o sbagliato? C’è qualche vantaggio o bisogno di unirli nello stesso script o array di elementi?

È valido Puoi avere tanti blocchi di dati (= elementi di script ) come desideri.

Un ansible vantaggio dell’utilizzo di un solo elemento di script : consente di rendere più facili le relazioni tra più elementi (ad esempio, se si decide di utilizzare hasPart o mainEntity ), è sufficiente nidificare gli elementi.
Ma rendere queste relazioni è ovviamente ansible anche quando si usano blocchi di dati separati, facendo riferimento all’URI dell’elemento con @id ( grazie, @ Gregg Kellogg ).

(Per riferimento, l’ aggiunta di due o più elementi di primo livello in un singolo script è ansible con @graph .)

Non vi è alcun vantaggio nell’avere blocchi di dati singoli o multipli, oltre alle limitazioni relative alla modalità di archiviazione e gestione dei dati dello schema nel sito Web.

Ad esempio, potrebbe essere necessario separarli se diversi componenti all’interno del sito Web sono responsabili della generazione di ciascun blocco di dati in modo indipendente. In alternativa, se il tuo sito web è in grado di gestire tutti gli schemi per una pagina in un unico posto, può essere più semplice gestire un singolo blocco di dati e renderlo come un singolo elemento di script .

È ansible combinare questi in un singolo script elencando ogni schema come un array come questo: