Semantic Web

MicroTurtle (µttl)

Buzzword.org.uk Draft 3 June 2009

This version:
http://buzzword.org.uk/2009/microturtle/spec-20090603
Latest version:
http://buzzword.org.uk/2009/microturtle/spec
Previous version:
http://buzzword.org.uk/2009/microturtle/spec-20090601
Editor:
Toby Inkster

Abstract

Microblogging is an increasingly popular form of online communication. It is characterised by very low barriers to publishing and hard limits on the character-length of each publication.

Although "hashtags" allow microbloggers to classify their messages, there is little other opportunity for embedding rich semantics in microblog posts.

This document introduces MicroTurtle, a serialisation for RDF suitable for embedding into microblog posts.

Status of this Document

This document is published by buzzword.org.uk, a web site that hosts various specifications, articles and tools of use to web publishers. This is not a W3C recommendation. It is not even a buzzword.org.uk recommendation yet.

The author welcomes feedback on this draft by e-mail to mail@tobyinkster.co.uk.

Licence

This document is available under a licence which allows the creation of derivative works under certain conditions. For the purpose of licensing, implementations of the ideas considered in this specification shall not be considered derivative works.

Table of Contents

  1. Message Structure
  2. Body
  3. Container Formats
  1. Changes

1. Message Structure

MicroTurtle is not intended to be transmitted as a standalone document, but rather embedded in other formats, such as RSS or Atom. It has no Internet content type ("MIME type").

A MicroTurtle message consists of a header, followed by one or more white space chatacters, the string #mttl, one or more whitespace characters, and lastly the body. Other than context, the existence of the string #mttl surrounded by whitespace characters is the only way of "sniffing" MicroTurtle. (Previous versions of this draft used #ttl. During the transition, implementations may choose to continue to recognise the old hashtag, but the new one must be supported.)

The header is a free-form text string, usually intended as a description of the rest of the message. It may be omitted, in which case, the whitespace following it can also be omitted.

The body is a variation of Turtle, described in greater detail below.

MicroTurtle messages which are 140 characters or less (which, because of Unicode, may be more than 140 bytes) are referred to as MicroTurtle.strict.

2. Body

MicroTurtle is identical to Turtle with the following exceptions:

2.1. Prefixes

bio
http://purl.org/vocab/bio/0.1/
cc
http://creativecommons.org/ns#
ccold
http://web.resource.org/cc/
ccrel
http://creativecommons.org/ns#
An alias for cc.
dc
http://purl.org/dc/terms/
dc11
http://purl.org/dc/elements/1.1/
dcterms
http://purl.org/dc/terms/
An alias for dc.
doac
http://ramonantonio.net/doac/0.1/#
doap
http://usefulinc.com/ns/doap#
foaf
http://xmlns.com/foaf/0.1/
geo
http://www.w3.org/2003/01/geo/wgs84_pos#
ical
http://www.w3.org/2002/12/cal/icaltzd#
lac
http://laconi.ca/ont/
like
http://ontologi.es/like#
log
http://www.w3.org/2000/10/swap/log#
mo
http://purl.org/ontology/mo/
ov
http://open.vocab.org/terms/
owl
http://www.w3.org/2002/07/owl#
rdf
http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfg
http://www.w3.org/2004/03/trix/rdfg-1/
rdfs
http://www.w3.org/2000/01/rdf-schema#
rel
http://purl.org/vocab/relationship/
rev
http://purl.org/stuff/rev#
rss
http://purl.org/rss/1.0/
sioc
http://rdfs.org/sioc/ns#
skos
http://www.w3.org/2004/02/skos/core#
tags
http://www.holygoat.co.uk/owl/redwood/0.1/tags/
vcard
http://www.w3.org/2006/vcard/ns#
wot
http://xmlns.com/wot/0.1/
xfn
http://vocab.sindice.com/xfn#
xhv
http://www.w3.org/1999/xhtml/vocab#
xsd
http://www.w3.org/2001/XMLSchema#

2.2. Keywords

=
owl:sameAs
a
rdf:type
at
geo:location
gist
dc:abstract
says
ov:quote
(U+2190)
is rdfs:seeAlso of
(U+2192)
rdfs:seeAlso
(U+2764)
like:likes

Notation 3's <= and => are also supported, though without support for formulas, they are not likely to be very useful, so use of these is discouraged.

3. Container Formats

3.1. RSS 1.0 à la laconi.ca

A standard RDF/XML file using the RSS 1.0 vocabulary. Each feed <item> is potentially a MicroTurtle.strict graph. The <link> specifies the base URL for the graph. The <title> is parsed for MicroTurtle.

An example:

<item rdf:about="http://example.com/notice/12345">
	<title>alice: Wow! Great band! #mttl #music &lt;#me&gt; ❤ [ foaf:homepage &lt;http://www.theholdsteady.com/&gt; #altrock ] .</title>
	<link>http://example.com/notice/12345</link>
	<!-- ... -->
</item>

Which might generate the following RDF:

@prefix foaf : <http://xmlns.com/foaf/0.1/> .
@prefix like : <http://ontologi.es/like#> .
@prefix log  : <http://www.w3.org/2000/10/swap/log#> .
@prefix rdfg : <http://www.w3.org/2004/03/trix/rdfg-1/> .
@prefix rdfs : <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tags : <http://www.holygoat.co.uk/owl/redwood/0.1/tags/> .

<http://example.com/notice/12345>
	log:semantics
		[
		a rdfg:Graph ;
		rdfs:comment "alice: Wow! Great band!"
		] ;
	tags:taggedWithTag
		[
		tags:name "music" ;
		foaf:homepage <http://example.com/tag/music>
		] .

<http://example.com/alice#me>
	like:likes
		[
		foaf:homepage <http://www.theholdsteady.com/> ;
		tags:taggedWithTag
			[
			tags:name "altrock" ;
			foaf:homepage <http://example.com/tag/altrock>
			]
		] .

(As the RDF representation of hashtags is implementation-specific, other interpretations are possible.)


Appendix A. Changes

26 May 2009
Initial version.
31 May 2009
Renamed 'ttldent' to 'MicroTurtle'.
Noted #ttl probable change.
Added 'at' as a shorthand for geo:location.
Allow bare HTTP(S) URLs.
1 June 2009
Change hashtag from #ttl to #mttl.
Add ov = http://open.vocab.org/terms/ prefix.
In laconi.ca example, the notice URI no longer has rdf:type rdfg:Graph but instead log:semantics [ a rdfg:Graph ].
Adjust regular expression for hashtags to be more consistent with laconi.ca's hashtag implementation.
3 June 2009
Add 'gist' and 'says' keywords for describing linked documents.
Add '←' and '→' keywords for rdfs:seeAlso in each direction.