Meilleur JSON-LD pratiques: l'utilisation de plusieurs <script> éléments?
Je suis curieux de connaître les meilleures pratiques pour l'application de JSON-LD sur un site pour schema.org.
Si j'ai une page avec un Article
et je tiens également à définir WebSite
sur ma page, je voudrais avoir ceci:
<script type="application/ld+json">
{
"@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"
}
}
</script>
<!- … -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Article",
"author": "John Doe",
"interactionCount": [
"UserTweets:1203",
"UserComments:78"
],
"name": "How to Tie a Reef Knot"
}
</script>
Est-ce correct ou faux? Est-il un avantage ou un besoin de fusionner ces dans le même script, ou un tableau d'objets?
- lire ce w3.org/TR/json-ld/#h3_advanced-context-usage, il suffit d'utiliser une simple liste
Vous devez vous connecter pour publier un commentaire.
Il est valide. Vous pouvez avoir autant de blocs de données (=
script
éléments) comme vous le souhaitez.Un possible bénéfice de l'aide d'un seul
script
élément: il permet d'établir des relations entre plusieurs éléments plus facile (par exemple, si vous décidez d'utiliserhasPart
oumainEntity
), que vous avez simplement à imbriquer les éléments.Mais faire de ces relations est bien sûr également possible lors de l'utilisation de séparer les blocs de données, par la référence à l'URI de l'élément avec
@id
(merci, @ Gregg Kellogg).(Pour référence, l'ajout de deux ou plus de haut-niveau des éléments dans un seul
script
est possible avec@graph
.)@graph
ou un tableau d'objets? La discussion a été fait en 2012 (github.com/json-ld/json-ld.org/issues/96), et le consensus de ma lecture a été@graph
pour de multiples objets de plus haut niveau. Merci à l'avance.@graph
(ou un alias de@graph
) pour permettre l'utilisation d'un seul objet de plus haut niveau avec le contexte partagé. Les deux sont tout à fait légitimes, cependant. A noter qu'un autre modèle est l'utilisation d'un revers de la propriété commune de la valeur de l'objet utilisé comme objet de plus haut niveau, en les reliant à toutes les ressources qui lui font référence. Voir Inverser les Propriétés.Il n'y a aucun avantage à avoir un seul ou de multiples blocs de données, autres que les limitations autour de la façon dont vous pouvez stocker et de gérer le schéma de données dans votre site web.
Par exemple, vous pourriez avoir besoin de leur part si différents composants au sein de votre site web sont responsables de générer de chaque bloc de données de manière indépendante. Alternativement, si votre site est en mesure de gérer tous les schémas pour une page en un seul endroit, il peut être plus simple à gérer qu'un seul bloc de données et de rendre ce que d'un seul
script
élément.Vous pouvez les combiner en un seul script, par l'inscription de chaque schéma, comme un tableau comme ceci: