TANGEUL — Rules Written in Markdown, Audited by Humans صورة: من إنشاء الذكاء الاصطناعي

toulmin يحسب العقود. القواعد دوال Go، والاستثناءات تُعلَن كرسم هزيمة (defeat graph)، وh-Categoriser يحوّل الرسم إلى حُكم. المشكلة أن الشخص الذي يحتاج فعلاً إلى مراجعة العقد لا يستطيع عادةً قراءة Go.

محاسب ضرائب يراجع سياسة إقراض. صاحب عمل صغير يتحقق من قاعدة تحكّم بالوصول. موظف بنك يراجع منطق التعويض في تحويل مالي. لا أحد منهم يستطيع أن ينظر إلى func(ctx Context, specs Specs) (bool, any) ويقول “نعم، هذا صحيح.” مهما كانت رياضيات المحرّك سليمة، إن لم يستطع القارئ قراءة الكود، فإن المراجعة مجرد مسرحية.

الذكاء الاصطناعي يكتبها، والإنسان يقرأها

يسدّ TANGL (Toulmin Amgoud Nute Graph Language) تلك الفجوة. أنت تكتب جُمل ماركداون، وتلك الجُمل هي الكود القابل للتنفيذ.

## tangl:Cases
- in case of `can access`
  - `user` is required
  - `authenticate` is a general rule
  - `block ip` is a counter rule using `policy`.`IsIPBlocked` with `blocklist`
  - don't `authenticate` when `block ip`
  - do `policy`.`Allow` when `authenticate`

هذه الأسطر الخمسة هي رسم toulmin بأكمله — Rule وCounter وAttacks وحافة التنفيذ. ليست هناك خطوة تصريف (compile) منفصلة على المؤلف أن يفكر فيها: سلسلة أدوات tangl تحلّل هذا الماركداون مباشرةً إلى *ast.Document، وتعمل عليه عمليات validate/effects/gen دون تغيير. المؤلف ذكاء اصطناعي، والمدقّق إنسان — وهذا التباين هو جوهر الأمر كله. على الذكاء الاصطناعي فقط اتباع قواعد نحوية قانونية صارمة واحدة؛ وعلى الإنسان فقط قراءة جملة بلغته الخاصة.

دلالة واحدة، أسطح متعددة

دلالات TANGL مُعرَّفة مرة واحدة، في القواعد النحوية الإنجليزية: ثنائية Evaluate/Run، وonce (خمول التِّكة)، وundo (التعويض)، وتوقيت التتالي، وترتيب التنفيذ الحتمي. لا تعيد أي طبعة محلية — كورية، أو أياً كانت التالية — تعريف أيٍّ من هذا. إنها فقط تستبدل جدول الكلمات المفتاحية وترتيب الكلمات الجالس فوق نفس الـ AST. جملة كورية واحدة تُطابق جملة إنجليزية واحدة تطابقاً واحداً بواحد، وكلاهما يُحلَّل إلى عقدة AST متطابقة.

هذه ليست طبقة ترجمة مُلحقة للراحة — إنها حاملة للحِمل. القرّاء الفعليون لـ TANGL في كوريا مراجعون غير مطوّرين: أصحاب المحلات الصغيرة، والمحاسبون الضريبيون. الكلمات المفتاحية الإنجليزية مثل don't X when Y أو is a general rule لا تتيح لغير المطوّر أن يؤكّد “نعم، هذا يُقرأ بشكل صحيح.” إن كان القارئ كورياً، فلا بد أن يكون السطح كورياً كي تنجح المراجعة فعلاً — والعكس صحيح بتناظر تام للقرّاء الإنجليز.

بناء الطبعة الكورية كشف شيئاً غير بديهي من القواعد النحوية الإنجليزية وحدها: ترتيب SOV في الكورية ليس عبء ترجمة، بل ملاءمة أفضل للقواعد الشرطية. `Y`면 `X` 실행한다 (تقريباً، “عندما Y، افعل X”) يُقرأ بشكل أطبع من do X when Y في الكورية — الشرط أولاً والمُسند أخيراً هو ببساطة الطريقة التي بُنيت بها اللغة أصلاً. سياسة الأدوات الكورية تدفع هذا أبعد: الأدوات (은/는/이/가/을/를 …) رموز اختيارية يتجاهلها المحلّل المعجمي، لكن الصيغة القانونية التي يكتبها الذكاء الاصطناعي تتضمنها دائماً على أي حال — من أجل القارئ البشري، لا المحلّل. وبما أن الذكاء الاصطناعي هو المؤلف الوحيد، فلا يضطر المحلّل أبداً إلى قبول ترتيب كلمات حر أو تنويعات منطوقة؛ عليه فقط تحليل صيغة قانونية واحدة. هذا التباين هو ما يجعل سطح لغة طبيعية غير تافه قابلاً للمعالجة أصلاً.

