Re: property paths three more test cases pp13, pp14, pp15

>>
>> One example is:
>>
>>    ?x rdf:type/rdfs:subClassOf* ?T
>
> I see, otherwise you'd have to write ?x (rdf:type|rdf:type/rdfs:subClassOf*) ?T, which looks a bit tautological.

Yes.

> On the other hand, trying to find just the transitively closed subclass relationships with:
>
> ?C rdfs:subClassOf* ?SC .
>
> you will get many non-sensical results. I think you can write
>
> [] rdfs:subClassOf ?SC .
> ?C rdfs:subClassOf [] .
> ?C rdfs:subClassOf* ?SC .
>
> if you want just the transitively closed classes/superclasses, but that also looks odd.

Isn't transitive closure "+"

?C rdfs:subClassOf+ ?SC .

> I'm also concerned that the relatively innocuous-looking expression like { ?s rdfs:subClassOf* ?o } will have a higher cardinality than { ?s ?p ?o }, but I guess users will learn not to do that after the first few hundred times they try it :)

?s rdfs:subClassOf* ?o  will have ?s = ?o, not the cross product of the 
subjects and objects.

{ ?s ?p ?o } could have more cardinality.

:x :p1 :y .
:x :p2 :y .
:x :p3 :y .
:x :p4 :y .

{ ?s rdfs:subClassOf* ?o } => cardinality 2

?s=:x, ?o=:x
?s=:y, ?o=:y

and

{?s ?p ?o } is 4 rows.

It can be odd that "?x :p* ?o" does not depend on :p but it's similar to 
string regex:

"xyz" is matched by "a*"

Given

:x :p* ?x => ?x = :p
then
?y :p* ?x => ?x = ?y = nodes set of subjects and objects is the point we 
get to.

	Andy

>
> - Steve
>
>> which is
>>
>>    ?x rdf:type ?Z
>>    ?Z rdfs:subClassOf* ?T
>>
>> Under RDFS:
>>
>>   <C>  rdfs:subClassOf<C>
>>
>> If you are writing that over plain data, you need "a rdfs:subClassOf* a" (the {0} case) to get the subclass effect or a more complex query.
>>
>> 	Andy
>

Received on Tuesday, 21 December 2010 12:40:13 UTC