Возможно ли автоматическое объединение онтологий, чтобы точные совпадения были объединены под одним предпочтительным термином? - PullRequest
1 голос
/ 17 июня 2020

Моя цель - объединить онтологии YSO, JUPO и JUHO (из семейства Finto-ontology: https://finto.fi/en/). Используя библиотеку RDFlib Python, я смог объединить различные файлы черепах и получить объединение онтологий, используя свойства объединения графов:

from rdflib import Graph

graph = Graph()

graph.parse(input1)
graph.parse(input2)

указанные здесь: https://rdflib.readthedocs.io/en/stable/merging.html .

Однако этого недостаточно, поскольку эти онтологии имеют перекрывающиеся термины (т.е. точные совпадения), которые затем представлены в объединенной онтологии в виде нескольких терминов. Например, термин «ветеринары» используется всеми тремя онтологиями (https://finto.fi/yso/en/page/p14110; https://finto.fi/juho/en/page/p9292; https://finto.fi/jupo/en/page/p2661), и после объединения онтологий это срок появится трижды.

Поскольку я использую полученную онтологию для предметной индексации (т. Е. Присваивая термины индекса из онтологии текстовым входам), точные совпадения вызывают проблемы, когда модель используется для прогнозирования. Например, слово «ветеринарный врач» будет предсказано три раза, поскольку оно имеет три разных URI в онтологии.

Итак, мой вопрос сводится к следующему: возможно ли - автоматически - объединить несколько онтологий так, чтобы точные совпадения смягчаются и используется какой-то предпочтительный термин? В случае «ветеринаров» использование YSO-онтологии в качестве предпочтительного термина и указание других связанных онтологий было бы идеальным решением.

Все идеи приветствуются!

Ура, JK

1 Ответ

1 голос
/ 20 июня 2020

Если объединяемые онтологии имеют свойства skos: exactMatch, вы должны иметь возможность объединить онтологии (объединить графики), а затем выбрать любой из объектов точного соответствия в каждом наборе совпадений и заменить все согласованные URI на один URI, затем удалите другие, которые вы заменили. Или сохраните ссылки с точным соответствием для всех терминов, но замените ссылки в данных, чтобы все использовали только один из терминов. точно совпадающие элементы должны быть полностью эквивалентными - точными на самом деле!

Те же рассуждения для owl: sameAs (Named Individuals) и owl: equalClass (классы в целом, а не skos: Concepts).

...