Revisting the abstract syntax of Named Graphs--Two alternatives

Let's think about the abstract syntax of Named Graphs.

A set of Named Graphs is a 5-tuple <N,V,U,B,L>, where
U is a set of URIrefs; 
L is a set of literals (both plain and typed);
B is a set of ˇ®blankˇŻnodes; 
U, B and L are pairwise disjoint;
V is the union of U, B,and L.

Let G be the set of all subset of the cartesian product of V,U and V.

Suppose g is an element of G, let Nodes(g)={v in V | there exists a t in g such that p1(t)=v or p2(t)=v or p3(t)=v }.

(Note: p1, p2 and p3 are projections in normal sense)

It's obvious that the set of bank nodes in g, written by BlankNodes(g), is the intersection of B and Nodes(g).

There is an equivalent relation on G,written by NameBlanked, such that 

g1 NameBlanked g2 iff  g1 and g2 differ only in the identity of their blank nodes.

Let RdfG be G/NameBlanked.

Two alternatives for the definition of N:

1) N is a partial function from U to RdfG.

  (As Pat pointed out in a previous thread) This makes it mathematically impossible for two graphs to 'share' a blank node. So, no extra constraint is needed to prevent blank nodes being shared between different "graphs" named in N.   

2) N is a partial function from U to G satisfying the following constraint:

   Suppose g1 = N(n1) and g2 = N(n2), if n1 != n2 then
   
   The intersection of BlankNodes(g1) with BlankNodes(g2) is empty. 

   (But it 's still possible to have that g1 NameBlanked g2 i.e. they are essentially the same rdf graph)

 
 I prefer the first one. Which one do you prefer?

 Any comment is welcome!



Yuzhong Qu


 

Received on Thursday, 1 July 2004 09:36:25 UTC