- From: Danny Ayers <danny.ayers@gmail.com>
- Date: Tue, 19 Oct 2004 15:01:55 +0200
- To: Adrian Walker <adrianw@snet.net>
- Cc: www-rdf-interest@w3.org
On Tue, 19 Oct 2004 08:17:39 -0400, Adrian Walker <adrianw@snet.net> wrote:
> Danny --
>
> I don't see much of a conflict, {relational,RDF} religious dogma aside.
>
> To oversimplify a bit, a triples form of RDF can be treated as a ternary
> relation. There's quite a bit of work that one can find via Google on
> storing and indexing such triples usefully in Oracle and the like.
Sure, but the "irreducible n-order predicate" bit would suggest that
it isn't possible to go the other way, to store RDBMS data as triples
in the general case.
> One concern though, is that writing queries, and understanding what they
> are returning, can be much harder if we insist on storing everything at low
> arity.
Isn't it better to decouple the query writing from the underlying
storage? Say your Oracle-based triplestore used a simple s,p,o schema.
You can use SQL VIEWS to allow domain specific n-ary queries (example
below, though maybe not an ideal demo as the store is ternary and the
results binary ;-).
Cheers,
Danny.
sqlite> CREATE VIEW jobs AS SELECT
...> JobTitles.object,
...> JobSalaries.object
...> FROM
...> triples Jobs,
...> triples JobTitles,
...> triples JobSalaries
...> WHERE
...> Jobs.property == "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
...> AND
...> Jobs.object == "http://xmlns.com/wordnet/1.6/Job"
...> AND
...> JobTitles.property == "http://ilrt.org/discovery/2000/11/rss-query/jobvo
cab.rdf#title"
...> AND
...> JobTitles.subject == Jobs.subject
...> AND
...> JobSalaries.property == "http://ilrt.org/discovery/2000/11/rss-query/job
vocab.rdf#salary"
...> AND
...> JobSalaries.subject == Jobs.subject;
sqlite> select * from jobs;
Job title for job1 goes here|100000
Job title for job2 goes here|150000
(from http://dannyayers.com/beg-rss/)
--
http://dannyayers.com
Received on Tuesday, 19 October 2004 13:01:56 UTC