web-dev-qa-db-fra.com

Quelle est l'utilisation de @id dans la syntaxe json-ld?

Je suis vraiment confus quant à l'utilisation de @id dans la syntaxe json-ld. Exemple de Apple.com. Que représente réellement @id? Toute aide est la bienvenue?

<script type="application/ld+json">
{
    "@context": "http://schema.org",
    "@id": "http://www.Apple.com/#organization",
    "@type": "Organization",
    "url": "http://www.Apple.com/",
    "logo": "https://www.Apple.com/ac/structured-data/images/knowledge_graph_logo.png?201608191052",
    "contactPoint": [
        {
            "@type": "ContactPoint",
            "telephone": "+1-800-692-7753",
            "contactType": "sales",
            "areaServed": [ "US" ]
        }
    ],
    "sameAs": [
        "http://www.wikidata.org/entity/Q312",
        "https://www.youtube.com/user/Apple",
        "https://www.linkedin.com/company/Apple"
    ]
}
13
Ishan

Le mot clé @id vous permet de donner un URI à un nœud. Cet URI identifie le noeud.

Voir identificateurs de nœud dans la spécification JSON-LD.

(L'équivalent dans Microdata est l'attribut itemid, et l'équivalent dans RDFa Lite est l'attribut resource.)

Pourquoi les identifiants sont-ils utiles?

  • Vous pouvez référencer un nœud au lieu de le répéter ( voir mon exemple ).
  • D'autres auteurs peuvent faire la même chose (sur des sites externes): lorsqu'ils utilisent l'URI que vous avez spécifié, il est clair qu'ils parlent de la même chose.
  • Les consommateurs peuvent apprendre que différents nœuds sont à peu près identiques.

C’est également l’un des concepts de base des données liées et du Web sémantique. Si cela vous intéresse, vous pouvez utiliser des adresses URI qui différencient l'élément réel de la page relative à cet élément ( voir mon explication ).

C'est ce que Apple fait dans l'exemple. L'URI http://www.Apple.com/#organization représente l'organisation réelle et non une page (et aucune partie de cette page) sur l'organisation. Il s’agit d’un RL de hachage , et c’est un moyen courant de faire la distinction entre l’objet et la page correspondante. Si vous voulez dire dans votre code JSON-LD que vous aimez Apple, vous pouvez utiliser http://www.Apple.com/#organization pour identifier Apple. Si vous préférez utiliser http://www.Apple.com/, ce sera la page d’accueil d’Apple que vous aimez.

21
unor

En lisant le lien suivant de Google Développeurs - Types de données - Entreprise locale dans la section Propriétés de l'entreprise locale, vous avez:

[...] L'identifiant devrait être stable et immuable dans le temps. Google Search considère l'URL comme une chaîne opaque et il ne doit pas nécessairement s'agir d'un lien fonctionnel. Si l'entreprise a plusieurs sites, assurez-vous que le @id est unique pour chaque site.

Le @id est pour presque tout objet

J'espère que ma réponse vous aidera :)

7
benetj