I want to use the subClassOf* to find instances of any subclasses of class2
including itself. I guess example return values would make this case
clearer. Before talking about the example, let me explain it in the high
level first. Below two lines should be equal for my original graph.
?o a/rdfs:subClassOf* :class2.
==
?o a :class2.
As there subClassOf* means zero or more paths to class2 with subClassOf
relationships,* a/rdfs:subClassOf* should be interpreted as "a" or
"a/rdfs:subClassOf" or "a/rdfs:subClassOf/rdfs:subClassOf* ... and so on.*

I guess we need to agree on the above statement. Let me know if I am wrong.

If the above case is right, I am looking for instances of class2 with the
above pattern, so I do not need class1 rdfs:subClassOf class2. And I didn't
intend that pattern.


More obviously, *a query with subClassOf* returns only one result,
"test:entity0", while a query without subClassOf* returns both entities
"test:entity0" and "test:entity1"*. With your suggestion, the first query
should return nothing.


Note: there was a typo in the namespace in the query. Here's the right one
```
sparql
prefix : <http://test.abc#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select ?s ?o where {
  ?o a/rdfs:subClassOf* :class2. # Only returns a tuple. I think incorrect.
  #?o a :class2. # returns all the tuples. I think correct.
  ?s :relation1 ?o.
};
```
The above returns one tuple, "test:entity0", though entity0 and entity1 are
exactly in the same pattern.

```
sparql
prefix : <http://test.abc#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select ?s ?o where {
  ?o a/rdfs:subClassOf* :class2. # Only returns a tuple. I think incorrect.
  #?o a :class2. # returns all the tuples. I think correct.
  ?s :relation1 ?o.
};
```
This returns two tuples.

Let me know if it's still unclear.

Thank you!


With regards,
Jason Koh
cseweb.ucsd.edu/~jbkoh

On Sat, May 12, 2018 at 2:20 PM, Kingsley Idehen <kide...@openlinksw.com>
wrote:

