Gostaham Middleware Architecture Standard
استانداردهای GMAS-000 تا GMAS-010 — نسخه ۱.۰ (پیشنویس) — تیر ۱۴۰۵
مقدمه
این سند، استانداردهای رسمی معماری Gostaham Middleware را تعریف میکند. هر استاندارد (GMAS) یک حوزه مشخص از معماری سامانه را پوشش میدهد و شامل الزامات فنی، ساختارهای داده، قواعد اعتبارسنجی و مثالهای پیادهسازی است.
استانداردهای GMAS مکمل Gostaham Middleware Core Specification v1.0 هستند و برای پیادهسازی فنی سامانه ضروری میباشند.
سطوح الزام
در این استاندارد از سه سطح الزام استفاده میشود:
- [Must] — الزامی و تغییرناپذیر.
- [Should] — توصیه اکید. عدم رعایت نیازمند مستندسازی دلیل.
- [May] — اختیاری.
GMAS-000: معماری مرجع و اصول بنیادین
حوزه: کلیات سامانه | ارجاع: فصل ۱، ۱۱، ۱۲
۱. معماری چهارلایه
| لایه | اجزا | مسئولیت |
|---|---|---|
| زبان | واژهنامه، هستیشناسی | تعریف مفاهیم و واژگان مشترک |
| دانش | هویت، رابطه، زمان، مکان، روایت، منبع، شاهد، رسانه | مدلسازی و ذخیرهسازی |
| خرد | موتور معنا، موتور استنتاج، موتور تمدن | تحلیل و فهم |
| حکمرانی | API، امنیت، نسخهبندی | تعامل و کنترل دسترسی |
۲. اصول تغییرناپذیر
- [Must] IK-Immutable: شناسه IK هرگز تغییر نمیکند.
- [Must] No-Delete: حذف فیزیکی هیچ موجودیتی مجاز نیست.
- [Must] Source-Mandatory: هر ادعا باید حداقل یک منبع داشته باشد.
- [Must] Provenance-Chain: مسیر «ادعا ← شاهد ← منبع ← نسخه ← ویرایشگر».
- [Must] Version-Immutable: نسخههای منتشرشده تغییر نمیکنند.
- [Must] API-Only: بدون دسترسی مستقیم به پایگاه داده.
۳. یادداشت پیادهسازی
معماری لایهای سختگیرانه (Strict Layered): هر لایه فقط با لایه زیرین از طریق API رسمی ارتباط دارد.
GMAS-001: استاندارد هویت
حوزه: ساختار IK، انواع هویت، چرخه حیات | ارجاع: فصل ۲، ۱۴
۱. ساختار IK
قالب: IK:{UUID v4} یا IK:{namespace}:{local_id}
[Must] یکتایی IK در کل سامانه.
۲. انواع هویت
Person, Place, Event, Organization, Concept, Artifact, Text, Media, Tradition
۳. چرخه حیات
Draft → Validated → Published → Deprecated → Retired
[Must] انتقال به Deprecated با ثبت دلیل.
[Should] موجودیت Retired از جستجوهای پیشفرض خارج میشود.
۴. فیلدها
[Must] ik, type, primary_name, created_at, status
[May] alternate_names[], description, valid_from, valid_until, created_by
GMAS-002: استاندارد رابطه
حوزه: انواع رابطه، محدودیتها | ارجاع: فصل ۳، ۶
۱. ساختار RK
قالب: RK:{UUID v4} — هر رابطه یک موجودیت مستقل.
۲. انواع
عمومی: kinship, rulership, enmity, friendship, alliance, succession, mentorship, creation, spatial_dependency, temporal_dependency, conceptual_dependency, citation
روایی: represents, contradiction, motivates, suggestion
۳. محدودیتهای دامنه
- [Must]
represents: NarrativeNode → ExistenceNode - [Must]
contradiction: NarrativeNode → NarrativeNode - [Must]
motivates: Event → Event - [Must]
suggestion: منبع AI + سطح اطمینان «نامشخص»
۴. فیلدها
[Must] rk, source_ik, target_ik, relation_type, created_at
[Should] narrative_ik برای روابط وابسته به روایت.
GMAS-003: استاندارد مدلسازی زمان
حوزه: انواع زمان، تقویمها | ارجاع: فصل ۴
۱. انواع
exact, approximate, mythological, narrative
۲. ساختار
{
"time_id": "TK:...",
"type": "approximate",
"earliest": "-0500-01-01",
"latest": "-0400-12-31",
"calendar": "gregorian",
"precision": "century",
"description": "قرن پنجم پیش از میلاد"
}
۳. تقویمها
[Should] gregorian, jalali, hijri, julian
۴. زمانهای اسطورهای
[Should] فیلد narrative_anchor. مثال: "پس از مرگ جمشید"
GMAS-004: استاندارد مکان
حوزه: سلسله مراتب مکانی، مختصات | ارجاع: فصل ۵
۱. انواع
continent, country, province, city, village, historical_region, mountain, plain, river, sea, cave, forest, fire_temple, palace, fortress, tomb, battlefield, route, bridge, port
۲. مختصات
[Should] coordinates: GeoJSON Point
[May] boundaries: GeoJSON Polygon
[May] historical_boundaries[]
۳. حافظه مکان
[May] اتصال به روایتها از طریق place_memory.
GMAS-005: استاندارد روایت
حوزه: گراف روایت، پلهای بینگرافی | ارجاع: فصل ۶
۱. ساختار NarrativeNode
{
"ik": "IK:...",
"type": "NarrativeNode",
"narrative_type": "mythological|epic|...",
"title": "روایت ضحاک در شاهنامه",
"language": "fa",
"creator_ik": "IK:ferdowsi",
"source_ik": "IK:shahnameh",
"represents_ik": "IK:zahhak",
"contradicts": ["IK:narrative_avestan_zahhak"]
}
۲. پلهای بینگرافی
[Must] رابطه represents میان NarrativeNode و ExistenceNode.
۳. ثبت تعارض
[Must] فیلد contradiction_reason.
GMAS-006: استاندارد منبع و شاهد
حوزه: زنجیره شواهد، شاهد سلبی | ارجاع: فصل ۷، ۸
۱. انواع منبع
book, manuscript, inscription, article, thesis, historical_document, map, photo, video, audio, interview, database, website, archaeological_report
۲. انواع شاهد
text, image, inscription, archaeological_data, genetic_data, linguistic_data, source_as_evidence, negative_evidence, ...
۳. شاهد سلبی
[Must] فیلد expected_claim برای ادعای غایب.
مثال: "در اوستا نامی از هخامنشیان نیامده"
۴. زنجیره ارجاع
[Must] source_ik و source_location.
GMAS-007: استاندارد سطح اطمینان
حوزه: بردار اطمینان، توضیحپذیری | ارجاع: فصل ۹
۱. بردار اطمینان
{
"confidence_vector": {
"source_reliability": "high|medium|low|unspecified",
"evidence_convergence": "high|medium|low|unspecified",
"scholarly_consensus": "high|medium|low|unspecified"
},
"explanation": "..."
}
[Must] فیلد explanation برای هر ارزیابی.
[Should] سطح کلی از ترکیب سه بُعد محاسبه شود.
GMAS-008: استاندارد هستیشناسی
حوزه: کلاسها، همترازی CIDOC-CRM | ارجاع: فصل ۱۲
۱. کلاسهای پایه
ExistenceNode: Person, Place, Event, Organization, Artifact, Concept
NarrativeNode: تمام موجودیتهای درون روایت
۲. همترازی
| Gostaham | CIDOC-CRM |
|---|---|
Person | crm:E21_Person |
Place | crm:E53_Place |
Event | crm:E5_Event |
Artifact | crm:E22_Human-Made_Object |
NarrativeNode | crm:E33_Linguistic_Object |
represents | crm:P138_represents |
۳. توسعهپذیری
[May] زیرکلاس جدید توسط کاربران مجاز.
[Must] اتصال به یکی از کلاسهای پایه.
[Should] همترازی با CIDOC-CRM.
GMAS-009: استاندارد API و تبادل داده
حوزه: REST، GraphQL، JSON-LD | ارجاع: فصل ۱۷
۱. قالبها
[Must] JSON
[Should] JSON-LD, GraphQL
[May] RDF/XML
۲. نمونه JSON-LD
{
"@context": "https://gostaham.org/ns/context.jsonld",
"@id": "IK:zahhak",
"@type": "Person",
"primary_name": "ضحاک"
}
۳. نسخهبندی
مسیر: /api/v{major}/{resource}
[Should] پشتیبانی ۱۲ ماهه از نسخههای قدیمی.
۴. احراز هویت
[Must] JWT برای درخواستهای نوشتاری.
GMAS-010: استاندارد امنیت و حکمرانی
حوزه: سطوح دسترسی، حساسیت فرهنگی | ارجاع: فصل ۱۸
۱. سطوح دسترسی
| سطح | مجوزها |
|---|---|
visitor | خواندن منابع عمومی |
researcher | + ثبت ادعا و شاهد |
contributor | + ویرایش پیشنویس |
editor | + انتشار و تغییر وضعیت |
reviewer | بررسی علمی |
admin | مدیریت کامل |
۲. حساسیت فرهنگی
مقادیر: none, restricted, sacred, confidential
[Must] دسترسی محدود برای sacred و confidential.
[Must] ثبت دلیل در sensitivity_reason.
۳. ثبت عملیات
[Must] تمام عملیات در audit_log.
پیوست: راهنمای علائم
| علامت | معنا |
|---|---|
| [Must] | الزامی و تغییرناپذیر |
| [Should] | توصیه اکید |
| [May] | اختیاری |
پیوست: جدول خلاصه
| کد | عنوان | وضعیت |
|---|---|---|
| GMAS-000 | معماری مرجع | پیشنویس ۱.۰ |
| GMAS-001 | هویت | پیشنویس ۱.۰ |
| GMAS-002 | رابطه | پیشنویس ۱.۰ |
| GMAS-003 | زمان | پیشنویس ۱.۰ |
| GMAS-004 | مکان | پیشنویس ۱.۰ |
| GMAS-005 | روایت | پیشنویس ۱.۰ |
| GMAS-006 | منبع و شاهد | پیشنویس ۱.۰ |
| GMAS-007 | سطح اطمینان | پیشنویس ۱.۰ |
| GMAS-008 | هستیشناسی | پیشنویس ۱.۰ |
| GMAS-009 | API | پیشنویس ۱.۰ |
| GMAS-010 | امنیت | پیشنویس ۱.۰ |
Gostaham Middleware Architecture Standard — GMAS v1.0 (پیشنویس)
تدوین: سید ابوالفضل موسوی | تیر ۱۴۰۵
این سند تحت مجوز GOSTAHAM MIDDLEWARE منتشر میشود.