سبعة أقسام

Subject → See → Definitions → Rules → Cases → Provides → Internal
القسمالدورمطلوب
Subjectيُعلن ما يدور حوله المستندمطلوب
Seeيشير إلى رموز الحزم الخارجيةاختياري
Definitionsالمصطلحات والبِنىاختياري
Rulesمسندات الشروط السطريةاختياري
Casesالحُكم + التنفيذ (الرسم نفسه)مطلوب
Providesنقاط النهايةاختياري
Internalالعمل الداخلي المدفوع بالتِّكة/الحدثاختياري

كل بناء صالح فقط ضمن قسمه — نفس انضباط النطاق الذي ترثه أي طبعة محلية دون تغيير. تُقرأ العبارات كجُمل كاملة تسمّي نوعها بنفسها: is a general rule وdon't ... when وdo ... once when وundo ... when وrun ... when.

مثال: روبوت قهوة

إليك كيف تظهر دلالات تنفيذ TANGL — ثنائية Evaluate/Run، وonce، والتتالي — كجُمل ماركداون عادية.

## tangl:Cases
- in case of `can place cup`
  - `order received` is a general rule using `sensor`.`isOrdered`
  - `no cup` is a counter rule using `sensor`.`noCupAvailable`
  - don't `order received` when `no cup`
  - do `arm`.`placeCup` once when `order received`
  - run `can pour water` when `order received`

- in case of `can pour water`
  - `cup placed` is a general rule using `sensor`.`cupIsPlaced`
  - do `arm`.`pourWater` once when `cup placed`
  - run `can brew espresso` when `cup placed`

## tangl:Provides
- provides `make coffee`
  - run `can place cup`

## tangl:Internal
- every 1s until `can serve coffee`
  - run `can place cup`

يقرأ المراجع هذا هكذا: “بمجرد أن يمكن وضع الكوب — إذا استُلم الطلب، ضع الكوب مرة واحدة وانتقل إلى صبّ الماء. إن لم يكن هناك كوب، فالطلب باطل. لصنع القهوة، ابدأ من وضع الكوب، وأعِد المحاولة كل ثانية حتى يمكن تقديمها.”

بدون once، ستضع الذراع كوباً جديداً في كل تِّكة ما دام الطلب فعّالاً — هذه الكلمة هي السبب الكامل في ألا يتحوّل تحديث حسّاس بطيء إلى إعادة تشغيل غير آمنة فيزيائياً. يؤكّد المراجع سلامة إعادة التشغيل من هذه الجملة الواحدة، دون أن يقرأ أبداً شرط حراسة في Go.

مثال: التعويض — يبقى العالم سليماً حتى عند الفشل

undo ليس نفسه الرفض. الرفض فرع طبيعي من الرسم؛ أما undo فهو تعويض عن تنفيذ مات في منتصف الطريق.

- do `bank`.`withdraw` once when `balance sufficient`
- undo `bank`.`refund` when `balance sufficient`
- run `can deposit` when `balance sufficient`

“إذا كان الرصيد كافياً، اسحب مرة واحدة؛ وإن فشل أي شيء لاحق، تراجَع عبر الاسترداد؛ وتابِع إلى الإيداع.” عند الفشل، يكون الترتيب حتمياً:

1. withdraw succeeds        → refund is armed on the compensation stack
2. deposit errors           → the Run aborts immediately
3. stack unwinds LIFO       → refund fires, the money comes back
4. the original error is reported — the transfer failed, and the world looks like it never happened

إذا فشل refund نفسه، تتوقف التعويضات المتبقية وتتصاعد المعاملة كلها إلى بوابة مراجعة بشرية (REVIEW) — يقرّر النظام بنفسه أن تحويلاً نُفّذ نصفه ليس شيئاً يُغطّى عليه تلقائياً.

حيث يتوقف النص عن كونه مصدر الحقيقة — TANGEUL

