I have created an ontology in protege. I am using the Pellet reasoner (it is enabled) and the snap sparql plugin.
I am trying to declare a small enterprise as an enterprise that has at most 20 employees.
Here are my triples. I am not able to see the inference that cs:SmithBrothers is a cs:SmallEnterprise (by the way of SPARQL query). Can someone please help me? I have been at this literally all day.
# employs
cs:employs a owl:ObjectProperty ;
rdfs:range cs:employee ;
rdfs:domain cs:enterprise .
# is-employed-by (the inverse of employs)
cs:isEmployedBy a owl:ObjectProperty ;
owl:inverseOf cs:employs .
# j. A small enterprise is an enterprise which employs at most 20 employees.
cs:smallEnterprise a owl:class ;
owl:equivalentClass [
owl:intersectionOf (
[ a owl:Restriction ;
owl:onProperty cs:employs ;
owl:maxCardinality 20 ]
cs:enterprise
)] .
# x. SmithBrothers is a family-based enterprise.
cs:SmithBrothers a cs:enterprise .
# y. Frank, Lea, Dave, Kate, Dino are employed by SmithBrothers.
cs:Frank cs:isEmployedBy cs:SmithBrothers .
cs:Lea cs:isEmployedBy cs:SmithBrothers .
cs:Dave cs:isEmployedBy cs:SmithBrothers .
cs:Kate cs:isEmployedBy cs:SmithBrothers .
cs:Dino cs:isEmployedBy cs:SmithBrothers .
#########################################
Thanks in advance.