ABC Semantic Vocabulary Specification 0.1

Namespace Document 2011, August 22 - First Edition

This version: (rdf)
Valerio M. Pelliccioni
Andrew Kuntz

Copyleft: © Valerio M. Pelliccioni

Creative Commons License This work is licensed under a Creative Commons Attribution - Share Alike - Non Commercial License. This copyright applies to the ABC Semantic Vocabulary Specification and accompanying documentation in RDF. Regarding underlying technology, ABC uses W3C's RDF technology, an open Web standard that can be freely used by anyone.


This specification describes the ABC Semantic language, based on abc music standard 2.1 (DRAFT - Apr-Aug 2011), and defined as a dictionary of named properties and classes using W3C's RDF technology.

Status of This Document


The ABC RDF namespace, is fixed and it's identifier is not expected to change. Efforts are underway to ensure the long-term preservation of the ABC Semantic namespace, its domain name and associated documentation.

This document is created by combining the RDFS/OWL machine-readable ABC ontology with a set of per-term documents. Future versions may incorporate multilingual translations of the term definitions. The RDF version of the specification is also embedded in the HTML of this document, or available directly from the namespace URI by content negotiation.

The ABC Semantic specification is produced as part of the Traditional Tune Archive project, to provide authoritative documentation of the contents, status and purpose of the RDF/XML vocabulary and document formats known informally as 'ABC Semantics'.

The authors welcome comments on this document, preferably via email (at the moment) Valerio M. Pelliccioni; Proposals for resolving these issues are welcomed. Further work is also needed on the explanatory text in this specification and on the Traditional Tune Archive website; progress towards this will be measured in the version number of future revisions to the ABC Semantic specification.

Table of Contents

ABC Semantic at a glance

An a-z index of ABC Semantic terms, by class (categories or types) and by property.

Classes: | File | Fragment | MusicCode | Tune | TuneHeader | TuneBody | TuneBook

Object Properties: | aka | book | composer| discography | group | history | origin | source | transcriber

DataType Properties: |fileurl | key | meter | notes | part | rhythm | score | tempo | title | unitnotelength


Here is a very basic document describing a traditional tune:

 <abc:Tune rdf:about="#jackeylayton">
 <abc:title>Jackey Layton</abc:title>
 <abc:fileurl rdf:resource="" />
 <abc:aka>Jennie Rock the Cradle</abc:aka>
 <abc:aka rdf:resource="" />
 <abc:book rdf:resource="" />
 <abc:discography>Topic TSCD 529, Cut & Dry Band</abc:discography>
 <abc:group>Northumbrian smallpipes</abc:group>
 <abc:history>Another tune in which the provenance is debatable</abc:history>
 <abc:notes>See also listing at: Jane Keefer?~@~Ys Folk Music Index</abc:notes>
 <abc:origin>Scottish, English, Irish; Reel and Country Dance Tune</abc:origin>
 <abc:tempo>"allegro" 1/4=120</abc:tempo>
 <abc:source>Scottish Drummond Castle Manuscript</abc:source>
 <abc:transcriber rdf:resource=
 "" />
 <abc:score rdf:resource=
 "" />

This brief example introduces the basics of ABC Semantics. It basically says, "there is a abc:Tune with a abc:title property of 'Jackey Layton' and stands in a abc:aka relationship (also known as) to a tune called 'Jennie Rock the Cradle'; this tune stands in a abc:fileurl relationship to a thing called and a abc:book relationship (appears in) to a thing called, and so on.

Let's take an RDF browser like Q&D Browser or Tabulator (Firefox browser extension) as an example. The surfer uses the browser to display information about Jackey Layton from his ABC Semantics. The tune is identified with the URI When the surfer types this URI into the navigation bar, the browser dereferences this URI over the Web, asking for content type application/rdf+xml and displays the retrieved information (click here to have the Q&D RDF Browser do this).

1 Introduction: ABC Semantic Basics

The Semantic Web

To a computer, the Web is a flat, boring world, devoid of meaning. This is a pity, as in fact documents on the Web describe real objects and imaginary concepts, and give particular relationships between them. For example, a document might describe a person. The title document to a house describes a house and also the ownership relation with a person. Adding semantics to the Web involves two things: allowing documents which have information in machine-readable forms, and allowing links to be created with relationship values. Only when we have this extra level of semantics will we be able to use computer power to help us exploit the information to a greater extent than our own reading.

- Tim Berners-Lee "W3 future directions" keynote, 1st World Wide Web Conference Geneva, May 1994

ABC and the Semantic Web

The ABC Semantic project is based around the use of machine readable Web pages for (traditional) tunes, tune archives, tune books, collection and other kinds of thing. To achieve this we use the "ABC Semantic vocabulary" to provide a collection of basic terms that can be used in these Web pages. At the heart of the ABC Semantic project is a set of definitions designed to serve as a dictionary of terms that can be used to express claims about the (traditional) music. The initial focus of ABC Semantic has been on the description of instrumental music of the past 300 years traditionally used for dancing in Ireland, Great Britain, and North America. Thus, the aim is to allow the semantics of traditional music pieces—their properties, historical information and musicological traits, commentaries, etc.—to be employed in an improved data structure that allows for myriad research possibilities.

The ABC Semantic Vocabulary definitions presented here are written using a computer language (RDF/OWL) that makes it easy for software to process some basic facts about the terms in the ABC Semantic vocabulary, and consequently about the things described in ABC Semantic documents. A ABC Semantic document, unlike a traditional Web page, can be combined with other ABC Semantic documents to create a unified database of information. ABC Semantics is a Linked Data system, in that it based around the idea of linking together a Web of decentralised descriptions.

The Basic Idea

The basic idea is pretty simple. If people publish information in the ABC Semantic document format, machines will be able to make use of that information. If those files contain "aka" (also known as) references to other such documents (tune title?) in the Web, we will have a machine-friendly version of today's hypertext Web. Computer programs will be able to scutter around a Web of documents designed for machines rather than humans, storing the information they find, keeping a list of "aka" pointers to other documents,and building Web pages and question-answering services based on the harvested documents.

So, what is the 'ABC Semantic document format'? ABC Semantic files are just text documents (well, Unicode documents). They are written in XML syntax, and adopt the conventions of the Resource Description Framework (RDF). In addition, the ABC Semantic vocabulary defines some useful constructs that can appear in ABC Semantic files, alongside other RDF vocabularies defined elsewhere. For example, ABC Semantic defines categories ('classes') such as abc:Tune, abc:Fragment, abc:TuneBook, alongside some handy properties of those things, such as abc:title, abc:orgin, abc:transcriber etc., as well as some useful kinds of relationship that hold between members of these categories. For example, one interesting relationship type is abc:key. This relates something (eg. a abc:Tune) to a abc:score.

The specific contents of the ABC Semantic vocabulary are detailed in this ABC Semantic namespace document. In addition to the ABC vocabulary, one of the most interesting features of a ABC Semantic file is that it can contain "aka" pointers to other ABC Semantic files. This provides a basis for automatic harvesting tools to traverse a Web of interlinked files, and learn about other (traditional) tunes, scores, services, collections...

The remainder of this specification describes how to publish and interpret descriptions such as these on the Web, using RDF/XML for syntax (file format) and terms from ABC Semantics. It introduces a number of categories (RDF classes such as 'Tune') and properties (relationship and attribute types such as 'discography' or 'meter'). Each term definition is provided in both human and machine-readable form, hyperlinked for quick reference.

To do things