ما هو تنسيق TOON؟

TOON (Token-Oriented Object Notation) هو تنسيق تسلسل بيانات مضغوط وقابل للقراءة من قبل البشر صُمم خصيصًا لنماذج اللغة الكبيرة (LLMs). على عكس JSON، الذي يكرر أسماء الحقول لكل كائن في مصفوفة، يعلن TOON عن أسماء الحقول مرة واحدة ثم يبث البيانات في صفوف — مشابهًا لـ CSV ولكن به بنية صريحة. عادةً ما يقلل هذا التصميم من استهلاك الرموز بنسبة 30-60٪ مقارنةً بـ JSON المنسق، خاصةً للمصفوفات المتجانسة من الكائنات. يجمع TOON بين بنية YAML القائمة على المسافات المتداخلة للكائنات المتداخلة وكفاءة الجداول في CSV، مُحسّنًا لسياقات LLM حيث تكاليف الرموز مهمة.

ما هو XML؟

XML (eXtensible Markup Language) هو لغة ترميز واسعة الاستخدام لتشفير المستندات بصيغة قابلة للقراءة من قبل البشر والآلات على حد سواء. يستخدم XML وسومًا لتحديد العناصر والسمات، مما يُنشئ بنية شجرية هرمية. يُستعمل عادةً في ملفات التكوين، وتبادل البيانات بين الأنظمة، وخدمات الويب (SOAP)، وتنسيقات المستندات (Office Open XML)، وخلاصات RSS. رغم أن XML يُعد مُفصلاً ومطولًا، فإنه يوفر قدرات تحقق قوية ويدعم هياكل متداخلة معقدة.

وصف الأداة

هذا المحول يُحوِّل البيانات ثنائيًا بين تنسيقي TOON و XML باستخدام JSON كتنسيق وسيط. عملية التحويل هي: TOON ↔ JSON ↔ XML. يضمن هذا النهج تحويلًا موثوقًا من خلال الاستفادة من مكتبات راسخة لكل خطوة تحويل. حوِّل بيانات TOON الفعّالة من حيث الرموز إلى ترميز XML قياسي للأنظمة التي تتطلب إدخال XML، أو حوِّل بيانات XML إلى تنسيق TOON مضغوط لتقليل استهلاك الرموز في تطبيقات LLM.

أمثلة

تحويل TOON إلى XML:

Input (TOON):

users[2]{id,name,role}:
  1,Alice,admin
  2,Bob,user

Output (XML):

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <users>
    <id>1</id>
    <name>Alice</name>
    <role>admin</role>
  </users>
  <users>
    <id>2</id>
    <name>Bob</name>
    <role>user</role>
  </users>
</root>

تحويل XML إلى TOON:

Input (XML):

<?xml version="1.0" encoding="UTF-8"?>
<order>
  <id>ORD-456</id>
  <customer>John Doe</customer>
  <total>99.99</total>
</order>

Output (TOON):

order:
  id: ORD-456
  customer: John Doe
  total: 99.99

الميزات

  • تحويل ثنائي الاتجاه بين TOON و XML مع الحفاظ الكامل على البيانات
  • تنسيق JSON الوسيط يضمن تحويلًا موثوقًا باستخدام مكتبات مثبتة
  • يدعم الهياكل المعقدة بما في ذلك العناصر المتداخلة والسمات والمصفوفات

عملية التحويل

TOON إلى XML:

  1. تحليل تنسيق TOON إلى كائن JavaScript (باستخدام @toon-format/toon decode)
  2. تحويل كائن JavaScript إلى ترميز XML (باستخدام xml2js builder)
  3. إخراج XML منسق مع المسافات المناسبة

XML إلى TOON:

  1. تحليل ترميز XML إلى كائن JavaScript (باستخدام xml2js parser)
  2. تحويل كائن JavaScript إلى تنسيق TOON (باستخدام @toon-format/toon encode)
  3. إخراج تمثيل TOON مضغوط

ملاحظات بنية XML

عند التحويل من TOON إلى XML:

  • تتحول مفاتيح الكائن الجذر إلى عناصر XML
  • تُنشئ المصفوفات عناصر متعددة بنفس اسم الوسم
  • توسّع مصفوفات TOON الجدولية إلى عناصر XML منفردة
  • تتحول خصائص الكائن إلى عناصر فرعية
  • تُحول القيم إلى محتوى نصي

عند التحويل من XML إلى TOON:

  • تتحول عناصر XML إلى مفاتيح كائن
  • تتحول العناصر المتكررة إلى مصفوفات
  • تُدمج السمات مع محتوى العنصر
  • يصبح المحتوى النصي قيمًا نصية
  • تتحول العناصر الفارغة إلى سلاسل نصية فارغة أو null

اعتبارات التنسيق

إسهاب XML:

  • XML بطبيعة الحال إسهاب مع وسوم الفتح والإغلاق
  • كل عنصر يحتاج إلى وسوم بداية ونهاية
  • السمات تضيف أحرفًا إضافية
  • مناسب جدًا لتعليم المستندات والتحقق

كفاءة TOON:

  • أكثر ضغطًا بشكل ملحوظ للبيانات المهيكلة
  • مثالي للبيانات الجدولية ذات الهياكل المتكررة
  • يقلل استهلاك الرموز بنسبة 30-60٪ مقارنةً بـ JSON
  • محسن للاستهلاك من قبل LLM

المقايضات:

  • XML يدعم السمات والمحتوى المختلط (نص + عناصر)
  • TOON يتفوق في الهياكل البيانات المتجانسة
  • XML يمتلك قدرات تحقق أقوى
  • TOON يتمتع بكفاءة رموز أفضل لنماذج اللغة الكبيرة

جودة التحويل

يضمن تنسيق JSON الوسيط:

  • تكامل البيانات - لا فقدان للبيانات أثناء التحويل
  • حفظ الأنواع - الحفاظ على الأعداد والقيم المنطقية والقيم null
  • اتساق البنية - الحفاظ على العلاقات المتداخلة
  • تحويل موثوق - باستخدام مكتبات مختبرة (xml2js و @toon-format/toon)
  • معالجة الأخطاء - رسائل خطأ واضحة للمدخلات غير الصالحة