type inference - OWL Intersection on class level -
i have class hierarchy this:
thing - classa -classc -classd - classb -classc -classe
class c subclass of both, classa , classb while classd , classe subclasses of either classa or classb
now specify class equivalent intersection of subclasses of classa , classb. following doesn't work:
namedclass owl:class namedclass owl:equivalentclass (classa , classb)
the reason sort of rule used reasoner classify individuals, i.e. had individual ind1 of type classa , classb, classified of type namedclass. not (only) want. want classc subclass of namedclass.
i know achievable using rules (e.g. spin) can done without rules?
let's start initial hierarchy, including f, before we've declared f equivalent intersection of , b:
then add (a , b) class equivalent f. protégé smart enough render things equivalent or subclasses of intersections under each of intersected classes, see f appear in 2 places here.
a reasoner can confirm relation, too. here i've turned on pellet, entered f dl query, , asked subclasses. sure enough, c subclass of f:
here's ontology can copy , paste:
@prefix : <http://stackoverflow.com/q/22221549/1281433/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix xsd: <http://www.w3.org/2001/xmlschema#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . :ontology owl:ontology . :a owl:class . :b owl:class . :c owl:class ; rdfs:subclassof :a , :b . :d owl:class ; rdfs:subclassof :a . :e owl:class ; rdfs:subclassof :b . :f owl:class ; owl:equivalentclass [ owl:class ; owl:intersectionof ( :a :b ) ] .
Comments
Post a Comment