You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2021/05/08 09:08:57 UTC
[jena-site] branch main updated: Documentation for TriX - including
TriX history (#46)
This is an automated email from the ASF dual-hosted git repository.
andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena-site.git
The following commit(s) were added to refs/heads/main by this push:
new 92ad4bb Documentation for TriX - including TriX history (#46)
92ad4bb is described below
commit 92ad4bbef253292f45270737628cf82284f4af65
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Sat May 8 10:08:50 2021 +0100
Documentation for TriX - including TriX history (#46)
---
source/documentation/io/__index.md | 2 +
source/documentation/io/trix.md | 88 ++++++++++++++++++++++++++++++++++++++
2 files changed, 90 insertions(+)
diff --git a/source/documentation/io/__index.md b/source/documentation/io/__index.md
index d24a516..658f63d 100644
--- a/source/documentation/io/__index.md
+++ b/source/documentation/io/__index.md
@@ -61,6 +61,8 @@ The file extensions understood are:
`.n3` is supported but only as a synonym for Turtle.
+The [TriX](trix.html) support is for the core TriX format.
+
In addition, if the extension is `.gz` the file is assumed to be gzip
compressed. The file name is examined for an inner extension. For
example, `.nt.gz` is gzip compressed N-Triples.
diff --git a/source/documentation/io/trix.md b/source/documentation/io/trix.md
new file mode 100644
index 0000000..e80d673
--- /dev/null
+++ b/source/documentation/io/trix.md
@@ -0,0 +1,88 @@
+---
+title: TriX support in Apache Jena
+---
+
+Jena supports [TriX](http://www.hpl.hp.com/techreports/2004/HPL-2004-56.html), a
+simple XML format for RDF, for both reading and writing RDF data.
+
+The support is of the TriX core, without processing instructions.
+
+Both the original HPlabs and W3C DTDs are supported for reading. Writing is
+according to the W3C DTD, that is using root element `<trix>`,
+rather than `<TriX>`.
+
+Note: This format should not be confused with RDF/XML, the W3C standardised XML
+format for RDF.
+
+### TriX History
+
+TriX originated from work by Jeremy Carroll (then at HP Labs, Bristol) and Patrick
+Stickler (then at Nokia) and published as a tech report
+[HPL-2004-56](https://www.hpl.hp.com/techreports/2004/HPL-2004-56.html)
+There is also earlier work published in [HPL-2003-268](https://www.hpl.hp.com/techreports/2003/HPL-2003-268.html).
+
+The work within the Semantic Web Interest Group on Named Graphs, including TriX,
+is documented at [https://www.w3.org/2004/03/trix/](https://www.w3.org/2004/03/trix/).
+
+TriX DTD: http://www.w3.org/2004/03/trix/trix-1/trix-1.0.dtd<br/>
+Trix XML Schema: http://www.w3.org/2004/03/trix/trix-1/trix-1.0.xsd
+
+The [W3C DTD](https://www.w3.org/2004/03/trix/trix-1/trix-1.0.dtd) differs from
+HPL-2004-56 by having root element `<trix>` not `<TriX>`.
+
+```
+<!-- TriX: RDF Triples in XML -->
+<!ELEMENT trix (graph*)>
+<!ATTLIST trix xmlns CDATA #FIXED "http://www.w3.org/2004/03/trix/trix-1/">
+<!ELEMENT graph (uri, triple*)>
+<!ELEMENT triple ((id|uri|plainLiteral|typedLiteral), uri, (id|uri|plainLiteral|typedLiteral))>
+<!ELEMENT id (#PCDATA)>
+<!ELEMENT uri (#PCDATA)>
+<!ELEMENT plainLiteral (#PCDATA)>
+<!ATTLIST plainLiteral xml:lang CDATA #IMPLIED>
+<!ELEMENT typedLiteral (#PCDATA)>
+<!ATTLIST typedLiteral datatype CDATA #REQUIRED>
+```
+
+### TriX-star
+
+The format is extended for [RDF-star](https://w3c.github.io/rdf-star/) with
+embedded triples by allowing nested `<triple>`.
+
+Trix-star (2021) adds 'triple' to subject and object positions
+of `ELEMENT triple`.
+
+```
+<!ELEMENT triple ((id|uri|plainLiteral|typedLiteral|triple), uri, (id|uri|plainLiteral|typedLiteral|triple))>
+```
+
+#### Example
+
+The Turtle:
+```
+PREFIX : <http://example/>
+
+:s :p "ABC" .
+<< :s :p :o >> :q :r .
+```
+is written in Trix as:
+```
+<trix xmlns="http://www.w3.org/2004/03/trix/trix-1/">
+ <graph>
+ <triple>
+ <uri>http://example/s</uri>
+ <uri>http://example/p</uri>
+ <plainLiteral>ABC</plainLiteral>
+ </triple>
+ <triple>
+ <triple>
+ <uri>http://example/s</uri>
+ <uri>http://example/p</uri>
+ <uri>http://example/o</uri>
+ </triple>
+ <uri>http://example/q</uri>
+ <uri>http://example/r</uri>
+ </triple>
+ </graph>
+</trix>
+```