Я только что начал использовать OWL API, чтобы создать несколько примеров, которые используют другие онтологии. Ситуация такова: у меня две онтологии A и B, которые имеют много элементов и импортируют из других онтологий. Эти две онтологии являются частью стандарта, поэтому они тесно связаны между собой. Мне нужно создать пример элемента стандарта, который включает импорт этих двух онтологий и использование и объединение классов и элементов из обоих, но я не знаю, как начать. Я пробовал использовать API, но единственное, что я достиг, это загрузить одну из онтологий, взять некоторые классы и свойства и объединить их в новую онтологию. Я также не знаю, как определить импорт имён и импорт онтологий. Кроме того, я не знаю, как определить некоторые ярлыки для использования коротких пространств имен вместо больших. Как я могу это сделать?Создание онтологии OWL, которая импортирует другие онтологии с OWL-API
ответ
Я не знаю, как вы построили свои онтологии, но я предлагаю вам добавить пространство имен для импортированных онтологий.
Вы можете сделать это в Protege, генерируя отображение префикса во вкладке «Онтология префиксы» на дне «Активного Tab Онтология» или вручную в текстовом редакторе по вашему выбору, добавив следующую строку:
<Prefix name="your_desired_prefix" IRI="http://www.your.ontology/abc/xyz#"/>
Как только вы это сделаете, вы сможете овладеть классами или людьми из разных онтологий, используя пространство имен, которое вы определили. В Java с помощью OWLAPI это будет выглядеть примерно так:
OWLClass yourClass = factory.getOWLClass("your_desired_prefix:Classname", pm);
Я надеюсь, что это то, что вы искали.
Вы можете добавить префикс, используя PrefixOWLOntologyFormat
PrefixOWLOntologyFormat pf = (PrefixOWLOntologyFormat) manager.getOntologyFormat(ontology);
pf.setPrefix("aprefix" , "http://someurl/a.owl");
спасибо @sysoutkoula, это сработало для меня! – Fabi
Пожалуйста, покажите код, который вы пробовали, так что любой совет может быть конкретными. В онтологии люди обычно не говорят о «элементах» - что вы имеете в виду? –
Вы спрашиваете о создании единственной новой онтологии, содержание которой является аксиомами от других (но может и не иметь никаких «сова: импорт») или новой онтологией, которая «owl: import» A и «owl: import» B? –
Я спрашиваю о первом :) Я хочу определить некоторые пространства имен, чтобы использовать аксиомы для других онтологий! – user2083783