You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by "Burkert, Michael" <Mi...@gigatronik.com> on 2011/02/18 14:53:25 UTC
Prob between Jena and protege model
Hello !
Following TBox:
classInsect BaseClass
classBeatle SubClass
classPlant BaseClass
classTree SubClass
case 1:
ObjectProperty between SUBCLASSES: OPBeatleEatTree: domain=classBeatle
range=classTree
Now the different between Protege and jena (2.6.3):
In Protege I can only select individuals from subclasses classBeatle and
classTree.
In Jena (model SELECT 'ALL' ?sub ?praed ?obj) are
- two domains (classBeatle and Baseclass classInsect) and
- two ranges (classTree and Baseclass classPlant)
And vice versa:
case 2:
ObjectProperty between BASECLASSES: OPInsectEatPlant: domain=classInsect
range=classPlant
In Protege I can select individuals from all classes: classInsect,
classBeatle and classPlant, classTree.
In jena the domain and range are also for Baseclasses classInsect and
classPlant.
What is the problem ?
Can I solve it, or is that a bug in Framwork jena?
With best regards
Michael
Re: Prob between Jena and protege model
Posted by Dave Reynolds <da...@gmail.com>.
On Fri, 2011-02-18 at 14:53 +0100, Burkert, Michael wrote:
> Hello !
>
>
>
>
>
> Following TBox:
>
>
>
>
>
> classInsect BaseClass
>
> classBeatle SubClass
>
>
>
> classPlant BaseClass
>
> classTree SubClass
>
>
>
>
>
> case 1:
>
>
>
> ObjectProperty between SUBCLASSES: OPBeatleEatTree: domain=classBeatle
> range=classTree
>
>
>
> Now the different between Protege and jena (2.6.3):
>
>
>
> In Protege I can only select individuals from subclasses classBeatle and
> classTree.
>
> In Jena (model SELECT 'ALL' ?sub ?praed ?obj) are
>
> - two domains (classBeatle and Baseclass classInsect) and
>
> - two ranges (classTree and Baseclass classPlant)
I assume you have inference enabled which is why you are seeing inferred
statements.
This is part of the extensional semantics for RDFS which is included in
the OWL semantics: http://www.w3.org/TR/rdf-mt/#RDFSExtRules
Intuitively you can see that if something is the object of an
OPBeatleEatTree relationship then not only is it a Tree (the directly
declared range) but is also a Plant (the inferred range), because all
Trees are Plants.
> case 2:
>
>
>
> ObjectProperty between BASECLASSES: OPInsectEatPlant: domain=classInsect
> range=classPlant
>
>
>
>
>
> In Protege I can select individuals from all classes: classInsect,
> classBeatle and classPlant, classTree.
>
> In jena the domain and range are also for Baseclasses classInsect and
> classPlant.
Sure but the domain/range aren't the same thing as "can select". You can
query for all things which are of each type, for example:
SELECT ?x WHERE {?x rdf:type eg:classBeatle. }
> What is the problem ?
I think the problem is that you are confusing the user interface of
protege what's in the data. Protege is showing the most specific
domain/range statements but the inferred more general ones are still
true even if they are not helpful in user interface terms.
> Can I solve it, or is that a bug in Framwork jena?
I don't think there's anything to solve, certainly what you are seeing
isn't a bug.
Dave