- From: Franconi Enrico <franconi@inf.unibz.it>
- Date: Fri, 15 Oct 2021 14:37:26 +0000
- To: Mikael Pesonen <mikael.pesonen@lingsoft.fi>
- CC: "semantic-web@w3.org" <semantic-web@w3.org>
This is because Lamprocles is not necessarily a Child. You need to state that anybody with an age between 0 and 17 is a Child, for example by stating that Child is equivalent (rather that just a subclass) to minors. --e. > On 15 Oct 2021, at 16:13, Mikael Pesonen <mikael.pesonen@lingsoft.fi> wrote: > > Hi, > > I have following definitions (Manchester syntax) > > # TBox -------------------------------------------------------------------- > > Class: :Child > DisjointUnionOf: :Boy, :Girl > SubClassOf: :hasAge only xsd:nonNegativeInteger[>=0, <=17] > > Class: :Male > Class: :Female > > Class: :Person > DisjointUnionOf: :Male, :Female > > Class: :Boy > EquivalentTo: :Child AND :Male > Class: :Girl > EquivalentTo: :Child AND :Female > > DataProperty: :hasAge > Domain: owl:Thing > Range: xsd:nonNegativeInteger > Characteristics: Functional > > #ABox -------------------------------------------------------------------- > > Individual: :Lamprocles > Types: :Male > Facts: :hasAge "14"^^xsd:nonNegativeInteger > > > I am trying to infer following > > Individual: :Lamprocles > Types: :Boy > > Should that be possible, or is there some error in my thinking? Robot reasoner tool doesn't give explanation to this with any of the supported reasoners (HermiT, ELK...). > > Other basic stuff works, such as > Individual: :Lamprocles > Types: :Person > > >
Received on Friday, 15 October 2021 14:37:40 UTC