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:

enter image description here

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.

enter image description 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:

enter image description here

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

Popular posts from this blog

c# - How to get the current UAC mode -

postgresql - Lazarus + Postgres: incomplete startup packet -

javascript - Ajax jqXHR.status==0 fix error -