Как использовать все xs со значением v для свойства p в качестве диапазона свойств объекта?

У меня есть класс Person. Существует свойство типа данных Profession, значением которого для Person является {"Composer","Singer","Conductor"}. У меня есть другой класс, который называется Piece, и свойство объекта composedBy. Я хочу, чтобы в диапазон composedBy входили все Люди, чья профессия – "Композитор"? Как я могу сделать это в OWL, и как я могу выразить эту OWL с помощью Protégé?


person MrRisoni    schedule 04.01.2014    source источник
comment
Вы добились каких-либо успехов в этом? Я добавил ответ, в котором более подробно рассказывается о том, как вы представляете эти аксиомы и как это будет выглядеть в Protégé.   -  person Joshua Taylor    schedule 06.01.2014


Ответы (2)


Ваше первое описание несложно выразить в виде аксиомы глубокого обучения (хотя я буду использовать имя hasProfession, чтобы оно лучше соответствовало другому имени свойства, composedBy). .

Существует свойство типа данных «Профессия», значением которого для «Человека» являются {«Композитор», «Певец», «Дирижер»}.

Только профессия {"Композитор", "Певец", "Дирижер"}

введите здесь описание изображения

Второй тоже не сложный:

У меня есть еще один класс, который называется Piece, и свойство объекта, состоящее из компонентов. Я хочу, чтобы диапазон составныхBy был всеми людьми, чья профессия "Композитор"?

Теперь вам нужно быть более ясным здесь. Вы можете иметь в виду, что диапазон для composedBy — это "все лица, чья профессия "Композитор"", т. е. все, являющееся значением оператор composedBy — это Peron, чья профессия — «Композитор». Однако вы упомянули другой класс, Piece, поэтому я думаю, что вы спрашиваете, как сказать, что если Piece composedBy что-то, то это что-то является Person, чье профессия "Композитор". Вот такая аксиома:

Произведение составлено By.(Человек имеет значение профессии "Композитор")

введите здесь описание изображения

Если вы хотите скопировать и вставить онтологию, вот она:

<rdf:RDF
    xmlns="http://stackoverflow.com/q/20920232/1281433/composers#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
  <owl:Ontology rdf:about="http://stackoverflow.com/q/20920232/1281433/composers"/>
  <owl:Class rdf:about="http://stackoverflow.com/q/20920232/1281433/composers#Piece">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:about="http://stackoverflow.com/q/20920232/1281433/composers#composedBy"/>
        </owl:onProperty>
        <owl:allValuesFrom>
          <owl:Class>
            <owl:intersectionOf rdf:parseType="Collection">
              <owl:Class rdf:about="http://stackoverflow.com/q/20920232/1281433/composers#Person"/>
              <owl:Restriction>
                <owl:onProperty>
                  <owl:DatatypeProperty rdf:about="http://stackoverflow.com/q/20920232/1281433/composers#hasProfession"/>
                </owl:onProperty>
                <owl:hasValue>Composer</owl:hasValue>
              </owl:Restriction>
            </owl:intersectionOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:about="http://stackoverflow.com/q/20920232/1281433/composers#Person">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://stackoverflow.com/q/20920232/1281433/composers#hasProfession"/>
        <owl:allValuesFrom>
          <rdfs:Datatype>
            <owl:oneOf>
              <rdf:List>
                <rdf:first>Composer</rdf:first>
                <rdf:rest>
                  <rdf:List>
                    <rdf:first>Conductor</rdf:first>
                    <rdf:rest>
                      <rdf:List>
                        <rdf:first>Singer</rdf:first>
                        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
                      </rdf:List>
                    </rdf:rest>
                  </rdf:List>
                </rdf:rest>
              </rdf:List>
            </owl:oneOf>
          </rdfs:Datatype>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
</rdf:RDF>
person Joshua Taylor    schedule 06.01.2014

Определите диапазон для composedBy равным Person and some Profession {Composer} Диапазон говорит о том, что значением ComposedBy будет Person, и у него будет свойство Profession с возможными значениями только Composer — это ограничение HasValue.

person Ignazio    schedule 04.01.2014