@ İd'nin json-ld sözdiziminde kullanımı nedir?


17

Ben @idjson-ld sözdiziminde ne için gerçekten kafam karıştı . Apple.com'dan örnek. @idAslında neyi temsil eder. Herhangi bir yardım harika olurdu?

<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"
    ]
}

Yanıtlar:


28

@idAnahtar kelime Bir düğüm bir URI yapmamızı sağlar. Bu URI düğümü tanımlar.

Bkz. Düğüm TanımlayıcılarıJSON-LD spesifikasyonundaki .

(Mikro verilerdeki eşdeğer itemidniteliktir ve RDFa Lite içindeki eşdeğerdirresource özniteliktir.)

Tanımlayıcılar neden yararlıdır?

  • Bir düğüme tekrarlamak yerine başvurabilirsiniz (örneğime bakın ).
  • Diğer yazarlar aynı şeyi yapabilir (harici sitelerde): belirttiğiniz URI'yi kullandıklarında, aynı şeyden söz ettikleri açıktır.
  • Tüketiciler farklı düğümlerin aynı şey olduğunu öğrenebilir.

Aynı zamanda Bağlantılı Veriler ve Semantik Web'in temel kavramlarından biridir. Buna önem veriyorsanız, gerçek şey ile o şeyle ilgili sayfa arasında ayrım yapan URI'leri kullanmak isteyebilirsiniz ( açıklamama bakın ).

Apple bu örnekte bunu yapıyor. URI http://www.apple.com/#organization, kuruluşla ilgili bir sayfayı değil, o sayfanın bir bölümünü değil, gerçek kuruluşu temsil eder. Bu bir Karma URL'dir ve şey ile şey hakkındaki sayfa arasında ayrım yapmanın popüler bir yoludur. JSON-LD'nizde Apple'ı sevdiğinizi söylemek istiyorsanız, Apple'ı http://www.apple.com/#organizationtanımlamak için kullanabilirsiniz . Kullanmak istiyorsanız http://www.apple.com/bunun yerine, sizin gibi Apple'ın ana sayfası olurdu.


Son paragrafınızı anlamaya çalıştığınız için, bir sayfada hem '@id' hem de 'url' değerleri aynı olmalıdır? 'Url' sağlarsak, karma tabanlı kimliğe sahip olabileceğimizi düşünüyordum. Bu, her şeyin eşit kalmasını sağlar.
Ethan Collins

1
@EthanCollins: O (her ikisi sağlamak için iyi bir uygulamadır @idve url), evet. Sayfalarda, genellikle değerle aynı URI'ye sahip olurlar; diğer öğeler söz konusu olduğunda, genellikle değer olarak farklı URI'lere sahip olurlar ( @idşey urliçin, o şeyle ilgili sayfa için). - Aynı sayfada olduğumuzdan emin olmak için: Karma tabanlı kimlikle, tek sayfalık uygulamalar / JavaScript tabanlı siteler bağlamında değil, Bağlı Veriler bağlamındaki Karma URL'leri kastediyorsunuz, değil mi?
19or

Açıkladığınız için teşekkürler. Ayrıca , yanıtlarınızda paylaştığınız diğer faydalı bağlantılara da bakmam gerekiyor, şimdi çok daha net. (son sorgunuzu cevaplamak için, evet hash URI'leri demek istedim).
Ethan Collins

7

Sahip olduğunuz Yerel işletme özellikleri bölümünde Google Developers - Veri türleri - Yerel İşletme bölümünden aşağıdaki bağlantıyı okuyunuz :

[...] Kimlik, zaman içinde sabit ve değişmez olmalıdır. Google Arama, URL'yi opak bir dize olarak ele alır ve çalışan bir bağlantı olması gerekmez. İşletmede birden çok konum varsa, @id değerinin her konum için benzersiz olduğundan emin olun.

@İd neredeyse tüm nesneler içindir

Umarım cevabım sana yardımcı olur :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.