Экспортируйте выведенную аксиому в Протеже

Я изучаю онтологии и инструмент Protege. Я создал базовую онтологию из 3 классов A, B и C.

Я использую свойство Equivalence, чтобы утверждать, что класс A эквивалентен классу B. Класс B эквивалентен классу C. Затем я использую рассуждение (Пеллет), чтобы определить, что класс A эквивалентен классу C.

Эти переходные отношения прекрасно работают в Protege. Я вижу желтым, что класс A эквивалентен классу C и наоборот.

Я хочу экспортировать эту выведенную аксиому из инструмента Protege. Я захожу в "Файл -> Экспортировать предполагаемые аксиомы как онтологию" и выбираю все параметры на первом экране, но не выбираю никаких параметров на втором экране. Наконец, я сохраняю файл как OWL в синтаксисе RDF/XML.

Теперь, когда я открываю этот новый файл, я не вижу никакой тройки, связанной с выведенной аксиомой, то есть класс A эквивалентен классу C. Фактически, это та же самая онтология, что и моя исходная онтология.

Я не знаю, что мне не хватает. Я также попытался импортировать экспортированный файл в мою исходную онтологию через "вкладку активной онтологии" Protege, а затем выполнил "Файл -> Экспортировать предполагаемые аксиомы как онтологию", но все же выходной файл не содержит предполагаемой тройки. При загрузке в Protege и с помощью функцииусловия вывод работает, но я хочу, чтобы Protege экспортировал этот вывод в файл OWL.

Является ли это возможным? Я потратил много часов на это и смотрел в Интернете, но не нашел никакого решения. Я пропускаю шаг?

Кстати, я использовал последнюю версию Protege 5.2, а также пробовал версию 4.3, чтобы увидеть, есть ли ошибка, но результат был тот же.

Спасибо

Вот онтология, которую я использую.


///////////////////////////////////////////////////////////////////////////////////////
//
// Classes
//
///////////////////////////////////////////////////////////////////////////////////////





<!-- http://www.semanticweb.org/sesa388470/ontologies/2017/9/23/untitled-ontology-110#A -->

<owl:Class rdf:about="http://www.semanticweb.org/sesa388470/ontologies/2017/9/23/untitled-ontology-110#A">
    <owl:equivalentClass rdf:resource="http://www.semanticweb.org/sesa388470/ontologies/2017/9/23/untitled-ontology-110#B"/>
</owl:Class>

<!-- http://www.semanticweb.org/sesa388470/ontologies/2017/9/23/untitled-ontology-110#B -->

<owl:Class rdf:about="http://www.semanticweb.org/sesa388470/ontologies/2017/9/23/untitled-ontology-110#B">
    <owl:equivalentClass rdf:resource="http://www.semanticweb.org/sesa388470/ontologies/2017/9/23/untitled-ontology-110#C"/>
</owl:Class>

<!-- http://www.semanticweb.org/sesa388470/ontologies/2017/9/23/untitled-ontology-110#C -->

<owl:Class rdf:about="http://www.semanticweb.org/sesa388470/ontologies/2017/9/23/untitled-ontology-110#C"/>


ОБНОВЛЕНИЕ 1: Если я выберу OWL/XML в качестве формата онтологии на последнем шаге "Файл -> Экспортировать предполагаемые аксиомы как онтологию", я могу увидеть следующее в результирующем файле онтологии.

<Declaration>
    <Class IRI="#A"/>
</Declaration>
<Declaration>
    <Class IRI="#C"/>
</Declaration>
<Declaration>
    <Class IRI="#B"/>
</Declaration>
<EquivalentClasses>
    <Class IRI="#A"/>
    <Class IRI="#B"/>
    <Class IRI="#C"/>
</EquivalentClasses>

Ранее я экспортировал онтологию в формате RDF/XML. По крайней мере, я вижу, что A, B и C являются эквивалентными классами. Может быть, это проблема RDF против OWL?

ОБНОВЛЕНИЕ 2: Я получил следующий ответ в списке разработчиков Protege. Кажется, что выведенные аксиомы не сохраняются в формате RDF/XML.

" Синтаксис OWL RDF/XML не поддерживает n-арные конструкторы, такие как эквивалентные классы, потому что все должно быть представлено триплетами (из-за RDF). В вашем примере выведенная аксиома EquivalentClasses(A B C) сериализуется в RDF [1] (см. Таблицу 1) чтобы

Сова: эквивалентный класс B.

B сова: эквивалент класса C.

Другие форматы, такие как OWL/XML или OWL Синтаксис функционального стиля, поддерживают n-арные аксиомы. Это в соответствии с тем, что вы наблюдаете.

Кроме того, обратите внимание на то, что в соответствующем примечании учтите, что генератор предполагаемых аксиом не сохраняет все выведенные аксиомы, которые были созданы мыслителем. Например, если ваша онтология имеет аксиомы A subClassOf B и B subClassOf C, то выведенная аксиома A subClassOf C не будет сохранена, как это следует из других (предполагаемых) аксиом A subClassOf B и B subClassOf C. Только не избыточные выведенные аксиомы (которые не вытекают из других предполагаемых аксиом), сохраняются. Это потому, что может быть слишком много предполагаемых аксиом ".

[1] https://www.w3.org/TR/owl2-mapping-to-rdf/

1 ответ

Я понимаю что ты имеешь в виду. Вы ожидаете увидеть эквивалентную аксиому класса между A и C в экспортированной онтологии, верно?

Я могу воспроизвести это. Похоже, что редактор Protege предполагает, что это уже утвержденная аксиома. По крайней мере, когда я снова открываю онтологию, редактор отображает ее как таковую в дереве иерархии классов:

Входная онтология:

@prefix : <http://www.semanticweb.org/user/ontologies/2017/9/untitled-ontology-3#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <http://www.semanticweb.org/user/ontologies/2017/9/untitled-ontology-3> .

<http://www.semanticweb.org/user/ontologies/2017/9/untitled-ontology-3> rdf:type owl:Ontology .

#################################################################
#    Classes
#################################################################

###  http://www.semanticweb.org/user/ontologies/2017/9/untitled-ontology-3#A
:A rdf:type owl:Class ;
   owl:equivalentClass :B .


###  http://www.semanticweb.org/user/ontologies/2017/9/untitled-ontology-3#B
:B rdf:type owl:Class ;
   owl:equivalentClass :C .


###  http://www.semanticweb.org/user/ontologies/2017/9/untitled-ontology-3#C
:C rdf:type owl:Class .


###  Generated by the OWL API (version 4.2.8.20170104-2310) https://github.com/owlcs/owlapi

После экспорта выведенных аксиом и повторного открытия в Protege:

Это может быть либо ошибка, либо ожидаемое поведение. Сначала вы должны спросить в списке рассылки Protege.

Другие вопросы по тегам