Skip to content

EntityAlignment-Nexus

A unified, faithful, readable zoo of Entity Alignment models on the DBP15K benchmark.

typing banner

Why this project exists

Entity Alignment (EA) finds the entities that refer to the same real-world thing across two knowledge graphs (for example a Chinese DBpedia page and its English counterpart). It is a crowded field, but the code behind it is fragmented: every paper ships its own data format, training loop and evaluation script, which makes honest comparison painful.

Mission

EntityAlignment-Nexus is a single, clean home for entity-alignment models on DBP15K - a shared data layer, shared metrics, and a shared trainer pattern so you can read a method, reproduce its numbers, and compare it fairly to the rest.

  • Nine models, one engine


    NAEA, BootEA, AliNet, KECG, GCN-Align, JAPE, DGMC, MRAEA and RREA - all on the same data.py / trainer.py / metrics.py.

  • Faithful & measured


    Paper-level (or above) on several models, with the residual gaps documented honestly and real training curves attached.

  • Read it or run it


    An installable package and nine self-contained notebooks that re-implement each method inline, cell by cell.

  • Built to grow


    Transformer-based EA models are on the roadmap. Adding a model means writing one model file, one trainer and one YAML.

What is DBP15K?

DBP15K is the reference cross-lingual EA benchmark introduced by JAPE (Sun et al., ISWC 2017). It contains three language pairs built from DBpedia - zh_en (Chinese-English), ja_en (Japanese-English) and fr_en (French-English) - each with 15,000 gold aligned entity pairs. The standard protocol uses 30% of the pairs as training seeds and the remaining 70% for testing.

flowchart LR
    subgraph KG1["KG1 (e.g. zh)"]
        a1((北京)) --- a2((中国))
    end
    subgraph KG2["KG2 (en)"]
        b1((Beijing)) --- b2((China))
    end
    a1 -. "align?" .-> b1
    a2 -. "align?" .-> b2
    classDef k1 fill:#1f6feb,stroke:#58a6ff,color:#fff;
    classDef k2 fill:#bf4b8a,stroke:#f778ba,color:#fff;
    class a1,a2 k1;
    class b1,b2 k2;

A model encodes the entities of both graphs into a shared space and ranks, for each source entity, its most likely counterpart in the other graph.

How models in this repo differ

Signal used Models Intuition
Structure only NAEA, BootEA, AliNet, GCN-Align aligned entities have similar neighbourhoods
Structure + relations KECG, MRAEA, RREA the type of edge matters, not just the neighbour
+ attributes JAPE shared attribute predicates bridge the two vocabularies
+ entity names DGMC word embeddings of the (translated) name are a very strong prior