Owl Properties RL Reasoning Bug? version 2

0 views
Skip to first unread message

john....@gmail.com

unread,
Dec 6, 2013, 12:11:48 PM12/6/13
to sta...@clarkparsia.com
Hi all,
On further examination it seems there are still some reasoning shortcomings in version 2.03 (unless I'm doing something silly)
Its a good improvement on earlier versions though.

Given (JkStarDogReasoningTest_1.ttl attached)
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix test:    <http://test#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

test
:P2
      a       owl
:SymmetricProperty ;
      rdfs
:subPropertyOf test:P0 .

test
:P1
      a       owl
:TransitiveProperty ;
      rdfs
:subPropertyOf test:P0 .

test
:P0
      a       owl
:ObjectProperty .


test
:C1
    a    owl
:Class .

test
:I1
    a    test
:C1 ;
    test
:P2    test:I2 .

test
:I2
    a    test
:C1 .

test
:I3
    a    test
:C1 ;
    test
:P1    test:I4 .

test
:I4
    a    test
:C1 ;
    test
:P1    test:I5 .

test
:I5
    a    test
:C1 .



Query:
    SELECT * { ?p a owl:ObjectProperty . }
Returns:
    p = http://test#P0                                (Asserted)
    p = http://test#P1                                (Reasoned)
    p = http://test#P2                                (Reasoned)
    p = owl:topObjectProperty                    (Reasoned)
    p = owl:bottomObjectProperty              (Reasoned)
Also Expected:
    None

Query:
     SELECT * { ?s ?p ?o . ?p rdfs:subPropertyOf <http://test#P0>}
Returns:
     s = http://test#I1                p = http://test#P2              o = http://test#I2        (Asserted)
     s = http://test#I3                p = http://test#P1              o = http://test#I4        (Asserted)
     s = http://test#I4                p = http://test#P1              o = http://test#I5        (Asserted)
Also Expected:
     s = http://test#I2                p = http://test#P2              o = http://test#I1        (SymmetricProperty Reasoning)
     s = http://test#I3                p = http://test#P1              o = http://test#I5        (TransitiveProperty Reasoning)

Query:
     SELECT * { ?s ?p ?o . ?p a owl:ObjectProperty}
Returns:
     s = http://test#I1                p = http://test#P2              o = http://test#I2        (Reasoned)
     s = http://test#I3                p = http://test#P1              o = http://test#I4        (Reasoned)
     s = http://test#I4                p = http://test#P1              o = http://test#I5        (Reasoned)
Also Expected:
     s = http://test#I2                p = http://test#P2              o = http://test#I1        (SymmetricProperty Reasoning)
     s = http://test#I3                p = http://test#P1              o = http://test#I5        (TransitiveProperty Reasoning)

Query
    SELECT * { ?s  <http://test#P0> ?o }
Returns:
    s = http://test#I1              o = http://test#I2         (Reasoned)
    s = http://test#I2              o = http://test#I1         (Reasoned)
    s = http://test#I3              o = http://test#I4         (Reasoned)
    s = http://test#I3              o = http://test#I5         (Reasoned)
    s = http://test#I4              o = http://test#I5         (Reasoned)
Also Expected:
    None

Query
    SELECT * {<http://test#I3> ?p <http://test#I4> }
Returns:
    p = http://test#P0              (Reasoned)
    p = http://test#P1              (Asserted)
Also Expected:
    None

Query
    SELECT * {<http://test#I3> ?p <http://test#I5> }
Returns:
    Nothing
Also Expected:

    p = http://test#P1              (TransitiveProperty Reasoning)
    p = http://test#P0              (SubProperty Reasoning)

Query
    SELECT * {<http://test#I3> <http://test#P1> ?o }
Returns:
    o = http://test#I4              (Reasoned)
    o = http://test#I5              (Reasoned)
Also Expected:
    None

Query
    SELECT * {<http://test#I2> ?p <http://test#I1> }
Returns:
    p = http://test#P2              (SymmetricProperty Reasoning)
    p = http://test#P0              (SubProperty Reasoning)
Also Expected:
    None

Query
    SELECT * {<http://test#I2> <http://test#P2> ?o }
Returns:
    o = http://test#I1              (Reasoned)
Also Expected:
    None




Steps:
> cd %STARDOG_HOME%
> bin\stardog-admin.bat db drop  myDB_test1
> bin\stardog-admin.bat db create  -n myDB_test1 JkStarDogReasoningTest_1.ttl
> bin\stardog.bat query "myDB_test1;reasoning=RL" "SELECT * { ?p a owl:ObjectProperty . }"
+--------------------------+
|            p             |
+--------------------------+
| owl:topObjectProperty    |
| test:P0                  |
| test:P2                  |
| owl:bottomObjectProperty |
| test:P1                  |
+--------------------------+
> bin\stardog.bat query "myDB_test1;reasoning=RL" "SELECT * { ?s ?p ?o . ?p rdfs:subPropertyOf <http://test#P0>}"
+---------+---------+---------+
|    s    |    p    |    o    |
+---------+---------+---------+
| test:I1 | test:P2 | test:I2 |
| test:I3 | test:P1 | test:I4 |
| test:I4 | test:P1 | test:I5 |
+---------+---------+---------+
> bin\stardog.bat query "myDB_test1;reasoning=RL" "SELECT * { ?s ?p ?o . ?p a owl:ObjectProperty}"
+---------+---------+---------+
|    s    |    p    |    o    |
+---------+---------+---------+
| test:I1 | test:P2 | test:I2 |
| test:I3 | test:P1 | test:I4 |
| test:I4 | test:P1 | test:I5 |
+---------+---------+---------+
> bin\stardog.bat query "myDB_test1;reasoning=RL" "SELECT * { ?s  <http://test#P0> ?o }"
+---------+---------+
|    s    |    o    |
+---------+---------+
| test:I1 | test:I2 |
| test:I2 | test:I1 |
| test:I3 | test:I4 |
| test:I3 | test:I5 |
| test:I4 | test:I5 |
+---------+---------+
> bin\stardog.bat query "myDB_test1;reasoning=RL" "SELECT * {<http://test#I3> ?p <http://test#I4> }"
+---------+
|    p    |
+---------+
| test:P0 |
| test:P1 |
+---------+
> bin\stardog.bat query "myDB_test1;reasoning=RL" "SELECT * {<http://test#I3> ?p <http://test#I5> }"
+-------+
|   p   |
+-------+
+-------+
> bin\stardog.bat query "myDB_test1;reasoning=RL" "SELECT * {<http://test#I3> <http://test#P1> ?o }"
+---------+
|    o    |
+---------+
| test:I4 |
| test:I5 |
+---------+
> bin\stardog.bat query "myDB_test1;reasoning=RL" "SELECT * {<http://test#I2> ?p <http://test#I1> }"
+---------+
|    p    |
+---------+
| test:P2 |
| test:P0 |
+---------+
> bin\stardog.bat query "myDB_test1;reasoning=RL" "SELECT * {<http://test#I2> <http://test#P2> ?o }"
+---------+
|    o    |
+---------+
| test:I1 |
+---------+


JkStarDogReasoningTest_1.ttl

Héctor Pérez-Urbina

unread,
Dec 6, 2013, 2:30:03 PM12/6/13
to stardog
Thank you for your email. I will take a closer look at your queries and let you know what I find.


--
-- --
You received this message because you are subscribed to the C&P "Stardog" group.
To post to this group, send email to sta...@clarkparsia.com
To unsubscribe from this group, send email to
stardog+u...@clarkparsia.com
For more options, visit this group at
http://groups.google.com/a/clarkparsia.com/group/stardog?hl=en



--
Best,
Héctor

Héctor Pérez-Urbina

unread,
Dec 9, 2013, 11:47:53 AM12/9/13
to stardog
Dear John,

The problems you are seeing are due to a known issue. We will be addressing it shortly and include the fix in a future release.
--
Best,
Héctor
Reply all
Reply to author
Forward
0 new messages