Knotation Quick Start

This quick start assumes you're familiar with Linked Data and Turtle syntax.

Knotation and Turtle

Knotation is similar to Turtle syntax. Try adding an rdfs:comment to the Knotation on the left, and see what happens to the Turtle on the right.

Feature Comparison

Feature Knotation Turtle
basic syntax line-based with indentation token-based with delimiters: . ; "" [] () {}
basic semantics sequence of subject stanzas, each with one-or-more predicate-object pairs same
whitespace significant not significant
general IRI <foo> same
HTTP(S) URL delimiters optional delimiters required <>
prefix @prefix ex: <> same, with trailing period .
CURIE ex:foo same
subject line starting with colon-space-identifier, : ex:foo just an identifier
predicate line starting with an identifier, then colon-space-object just an identifier
literal object plain string quoted string
IRI object identifier with a "link" datatype just an identifier
datatype after the predicate after the object
subject stanza starts with subject line, ends with next subject starts with subject identifier, ends with period .
predicate-object predicate: object predicate "object" ;
predicate-object-datatype predicate; datatype: object predicate "object"^^datatype ;
predicate-object-language predicate; language: object predicate "object"@language ;
multiline literal indented with one space triple-quoted
comment line starting with # starts with #
label declare then use as an identifier not supported
default datatype supported not supported
default language supported not supported
Manchester syntax supported not supported


In Knotation, we can use labels instead of CURIEs and IRIs. The label has to be specified before it's used. The result is a little longer but easier to read.

Re-Usable Context

A Knotation file might require a large number of labels, and we often want to use the same labels for multiple Knotation files. So we usually put that context information in a separate file (left), letting us focus on the content (middle).

Default Language and Datatype

We can also specify the default language and datatype for a predicate (left), making the Knotation content (middle) even more concise.


When an object is an IRI (instead of a literal), Knotation requires a "link" datatype. Default datatypes make this easy.

Manchester Syntax

Knotation allows you to write OWL class expressions using Manchester syntax, just like in Protégé. This is much more clear and concise than the corresponding Turtle.