การใช้ @id ในไวยากรณ์ json-ld คืออะไร?


16

ฉันสับสนจริง ๆ ว่าสิ่งที่@idใช้ในไวยากรณ์ json-ld ตัวอย่างจาก apple.com อะไรที่@idเป็นตัวแทนของจริง ความช่วยเหลือใด ๆ ที่จะดี?

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

คำตอบ:


27

@idคำหลักที่ช่วยให้คุณสามารถให้โหนด URI URI นี้ระบุโหนด

ดูNode Identifiersในข้อมูลจำเพาะ JSON-LD

(เทียบเท่าใน Microdata เป็นitemidคุณลักษณะและเทียบเท่าใน RDFa Lite เป็นresourceคุณลักษณะ)

เหตุใดตัวระบุถึงมีประโยชน์

  • คุณสามารถอ้างอิงโหนดแทนการทำซ้ำได้ ( ดูตัวอย่างของฉัน )
  • ผู้เขียนคนอื่นสามารถทำสิ่งเดียวกัน (บนไซต์ภายนอก): เมื่อพวกเขาใช้ URI ที่คุณระบุไว้ชัดเจนว่าพวกเขากำลังพูดถึงสิ่งเดียวกัน
  • ผู้บริโภคสามารถเรียนรู้ว่าโหนดที่แตกต่างกันเป็นเรื่องเดียวกัน

เป็นหนึ่งในแนวคิดหลักของข้อมูลที่เชื่อมโยงและเว็บแบบ Semantic หากคุณสนใจสิ่งนี้คุณอาจต้องการใช้ URIs ที่แยกความแตกต่างระหว่างสิ่งที่เกิดขึ้นจริงและหน้าเกี่ยวกับสิ่งนั้น ( ดูคำอธิบายของฉัน )

นี่คือสิ่งที่ Apple กำลังทำในตัวอย่าง URI http://www.apple.com/#organizationแสดงถึงองค์กรจริงไม่ใช่หน้า (และไม่ใช่ส่วนหนึ่งในหน้านั้น) เกี่ยวกับองค์กร นี่คือHash URLและเป็นวิธียอดนิยมในการสร้างความแตกต่างระหว่างสิ่งของและหน้าเกี่ยวกับสิ่งของ หากคุณต้องการพูดใน JSON-LD ที่คุณชอบ Apple คุณสามารถใช้http://www.apple.com/#organizationเพื่อระบุ Apple หากคุณต้องการใช้http://www.apple.com/มันจะเป็นหน้าแรกของ Apple ที่คุณต้องการ


พยายามที่จะเข้าใจย่อหน้าสุดท้ายของคุณดังนั้นหน้าควรมีทั้ง '@id' และ 'url' ค่าเดียวกัน ฉันคิดว่าถ้าเราให้ 'url' เราก็จะได้รหัสแฮช ที่ช่วยให้สิ่งต่าง ๆ เหมือนกัน
Ethan Collins

1
@EthanCollins: เป็นวิธีที่ดีที่จะให้ทั้ง ( @idและurl) ใช่ ในกรณีของหน้าเว็บโดยทั่วไปพวกเขาจะมี URI เหมือนกับค่า ในกรณีของรายการอื่นพวกเขามักจะมี URIs ที่แตกต่างกันเป็นค่า ( @idสำหรับสิ่งurlสำหรับหน้าเกี่ยวกับสิ่งนั้น) - เพื่อให้แน่ใจว่าเราอยู่ในหน้าเดียวกัน: ด้วย ID ที่ใช้แฮชคุณหมายถึง Hash URL ในบริบทของข้อมูลที่เชื่อมโยงไม่ใช่ในบริบทของแอปพลิเคชันหน้าเดียว / ไซต์ที่ใช้ JavaScript ใช่ไหม
unor

ขอบคุณสำหรับการชี้แจง ฉันต้องดูที่ลิงค์ที่มีประโยชน์อื่น ๆ ที่คุณแบ่งปันในคำตอบของคุณตอนนี้มันชัดเจนกว่ามาก (เพื่อตอบคำถามล่าสุดของคุณใช่ฉันต้องการหมายถึงแฮช URIs)
Ethan Collins

7

อ่านลิงก์ต่อไปนี้จากนักพัฒนาของ Google - ประเภทข้อมูล - ธุรกิจท้องถิ่นในส่วนคุณสมบัติธุรกิจท้องถิ่นที่คุณมี:

[... ] ID ควรมีเสถียรภาพและไม่เปลี่ยนแปลงเมื่อเวลาผ่านไป Google Search ถือว่า URL เป็นสตริงทึบแสงและไม่จำเป็นต้องเป็นลิงก์ที่ใช้งานได้ หากธุรกิจมีหลายสถานที่ตรวจสอบให้แน่ใจว่า @id ไม่ซ้ำกันสำหรับแต่ละสถานที่

@id สำหรับวัตถุเกือบทั้งหมด

ฉันหวังว่าคำตอบของฉันจะช่วยคุณ :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.