- From: Sergey Melnik <melnik@db.stanford.edu>
- Date: Tue, 23 Oct 2001 14:18:49 -0700
- To: "Peter F. Patel-Schneider" <pfps@research.bell-labs.com>
- CC: bwm@hplb.hpl.hp.com, www-rdf-interest@w3.org, simeon@research.bell-labs.com
"Peter F. Patel-Schneider" wrote: > > From: Sergey Melnik <melnik@db.stanford.edu> > Subject: Re: a new way of thinking about RDF and RDF Schema > Date: Tue, 23 Oct 2001 11:50:35 -0700 > > > "Peter F. Patel-Schneider" wrote: > > > > [...] > > > Pat's RDF graphs don't handle order. However, it is possible to, and has been > > > done (but my reference is at work), add order to a graph that represents > > > RDF and XML information. There are lots of ways to do this, one would be > > > to add a partial order over edges. > > > > Well, how do you squeeze the partial order information into the graph? > > I'm not asking for academic reasons. Ordering is a critical feature for > > many applications, and if there is no adequate way of introducing order > > into RDF "as is", we may have to rethink the basics of the RDF model > > (sooner or later). So please let me/RDF Core know about your ideas once > > they are in shape... > > > > Sergey > > Harold Boley has a data model, at > http://www.dfki.uni-kl.de/~boley/xmlrdf.html, that uses total > orders over some of the edges coming out of a node. This has a > disadvantage when considering multiple ``XML'' documents. However, it is > an interesting way of proceeding. Thanks for the pointer, I'll have a look. > Another way, as I said above, is to add a partial order over edges in the > RDF graph. This would result in something like: > > An untidy RDF graph, R, is a four-tuple (that can be considered to be a > partially node labeled, edge-ordered, directed triple-graph) > < N, E, LN, EO > > where N is the set of nodes in the graph > LN :(partial) N -> URI u L gives labels for nodes > E <= N' x N'' x N is the set of edges in the graph > where N' = { n : LN(n) is undefined or LN(n) in URI } > where N'' = { n : LN(n) is defined and LN(n) in URI } > EO is a partial order over E, i.e., a subset of E x E that is > transitive and irreflexive > > Now the edge order is only used to order the edges that come out of a node, > so you could also add a condition on EO that edges with different heads are > incomparable or make EO map nodes into partial orders over pairs. > > Interpretations then have to be augmented with something like > > An interpretation I is a four-tuple > < IR, IEXT, ICEXT, IO, IS > > where IR is a non-empty set, called resources > IEXT : IR -> powerset ( IR x (IR u LV) ) > ICEXT : IR -> powerset ( IR u LV ) > IS : URI -> IR > IO : IR -> powerset ( (IR x (IR u LV)), (IR x (IR u LV)) ) > such that IO(r) is a partial order > and if IO(r) contains <s,o> < <s',o'> > then <s,o> in IEXT(r) and <s',o'> in IEXT(r) > > The notion of a model also has to be extended, perhaps by > > 4. for <s,p,o> < <s',p,o'> in EO, <M(s),M(o)> < <M(s'),M(o')> in IEXT(M(p)) > > (Actually this would probably work better using a <= version of a partial > order, to take care of special cases.) This is an interesting way to go. Is there a way to introduce ordering in some generic fashion say by using reification? As you noticed, there are many ways to state ordering, e.g. order of edges by subject-predicate, or just by subject, or by object etc. All these ways seem valid and useful... For example, I may want to state that objects of property dc:creator (authors) are ordered, and conversely, the subjects are ordered too (ordered list of books authored by an individual). Sergey
Received on Tuesday, 23 October 2001 17:05:53 UTC