Databases Reference
In-Depth Information
blank-node labels (based on the input URI) to ensure uniqueness when merging
RDF graphs [35]. We define the set of
data sources
S
⊂
U
as the set of URIs
S
:=
.
7
RDF Triple in Context/RDF Quadruple.
An ordered pair (
t, c
) with a triple
t
:= (
s,p,o
), and with a context
c
{
s
∈
U
|
get
(
s
)
∅}
=
get
(
c
) is called a
triple in
context c
.Wemayalsoreferto(
s, p, o, c
)asan
RDF quadruple
or quad
q
with
context
c
. In Fig. 2 we illustrate the RDF data from Fig. 1 as dereferenceable
RDF graphs. Note that Fig. 2 contains more data than Fig. 1, where we include
triples obtained from dereferencing the founders of organisations mentioned in
Fig. 1, as well as data obtained from dereferencing class and property URIs.
HTTP Dereferencing/Redirects.
We now give some notation relating to a “Linked
Dataset”, which is inspired by the notion of named graphs in SPARQL, but where
the dataset reflects the
get
(
∈
S
and
t
∈
) function that maps graph names to RDF graphs
obtained from dereferencing URIs.
·
Definition 1 (Data Source and Linked Dataset)
We define a Linked Dataset as Γ
⊂
get
; i.e., a finite set of pairs
(
s,
get
(
s
))
such
S
.
8
The “global” RDF graph presented by a Linked Dataset is denoted as
merge
(
Γ
):=
(
u,G
)
∈Γ
that s
∈
G
where the operator '
' denotes the RDF merge of RDF graphs: a set union
where blank nodes are rewritten to ensure that no two input graphs contain the
same blank node label [35]. (From the perspective of a SPARQL dataset, one
may consider
merge
(
Γ
)
as the “default graph” and all such
(
s,
get
(
s
))
as named
graph pairs.)
A URI may provide a HTTP redirect to another URI using a
30x
response
code [19]; we denote this function as
redir
:
U
U
which first removes any
fragment identifier from the URI (a hash string sux) and then follows a single
redirect, mapping a URI to itself in the case of failure (e.g., where no redirect
exists). We denote the fixpoint of
redir
as
redirs
, denoting traversal of a number
of redirects (a limit may be set on this traversal to avoid cycles and artificially
long redirect paths). We define
dereferencing
as the function
deref
:=
get
→
redirs
which maps a URI to an RDF graph retrieved with status code
200 OK
after
following redirects, or which maps a URI to the empty set in the case of failure.
We denote the set of
dereferenceable URIs
as
D
:=
◦
{
d
∈
U
:
deref
(
d
)
=
∅}
;note
that
S
D
and we place no expectations on what
deref
(
d
) returns, other than
returning
some
valid RDF.
9
As a shortcut, we denote by
derefs
:2
U
⊂
2
U
×
2
Tr
;
→
7
Note again that we use
⊂
instead of
⊆
to emphasise that obviously not all URIs
point to non-empty RDF graphs.
8
Γ
is finite thus - again - we use
⊂
instead of
⊆
.
9
The URIs within D that are not in S are those that return (non-empty) RDF graphs
by means of (an) intermediate redirect(s) and/or after having a fragment identifier
stripped.