Экземпляр класса 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>
Подробнее об ограничении вы можете узнать, например, из этого документа.