Ontology matching for classes in YAGO and DBpedia ontologies
We tried to find owl:equivalentClass relations between DBpedia ontology classes and YAGO classes in DBpedia 3.6. This is our quick and dirty algorithm (we did not get into ontology matching theory or tools):
- for all DBpedia things U
- for all classes X of U add all classes Y where X rdfs:subClassOf Y (direct and transitive)
- for all DBpedia classes C1
- get the set of DBpedia things T1 that are in C1 and at least in another yago class
- for all yago classes C2 with an instance in T1
- if more than 50% of T1 are in C2
- get the set of DBpedia things T2 that are in C2 and at least in another DBpedia class
- if more than 50% of T2 are in C1, add (C1,C2,pct) to the matches where pct is the percentage of C2 in T1 + that of C1 in T2
- if more than 50% of T1 are in C2
- reduce all matches for C1 to that C2 with the highest pct value
It generates results for 149 of 249 DBpedia classes (obvious errors are marked with the value "nack" in the column "status"):
dbpedia_yago_matching_part1.csv
We ran our algorithm again with treshold 10% instead of 50% for the missing 100 classes. As you can see, the result contains more obvious errors:
dbpedia_yago_matching_part2.csv
Then we tried to find YAGO classes by hand for the obvious error cases - which succeeded in 21 cases. Here is our corrected mapping for 169 DBpedia classes as we use it now in our faceted full text search of Wikipedia:
dbpedia_yago_matching.csv (CSV)
dbpedia_yago_matching.rdf (RDF)
If you use this to produce a better mapping please send a copy to brunni@netestate.de.
