Triple Edge هو نوع Edge يعبّر عن العلاقات/الخصائص بصيغة (Subject, Property, Object).

تصميم الوضع المزدوج

  • الوضع الأساسي (4 كلمات): PropCode 0~62 (أعلى 63 خاصية)
  • الوضع الموسع (5 كلمات): PropCode=63 يغطي كل P-ID (محاذاة دلالية 16 بت)

الوضع الأساسي (4 كلمات = 64 بت)

1st WORD (16 bits)
┌────────────────────┬────────────────────┐
│      Prefix        │     PropCode       │
│      10bit         │       6bit         │
└────────────────────┴────────────────────┘

2nd WORD: Edge TID (16 bits)
3rd WORD: Subject TID (16 bits)
4th WORD: Object TID (16 bits)
الحقلالبتاتالوصف
Prefix101100 000 001
PropCode60~62: أعلى 63 خاصية، 63: وضع موسع
Edge TID16TID لهذا Edge
Subject TID16TID الفاعل Entity/Node
Object TID16TID المفعول Entity/Node/Quantity

الوضع الموسع (5 كلمات = 80 بت)

عندما يكون PropCode = 63 يُضاف P-ID بـ 16 بت في الكلمة الثالثة.

1st WORD: [Prefix 10bit] + [PropCode=63 6bit]
2nd WORD: Edge TID (16 bits)
3rd WORD: P-ID semantic-aligned (16 bits)
4th WORD: Subject TID (16 bits)
5th WORD: Object TID (16 bits)

أعلى 63 خاصية (PropCode 0~62)

خصائص مختارة بناءً على تكرار الاستخدام في ويكي بيانات.

التصنيف/النوع (Code 0~7)

CodeP-IDالخاصيةالوصف
0P31instance ofنسخة من ~
1P279subclass ofفئة فرعية من ~
2P361part ofجزء من ~
3P527has partيحتوي على ~
4P1552has qualityخاصية/سمة
5P460same asمطابق
6P1889different fromمختلف عن
7P156followed byمتبوع بـ

المكان/الموقع (Code 8~15)

CodeP-IDالخاصيةالوصف
8P17countryالدولة
9P131located inالموقع (منطقة إدارية)
10P276locationالموقع (مكان)
11P625coordinateالإحداثيات
12P30continentالقارة
13P36capitalالعاصمة
14P150containsيحتوي (منطقة)
15P206located next toمسطح مائي مجاور

الزمن (Code 16~23)

CodeP-IDالخاصيةالوصف
16P569date of birthتاريخ الميلاد
17P570date of deathتاريخ الوفاة
18P571inceptionتاريخ التأسيس
19P576dissolvedتاريخ الحل
20P577publication dateتاريخ النشر
21P580start timeوقت البداية
22P582end timeوقت النهاية
23P585point in timeنقطة زمنية

بيانات الشخص الأساسية (Code 24~31)

CodeP-IDالخاصيةالوصف
24P19place of birthمكان الميلاد
25P20place of deathمكان الوفاة
26P21sex or genderالجنس
27P27citizenshipالجنسية
28P735given nameالاسم الأول
29P734family nameاسم العائلة
30P1559name in native languageالاسم الأصلي
31P742pseudonymاسم مستعار

العلاقات/الانتماء (Code 32~39)

CodeP-IDالخاصيةالوصف
32P22fatherالأب
33P25motherالأم
34P26spouseالزوج/الزوجة
35P40childالابن/الابنة
36P3373siblingالأخ/الأخت
37P463member ofعضو في
38P108employerجهة العمل
39P1027conferred byجهة المنح

المهنة/النشاط (Code 40~47)

CodeP-IDالخاصيةالوصف
40P106occupationالمهنة
41P39position heldالمنصب
42P69educated atالمؤهل التعليمي
43P101field of workمجال العمل
44P1344participant inالمشاركة (حدث)
45P166award receivedالجوائز
46P800notable workأبرز الأعمال
47P1412languages spokenاللغات

الوسائط/التعريف (Code 48~55)

CodeP-IDالخاصيةالوصف
48P18imageصورة
49P154logoشعار
50P41flag imageعلم
51P373Commons categoryويكيميديا
52P856official websiteالموقع الرسمي
53P214VIAF IDVIAF
54P227GND IDGND
55P213ISNIISNI

الأعمال/الإبداع (Code 56~62)

CodeP-IDالخاصيةالوصف
56P50authorالمؤلف
57P57directorالمخرج
58P86composerالمؤلف الموسيقي
59P175performerالمؤدي/المغني
60P136genreالنوع
61P364original languageاللغة الأصلية
62P123publisherالناشر

Code 63 محجوز كـ مؤشر الوضع الموسع.

ملخص PropCode

┌─────────────────────────────────────────────┐
│  0~7:   التصنيف/النوع (P31, P279, ...)      │
│  8~15:  المكان/الموقع (P17, P131, ...)      │
│  16~23: الزمن (P569, P570, ...)             │
│  24~31: بيانات الشخص (P19, P20, ...)        │
│  32~39: العلاقات/الانتماء (P22, P25, ...)   │
│  40~47: المهنة/النشاط (P106, P39, ...)      │
│  48~55: الوسائط/التعريف (P18, P856, ...)    │
│  56~62: الأعمال/الإبداع (P50, P57, ...)     │
├─────────────────────────────────────────────┤
│  63: مؤشر الوضع الموسع                      │
└─────────────────────────────────────────────┘

أمثلة

الوضع الأساسي: “Apple شركة”

P31 (instance of) → PropCode = 0

Triple Edge:
  1st: [1100 000 001] + [000000]  - Prefix + PropCode 0
  2nd: [TID: 0x0101]              - Edge TID
  3rd: [TID: 0x0010]              - Apple (Subject)
  4th: [TID: 0x0020]              - Company (Object)

Total: 4 words

الوضع الموسع: “ارتفاع برج إيفل 330 متراً”

P2048 (height) → outside Top 63 → Extended mode

Triple Edge:
  1st: [1100 000 001] + [111111]  - Prefix + Ext(63)
  2nd: [TID: 0x0102]              - Edge TID
  3rd: [0xA800]                   - P2048 semantic-aligned
  4th: [TID: 0x0030]              - Eiffel Tower (Subject)
  5th: [TID: 0x0050]              - 330m Quantity (Object)

Total: 5 words

التحليل

def parse_triple_edge(data: bytes) -> dict:
    word1 = int.from_bytes(data[0:2], 'big')

    prefix = word1 >> 6
    assert prefix == 0b1100000001, "Not Triple Edge"

    prop_code = word1 & 0x3F

    if prop_code < 63:
        # Basic mode (4 words)
        return {
            'mode': 'basic',
            'prop_code': prop_code,
            'edge_tid': int.from_bytes(data[2:4], 'big'),
            'subject_tid': int.from_bytes(data[4:6], 'big'),
            'object_tid': int.from_bytes(data[6:8], 'big'),
            'words': 4
        }
    else:
        # Extended mode (5 words)
        return {
            'mode': 'extended',
            'p_id': int.from_bytes(data[4:6], 'big'),
            'edge_tid': int.from_bytes(data[2:4], 'big'),
            'subject_tid': int.from_bytes(data[6:8], 'big'),
            'object_tid': int.from_bytes(data[8:10], 'big'),
            'words': 5
        }