Entity Node adalah paket panjang tetap 4 word (64-bit) dalam aliran GEUL yang mengidentifikasi entitas (orang, tempat, benda, organisasi, konsep, dll.).

Esensi SIDX

KarakteristikDeskripsi
Non-uniqueSatu SIDX dapat memetakan beberapa entitas
Multi-SIDXSatu entitas dapat memiliki beberapa SIDX (per waktu/peran)
Bit = maknaPosisi bit itu sendiri mewakili atribut
Spektrum abstrak/konkretDibedakan oleh tingkat pengisian Mode dan Attributes

Contoh:

  • Trump (pengusaha properti) → SIDX_A
  • Trump (presiden) → SIDX_B (SIDX berbeda)
  • “Human + Male + Korea” → abstrak “pria Korea”
  • “Human + Male + Korea + 1946 + Business + …” → hampir individu tertentu

Prinsip Desain

Penghapusan Q-ID bawaan:

  • Semua bit diinvestasikan untuk penyelarasan semantik murni
  • Maksimalisasi kinerja SIMD filtering WMS
  • Q-ID dihubungkan secara terpisah melalui Triple Edge: (Entity_SIDX, P-externalID, "Q12345")

Serial bit tidak diperlukan:

  • Query WMS dua tahap: penyempitan SIMD → pemeriksaan detail dalam rentang
  • Serial adalah angka tanpa makna yang tidak berkontribusi pada SIMD
  • Menginvestasikan bit tersebut untuk penyelarasan semantik mempersempit rentang di tahap pertama

Tata Letak Bit (4 word = 64 bit)

1st WORD (16 bit)
┌─────────┬──────┬────────────┐
│ Prefix  │ Mode │ EntityType │
│  7bit   │ 3bit │   6bit     │
└─────────┴──────┴────────────┘

2nd WORD (16 bit)
┌─────────────────────────────┐
│     Attributes 16 bit atas  │
└─────────────────────────────┘

3rd WORD (16 bit)
┌─────────────────────────────┐
│     Attributes 16 bit tengah│
└─────────────────────────────┘

4th WORD (16 bit)
┌─────────────────────────────┐
│     Attributes 16 bit bawah │
└─────────────────────────────┘
FieldBitUkuranDeskripsi
Prefix1-770001001 (Entity Node)
Mode8-1038 mode kuantifikasi/bilangan
EntityType11-16664 tipe atas
Attributes17-6448Skema variabel per tipe

Mode (3 bit)

Mode mengintegrasikan kuantifikasi (Quantification) dan bilangan (Number) entitas dalam 3 bit.

KodeBinerMaknaContoh
0000Entitas terdaftarSoekarno, Samsung, BTS
1001Tunggal tertentu“orang itu”
2010Beberapa tertentu“beberapa orang itu”
3011Banyak tertentu“orang-orang itu”
4100Universal“semua ~”
5101Eksistensial“suatu ~”
6110Tak tentu“siapa saja ~”
7111Generik“~ secara umum”

Entitas Terdaftar (Mode=0)

  • Entitas yang dipetakan ke ID eksternal: Wikidata Q-ID, WordNet Synset, dll.
  • Q-ID dihubungkan melalui Triple: (Entity_SIDX, P-externalID, "Q12345")
  • Tidak terkait konsep bilangan: Samsung adalah “satu” tapi sulit disebut tunggal, BTS adalah grup tapi satu entitas

Pronomina/Abstraksi (Mode=1~7)

  • Rentang semantik ditentukan oleh EntityType + Attributes
  • Semakin banyak bit terisi, semakin spesifik
  • Contoh: Human(Type) + Male(Attr) + Korea(Attr) = “pria Korea”

EntityType (6 bit = 64 tipe)

64 tipe atas dialokasikan berdasarkan statistik frekuensi Wikidata P31 (instance of). Subklasifikasi ditangani oleh bit subkelas dalam Attributes.

