Turtle (syntax)


Terse RDF Triple Language is a syntax and file format for expressing data in the Resource Description Framework data model. Turtle syntax is similar to that of SPARQL, an RDF query language. It is a common data format for storing RDF data, along with N-Triples, JSON-LD and RDF/XML.
RDF represents information using semantic triples, which comprise a subject, predicate, and object. Each item in the triple is expressed as a Web URI. Turtle provides a way to group three URIs to make a triple, and provides ways to abbreviate such information, for example by factoring out common portions of URIs. For example, information about Huckleberry Finn could be expressed as:
<http://example.org/person/Mark_Twain>
<http://example.org/relation/author>
<http://example.org/books/Huckleberry_Finn>.

History

Turtle was defined by Dave Beckett as a subset of Tim Berners-Lee and Dan Connolly's Notation3 language, and a superset of the minimal N-Triples format. Unlike full N3, which has an expressive power that goes much beyond RDF, Turtle can only serialize valid RDF graphs. Turtle is an alternative to RDF/XML, the originally unique syntax and standard for writing RDF. As opposed to RDF/XML, Turtle does not rely on XML and is generally recognized as being more readable and easier to edit manually than its XML counterpart.
SPARQL, the query language for RDF, uses a syntax similar to Turtle for expressing query patterns.
In 2011, a working group of the World Wide Web Consortium started working on an updated version of RDF, with the intention of publishing it along with a standardised version of Turtle. This Turtle specification was published as a W3C Recommendation on 25 February 2014.
A significant proportion of RDF toolkits include Turtle parsing and serializing capability. Some examples of such toolkits are Redland, Sesame, Jena, Python's RDFLib and JavaScript's .

Example

The following example defines 3 prefixes, and uses them in expressing a statement about the editorship of the RDF/XML document:

@prefix rdf: .
@prefix dc: .
@prefix ex: .

dc:title "RDF/XML Syntax Specification " ;
ex:editor .

.
The example encodes an RDF graph made of four triples, which express these facts:
Here are the triples made explicit in N-Triples notation:

"RDF/XML Syntax Specification ".
_:bnode.
_:bnode "Dave Beckett".
_:bnode .

The MIME type of Turtle is text/turtle. The character encoding of Turtle content is always UTF-8.

Named graphs

RDF syntax extends Turtle with support for named graphs.