انتقل إلى المحتوى

تأطير بيانات JSON-LD — Numio

يعيد تشكيل JSON-LD بإطار (frame) باستخدام jsonld.frame: تصبح العقد المطابقة للإطار (مثلًا حسب @type) نتائج المستوى الأعلى، وتُضمَّن داخلها العقد التي تشير إليها.

تحويل @graph مسطّح إلى شجرة جذرها النوع الذي يحتاجه تطبيقك، مثل كل Book مع المكتبة مضمّنة فيه.

JSON-LD

Frame

متى تستخدمها

  • تحويل @graph مسطّح إلى شجرة جذرها النوع الذي يحتاجه تطبيقك، مثل كل Book مع المكتبة مضمّنة فيه.
  • اختيار عقد @type واحد فقط من مجموعة بيانات JSON-LD أكبر.

طريقة الاستخدام

  1. الصق المستند المصدر في محرر JSON-LD.
  2. اكتب الإطار في محرر Frame: ‏@context إضافة إلى قواعد مطابقة مثل "@type": "Book".
  3. اقرأ النتيجة؛ عند وجود أكثر من تطابق تُدرج العقد في @graph.

JSON-LD + الإطار

// JSON-LD editor
{
  "@context": {"@vocab": "http://schema.org/"},
  "@graph": [
    {"@id": "http://example.org/lib", "name": "City Library"},
    {"@id": "http://example.org/b1", "@type": "Book", "name": "Dune",
     "holdingArchive": {"@id": "http://example.org/lib"}},
    {"@id": "http://example.org/b2", "@type": "Book", "name": "Emma",
     "holdingArchive": {"@id": "http://example.org/lib"}}
  ]
}

// Frame editor
{"@context": {"@vocab": "http://schema.org/"}, "@type": "Book"}

JSON-LD مؤطَّر

{
  "@context": {
    "@vocab": "http://schema.org/"
  },
  "@graph": [
    {
      "@id": "http://example.org/b1",
      "@type": "Book",
      "holdingArchive": {
        "@id": "http://example.org/lib",
        "name": "City Library"
      },
      "name": "Dune"
    },
    {
      "@id": "http://example.org/b2",
      "@type": "Book",
      "holdingArchive": {
        "@id": "http://example.org/lib",
        "name": "City Library"
      },
      "name": "Emma"
    }
  ]
}

التفاصيل والقيود

تُستبدل مراجع العقد هنا بالعقدة المُشار إليها: المكتبة مضمّنة في كل كتاب.

العقدة التي لا تطابق الإطار (المكتبة) تظهر ككائن مضمَّن فقط، لا كنتيجة مستقلة.

يعمل في متصفحك باستخدام jsonld.js بخيارات التأطير الافتراضية؛ ويمكن ضبط @embed و@explicit والأعلام المشابهة داخل الإطار نفسه.

FAQ

كيف أعيد خصائص معيّنة فقط؟

أضف "@explicit": true إلى الإطار وأدرج الخصائص التي تريدها، لكلٍّ منها {} كقيمة.

لماذا يوجد مفتاح @graph في النتيجة؟

عندما يطابق الإطارَ أكثرُ من عقدة تُعاد النتائج في @graph. أما التطابق الواحد فيُعاد ككائن في المستوى الأعلى.

لماذا يكون محرر Frame معبّأً مسبقًا بسياق schema.org؟

هذا هو المثال الافتراضي للصفحة. هذا السياق عنوان URL بعيد يجب أن ينزّله متصفحك؛ استبدله بسياق مضمَّن للعمل دون اتصال. إذا فشل التنزيل، تعرض الصفحة خطأً يذكر عنوان URL.

المواصفات والمراجع