Моя цель - объединить онтологии 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