2014-09-25 2 views
1

Я пытаюсь создать пересечение с Protege.Как я могу заполнить класс, который определяется как пересечение двух других классов?

Я создал два класса, A и B. Класс A содержит два человека, Джон и Мэри. В класс B также входят два человека, Джейн и Мэри. Я затем создал класс AB, который я определен как пересечение А и В.

enter image description here

Поскольку отдельные Мери является частью класса А и класса B, я ожидал, что это будет добавлен в класс AB. Но когда я побежал рассудителем (Отшельник), ничего не случилось. Что я здесь делаю неправильно?

+0

«Но когда я побежал рассудителем (Отшельник), ничего не случилось». Что вы имеете в виду? Если вы перейдете на вкладку «Индивидуалы» и выберите «Мэри», вы не увидите класс AB как один из его типов? Если вы перейдете на вкладку «Запрос DL» и введите AB (и установите флажок индивидуумов), вы не видите, что Мэри указан? Что означает «ничего не происходит»? Чего вы ожидали? Вы не дали нам достаточно, чтобы помочь диагностировать проблему или даже знать, в чем проблема. –

+0

Я имею в виду, что класс AB не содержит людей. Я ожидал, что отдельная Мэри будет добавлена ​​к классу AB разумным. Я не знаю, как сделать это яснее. – kormak

+0

«Я ожидал, что отдельная Мэри будет добавлена ​​к классу AB разумным». Ну, это может означать разные вещи. Как вы * проверяете * «добавляется ли отдельная Мария в класс AB»? Поскольку Protégé показывает результаты рассуждений по-разному, поэтому, даже если рассудитель делает вывод о том, что Мэри является AB, этот результат может не отображаться повсюду. Например, на скриншоте, который вы опубликовали, я не вижу нигде, что я ожидаю появления «Мэри». (Возможно, если вы прокрутите страницу вниз на панели «Описание: AB», может быть список лиц?) –

ответ

-2
<?xml version="1.0"?> 


<!DOCTYPE rdf:RDF [ 
    <!ENTITY owl "http://www.w3.org/2002/07/owl#" > 
    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" > 
    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" > 
    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" > 
]> 


<rdf:RDF xmlns="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-6#" 
    xml:base="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-6" 
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
    xmlns:owl="http://www.w3.org/2002/07/owl#" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#" 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 
    <owl:Ontology rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-6"/> 



    <!-- 
    /////////////////////////////////////////////////////////////////////////////////////// 
    // 
    // Classes 
    // 
    /////////////////////////////////////////////////////////////////////////////////////// 
    --> 




    <!-- http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-6#A --> 

    <owl:Class rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-6#A"> 
     <rdfs:subClassOf rdf:resource="&owl;Thing"/> 
    </owl:Class> 



    <!-- http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-6#AB --> 

    <owl:Class rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-6#AB"> 
     <owl:equivalentClass> 
      <owl:Class> 
       <owl:intersectionOf rdf:parseType="Collection"> 
        <rdf:Description rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-6#A"/> 
        <rdf:Description rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-6#B"/> 
       </owl:intersectionOf> 
      </owl:Class> 
     </owl:equivalentClass> 
    </owl:Class> 



    <!-- http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-6#B --> 

    <owl:Class rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-6#B"> 
     <rdfs:subClassOf rdf:resource="&owl;Thing"/> 
    </owl:Class> 



    <!-- 
    /////////////////////////////////////////////////////////////////////////////////////// 
    // 
    // Individuals 
    // 
    /////////////////////////////////////////////////////////////////////////////////////// 
    --> 




    <!-- http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-6#Mary --> 

    <owl:NamedIndividual rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-6#Mary"> 
     <rdf:type rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-6#A"/> 
     <rdf:type rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-6#B"/> 
    </owl:NamedIndividual> 
</rdf:RDF> 



<!-- Generated by the OWL API (version 3.5.0) http://owlapi.sourceforge.net --> 
+2

Это ответ? Если да, пожалуйста, не просто код сбрасывания. Пожалуйста, добавьте объяснение. –

+0

У вас есть значительное количество комментариев/пробелов в фрагменте кода. Вы должны попытаться минимизировать комментарии кодов и разрывы строк, чтобы он занимал меньше места, но не уменьшался до такой степени, что он не читается. Также рекомендуется разъяснять код, а не только код. Оригинальный плакат может не понимать, как работает ваш код. – davidcondrey

+0

Мэри должна быть экземпляром A. Мэри должна быть экземпляром B. Добавьте оба класса в «Типы» (вкладка «Объекты») или просто ctrl + c и ctrl + v мой код и найдите разницу –

0

Я пробовал ваш пример, и вы не делаете ничего плохого. Когда я выбираю Мэри, это говорит о том, что это от типа АВ. Вывод не отображается при просмотре класса, но при выборе индивидуума. Возможно, именно поэтому вы запутались. Смотрите мой скриншот для деталей: enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^