- 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