2012-10-28 13 views
7

Attualmente sto giocando un po 'con OWL e soprattutto con restrizioni. Sto cercando di creare una query che faccia quanto segue:Restrizioni OWL: definizione di classi che contengono solo proprietà con un valore di proprietà specifico

Supponiamo di avere una classe 'Cinema' che ha una proprietà 'film' (che contiene oggetti di tipo 'Film'). La classe 'Movie' contiene una proprietà denominata 'genere'. Ora voglio creare una classe ActionCinema che abbia solo film con il genere 'action'.

Non sono davvero sicuro di come farlo. Stavo pensando di fare qualcosa con intersezioni o cardinalità, ma non ne sono sicuro.

Qualcuno potrebbe darmi una mano in questo?

risposta

9

È bisogno di una combinazione di una restrizione allValuesFrom e una restrizione hasValue, ad esempio in questo modo:

sintassi della tartaruga:

my:ActionCinema a owl:Class ; 
     rdfs:subClassOf my:Cinema, 
         [ a owl:Restriction; 
         owl:onProperty my:hasMovie ; 
         owl:allValuesFrom [ a owl:Restriction ; 
              owl:onProperty my:hasGenre ; 
              owl:hasValue my:Action ] 
         ] . 

Manchester OWL sintassi:

Class: ActionCinema 
    SubClassOf: Cinema that hasMovie only (hasGenre value Action) 
+0

Perché usate insieme ('that') invece una virgola tra' Cinema' e 'hasMovie' nella sintassi OWL di Manchester? – whirlwin

+0

@whirlwin Entrambi dicono sostanzialmente la stessa cosa, quindi è una questione di gusti, penso solo che il primo (usando 'quello') è più chiaro e conciso. –

Problemi correlati