ป้ายกำกับ: Dot Notation

Thesaurus: รูปแบบ SKOS-JSONLD Format มาร์กอัปยุคใหม่สำหรับการเชื่อมต่อ Web API และระบบค้นหาแบบ Real-timeThesaurus: รูปแบบ SKOS-JSONLD Format มาร์กอัปยุคใหม่สำหรับการเชื่อมต่อ Web API และระบบค้นหาแบบ Real-time

ในปัจจุบัน สถาปัตยกรรมซอฟต์แวร์เน้นการพัฒนาผ่าน Web Application ข้ามแพลตฟอร์ม (เช่น ระบบที่พัฒนาด้วย Nuxt, .NET Core API หรือระบบ Microservices) การใช้ XML จึงสร้างภาระและความหน่วงให้กับเครือข่าย รูปแบบ JSON-LD (JavaScript Object Notation for Linked Data) ที่ทำงานบนมาตรฐาน SKOS จึงกลายเป็นมาร์กอัปที่ได้รับความนิยมสูงสุดสำหรับแอปพลิเคชันยุคใหม่ เพราะมันรวมความสามารถในการระบุความสัมพันธ์เชิงโครงข่ายแบบ Semantic Web เข้ากับความเรียบง่าย สแกนไว และประมวลผลได้อย่างรวดเร็วในหน่วยความจำของภาษาโปรแกรมมิ่งยุคปัจจุบัน


โครงสร้างและไวยากรณ์ (Syntax)

JSON-LD ใช้โครงสร้าง Key-Value Pair ของ JSON ทั่วไป แต่มีการกำหนด “บริบทข้อมูล” ผ่านชุดคำสั่งพิเศษที่ขึ้นต้นด้วยเครื่องหมาย @ (At-sign) ดังนี้

  • @context : ประกาศให้ระบบรับรู้ว่าฟิลด์ย่อยด้านล่างอ้างอิงความหมายตามมาตรฐานใด (ในที่นี้คือระบุชี้ไปที่ http://www.w3.org/2004/02/skos/core
  • @graph : ชุด Array บันทึกข้อมูล Concept คำศัพท์ทั้งหมด
  • @id : ทำหน้าที่แทน rdf:about เพื่อระบุ URI ประจำตัวของคำศัพท์
  • @type : กำหนดประเภทอ็อบเจกต์เป็น skos:Concept
  • การจัดการพหุภาษา: ฟิลด์ข้อมูลที่เป็นสตริงจะถูกครอบด้วยโครงสร้างอ็อบเจกต์ที่มีคีย์เป็นโค้ดภาษา เช่น "@language": "th" ทำให้นักพัฒนาเข้าถึงชุดข้อมูลแยกตามภาษาได้ทันทีผ่านคำสั่ง Dot Notation ในระบบโปรแกรม

ตัวอย่างมาร์กอัปใช้งานจริง

{
  "@context": {
    "skos": "http://www.w3.org/2004/02/skos/core#",
    "id": "@id",
    "type": "@type",
    "prefLabel": { "@id": "skos:prefLabel" },
    "altLabel": { "@id": "skos:altLabel" },
    "scopeNote": { "@id": "skos:scopeNote" },
    "broader": { "@id": "skos:broader", "@type": "@id" },
    "related": { "@id": "skos:related", "@type": "@id" }
  },
  "@graph": [
    {
      "id": "http://plusmagi.com/thesaurus/spot-deal",
      "type": "skos:Concept",
      "prefLabel": [
        { "@value": "Spot Deal", "@language": "en" }
      ],
      "altLabel": [
        { "@value": "ธุรกรรมซื้อขายทันที", "@language": "th" },
        { "@value": "สัญญารายครั้ง", "@language": "th" },
        { "@value": "Spot Contract", "@language": "en" }
      ],
      "scopeNote": [
        { "@value": "ข้อตกลงในการซื้อขายสินทรัพย์ในราคาตลาดปัจจุบัน ชำระเงินและส่งมอบภายใน 2 วันทำการ", "@language": "th" }
      ],
      "broader": "http://plusmagi.com/thesaurus/deal-type",
      "related": [
        "http://plusmagi.com/thesaurus/fixed-price",
        "http://plusmagi.com/thesaurus/floating-price"
      ]
    }
  ]
}

ข้อดีและข้อจำกัด

  • ข้อดี: ส่งผ่านเครือข่ายได้รวดเร็ว เหมาะสำหรับการทำแอปพลิเคชันค้นหาแบบเรียลไทม์ (Auto-complete Search), ภาษา JavaScript/C# สามารถแปลงค่าเป็น Object และดึงไปใช้งานได้ทันทีโดยไม่ต้องติดตั้ง Library พิเศษ, บ็อตสืบค้นเวอร์ชันปัจจุบันระบุให้ JSON-LD เป็นรูปแบบหลักในการทำ SEO
  • ข้อจำกัด: ตัวโครงสร้างข้อมูลยังคงมีความซับซ้อนในส่วนของการระบุพหุภาษามากกว่าโครงสร้าง JSON ธรรมดา ทำให้ผู้ดูแลระบบคลังคำศัพท์จำเป็นต้องมีความเข้าใจในหลักการของ Linked Data ขั้นพื้นฐานครับ

อ่านเพิ่มเติม