RentangKategoriJumlahTipe Representatif
0x00-0x07Biologi/tokoh8Human, Taxon, Gene, Protein
0x08-0x0BKimia/material4Chemical, Compound, Mineral, Drug
0x0C-0x13Benda langit8Star, Galaxy, Asteroid, Planet
0x14-0x1BGeografi/alam8Mountain, River, Lake, Island
0x1C-0x23Tempat/administratif8Settlement, Village, Street, Park
0x24-0x2BBangunan8Building, Church, School, Bridge
0x2C-0x2FOrganisasi4Organization, Business, PoliticalParty
0x30-0x3BKarya12Painting, Document, Film, Album
0x3C-0x3FPeristiwa/lainnya4SportsSeason, Event, Election, Other

Tabel Kode (64 lengkap)

KodeTipeQ-IDJumlah
0x00HumanQ512.5M
0x01TaxonQ165213.8M
0x02GeneQ71871.2M
0x03ProteinQ80541.0M
0x04CellLineQ21014462154K
0x05FamilyNameQ101352662K
0x06GivenNameQ202444128K
0x07FictionalCharacterQ1563261798K
0x08ChemicalQ1131451711.3M
0x09CompoundQ111731.1M
0x0AMineralQ794662K
0x0BDrugQ1214045K
0x0CStarQ5233.6M
0x0DGalaxyQ3182.1M
0x0EAsteroidQ3863249K
0x0FQuasarQ83373178K
0x10PlanetQ63415K
0x11NebulaQ120578K
0x12StarClusterQ1688455K
0x13MoonQ25373K
0x14MountainQ8502518K
0x15HillQ54050321K
0x16RiverQ4022427K
0x17LakeQ23397292K
0x18StreamQ47521194K
0x19IslandQ23442153K
0x1ABayQ3959425K
0x1BCaveQ3550920K
0x1CSettlementQ486972580K
0x1DVillageQ532245K
0x1EHamletQ5084148K
0x1FStreetQ79007711K
0x20CemeteryQ39614298K
0x21AdminRegionQ15284100K
0x22ParkQ2269845K
0x23ProtectedAreaQ47397235K
0x24BuildingQ41176292K
0x25ChurchQ16970286K
0x26SchoolQ9842242K
0x27HouseQ3947235K
0x28StructureQ811979216K
0x29SportsVenueQ1076486145K
0x2ACastleQ2341342K
0x2BBridgeQ1228038K
0x2COrganizationQ43229531K
0x2DBusinessQ4830453242K
0x2EPoliticalPartyQ727835K
0x2FSportsTeamQ84701795K
0x30PaintingQ33052131.1M
0x31DocumentQ4984845M
0x32LiteraryWorkQ7725634395K
0x33FilmQ11424335K
0x34AlbumQ482994303K
0x35MusicalWorkQ105543609195K
0x36TVEpisodeQ21191270177K
0x37VideoGameQ7889172K
0x38TVSeriesQ539842685K
0x39PatentQ43305660289K
0x3ASoftwareQ739713K
0x3BWebsiteQ3512712K
0x3CSportsSeasonQ27020041183K
0x3DEventQ165668210K
0x3EElectionQ4023111K
0x3FOther-Untuk ekstensi

Attributes (48 bit)

Skema variabel per tipe yang diinterpretasikan berbeda untuk setiap EntityType. Atribut frekuensi tinggi mendapat alokasi bit lebih banyak. Digunakan langsung dalam SIMD filtering WMS.

Attributes Human (0x00)

┌──────────┬────────┬────────┬──────┬────────┬────────┬─────────┬──────────┬────────────┬──────────┐
│ Subkelas │Profesi │Kewarga.│ Era  │ Dekade │Kelamin │Ketenaran│  Bahasa  │ Wil. lahir │Bid. aktiv│
│  5bit    │  6bit  │  8bit  │ 4bit │  4bit  │  2bit  │  3bit   │  6bit    │   6bit     │   4bit   │
└──────────┴────────┴────────┴──────┴────────┴────────┴─────────┴──────────┴────────────┴──────────┘
offset:  0        5       11      19     23      27      29        32         38          44

Attributes Star (0x0C)