> On 5/12/18 5:11 PM, Jason Koh wrote:
>
> From https://www.w3.org/TR/sparql11-property-paths/,
> *elt** A path of zero or more occurrences of *elt*.
>
>
> With regards,
> Jason Koh
> cseweb.ucsd.edu/~jbkoh <http://cseweb.ucsd.edu/%7Ejbkoh>
>
>
>
> You have:
>
>
>
> You have:
>
> ```
> sparql
> prefix : <http://test.abc#>
> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
> prefix owl: <http://www.w3.org/2002/07/owl#>
> insert IN GRAPH <urn:test1>
> {
>   :class1 a owl:Class .
>   :class2 a owl:Class .
>   :entity0 a :class1.
>   :entity1 a :class2.
>   :entity2 a :class2.
>   :entity0 :relation1 :entity1.
>   :entity0 :relation1 :entity2.
> };
> ```
>
> Where are your rdfs:subClassOf relations?
>
> Implies it should have been:
>
> ```
> sparql
> prefix : <http://test.abc#>
> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
> prefix owl: <http://www.w3.org/2002/07/owl#>
> insert IN GRAPH <urn:test1>
> {
>   :class1 a owl:Class .
>   :class2 a owl:Class .
> ## Note relation added here ##
>   :class2 rdfs:subClassOf :class1 .
>   :entity0 a :class1.
>   :entity1 a :class2.
>   :entity2 a :class2.
>   :entity0 :relation1 :entity1.
>   :entity0 :relation1 :entity2.
> };
> ```
>
> Kingsley
>
>
> On Sat, May 12, 2018 at 2:10 PM, Jason Koh <jb...@eng.ucsd.edu> wrote:
>
>> Hi Kingsley,
>>
>> I put * path modifier, which should also match no subClassOf relationship
>> pattern in my understanding.
>>
>>
>> With regards,
>> Jason Koh
>> cseweb.ucsd.edu/~jbkoh <http://cseweb.ucsd.edu/%7Ejbkoh>
>>
>> On Sat, May 12, 2018 at 1:57 PM, Kingsley Idehen <kide...@openlinksw.com>
>> wrote:
>>
>>> On 5/11/18 4:56 PM, Jason Koh wrote:
>>>
>>> Hi,
>>>
>>> I am using Virtuoso opensource v7.2.4. I found that SPARQLs with
>>> transitive relationships return partial results. Could you confirm this
>>> behavior? Here are the reproducing ISQL queries.
>>>
>>> - Data insertion:
>>>
>>> ```
>>> sparql
>>> prefix : <http://test.abc#>
>>> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>>> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
>>> prefix owl: <http://www.w3.org/2002/07/owl#>
>>> insert IN GRAPH <urn:test1>
>>> {
>>>   :class1 a owl:Class .
>>>   :class2 a owl:Class .
>>>   :entity0 a :class1.
>>>   :entity1 a :class2.
>>>   :entity2 a :class2.
>>>   :entity0 :relation1 :entity1.
>>>   :entity0 :relation1 :entity2.
>>> };
>>> ```
>>>
>>> - Verification of the data
>>>
>>> ```
>>> sparql
>>> select ?s ?p ?o from <urn:test1> where {?s ?p ?o .};
>>> ```
>>>
>>> - The problem query
>>> ```
>>> sparql
>>> prefix : <http://test.abc>
>>> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
>>> select ?s ?o where {
>>>   #?o a/rdfs:subClassOf* :class2. # Only returns a tuple. I think
>>> incorrect.
>>>   ?o a :class2. # returns all the tuples. I think correct.
>>>   ?s :relation1 ?o.
>>> };
>>> ```
>>>
>>> If I run the above query, it only returns one pair of ?s and ?o instead
>>> of two pairs of (entity0, entity1) and (entity0, entity1). If I comment out
>>> the transitive line and uncomment the second line, it returns the correct
>>> result with the two pairs. I believe those two queries should return the
>>> same result.
>>>
>>> Is this a bug or do I misunderstand something in the SPARQL?
>>>
>>> Thank you!
>>>
>>>
>>>
>>> With regards,
>>> Jason Koh
>>> cseweb.ucsd.edu/~jbkoh <http://cseweb.ucsd.edu/%7Ejbkoh>
>>>
>>>
>>> You have:
>>>
>>> ```
>>> sparql
>>> prefix : <http://test.abc#>
>>> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>>> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
>>> prefix owl: <http://www.w3.org/2002/07/owl#>
>>> insert IN GRAPH <urn:test1>
>>> {
>>>   :class1 a owl:Class .
>>>   :class2 a owl:Class .
>>>   :entity0 a :class1.
>>>   :entity1 a :class2.
>>>   :entity2 a :class2.
>>>   :entity0 :relation1 :entity1.
>>>   :entity0 :relation1 :entity2.
>>> };
>>> ```
>>>
>>> Where have are your rdfs:subClassOf relations?
>>>
>>>
>>> [1] http://docs.openlinksw.com/virtuoso/rdfsparqlruleexamples/  --
>>> built-in inference docs .
>>>
>>>
>>> --
>>> Regards,
>>>
>>> Kingsley Idehen     
>>> Founder & CEO
>>> OpenLink Software   (Home Page: http://www.openlinksw.com)
>>>
>>> Weblogs (Blogs):
>>> Legacy Blog: http://www.openlinksw.com/blog/~kidehen/
>>> Blogspot Blog: http://kidehen.blogspot.com
>>> Medium Blog: https://medium.com/@kidehen
>>>
>>> Profile Pages:
>>> Pinterest: https://www.pinterest.com/kidehen/
>>> Quora: https://www.quora.com/profile/Kingsley-Uyi-Idehen
>>> Twitter: https://twitter.com/kidehen
>>> Google+: https://plus.google.com/+KingsleyIdehen/about
>>> LinkedIn: http://www.linkedin.com/in/kidehen
>>>
>>> Web Identities (WebID):
>>> Personal: http://kingsley.idehen.net/public_home/kidehen/profile.ttl#i
>>>         : 
>>> http://id.myopenlink.net/DAV/home/KingsleyUyiIdehen/Public/kingsley.ttl#this
>>>
>>>
>>> ------------------------------------------------------------
>>> ------------------
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>> _______________________________________________
>>> Virtuoso-users mailing list
>>> Virtuoso-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/virtuoso-users
>>>
>>>
>>
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>
>
>
> _______________________________________________
> Virtuoso-users mailing 
> listVirtuoso-users@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/virtuoso-users
>
>
> --
> Regards,
>
> Kingsley Idehen       
> Founder & CEO
> OpenLink Software   (Home Page: http://www.openlinksw.com)
>
> Weblogs (Blogs):
> Legacy Blog: http://www.openlinksw.com/blog/~kidehen/
> Blogspot Blog: http://kidehen.blogspot.com
> Medium Blog: https://medium.com/@kidehen
>
> Profile Pages:
> Pinterest: https://www.pinterest.com/kidehen/
> Quora: https://www.quora.com/profile/Kingsley-Uyi-Idehen
> Twitter: https://twitter.com/kidehen
> Google+: https://plus.google.com/+KingsleyIdehen/about
> LinkedIn: http://www.linkedin.com/in/kidehen
>
> Web Identities (WebID):
> Personal: http://kingsley.idehen.net/public_home/kidehen/profile.ttl#i
>         : 
> http://id.myopenlink.net/DAV/home/KingsleyUyiIdehen/Public/kingsley.ttl#this
>
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Virtuoso-users mailing list
> Virtuoso-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/virtuoso-users
>
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users

Reply via email to