- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Thu, 26 Aug 2004 09:47:46 +0100
- To: RDF Data Access Working Group <public-rdf-dawg@w3.org>
These are example of things that would like to see clearly decided: its not
that here are no answers or approaches here but I think these are some of
the decision points.
Andy
== Test case 1 : union case:
a.rdf:
:r :p :v .
b.rdf:
:r :p :v .
This has one result:
SELECT * WHERE { ?x ?y ?z }
But this has two if source information is retained, and one if it is not:
SELECT * WHERE { ?x ?y ?z ?src }
I find that strange. It is explicable but, in RDF terms, there is only one
statement. There are two statings. Are we querying statements or statings?
(Syntax is quads-like [*].)
== Test case 2: inference
Data:
a1.rdf:
:x rdf:type :C1 .
:C1 rdfs:subClassOf :C2 .
Query:
SELECT * WHERE { ?x rdf:type :C2 }
?x = :x
?src = <a.rdf> maybe.
Now suppose:
a2.rdf:
:x rdf:type :C1 .
:x rdf:type :C2 .
:C1 rdfs:subClassOf :C2 .
Now ?src = <a.rdf>
but a1.rdf and a2.rdf have the RDFS-same information.
Should it be the same whether :x rdf:type :C2 .is explicit or inferred?
(Forward rules systems where rules are run at ingestion time would not be
able to differentiate).
== Test case 3: Inference by multiple routes:
Now if:
a.rdf:
:x rdf:type :C1 .
b.rdf:
:C1 rdfs:subClassOf :C2 .
With a.rdf + b.rdf: get ?x = :x, but what is ?src
And if:
a.rdf:
:x rdf:type :C1 .
:C1 rdfs:subClassOf :C2 .
b.rdf:
:C1 rdfs:subClassOf :C2 .
the RDF merge is the same but there are two ways to get the :x rdf:type :C2.
and there is only one query solution.
Seems to be getting a step on the way to proofs here.
Andy
[*] The modified syntax does not cover SOURCE precisely because it is
unclear if it applies to a triple or a graph pattern. This syntax is quads
so is triple-based - its not very clear. Maty should have an explit
"SRC(?x)" and a plain triple.
Received on Thursday, 26 August 2004 08:48:04 UTC