Можно ли автоматически объединять онтологии, чтобы точные совпадения объединялись в один предпочтительный термин?

Моя цель — объединить онтологии 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-онтологии в качестве предпочтительного термина и указание других онтологий как родственных было бы идеальным решением.

Приветствуются все идеи!

Ура, Дж.К.


person Juho Kerppola    schedule 17.06.2020    source источник


Ответы (1)


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

Если вы не можете сделать это концептуально, это означает, что skos:exactMatch был использован неправильно, так как элементы с точным соответствием должны быть абсолютно эквивалентны — фактически точны!

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

person Nicholas Car    schedule 20.06.2020