This quick start assumes you're familiar with Linked Data and Turtle syntax.
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 | 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 http://example.com/ |
delimiters required <http://example.com/> |
prefix | @prefix ex: <http://example.com> |
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.
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).
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.
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.