2012-05-16 9 views
2

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

: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 . будет экземпляром местоположения)

+2

Вы не можете, потому что ваше определение класса недействительно OWL. Вы не можете использовать ограничение 'owl: unionOf' со списком свойств (значения могут быть только описаниями классов). Можете ли вы описать, что вы пытаетесь моделировать, точно? –

ответ

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> 

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