Triple Edge הוא סוג Edge המבטא יחסים/מאפיינים בצורת (Subject, Property, Object).

עיצוב מצב כפול

  • מצב בסיסי (4 מילים): PropCode 0~62 (Top 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: Top 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)

Top 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
        }