From 430d4bf4557065b00858bbba83db3600c4ec5d0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Sat, 25 Jan 2025 11:45:16 +0100 Subject: [PATCH] Add introduction of triple terms and accompanying Turtle examples (#16) Main changes: * Add subsection about triple terms * Add Turtle examples of reifiers and annotations * Add illustration of the annotation example --------- Co-authored-by: Ted Thibodeau Jr Co-authored-by: Andy Seaborne --- ...eonardo_da_Vinci,_from_C2RMF_retouched.jpg | Bin 0 -> 44970 bytes spec/example-named-annotations.ttl | 11 ++ spec/example-triple-annotation.svg | 90 +++++++++++++ spec/example-unnamed-annotation.ttl | 4 + spec/example-unnamed-reifier.ttl | 6 + spec/figures.css | 29 +++++ spec/index.html | 123 ++++++++++++++++-- 7 files changed, 250 insertions(+), 13 deletions(-) create mode 100644 spec/Mona_Lisa,_by_Leonardo_da_Vinci,_from_C2RMF_retouched.jpg create mode 100644 spec/example-named-annotations.ttl create mode 100644 spec/example-triple-annotation.svg create mode 100644 spec/example-unnamed-annotation.ttl create mode 100644 spec/example-unnamed-reifier.ttl create mode 100644 spec/figures.css 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 0000000000000000000000000000000000000000..34b42eacf0e0c8acae15d00d6cb5cb8579ab7e24 GIT binary patch literal 44970 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 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..f471e66 --- /dev/null +++ b/spec/example-triple-annotation.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Bob + + + + is interested in + + + + + + + + + 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..92159d7 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 purple + circle underneath 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 a 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 the syntax of 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).