[Pellet-users] datatype reasoning (see also: Re: someValuesFrom inference problem)
Evren Sirin
evren at clarkparsia.com
Wed Jul 8 01:51:21 UTC 2009
There problem seems to be related to the syntax of named datatype
definitions. OWL 2 spec now requires defining named datatypes using
owl:equivalentClass triples and everywhere else you need to use a
bnode for user-defined datatypes. Loader does not display a warning
but does not process the definition of :atLeast18 either. The
following test clearly shows the problem and explains the result you
are getting:
pellet-2.0.0-rc7$ pellet realize -l jena ~/downloads/adult.ttl
owl:Thing
names:Child = names:Person - (names:john, names:kate, 2 Anonymous
Individuals)
names:Adult = owl:Nothing
If you replace :atLeast18 with a bnode like _:atLeast18 you should get
the expected inferences. We are tracking the named datatype issue in
[1].
Cheers,
Evern
[1] https://node8.cvsdude.com/trac/clark-parsia/pellet-devel/ticket/253
On Fri, Jul 3, 2009 at 2:02 PM, Wolfgang
May<may at informatik.uni-goettingen.de> wrote:
> Subject :
> ----- Message Text -----
> Hi,
>
> in the "someValuesFrom inference problem" thread, turned-off datatype
> reasoning was discussed. As far as I see, there are also other situations
> where it is turned off: not only for data enumerations, also for datatype
> restrictions in general.
>
> On Tue, 30 Jun 2009, Evren Sirin wrote:
>
>> Yes, it turns out the incorrect result is due to a bug. However, the
>> problem is not related to the equivalence of someValuesFrom to
>> minCardinality 1 (which is obviously true) but has something to do
>> with how datatype reasoning in Pellet works. Pellet disables some bits
>> of datatype reasoning (to improve performance) based on the
>> expressivity of the input ontology. Full datatype reasoning is turned
>> on when datatype properties are used in qualified cardinality
>> restrictions. But that does not happen when data enumerations exist in
>> the ontology which causes the incorrect result with this ontology. The
>> following ticket has been created for this issue [1].
>>
>> Cheers,
>> Evren
>>
>> [1] https://node8.cvsdude.com/trac/clark-parsia/pellet-devel/ticket/303
>
> *** adult.n3 (I hope that the syntax is correct, at least it does not
> *** complain)
> @prefix owl: <http://www.w3.org/2002/07/owl#>.
> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
> @prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
> @prefix : <foo://bla/names#> .
> :kate :name "Kate"; :age 62; :child :john.
> :john :name "John"; :age 35; :child [:name "Alice"], [:name "Bob"; :age 8].
> :child rdfs:domain :Person; rdfs:range :Person.
> :age a owl:FunctionalProperty; a owl:DatatypeProperty; rdfs:range xsd:int.
> :name a owl:FunctionalProperty; a owl:DatatypeProperty; rdfs:range xsd:string.
> :atLeast18 a rdfs:Datatype; owl:onDatatype xsd:int;
> owl:withRestrictions ( _:x1 ).
> _:x1 xsd:minInclusive 18 .
> :Adult owl:intersectionOf (:Person
> [ a owl:Restriction;
> owl:onProperty :age;
> owl:someValuesFrom :atLeast18]).
> :Child owl:intersectionOf (:Person
> [ owl:complementOf :Adult ]).
> ***
>
> *** adult.sparql:
> prefix : <foo://bla/names#>
> select ?AN ?CN ?X ?Y
> from <file:adult.n3>
> where {{?A a :Adult; :name ?AN} UNION
> {?C a :Child; :name ?CN} UNION
> {?X :age ?Y}}
> ***
>
> answers:
>
> ----------------------------------------------
> | AN | CN | X | Y |
> ==============================================
> | | "John" | | |
> | | "Kate" | | |
> | | "Bob" | | |
> | | "Alice" | | |
> | | | <foo://bla/names#john> | 35 |
> | | | <foo://bla/names#kate> | 62 |
> | | | _:b0 | 8 |
> ----------------------------------------------
>
> It worked correctly (with the old syntax) in the version from March 09.
>
> Cheers,
> Wolfgang
> _______________________________________________
> Pellet-users mailing list
> Pellet-users at lists.owldl.com
> http://lists.owldl.com/mailman/listinfo/pellet-users
> _______________________________________________
>
> Sponsored by Clark & Parsia, LLC http://clarkparsia.com/
>
More information about the Pellet-users
mailing list