Following the recent discussion on wrt syntax and namespaces I'd like to
mention the internal data model based on RDF that I'm using in my
research:
Let U be the Unicode alphabet and U* the set of strings defined over U.
The set of entities E and the set of statements V are defined using the
following recursive definition:
1. U*xU* is subset of E (any tuple consisting of two strings is an
entity; the first string of the tuple is called namespace of the entity,
the second string is referred to as name of the entity)
2. ExExE is subset of V (every tuple of three entities constitutes a
statement)
3. V is subset of E (every statement is an entity)
A subset of V is called "model". Without reification, E=U*xU* and V=E^3.
The set of literals L is defined as L = {"urn:rdf:literal"} x U* (i.e.
literals are resources and can be used as subjects of statements). Other
primitive data types are handled similarly, e.g. ("urn:rdf:literal","5")
!= ("urn:rdf:integer","5").
Notice that namespaces are first-class citizens. Resource ("xyz","")
'reifies' namespace "xyz", so that statements about primitive classes
like the class of literals are possible.
The above data model subsumes the RDF model defined in M&S 1.0.
Sergey
P.S.: since Oct 2000, RDF API
(http://www-db.stanford.edu/~melnik/rdf/api.html) supports namespaces as
part of the model, so that both parser and serializer included in the
API can handle resources like
("http://www.w3.org/1999/XMLSchema","date") correctly.
--
E-Mail: melnik@db.stanford.edu (Sergey Melnik)
WWW: http://www-db.stanford.edu/~melnik
Tel: OFFICE: 1-650-725-4312 (USA)
Address: Room 438, Gates, Stanford University, CA 94305, USA