Hi,

Here is my basic issue:

I am running TBC Free 4.3.1.v20131101-1317R.

I have defined an ontology that describes Einstein's riddle (attached), 
which is solvable by strict DL reasoners (HermiT and Pellet) in Protege.  I 
decided to test it out in RL with TopSPIN, importing the owlrl spin rules.

It does not solve initially, so I decided to see what additional rules I 
should create to complete the inferenced solution.

One rule I added was very similar to  cls-maxqc3, except that it operates 
on "qualifiedCardinality" of 1 instead of "maxQualifiedCardinality".  Here 
is the rule in SPARQL:

CONSTRUCT {
    ?v1 owl:sameAs ?v2 .
}
WHERE {
    ?c owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger .
    ?c owl:onProperty ?p .
    ?c owl:onClass ?c2 .
    ?o a ?c .
    ?o ?p ?v1 .
    ?v1 a ?c2 .
    ?o ?p ?v2 .
    ?v2 a ?c2 .
    FILTER (?v1 != ?v2) .
}

Here's the interesting part:

When I run the reasoner, it correctly infers a new statement, specifically 
that the individual "blue" is owl:sameAs the individual "second".  This is 
based the fact the the individual "first" is a subclass of the anonymous 
"qualifiedCardinality" restriction defined above (on the property 
"nextTo"), which points to both "blue" and "second".

So far so good.

But when I execute the exact SPARQL of the rule in the SPARQL query view 
(against the fully realized graph), it returns nothing.  I investigated 
this by querying for a bunch of individual relationships and found that 
while "FirstHouse" is correctly identified to be a subclass of the 
anonymous restriction, the individual "first" is not declared to be of the 
anonymous type.  Thus the query fails at the "?o a ?c" pattern.

At first it seemed like a possible failure of the cax-sco rule, but like I 
said, it works when executed by the reasoner.

So what I'm wondering is whether TopSPIN may calculate certain "internal" 
triples that it uses to reason without "exporting" those triples to the 
resultant inferred graph.  The reason it's an issue is that it makes it 
difficult to test rules/queries when the behavior is different depending on 
how the SPARQL is executed.

Thank you!

-- 
-- You received this message because you are subscribed to the Google
Group "TopBraid Suite Users", the topics of which include Enterprise Vocabulary 
Network (EVN), TopBraid Composer, TopBraid Live, TopBraid Insight, 
SPARQLMotion, SPARQL Web Pages and SPIN.
To post to this group, send email to
topbraid-users@googlegroups.com
To unsubscribe from this group, send email to
topbraid-users+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/topbraid-users?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"TopBraid Suite Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to topbraid-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Attachment: riddle.owl
Description: Binary data

Reply via email to