Экземпляр класса OWL с unionOf (n3)

Предположим, у меня есть OWL-класс следующим образом:

:picture    rdf:type owl:Class ;
            owl:unionOf(:creator :theme :title :date) .

С :creator, :theme, :title а также :date либо owl:ObjectProperty или же owl:DataProperty,

Например:

:creator    rdf:type owl:ObjectProperty ;
            rdfs:comment "The creator of this picture." ;
            rdfs:domain :picture ;
            rdfs:range foaf:Person .

Как я могу создать экземпляр этого класса изображения?

(Я понимаю, как создать экземпляр простой вещи, такой как: <http://dbpedia.org/resource/Paris> rdf:type :location . будет экземпляр местоположения)

1 ответ

Если вы хотите описать класс, который может содержать свойства :creator, :theme, :title, а также :date Вы должны просто описать домен для всех свойств (никаких дополнительных определений в классе изображения не требуется):

:picture a owl:Class .

:creator rdfs:domain :picture ;
         rdfs:range foaf:Person .

И так далее.

Если вы хотите описать класс, который должен содержать эти свойства, следует добавить ограничения количества элементов:

:picture a owl:Class ;
         rdfs:subClassOf [
             a owl:Restriction ;
             owl:onProperty creator ;
             owl:minCardinality "1"^^<http://www.w3.org/2001/XMLSchema#int>
         ]
         rdfs:subClassOf [
             a owl:Restriction ;
             owl:onProperty theme ;
             owl:cardinality "1"^^<http://www.w3.org/2001/XMLSchema#int>
         ]
         ... etc ...

В обоих случаях определение экземпляра выглядит следующим образом:

:monaLisa a :picture ;
          :creator :LeonardoDaVinci ;
          ...
          :date "1503-01-01"^^<http://www.w3.org/2001/XMLSchema#date>

Подробнее об ограничении вы можете узнать, например, из этого документа.

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