- From: David Allsopp <dallsopp@signal.dera.gov.uk>
- Date: Wed, 13 Dec 2000 16:09:33 +0000
- CC: www-rdf-interest@w3.org
Geoff Chappell wrote:
>
> I've been experimenting recently with a query language that takes queries of
> the form:
>
> select ?age where {?x ?y {age JohnSmith ?age}}
>
> which behind the scenes results in a query:
>
> select ?age where {?x ?y ?z} and {rdf:type ?z rdf:Statement} and
> {rdf:subject ?z JohnSmith}
> and {rdf:predicate ?z age} and {rdf:object ?z ?age}
>
> Similarly, inner triples are assumed to refer to reified statements in
> insert, delete, infer, and other commands. Additional nesting of triples is
> allowed (i.e. he says she says such and such). This seems to be a pretty
> natural representation and works well in practice.
That's a nice way of expressing it!
However, I have problems with what the query should be mapped into. For
example in the Stanford API,
using the following example:
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:DC="http://purl.org/metadata/dublin_core/"
xmlns:DS="http://www.w3.org/Schemas/DS-Schema/">
<Description about="http://www.bar.com/some.doc" bagID="Statement_001">
<DC:Creator>John Smith</DC:Creator>
</Description>
<Description about="#Statement_001">
<DS:CreatedOn>1998-02-06T14:00Z</DS:CreatedOn>
<DS:CreatedBy>Jane Cooper</DS:CreatedBy>
</Description>
</RDF>
the expanded query (looking for triples with the predicates rdf:type,
rdf:subject etc) wouldn't work as those triples don't exist (because in
the Stanford implementation Statement is a subclass of Resource and can
be referred to directly).
(please correct me if I'm wrong, Sergey Melnik!)
However, with the following example, with explicit reification, such a
query would work (and a query looking for the reified statement directly
would not work).
<?xml version="1.0"?>
<RDF xmlns:DC='http://purl.org/metadata/dublin_core#'
xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<Description ID="example">
<subject resource="http://www.foo.com/bar.html" />
<predicate resource="http://purl.org/metadata/dublin_core#author" />
<object>Janne Saarela</object>
<type
resource="http://w3.org/TR/1999/PR-rdf-syntax-19990105#Statement" />
</Description>
</RDF>
Will a query engine have to perform both kinds of query on the model?
That doesn't seem very satisfactory!
Regards,
David Allsopp
--
Dr David Allsopp
DERA Malvern
Received on Wednesday, 13 December 2000 11:10:56 UTC