Re: OWL reasoning with numbers

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