{"id":18985029,"url":"https://github.com/dobraczka/sylloge","last_synced_at":"2025-04-19T20:26:27.657Z","repository":{"id":59892150,"uuid":"524958334","full_name":"dobraczka/sylloge","owner":"dobraczka","description":"🗃️ Small library to simplify collecting and loading of entity alignment benchmark datasets","archived":false,"fork":false,"pushed_at":"2024-06-14T18:22:23.000Z","size":288,"stargazers_count":7,"open_issues_count":7,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-10T20:51:01.809Z","etag":null,"topics":["datasets","entity-alignment","entity-resolution","knowledge-graph"],"latest_commit_sha":null,"homepage":"https://sylloge.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dobraczka.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-15T11:20:22.000Z","updated_at":"2025-01-01T02:00:13.000Z","dependencies_parsed_at":"2022-09-25T08:38:39.983Z","dependency_job_id":"115b724d-7582-4a7c-b6a1-7d0bd9935335","html_url":"https://github.com/dobraczka/sylloge","commit_stats":{"total_commits":12,"total_committers":2,"mean_commits":6.0,"dds":0.08333333333333337,"last_synced_commit":"131094faf31a283569dcf7909d0399cbc2b85f79"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dobraczka%2Fsylloge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dobraczka%2Fsylloge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dobraczka%2Fsylloge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dobraczka%2Fsylloge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dobraczka","download_url":"https://codeload.github.com/dobraczka/sylloge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249250812,"owners_count":21237961,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["datasets","entity-alignment","entity-resolution","knowledge-graph"],"created_at":"2024-11-08T16:24:08.899Z","updated_at":"2025-04-16T14:32:01.032Z","avatar_url":"https://github.com/dobraczka.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/dobraczka/sylloge/raw/main/docs/logo.png\" alt=\"sylloge logo\", width=200/\u003e\n\u003c/p\u003e\n\n\u003ch2 align=\"center\"\u003esylloge\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/dobraczka/sylloge/actions/workflows/main.yml\"\u003e\u003cimg alt=\"Actions Status\" src=\"https://github.com/dobraczka/sylloge/actions/workflows/main.yml/badge.svg?branch=main\"\u003e\u003c/a\u003e\n\u003ca href='https://sylloge.readthedocs.io/en/latest/?badge=latest'\u003e\u003cimg src='https://readthedocs.org/projects/sylloge/badge/?version=latest' alt='Documentation Status' /\u003e\u003c/a\u003e\n\u003ca href=\"https://pypi.org/project/sylloge\"/\u003e\u003cimg alt=\"Stable python versions\" src=\"https://img.shields.io/pypi/pyversions/sylloge\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/psf/black\"\u003e\u003cimg alt=\"Code style: black\" src=\"https://img.shields.io/badge/code%20style-black-000000.svg\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nThis simple library aims to collect entity-alignment benchmark datasets and make them easily available.\n\nUsage\n=====\nLoad benchmark datasets:\n```\n\u003e\u003e\u003e from sylloge import OpenEA\n\u003e\u003e\u003e ds = OpenEA()\n\u003e\u003e\u003e ds\nOpenEA(backend=pandas, graph_pair=D_W, size=15K, version=V1, rel_triples_left=38265, rel_triples_right=42746, attr_triples_left=52134, attr_triples_right=138246, ent_links=15000, folds=5)\n\u003e\u003e\u003e ds.rel_triples_right.head()\n                                       head                             relation                                    tail\n0   http://www.wikidata.org/entity/Q6176218   http://www.wikidata.org/entity/P27     http://www.wikidata.org/entity/Q145\n1   http://www.wikidata.org/entity/Q212675  http://www.wikidata.org/entity/P161  http://www.wikidata.org/entity/Q446064\n2   http://www.wikidata.org/entity/Q13512243  http://www.wikidata.org/entity/P840      http://www.wikidata.org/entity/Q84\n3   http://www.wikidata.org/entity/Q2268591   http://www.wikidata.org/entity/P31   http://www.wikidata.org/entity/Q11424\n4   http://www.wikidata.org/entity/Q11300470  http://www.wikidata.org/entity/P178  http://www.wikidata.org/entity/Q170420\n\u003e\u003e\u003e ds.attr_triples_left.head()\n                                  head                                          relation                                               tail\n0  http://dbpedia.org/resource/E534644                http://dbpedia.org/ontology/imdbId                                            0044475\n1  http://dbpedia.org/resource/E340590               http://dbpedia.org/ontology/runtime  6480.0^^\u003chttp://www.w3.org/2001/XMLSchema#double\u003e\n2  http://dbpedia.org/resource/E840454  http://dbpedia.org/ontology/activeYearsStartYear     1948^^\u003chttp://www.w3.org/2001/XMLSchema#gYear\u003e\n3  http://dbpedia.org/resource/E971710       http://purl.org/dc/elements/1.1/description                          English singer-songwriter\n4  http://dbpedia.org/resource/E022831       http://dbpedia.org/ontology/militaryCommand                     Commandant of the Marine Corps\n\nThe gold standard entity links are stored as [eche](https://github.com/dobraczka/eche) ClusterHelper, which provides convenient functionalities:\n\n\u003e\u003e\u003e ds.ent_links.clusters[0]\n{'http://www.wikidata.org/entity/Q21197', 'http://dbpedia.org/resource/E123186'}\n\u003e\u003e\u003e ('http://www.wikidata.org/entity/Q21197', 'http://dbpedia.org/resource/E123186') in ds.ent_links\nTrue\n\u003e\u003e\u003e ('http://dbpedia.org/resource/E123186', 'http://www.wikidata.org/entity/Q21197') in ds.ent_links\nTrue\n\u003e\u003e\u003e ds.ent_links.links('http://www.wikidata.org/entity/Q21197')\n'http://dbpedia.org/resource/E123186'\n\u003e\u003e\u003e ds.ent_links.all_pairs()\n\u003citertools.chain object at 0x7f92c6287c10\u003e\n```\n\nMost datasets are binary matching tasks, but for example the `MovieGraphBenchmark` provides a multi-source setting:\n\n```\n\u003e\u003e\u003e ds = MovieGraphBenchmark(graph_pair=\"multi\")\n\u003e\u003e\u003e ds\nMovieGraphBenchmark(backend=pandas,graph_pair=multi, rel_triples_0=17507, attr_triples_0=20800 rel_triples_1=27903, attr_triples_1=23761 rel_triples_2=15455, attr_triples_2=20902, ent_links=3598, folds=5)\n\u003e\u003e\u003e ds.dataset_names\n('imdb', 'tmdb', 'tvdb')\n```\n\nHere the [`PrefixedClusterHelper`](https://eche.readthedocs.io/en/latest/reference/eche/#eche.PrefixedClusterHelper) various convenience functions:\n\n```\nGet pairs between specific dataset pairs\n\n\u003e\u003e\u003e list(ds.ent_links.pairs_in_ds_tuple((\"imdb\",\"tmdb\")))[0]\n('https://www.scads.de/movieBenchmark/resource/IMDB/nm0641721', 'https://www.scads.de/movieBenchmark/resource/TMDB/person1236714')\n\nGet number of intra-dataset pairs\n\u003e\u003e\u003e ds.ent_links.number_of_intra_links\n(1, 64, 22663)\n```\n\nFor all datasets you can get a canonical name for a dataset instance to use e.g. to create folders to store experiment results:\n\n```\n\u003e\u003e\u003e ds.canonical_name\n'openea_d_w_15k_v1'\n```\n\nYou can use [dask](https://www.dask.org/) as backend for larger datasets:\n```\n\u003e\u003e\u003e ds = OpenEA(backend=\"dask\")\n\u003e\u003e\u003e ds\nOpenEA(backend=dask, graph_pair=D_W, size=15K, version=V1, rel_triples_left=38265, rel_triples_right=42746, attr_triples_left=52134, attr_triples_right=138246, ent_links=15000, folds=5)\n```\nWhich replaces pandas DataFrames with dask DataFrames.\n\nDatasets can be written/read as parquet via `to_parquet` or `read_parquet`.\nAfter the initial read datasets are cached using this format. The `cache_path` can be explicitly set and caching behaviour can be disable via `use_cache=False`, when initalizing a dataset.\n\nSome datasets come with pre-determined splits:\n\n```bash\ntree ~/.data/sylloge/open_ea/cached/D_W_15K_V1\n├── attr_triples_left_parquet\n├── attr_triples_right_parquet\n├── dataset_names.txt\n├── ent_links_parquet\n├── folds\n│   ├── 1\n│   │   ├── test_parquet\n│   │   ├── train_parquet\n│   │   └── val_parquet\n│   ├── 2\n│   │   ├── test_parquet\n│   │   ├── train_parquet\n│   │   └── val_parquet\n│   ├── 3\n│   │   ├── test_parquet\n│   │   ├── train_parquet\n│   │   └── val_parquet\n│   ├── 4\n│   │   ├── test_parquet\n│   │   ├── train_parquet\n│   │   └── val_parquet\n│   └── 5\n│       ├── test_parquet\n│       ├── train_parquet\n│       └── val_parquet\n├── rel_triples_left_parquet\n└── rel_triples_right_parquet\n```\nsome don't:\n```bash\ntree ~/.data/sylloge/oaei/cached/starwars_swg\n├── attr_triples_left_parquet\n│   └── part.0.parquet\n├── attr_triples_right_parquet\n│   └── part.0.parquet\n├── dataset_names.txt\n├── ent_links_parquet\n│   └── part.0.parquet\n├── rel_triples_left_parquet\n│   └── part.0.parquet\n└── rel_triples_right_parquet\n    └── part.0.parquet\n```\n\n\nInstallation\n============\n```bash\npip install sylloge\n```\n\nDatasets\n========\n| Dataset family name | Year | # of Datasets | Sources | References |\n|:--------------------|:----:|:-------------:|:-------:|:----------|\n| [OpenEA](https://sylloge.readthedocs.io/en/latest/source/datasets.html#sylloge.OpenEA) | 2020 | 16 | DBpedia, Yago, Wikidata |  [Paper](http://www.vldb.org/pvldb/vol13/p2326-sun.pdf), [Repo](https://github.com/nju-websoft/OpenEA#dataset-overview) |\n| [MED-BBK](https://sylloge.readthedocs.io/en/latest/source/datasets.html#sylloge.MED_BBK) | 2020 | 1 | Baidu Baike |  [Paper](https://aclanthology.org/2020.coling-industry.17.pdf), [Repo](https://github.com/ZihengZZH/industry-eval-EA/tree/main#benchmark) |\n| [MovieGraphBenchmark](https://sylloge.readthedocs.io/en/latest/source/datasets.html#sylloge.MovieGraphBenchmark) | 2022 | 3 | IMDB, TMDB, TheTVDB | [Paper](http://ceur-ws.org/Vol-2873/paper8.pdf), [Repo](https://github.com/ScaDS/MovieGraphBenchmark) |\n| [OAEI](https://sylloge.readthedocs.io/en/latest/source/datasets.html#sylloge.OAEI) | 2022 | 5 | Fandom wikis | [Paper](https://ceur-ws.org/Vol-3324/oaei22_paper0.pdf), [Website](http://oaei.ontologymatching.org/2022/knowledgegraph/index.html) |\n\nMore broad statistics are provided in `dataset_statistics.csv`. You can also get a pandas DataFrame with statistics for specific datasets for example to create tables for publications:\n```\n\u003e\u003e\u003e ds = MovieGraphBenchmark(graph_pair=\"multi\")\n\u003e\u003e\u003e from sylloge.create_statistic import create_statistics_df\n\u003e\u003e\u003e stats_df = create_statistics_df([ds])\n\u003e\u003e\u003e stats_df.loc[(\"MovieGraphBenchmark\",\"moviegraphbenchmark_multi\",\"imdb\")]\n                                                            Entities  Relation Triples  Attribute Triples  ...  Clusters  Intra-dataset Matches  All Matches\nDataset family      Task Name                 Dataset Name                                                 ...\nMovieGraphBenchmark moviegraphbenchmark_multi imdb              5129             17507              20800  ...      3598                      1        31230\n\n[1 rows x 9 columns]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdobraczka%2Fsylloge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdobraczka%2Fsylloge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdobraczka%2Fsylloge/lists"}