Ta,j :=
{(t1,t2,t3) | tj = a
for (t1,t2,t3) Î Triples} for j = 1, 2, 3,
(if j = 1 then a ÎPropertyTypes,
if j = 2 then a ÎNodes,
if j = 3 then a ÎNodes È {atoms}).
Then the description of a node n is defined to be Tn,2.
A description is a node, i.e.Tn,2 Î Nodes " n Î Nodes.
There is a (partial) function that defines the pair (pi, Si), where p i Î {t1 | (t1,t2,t3) Î Tn,2} Ì PropertyTypes. Si is the (only) schema corresponding to pi. Note that the pi are the property types of the description of node n.
A schema is identified by a URI [ !the mapping is not specified ?! ]
Tr = TRDF:InstanceOf, 1 \ T{atoms},3,
where T{atoms},3 :=
ÈaÎ {atoms}
Ta,3.
The reification of a triple, t = (t1, t2, t3) Î Tr is a description of a node n, given by:
È | (Ti,1 Ç Tn,2 Ç Tj,3), |
i = RDF:PropName, j = t1
i = RDF:PropObj, j = t2 i = RDF:PropValue, j = t3 i = RDF:InstanceOf, j = t4. |
Collections of nodes N = (n1, n2, ..., nk) are modelled as a description, C Ì Tn,2, of an arbitrary node n.
There is an injection, m: N ® Ord È {undef} (for undef Î Nodes).
C is then defined:
C := {(RDF:InstanceOf, n, a), a Î {RDF:Seq, RDF:Bag, RDF:Alt}} È {(m (ni), n, ni), 1 £ i £ k, m (ni) ¹ undef },
where (RDF:1, n, n1) Î C Û C ' (RDF:Alt, n, a).