كل ما سبق هو TANGL: نص ماركداون يُحلَّل ويُنفَّذ مباشرةً. لكن كون النص هو مُدخل التنفيذ راحة، لا ضرورة. في اللحظة التي يكون فيها للغة سطحان — إنجليزي وكوري — يظهر السؤال “أيهما القانوني؟”. الجواب الآن هو “الإنجليزي، بالاصطلاح.” وهذا قرار، لا ضمانة بنيوية.

يزيل TANGEUL السؤال، وهو يُشحن بالفعل بوصفه مصدر الحقيقة الثنائي الوحيد pkg/tangeul لسلسلة أدوات tangl. أثر التنفيذ القانوني هو مجرى رسم ثنائي (.tangeul) تعمل عليه مباشرةً كل من check/ast/effects/gen؛ وملفات الماركداون الإنجليزية والكورية هي مرمِّزات سطحية تُمتَصّ في ذلك الرسم نفسه وتُعرَض منه ثانيةً.

 EN .md ──[EN codec]──┐                        ┌──[mode 1]── verbatim byte-identical round trip
                      ├──> .tangeul (SSOT) ────┤
 KO .md ──[KO codec]──┘                        └──[mode 2]── normalized EN/KO rendering
  • الوضع 1 (حرفي): يعيد تشغيل البايتات المؤلَّفة تماماً، بحيث يكون خرج فك الترميز مطابقاً بايتاً ببايت للـ .md الأصلي — يتحقق منه اختبار الرحلة المزدوجة في CLI.
  • الوضع 2 (مُعاد التوليد): decode --locale en|ko يعيد عرض كل عبارة عبر مرمِّز اللغة الهدف، معيداً تشغيل مقاطع النثر حرفياً. مستند مؤلَّف بالكورية يمكن عرضه لمراجع إنجليزي، والعكس بالعكس.

سطح تأليف المستند مثبَّت على لغة واحدة (خلط أقسام إنجليزية وكورية في ملف واحد مرفوض)، لكن مجرى .tangeul نفسه لا يعرف أي لغة كتبته. يمكن عرضه بأي من اللغتين عند الطلب بالتحديد لأن الأثر القانوني رسم، لا فقرة.

كل المعرفة على مستوى البِت محجورة في حزمتين — word (كلمات 16-بت، ترويسات الإطارات) وcodebook (قيم رموز للإلحاق فقط) — بحيث تبقى الطبقات فوقهما (الرزم، المجرى، حاوية المستند) مستقرة مهما تطوّر الترميز:

pkg/tangeul/
├── word/       // 16-bit words, frame headers — bit-level knowledge stops here
├── codebook/   // NodeType/PropCode/Control codes, append-only
├── packet/     // Node/Edge/Control/Text packets
├── stream/     // Doc ↔ .tangeul serialization
└── doc/        // Doc container + VerifyTiling + the surface Codec interface

VerifyTiling هو بوابة السلامة: يجب أن تبلّط الكتل المسجَّلة النص المصدر تماماً، وهي تعمل عند كل تحميل وكل خرج مرمِّز. تؤكّد اختبارات التكافؤ أن الـ AST المحمَّل من مجرى .tangeul يساوي الـ AST الذي ينتجه المحلّل من الـ .md الأصلي (حتى أرقام الأسطر). إعادة التوجيه إلى الثنائي ليست تغييراً لما يفعله الكود — الرسم، وبالتالي الخرج المولَّد، متطابق؛ بل هي إزالة بنيوية لإمكانية الانحراف بين نسخ متعددة من النص نفسه.

عقود قابلة للمراجعة

كانت خلاصة toulmin أن الحُكم تحسبه صيغة، لا يقرّره شخص. يضيف TANGL سطراً واحداً إلى ذلك: الحساب قابل للقراءة من قِبل شخص لم يكتب الصيغة قط.

  • الضمانة (قاعدة) = جملة واحدة، `n` is a ... rule
  • الدحض = جملة واحدة، don't `X` when `Y`
  • الأساس (الدليل) = استدعاء واحد لدالة حزمة مُشار إليها
  • الحُكم = صيغة h-Categoriser

وTANGEUL هو عمل الضمان، على مستوى البايت، بأن هذه الجُمل تشير إلى الرسم نفسه بغضّ النظر عن أي لغة كُتبت بها. الشخص الذي يكتب القاعدة والشخص الذي يراجعها لم يعودا مضطرَّين إلى مشاركة لغة واحدة.

MIT License. github.com/park-jun-woo/toulminpkg/tangl، pkg/tangeul، cmd/tangl.

المراجع

سجل التغييرات

  • 2026-07-03: الطبعة الأولى