RDF Framework
Dave Beckett

1. Overview

  XML Parser Factory - via pipe/filter, expat, ...
  XML Parser
  RDF Parser Factory - via pipe/filter, libwww version
  RDF Parser
  Digest Factory - MD5(*), SHA1(*), RIPEM160(*)
  Digest(*)
  Hash Factory - GDBM(*), berkeley DB v2, In Memory
  Hash(*)
  Node(*) (for Resource / Literals)
  Statement
  'Set of Statements' / DataSource? <- storage link here?
  'Set of Set of Statements' / Set of DataSources/ Model? <- querying here?
  'Storage Model'

(*)implemented

2. XML Parser Factory Class

A factory that returns XML Parser objects that implement the interface.

Implementations:

3. XML Parser

An object that implements the XML interface

4. RDF Parser Factory

Implementations:

5. RDF Parser

6. rdf_digest_factory - Digest Factory

Implementations:

7. Digest(*)

A digesting function is a mathematical function operating on a series of octets/bytes returning a digest (sequence of octets) that represents it with defined levels of confidence over how unique this is

8. rdf_hash_factory - Hash Factory

Implementations:

9. rdf_hash - Hash(*)

A mapping of keys to values, also known as an associative array.

10. rdf_node - Node(*) (for Resource / Literals)

11. Statement

11.1. Issues

If two agents assert the same 'statement' (aka p/s/o triple) into an RDF datastore, do we model that as:

  1. a single statement with two 'asserting contexts' associated with it
  2. as two statements having the same content.

Former says Dan

The math language we used makes it seem wrong to attempt to have the same statement appear in S twice; however pragmatics of real world apps means we'll want two of _something_ to be stored.

An asserting context is what?

Dan: More than a count - we want to be able to retract everything from http://rdfwebring.org/ldab/rdfweb/webwho.xrdf and replace it with what we get from it on a later visit. So there's likely all sorts of things we'll want to track. I don't believe it's RDF's core business to specify these -- different apps will store different things. Over time some common cases will emerge; right now, we don't have enough experience to know how be

Maybe the context would be a URI refered to by a util:gotFrom relation. e.g. If it was got-from an HTTP transaction there's a whole bundle of information (date, time, auth, content-neg prefs etc)

12. 'Set of Statements' / DataSource? <- storage link here?

13. 'Set of Set of Statements' / Set of DataSources/ Model? <- querying here?

14. 'Storage Model'

20. Other Issues