diff --git a/spec/Mona_Lisa,_by_Leonardo_da_Vinci,_from_C2RMF_retouched.jpg b/spec/Mona_Lisa,_by_Leonardo_da_Vinci,_from_C2RMF_retouched.jpg new file mode 100644 index 0000000..34b42ea Binary files /dev/null and b/spec/Mona_Lisa,_by_Leonardo_da_Vinci,_from_C2RMF_retouched.jpg differ diff --git a/spec/example-named-annotations.ttl b/spec/example-named-annotations.ttl new file mode 100644 index 0000000..c2dc979 --- /dev/null +++ b/spec/example-named-annotations.ttl @@ -0,0 +1,11 @@ + foaf:topic_interest wd:Q12418 ~ + ~ . + + + a prov:Influence ; + dcterms:date "1998-10-04"^^xsd:date . + + + a rdf:Statement ; + dcterms:date "2004-01-12"^^xsd:date ; + dcterms:creator . diff --git a/spec/example-triple-annotation.svg b/spec/example-triple-annotation.svg new file mode 100644 index 0000000..d26544c --- /dev/null +++ b/spec/example-triple-annotation.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Bob + + + + is interested in + + + + + + "Mona Lisa" + + + + The Mona Lisa + + + + + + + + + + + is an + + + + Interest + + + + + since + + + + 4th of October 1998 + + + + diff --git a/spec/example-unnamed-annotation.ttl b/spec/example-unnamed-annotation.ttl new file mode 100644 index 0000000..5a80253 --- /dev/null +++ b/spec/example-unnamed-annotation.ttl @@ -0,0 +1,4 @@ +PREFIX prov: + + foaf:topic_interest wd:Q12418 {| a prov:Influence ; + dcterms:date "1998-10-04"^^xsd:date |} . diff --git a/spec/example-unnamed-reifier.ttl b/spec/example-unnamed-reifier.ttl new file mode 100644 index 0000000..fb2b0bf --- /dev/null +++ b/spec/example-unnamed-reifier.ttl @@ -0,0 +1,6 @@ +PREFIX rdf: + +<< foaf:topic_interest wd:Q12418 >> + a rdf:Statement ; + dcterms:date "2004-01-12"^^xsd:date ; + dcterms:creator . diff --git a/spec/figures.css b/spec/figures.css new file mode 100644 index 0000000..1a4e46c --- /dev/null +++ b/spec/figures.css @@ -0,0 +1,29 @@ +svg { + font-family: sans-serif; + margin: auto; + --bg: #fff; + --fg: #000; + --green: #4aa35b; + --red:red; + --blue: #3575b8; + --purple: #82b; + --white: white; +} + +.label { font-size:18px; font-weight:bold } + +text.iri { font-size:12px; fill:var(--fg); stroke:none } + +.green path { stroke:var(--green) } +.green { fill:var(--green) } + +.blue path { stroke:var(--blue) } +.blue { fill:var(--blue) } + +.purple path { stroke:var(--purple) } +.purple { fill:var(--purple) } + +.arrow text { font-size: 16px } +.arrow textPath { text-anchor: middle } +.arrow path { stroke-width:2.0;marker-end:url(#ConcaveTriangle) } +.arrow.back path { stroke-width:1.6;marker-end:none;marker-start:url(#ConcaveTriangle) } diff --git a/spec/index.html b/spec/index.html index 25053df..4b061d2 100644 --- a/spec/index.html +++ b/spec/index.html @@ -21,6 +21,7 @@ editors: [ { name: "Pierre-Antoine Champin", w3cid: "42931"}, + { name: "Niklas Lindström" }, ], formerEditors: [ @@ -237,8 +238,8 @@

Triples

terms of this abstract syntax. Concrete RDF syntax is introduced later in .

-

In the next three subsections we discuss the three types of RDF data - that occur in triples: IRIs, literals and blank nodes.

+

In the next four subsections, we discuss the four types of RDF data + that occur in triples: IRIs, literals, blank nodes, and triple terms.

@@ -351,6 +352,70 @@

Blank nodes

+
+

Triple terms

+ +

As the basic unit of description in RDF, a triple states a simple, + directed relationship between two resources. Sometimes, we need to describe + more detailed circumstances underlying such relationships. Conceptually, we + can annotate a statement with something more detailed:

+ +
+ + +
Informal triple annotation example: a concretization of a + statement described with its own characteristics.
+
+ +

In conjunction with the arc expressing the relationship, the dashed circle + in the figure expresses a reifier. This is Bob's interest, + with a type and a date of origin, as a concrete circumstance of the fact + that Bob is interested in the Mona Lisa.

+ +

Formally, this annotation is composed of four triples:

+
+      <Bob> <is interested in> <the Mona Lisa> .
+      <Bob's interest> <is a concretization of> <<( <Bob> <is interested in> <the Mona Lisa> )>> .
+      <Bob's interest> <is an> <Interest> .
+      <Bob's interest> <since> <4th of October 1998> .
+    
+ +

The second triple is called a reifying triple, and + expresses a concretization of the proposition stated by the first triple. + The object of a reifying triple is a triple term. It denotes the + proposition itself, as a logical, abstract object identified through its + constituent subject, predicate, and object components.

+ +

Triple terms may only appear in the object position, + and should be used with the special reifies predicate of reifying + triples.

+ + + +
+

Multiple graphs

@@ -417,13 +482,13 @@

Multiple graphs

in the intended way. Possible semantics of datasets are described in a separate note [[RDF11-DATASETS]].

-
+
Informal graph of the sample dataset
Informal graph of the sample dataset
-

Fig. 3 depicts the sample dataset. +

Fig. 4 depicts the sample dataset. provides an example of concrete syntax for this dataset.

@@ -655,7 +720,7 @@

N-Triples

The figure below shows the triples resulting from the example:

-
+
Graph of the sample triples
RDF graph resulting from the N-Triples example
@@ -679,7 +744,7 @@

Turtle

support for namespace prefixes, lists and shorthands for datatyped literals. Turtle provides a trade-off between ease of writing, ease of parsing and readability. The graph shown in - Fig. 4 can be + Fig. 5 can be represented in Turtle as follows:

@@ -768,10 +833,42 @@ 
Representation of blank nodes
the square brackets are interpreted as triples with the blank node as subject. Lines starting with '#' represent comments.

+ + +
+
Representations of reifying triples
+ +

Turtle provides concise notation for reifying and annotating + triples. This allows us to encode the example in the section about triple terms, where the simple fact + that Bob is interested in the Mona Lisa was annotated with a more + specific circumstance.

+ +

We can use an unnamed annotation to state when the interest itself + began:

+
+        
+ +

We can also describe that Alice has once made the simple claim. Here + we use syntax for a reifying triple, which references it without + implying its truth:

+
+        
-

For more details about the syntax of Turtle please consult the Turtle specification [[RDF12-TURTLE]].

+

The previous two descriptions can also be combined, as two + annotations on one statement. Here we also identify the reifiers with + IRIs:

+
+        
+

For more details about the syntax of Turtle please consult the Turtle specification [[RDF12-TURTLE]].

@@ -837,7 +934,7 @@

TriG

The figure below shows the triples resulting from this example.

-
+
Triples resulting from the TriG example
Triples resulting from the TriG example
@@ -865,7 +962,7 @@

N-Quads

The nine lines in the N-Quads example correspond to the nine - arcs in Fig. 5. Lines 1-7 represent quads, where the first + arcs in Fig. 6. Lines 1-7 represent quads, where the first element constitutes the graph IRI. The part of the quad after the graph IRI specifies the subject, predicate and object of the statement, following the syntactic @@ -893,7 +990,7 @@

JSON-LD

@graph keyword.

The following JSON-LD example encodes the graph of Fig. 4:

+ href="#fig5">Fig. 5:

       01    {
@@ -993,7 +1090,7 @@ 

RDFa

Snippets).

The HTML example below encodes the - RDF graph depicted in Fig. 4:

+ RDF graph depicted in Fig. 5:

       01  <body prefix="foaf: http://xmlns.com/foaf/0.1/
@@ -1091,7 +1188,7 @@ 

RDF/XML

languages listed here have been adopted and standardized.

The RDF/XML example below encodes the - RDF graph depicted in Fig. 4:

+ RDF graph depicted in Fig. 5:

       01    <?xml version="1.0" encoding="utf-8"?>
@@ -1361,7 +1458,7 @@ 

Changes between RDF 1.0 and RDF 1.1

Changes between RDF 1.1 and RDF 1.2

    - +
  • Added information about triple terms (new in RDF 1.2).