Jena supports TriX, a simple XML format for RDF, for both reading and writing RDF data.
The support is of the TriX core, without processing instructions.
Local copies:
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 There is also earlier work published in HPL-2003-268.
The work within the Semantic Web Interest Group on Named Graphs, including TriX, is documented at https://www.w3.org/2004/03/trix/.
TriX DTD: http://www.w3.org/2004/03/trix/trix-1/trix-1.0.dtd
Trix XML Schema: http://www.w3.org/2004/03/trix/trix-1/trix-1.0.xsd
The W3C 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 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>