Property Restrictions can come in two different sorts. On the one had one has for example the way to define existential and Universal Quantifiers on Properties or Roles. Or one can also say that a Property must have a specific value Property. On the other hand one can also make Restrictions on the Cardinality of Properties. This can be done with the
owl:cardinality or one can put upper and lower limits to a Cardinality with
The Universal Quantifier fixes all Instances of a specific Class as allowed Range for a Property. For instance one can define Program and state that all Programs must have a Coder as Programmer. One can define this OWL by stating a Program is a
owl:Class and this is a subclass of where one defines a Restriction on a Property, so the Empty Node is of type
owl:Restriction and this Restriction is on the Property
hasDeveloper and all Values in the Range are Restricted to this Class called Coder.
allValueFrom is the universal Quantification in OWL.
owl:AllValuesFromfixes all instances of a specific class c as allowed range for a property P → *Universal Quantification) ∀P.C
Program ⊑ ∀hasCoder.Programmer :Program a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty :hasCoder ; owl:AllValuesForm :Programmer :Developer a owl:Class . :Programmer a owl:Class . :Program a owl:Class . :hasCoder a owl:ObjectProperty ; rdfs:domain :Program ; rdfs:range :Programmer .
In Existential Quantification one defines a Class, where one has a Restriction on a Property, and there must exist an Individual for that Property which belongs to a given Class. So the Class Range or Property Range is fixed here.
For example one can define someone as a Artist as somebody who does Arts, besides other things.
Artist ⊑ ∃does.Arts
In OWL one defines an Artist as an
owl:Class and says this is the Subclass of an Restriction and the Restriction is on the Property
does and then one has the word from the OWL Vocabulary
someValuesFrom which is the Existential Quantification. Therefore of course one has the Existential Quantification, i.e. the Existential Restriction on the Property
does and it says that there must exist an Individual that belongs to the Class
Arts, besides other Individuals that each Artist might also do.
:Artist a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty :does ; owl:someValuesFrom :Arts ] .
fixes all Instances of a specific Class c as allowed Range for Property p → (Universal Quantification) ∀P.C
describe that there must exist an Individual for Property P and fixes its Range C → (existential Quantification) ∃P.C
Program ⊑ ∀hasProgrammer.Coder :Program a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty :hasDevolper ; owl:someValueFrom Coder: ] . :Developer a owl:Class . :Program a owl:Class . :Coder owl:subClassOf :Developer . :hasProgrammer a owl:ObjectProperty ; rdfs:domain :Program ; rdfs:range :Developer .