Amleth
Amleth

Reputation: 1

How to constraint OWL ObjectProperty values with SKOS Concepts from a specific ConceptScheme?

I need to express the fact that the allowed values of an ObjectProperty in my ontology are "controlled" by Concepts from a specific SKOS ConceptScheme.

EDIT:

Here is an example:

ex:colours rdf:type skos:ConceptScheme ;
  skos:hasTopConcept ex:teal ;
  skos:hasTopConcept ex:green .

ex:teal rdf:type skos:Concept ;
  skos:inScheme ex:colours ;
  skos:topConceptOf ex:colours .

ex:green rdf:type skos:Concept ;
  skos:inScheme ex:colours ;
  skos:topConceptOf ex:colours .

ex:P_has_colour rdf:type owl:ObjectProperty ;
  rdfs:domain ex:ColoredStuff ;
  rdfs:range ??? .

I want to express the fact that the values of the ex:P_has_colour ObjectProperty must be a Concept from the ex:colours SKOS ConceptScheme. I think I can add a type to each and every SKOS Concept which denotes a colour (something like ex:teal rdf:type ex:ColourConcept ;), and set the range of my property: ex:P_has_colour rdfs:range ex:ColourConcept. Is this the right way to go?

Upvotes: 0

Views: 310

Answers (1)

Amleth
Amleth

Reputation: 1

Translated from Manchester syntax to turtle, this seems to be the answer:

ex:colours rdf:type skos:ConceptScheme ;
  skos:hasTopConcept ex:teal ;
  skos:hasTopConcept ex:green .

ex:teal rdf:type skos:Concept ;
  skos:inScheme ex:colours ;
  skos:topConceptOf ex:colours .

ex:green rdf:type skos:Concept ;
  skos:inScheme ex:colours ;
  skos:topConceptOf ex:colours .

ex:P_has_colour rdf:type owl:ObjectProperty ;
  rdfs:domain ex:ColoredStuff ;
  rdfs:range [ owl:intersectionOf ( :ConceptScheme
                                  [ rdf:type owl:Restriction ;
                                    owl:onProperty :inScheme ;
                                    owl:hasValue :colours
                                  ]
                                ) ;
             rdf:type owl:Class
           ] .

Upvotes: 0

Related Questions