┌────────────┬────────────┬──────────┬──────────┬────────┬────────┬──────────┬──────────┬────────┬────────┐
│ Rasi bintang│Tipe spektral│Kelas lum.│Mag. semu │RA      │ Dekl.  │  Flag    │Kec.radial│Redshift│Paralaks│
│   7bit     │    4bit    │   3bit   │  4bit    │  4bit  │  4bit  │   6bit   │   5bit   │  5bit  │  4bit  │
└────────────┴────────────┴──────────┴──────────┴────────┴────────┴──────────┴──────────┴────────┴────────┘

Definisi bit flag:

  • bit0: IR (sumber inframerah)
  • bit1: Radio (sumber radio)
  • bit2: X-ray (sumber sinar-X)
  • bit3: Binary (bintang ganda)
  • bit4: Variable (bintang variabel)
  • bit5: HighPM (gerak diri tinggi)

Operasi

Pembuatan Entity

def make_entity(
    mode: int,           # 3 bit
    entity_type: int,    # 6 bit
    attrs: int           # 48 bit
) -> bytes:
    PREFIX = 0b0001001   # 7 bit (Entity Node)

    word1 = (PREFIX << 9) | (mode << 6) | entity_type
    word2 = (attrs >> 32) & 0xFFFF
    word3 = (attrs >> 16) & 0xFFFF
    word4 = attrs & 0xFFFF

    return (
        word1.to_bytes(2, 'big') +
        word2.to_bytes(2, 'big') +
        word3.to_bytes(2, 'big') +
        word4.to_bytes(2, 'big')
    )

Parsing Entity

def parse_entity(data: bytes) -> dict:
    word1 = int.from_bytes(data[0:2], 'big')
    word2 = int.from_bytes(data[2:4], 'big')
    word3 = int.from_bytes(data[4:6], 'big')
    word4 = int.from_bytes(data[6:8], 'big')

    prefix = (word1 >> 9) & 0x7F
    mode = (word1 >> 6) & 0x7
    entity_type = word1 & 0x3F
    attrs = (word2 << 32) | (word3 << 16) | word4

    return {
        'prefix': prefix,
        'mode': mode,
        'entity_type': entity_type,
        'attrs': attrs
    }

Contoh

Entitas Terdaftar: Soekarno

# Soekarno (Q4224)
soekarno = make_entity(
    mode=0,              # Entitas terdaftar
    entity_type=0x00,    # Human
    attrs=(
        (0x06 << 43) |   # Subkelas: Political
        (0x01 << 37) |   # Profesi: President
        (0x52 << 29) |   # Kewarganegaraan: Indonesia
        (0x5 << 25) |    # Era: Modern
        (0x0 << 21) |    # Dekade: 1900s
        (0x01 << 19) |   # Kelamin: Male
        (0x7 << 16)      # Ketenaran: 1000+
    )
)
# Koneksi Q-ID: Triple(soekarno_SIDX, P-externalID, "Q4224")

Abstraksi: “semua pria Indonesia”

all_indonesian_men = make_entity(
    mode=4,              # Universal (semua)
    entity_type=0x00,    # Human
    attrs=(
        (0x52 << 29) |   # Kewarganegaraan: Indonesia
        (0x01 << 19)     # Kelamin: Male
    )
)

Pemetaan Subtipe

Banyak tipe Wikidata merupakan subtipe dari 64 EntityType. Encoder merutekan nilai P31 ke tipe atas yang sesuai.

Subtipe (P31)Tipe AtasJumlah
Q13442814 (scholarly article)Document (0x31)45.2M
Q67206691 (infrared source)Star (0x0C)2.6M
Q13100073 (village of China)Village (0x1D)592K

Cakupan

ItemNilai
Total entitas Wikidata117.419.925
Internal Wikimedia (dikecualikan)8.565.353 (7,3%)
Target SIDX108.854.572 (92,7%)
Cakupan langsung 64 tipe36.295.074 (33,3%)
Penyerapan subtipe71.842.429 (66,0%)
Fallback Other717.069 (0,7%)
Cakupan akhir100%
Tingkat tabrakan< 0,01%

Koneksi Q-ID

Entity Node tidak menyertakan Q-ID secara internal, melainkan dihubungkan melalui Triple Edge.

Subject:  Entity_SIDX (64 bit)
Property: P-externalID (mis. P-Wikidata)
Object:   "Q12345" (string atau integer)