Моя цель — объединить онтологии YSO, JUPO и JUHO (из семейства финто-онтологий: https://finto.fi/en/). Используя библиотеку Python RDFlib, я смог объединить различные файлы черепах и получить объединение онтологий, используя свойства слияния графов:
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-онтологии в качестве предпочтительного термина и указание других онтологий как родственных было бы идеальным решением.
Приветствуются все идеи!
Ура, Дж.К.