Meilleures pratiques JSON-LD: utilisation de plusieurs éléments ?

Je suis curieux de connaître les meilleures pratiques pour appliquer JSON-LD sur un site pour schema.org.

Si j’ai une page avec un Article et que je souhaite également définir un site WebSite sur ma page, j’aurais ceci:

  { "@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" }  

Est-ce correct ou faux? Y at-il un avantage ou besoin de les fusionner dans le même script ou tableau d’éléments?

C’est valide Vous pouvez avoir autant de blocs de données (= éléments de script ) que vous le souhaitez.

Un avantage possible de l’utilisation d’un seul élément de script : il permet de faciliter les relations entre plusieurs éléments (par exemple, si vous décidez d’utiliser hasPart ou mainEntity ), car vous devez simplement imbriquer les éléments.
Cependant, il est également possible de créer ces relations en utilisant des blocs de données distincts, en référençant l’URI de l’élément avec @id ( merci, @ Gregg Kellogg ).

(Pour référence, l’ ajout de deux éléments de niveau supérieur dans un seul script est possible avec @graph .)

Avoir des blocs de données uniques ou multiples ne présente aucun avantage, hormis les limitations relatives à la manière de stocker et de gérer les données de schéma sur votre site Web.

Par exemple, vous pourriez en avoir besoin séparément si différents composants de votre site Web sont responsables de la génération de chaque bloc de données indépendamment. Par ailleurs, si votre site Web est capable de gérer tous les schémas pour une page au même endroit, il peut être plus simple de gérer un seul bloc de données et de le rendre comme un seul élément de script .

Vous pouvez les combiner en un seul script en répertoriant chaque schéma en tant que tableau comme ceci: