The Tonality Ontology

Latest Version :
http://purl.org/ontology/tonality/
Published :
25th March 2008
Authors :
David Pastor Escuredo
OMRAS2 Project Logo


Table of Contents

  1. Introduction
    1. Acknowledgements
    2. Namespaces
  2. Overview of Terms
  3. Ontology Terms
    1. Classes
    2. Properties
    3. Individuals

Introduction

This document describes the first draft specification of the Tonality Ontology developed in the Centre for Digital Music, Queen Mary, University of London. It has been created as part of the OMRAS2 project and is aimed to give high-level and low-level descriptors for tonal content in RDF.

The ontology is still in the testing stage and it has been only used by Henry to publish key features extracted from Vamp Plugins in RDF format providing additional information of the harmonic expansion of the key. The specification is available as part of the motools project on Sourceforge.

All feedback is welcome and if you would like to propose changes or additions to the ontology, the best place to do so is on the Music Ontology mailing list. If you prefer, please feel free to contact the author of the document.

Acknowledgements

The author would like to thank the Centre for Digital Music and the Music Ontology Community for the necessary support to develop this work. This specification has been implemented in hopes of being a useful tool in the music research community and future discussions and contributions will be included in following versions of the document.

The design and layout of this ontology document is based on the Music Ontology and FOAF Vocabulary specification documents.

Namespaces

Several namespaces will be assumed to have been defined for the remainder of this document. These are as follows :

PrefixXML NamespaceDescription
tonality http://purl.org/ontology/tonality/ The Tonality Ontology
chord http://purl.org/ontology/chord/ The OMRAS2 Chord Ontology
timeline http://purl.org/NET/c4dm/timeline.owl# The TimeLine ontology
event http://purl.org/NET/c4dm/event.owl# The Event ontology
mo http://purl.org/ontology/mo/ The Music Ontology
tuning http://purl.org/ontology/tuning/ Tuning systems description

Overview of Terms

An alphabetical index of the ontology terms, divided into classes, properties and individuals. All the terms are hyperlinked to their detailed description for quick reference.

Classes: | Degree | HarmonicFunction | HeptatonicScale | Interval | IntervalClass | Key | Mode | PentatonicScale | Pitch | PitchClass | Scale | TonalEvent | Tonality |

Properties: | borrowed_chord | cents | close_interval | comparable_ratio | degree | degree_name | degree_position | enharmonic | frequency | from_mode | harmonic_function | interval | interval_class | inversion | just_cents | mode | note | num_degrees | octave | octaves | on_degree | owned_chord | pitch | pitch_class | ratio | scale | scale_steps | scale_type | semitones | steps | strength | tonic | tuning |

Individuals: | interval/fifth_dis | interval/fifth_per | interval/fourth_aug | interval/fourth_per | interval/ic0 | interval/ic1 | interval/ic2 | interval/ic3 | interval/ic4 | interval/ic5 | interval/ic6 | interval/ninth_min | interval/octave | interval/second_maj | interval/second_min | interval/seventh_maj | interval/seventh_min | interval/sixth_maj | interval/sixth_min | interval/third_maj | interval/third_min | interval/tritone | interval/tritone_meantone | interval/unison | interval/wolf_fifth_meantone | key/Abmajor | key/Abminor | key/Amajor | key/Aminor | key/Asmajor | key/Asminor | key/Bbmajor | key/Bbminor | key/Bmajor | key/Bminor | key/Bsmajor | key/Bsminor | key/Cmajor | key/Cminor | key/Csmajor | key/Csminor | key/Dbmajor | key/Dbminor | key/Dmajor | key/Dminor | key/Dsmajor | key/Dsminor | key/Ebmajor | key/Ebminor | key/Emajor | key/Eminor | key/Esmajor | key/Esminor | key/Fmajor | key/Fminor | key/Fsmajor | key/Fsminor | key/Gbmajor | key/Gbminor | key/Gmajor | key/Gminor | key/Gsmajor | key/Gsminor | mode/aeolian | mode/dorian | mode/ionian | mode/locrian | mode/lydian | mode/mixolydian | mode/phrygian | scale/diatonic | scale/harmonic_minor | scale/major | scale/majorA | scale/minor | scale/pentatonic_maj | scale/pentatonic_min |

Ontology Terms

Classes

Class: to:Degree - unstable -

Degree - Degrees define the ordenation and then the functionality of the tonal structures. This class is defined by a bunch of properties that specifies all the data related to the tonal structure (keys, scales...) as a resource.

[back to top]


in-range-of:degree
in-domain-of:harmonic_function borrowed_chord owned_chord frequency pitch pitch_class note degree_position degree_name interval

Class: to:HeptatonicScale - deprecated -

HeptatonicScale - A particular scale subclass that represents scale-types formed by 7 notes.

[back to top]


sub-class-of:Scale

Class: to:Interval - unstable -

Interval - This class represents the distance between two notes supporting different tuning systems. This is the basic piece of the ontology and have a bunch of optional properties to full specify an interval depending the situation and musical system. Well known intervals can be declared as individuals while its flexibility allows to create an interval as needed.

[back to top]


in-range-of:interval close_interval enharmonic inversion
in-domain-of:strength octaves close_interval enharmonic inversion interval_class just_cents cents tuning comparable_ratio ratio scale_steps semitones steps

Class: to:IntervalClass - unstable -

IntervalClass - This class is an extension thougth for atonal music representation. Interval class represents the distance between two unordered pitch classes where octave, enharmonic and in inversional equivalency is assumed. There are then 7 classes (0-6) representing distance from the minimum to the maximum values possible within the octave. Note: may be an interval subclass?

[back to top]


in-range-of:interval_class
in-domain-of:semitones steps

Class: to:Key - unstable -

Key - Key is defined as the centre of gravity origined by a chord progession and relying on a diatonic scale. Key is intrinsically related to the key signature as the key signature represent the most stable notes in the score. Although tonality can not be reduced to the establishing of a main key and modulations from key to key, keys are still an important resource to decribe tonal music.

[back to top]


in-domain-of:tonic scale degree

Class: to:Mode - unstable -

Mode - Modes represents each of the different cyclic sequences of intervals defined by a scale-type.

[back to top]


in-range-of:mode from_mode
in-domain-of:scale on_degree

Class: to:PentatonicScale - deprecated -

PentatonicScale - A particular scale subclass that represents scale-types formed by 5 notes.

[back to top]


sub-class-of:Scale

Class: to:Pitch - unstable -

Pitch - Pitch is a frequency represented by a musical note. Pitch generalizes the note transcription but may be dependent of the octave if the tuning is not TET. A C in the 3rd octave may not be equivalent to a C in the 5th octave.

[back to top]


in-range-of:pitch
in-domain-of:frequency octave pitch_class note

Class: to:PitchClass - unstable -

PitchClass - Another generalization where octave, enharmonic and inversion equivalency is again assumed. So pitches are equivalent from octave to octave and wrapped into a pitch class. Note: Should be a pitch subclass?

[back to top]


Class: to:Scale - unstable -

Scale - Representation of musical scales in two senses:
Scale-type: an abstract structure of intervals associated to specific degrees. Eg: diatonic scale
Scale: scale-type at a certain pitch. Eg: A major scale.

[back to top]


in-range-of:scale scale_type
in-domain-of:tonic from_mode scale_type num_degrees degree interval

Class: to:TonalEvent - deprecated -

TonalEvent - Describing a specific tonal event within the tonal region. This is conceived for meaningful and specific tonal events within the tonal region that are not significant to change the tonal region itself. This may be useless anyway...

[back to top]


sub-class-of:event:Event

Class: to:Tonality - unstable -

Tonality - Describing the tonality as a tonal region in the signal timeline. Tonality is a Event subclass so the declaration of a Tonality defines a region in the timeline which serves as resource for tonal information which can be:
-high-level descriptors like scales or keys
-mathematical tonal models which gives a geometrical representation in a tonal space with psychological ordenation instead of acoustic

[back to top]


in-domain-of:mode scale
sub-class-of:event:Event

Properties

Property: to:borrowed_chord - unstable -

borrowed_chord - Some chords owned by a key (infered for the underlying scale) are not very stable so some alterations are normally present to obtain more stability like the V degree of the relative minor key. Some degrees substitute its seventh owned interval by some other seventh interval from the parallel key giving a borrowed chord but still diatonic (altered chords came from non diatonic intervals). An important case is also the alteration of the dominant degree of the minor key to obtain a tritone producing the harmonic minor scale (can be seen as a chord borrowed from the major relative key).

Domain: Degree
Range: chord:Chord

Property: to:cents - unstable -

cents - Cents measurement: 1200×log2(f2/f1). This value is used to compare the size of intervals.

Domain: Interval
Range: xsd:decimal

Property: to:close_interval - unstable -

close_interval - In equal temperaments open intervals (bigger than a octave) are indeed a close interval and n octaves. This property relates an open interval like minor ninth with its close version minor second.

Domain: Interval
Range: Interval

Property: to:comparable_ratio - unstable -

comparable_ratio - Closest ratio in a Just Intonation tuning for a given equally-tempered interval. (This is actually very optional).
Domain: Interval
Range:

Property: to:degree - unstable -

degree - Binds a degree resource to a structure.
Domain: Scale Key
Range: Degree

Property: to:degree_name - unstable -

degree_name - Property that expresses the name of the degree which normally will convey implicitly its harmonic functionality. We declare a specific property for this instead of using any other name property.

Domain: Degree
Range:

Property: to:degree_position - unstable -

degree_position - Position of the degree within the scale which will determine its functionality.
Domain: Degree
Range: xsd:integer

Property: to:enharmonic - unstable -

enharmonic - Two intervals are enharmonic when they express the same pitch distance but as different general intervals, so they have the same number of semitones but different number of scale steps. Enharmony is a general musical property which states that two different musical elements has the same acoustic value.

Domain: Interval
Range: Interval

Property: to:frequency - unstable -

frequency - Express the real frequency of the pitch.
Domain: Pitch Degree
Range: xsd:decimal

Property: to:from_mode - unstable -

from_mode - We can consider a scale as one of the mode of other scale. Eg. The minor scale is indeed the sixth mode of a diatonic scale or we can talk about a Dorian scale.

Domain: Scale
Range: Mode

Property: to:harmonic_function - unstable -

harmonic_function - Declared to relate a HarmonicFunction individual or resource (so far it is not used).
Domain: Degree
Range: HarmonicFunction

Property: to:interval - unstable -

interval - This property allows to link an interval to some other structure. So far we define intervals for Scale, Degree (which link it to a Scale or a Key) and Chord.

Domain: chord:Chord Degree Scale
Range: Interval

Property: to:interval_class - unstable -

interval_class - The Interval Class (0-6) which the interval belongs to according to the semitones property
Domain: Interval
Range: IntervalClass

Property: to:inversion - unstable -

inversion - This property links an interval with its inversion. Major second is the inversion of minor seventh.
Domain: Interval
Range: Interval

Property: to:just_cents - unstable -

just_cents - Just cents does not represent the real cents of the interval but the cents value of the comparable ratio for a equal-tempered interval. This is very optional as well in interval definition.

Domain: Interval
Range: xsd:decimal

Property: to:mode - unstable -

mode - Associates a mode.
Domain: Tonality
Range: Mode

Property: to:note - unstable -

note - Note corresponding to the degree if there is a tonic specification. We can express it with a note individual or with a pitch class which can be more accurate indeed. Elements of the class Pitch could also use this property (and the octave one).

Domain: Pitch Degree
Range: chord:Note

Property: to:num_degrees - unstable -

num_degrees - Number of steps in a scale.
Domain: Scale
Range: xsd:integer

Property: to:octave - unstable -

octave - Specify the concrete pitch in a particular octave. Eg: A in the 3rd octave.
Domain: Pitch
Range: xsd:integer

Property: to:octaves - unstable -

octaves - Number of octaves comprised in an open interval.
Domain: Interval
Range: xsd:integer

Property: to:on_degree - unstable -

on_degree - Defines a scale degree as root of the mode.
Domain: Mode
Range: xsd:integer

Property: to:owned_chord - unstable -

owned_chord - This property allows to associate chords to each of the degrees of the key describing the harmonic properties of the tonality. We will associate 7th chords as standard, but any chord with the same functionality would be valid as well. Other chords will be then altered ones borrowed from a key not actually present or produced by the use of a chromatic interval (to avoid a tritone for example). See borrowed_chord

Domain: Degree
Range: chord:Chord

Property: to:pitch - unstable -

pitch - Associates the degree to a total pitch which is determined by a note in a specific octave. This is only necessary when the tuning system is not equally tempered so pitches can not be easily infered from octave to octave (non-octave equivalency).

Domain: Degree
Range: Pitch

Property: to:pitch_class - unstable -

pitch_class - This property expresses the same information than note except for the difference we consider between note and pitch class. This should be better considered.

Domain: Pitch Degree
Range: chord:PitchClass

Property: to:ratio - unstable -

ratio - Measure of intervals in Just Intonation system as a ratio of the frequencies (simple rationale numbers).
Domain: Interval
Range:

Property: to:scale - unstable -

scale - Binds a scale to other structures.
Domain: Key Tonality Mode
Range: Scale

Property: to:scale_steps - unstable -

scale_steps - Steps of the scale comprised in the interval. This is used to characterized general intervals and relate specific intervals to the a certain degree.

Domain: Interval
Range: xsd:integer

Property: to:scale_type - unstable -

scale_type - Scales comprises scale-types (what is actually a scale) and scales understood as scale at a certain pitch). We can define a scale by its scale_type and a tonic. Eg: A major scale is the major scale (scale_type) with A as tonic.

Domain: Scale
Range: Scale

Property: to:semitones - unstable -

semitones - Convenience measure in EDO systems. Treated as distance it doesn't represent the real tonal distance but a frequency distance.
Domain: IntervalClass Interval
Range: xsd:integer

Property: to:steps - unstable -

steps - Measure for intervals in equally temperaments
Domain: IntervalClass Interval
Range: xsd:decimal

Property: to:strength - unstable -

strength - This property expresses the stability of an interval given its tuning. Although is very difficult to state that a certain interval is stable or not.

Domain: Interval
Range:

Property: to:tonic - unstable -

tonic - Sets the tonic of a key or scale if the first degree is not bound to a note.
Domain: Scale Key
Range: chord:Note

Property: to:tuning - unstable -

tuning - The tuning system in which we consider the interval. Through this property we do not restric the interval definition to an equally temperament but to any temperament and division of the octave.

Domain: Interval
Range: tuning:TuningSystem

Individuals

Individual: interval/fifth_dis -

disminished 5th - Chromatic disminished 5th 12 EDO.
Class: to:Interval

Individual: interval/fifth_per -

perfect fifth - Diatonic perfect fifth in 12 EDO.
Class: to:Interval

Individual: interval/fourth_aug -

augmented 4th - Chromatic augmented fourth 12 EDO.
Class: to:Interval

Individual: interval/fourth_per -

perfect 4th - Diatonic perfect fourth 12 EDO.
Class: to:Interval

Individual: interval/ic0 -

Interval class 0 - The interval class 0 for unison an octave.
Class: to:IntervalClass

Individual: interval/ic1 -

Interval class 1 - minor second and major seventh and enharmonics.
Class: to:IntervalClass

Individual: interval/ic2 -

Interval class 2 - major second and minor seventh and enharmonics.
Class: to:IntervalClass

Individual: interval/ic3 -

Interval class 3 - minor third and major sixth and enharmonics.
Class: to:IntervalClass

Individual: interval/ic4 -

Interval class 4 - major third and minor sixth and enharmonics.
Class: to:IntervalClass

Individual: interval/ic5 -

Interval class 5 - perfect fourth and fifth and enharmonics.
Class: to:IntervalClass

Individual: interval/ic6 -

Interval class 6 - augmented fourth and disminished fifth and enharmonics.
Class: to:IntervalClass

Individual: interval/ninth_min -

minor 9th - Open interval of a minor second in the next octave (12-EDO)
Class: to:Interval

Individual: interval/octave -

octave - Octave.
Class: to:Interval

Individual: interval/second_maj -

major 2nd - Diatonic major 2nd in 12 EDO.
Class: to:Interval

Individual: interval/second_min -

minor 2nd - Diatonic minor 2nd in 12 EDO.
Class: to:Interval

Individual: interval/seventh_maj -

major 7th - Diatonic major seventh in 12 EDO.
Class: to:Interval

Individual: interval/seventh_min -

minor 7th - Diatonic minor seventh in 12 EDO.
Class: to:Interval

Individual: interval/sixth_maj -

major 6th - Diatonic major sixth in 12 EDO.
Class: to:Interval

Individual: interval/sixth_min -

minor 6th - Diatonic minor sixth in 12 EDO.
Class: to:Interval

Individual: interval/third_maj -

major 3rd - Diatonic major 3rd in 12 EDO.
Class: to:Interval

Individual: interval/third_min -

minor 3rd - Diatonic minor 3rd in 12 EDO.
Class: to:Interval

Individual: interval/tritone -

tritone - Interval composed by 3 semitones in 12 EDO. Main interval of dissonance in Western music and really important in Harmony as it defines a the function of the dominant degree (which should be major with minor seventh).
Class: to:Interval

Individual: interval/tritone_meantone -

tritone meantone - Tritone in Meantone Intonation measured in one octave. In Meantone temperament it just equivalent to a augmented fourth and not a to a disminished 5th
Class: to:Interval

Individual: interval/unison -

unison - Unison interval.
Class: to:Interval

Individual: interval/wolf_fifth_meantone -

wolf fifth - Really dissonat interval produced in meantone temperament. The appearance of this interval in the meantone tuning was the reason to avoid it. The Just Intonation system produces a howl of 35.683 cents sharper than a just fifth which makes it really augmented and dissonant.
Class: to:Interval

Individual: key/Abmajor -

A flat major key - Description of the A flat major key.
Class: to:Key

Individual: key/Abminor -

A flat minor key - Description of the A flat minor key.
Class: to:Key

Individual: key/Amajor -

A major key - Description of the A major key.
Class: to:Key

Individual: key/Aminor -

A minor key - Description of the A minor key.
Class: to:Key

Individual: key/Asmajor -

A sharp major key - Description of the A sharp major key.
Class: to:Key

Individual: key/Asminor -

A sharp minor key - Description of the A sharp minor key.
Class: to:Key

Individual: key/Bbmajor -

B flat major key - Description of the B flat major key.
Class: to:Key

Individual: key/Bbminor -

B flat minor key - Description of the B flat minor key.
Class: to:Key

Individual: key/Bmajor -

B major key - Description of the B major key.
Class: to:Key

Individual: key/Bminor -

B minor key - Description of the B minor key.
Class: to:Key

Individual: key/Bsmajor -

B sharp major key - Description of the B sharp major key.
Class: to:Key

Individual: key/Bsminor -

B sharp minor key - Description of the B sharp minor key.
Class: to:Key

Individual: key/Cmajor -

C major key - Description of the C major key.
Class: to:Key

Individual: key/Cminor -

C minor key - Description of the C minor key.
Class: to:Key

Individual: key/Csmajor -

C sharp major key - Description of the C sharp major key.
Class: to:Key

Individual: key/Csminor -

C sharp minor key - Description of the C sharp minor key.
Class: to:Key

Individual: key/Dbmajor -

D flat major key - Description of the D flat major key.
Class: to:Key

Individual: key/Dbminor -

D flat minor key - Description of the D flat minor key.
Class: to:Key

Individual: key/Dmajor -

D major key - Description of the D major key.
Class: to:Key

Individual: key/Dminor -

D minor key - Description of the D minor key.
Class: to:Key

Individual: key/Dsmajor -

D sharp major key - Description of the D sharp major key.
Class: to:Key

Individual: key/Dsminor -

D sharp minor key - Description of the D sharp minor key.
Class: to:Key

Individual: key/Ebmajor -

E flat major key - Description of the E flat major key.
Class: to:Key

Individual: key/Ebminor -

E flat minor key - Description of the E flat minor key.
Class: to:Key

Individual: key/Emajor -

E major key - Description of the E major key.
Class: to:Key

Individual: key/Eminor -

E minor key - Description of the E minor key.
Class: to:Key

Individual: key/Esmajor -

E sharp major key - Description of the E sharp major key.
Class: to:Key

Individual: key/Esminor -

E flat minor key - Description of the E flat minor key.
Class: to:Key

Individual: key/Fmajor -

F major key - Description of the F major key.
Class: to:Key

Individual: key/Fminor -

F minor key - Description of the F minor key.
Class: to:Key

Individual: key/Fsmajor -

F sharp major key - Description of the F sharp major key.
Class: to:Key

Individual: key/Fsminor -

F sharp minor key - Description of the F sharp minor key.
Class: to:Key

Individual: key/Gbmajor -

G flat major key - Description of the G flat major key.
Class: to:Key

Individual: key/Gbminor -

G flat minor key - Description of the G flat minor key.
Class: to:Key

Individual: key/Gmajor -

G major key - Description of the G major key.
Class: to:Key

Individual: key/Gminor -

G minor key - Description of the G minor key.
Class: to:Key

Individual: key/Gsmajor -

G sharp major key - Description of the G sharp major key.
Class: to:Key

Individual: key/Gsminor -

G sharp minor key - Description of the G sharp minor key.
Class: to:Key

Individual: mode/aeolian -

Aeolian mode - Sixth mode of a diatonic scale (minor scale).
Class: to:Mode

Individual: mode/dorian -

Dorian mode - Second mode of a diatonic scale.
Class: to:Mode

Individual: mode/ionian -

Ionian mode - First mode of a diatonic scale and equivalent to a major scale.
Class: to:Mode

Individual: mode/locrian -

Locrian mode - Seventh mode of a diatonic scale. The main characteristic is the disminished fifth which makes this mode very intestable and used in Jazz for example.
Class: to:Mode

Individual: mode/lydian -

Lydian mode - Fourth mode of a diatonic scale.
Class: to:Mode

Individual: mode/mixolydian -

Mixolydian mode - Fifth mode of a diatonic scale.
Class: to:Mode

Individual: mode/phrygian -

Phrygian mode - Third mode of a diatonic scale.
Class: to:Mode

Individual: scale/diatonic -

Diatonic scale - Diatonic scale-type
Class: to:Scale

Individual: scale/harmonic_minor -

Harmonic Minor scale - The Harmonic Minor scale alters the seventh degree which is a major seventh and is a very used scale as it provides a dominant major with seventh minor.
Class: to:Scale

Individual: scale/major -

Major scale - Major scale which is the diatonic scale in the Ionian mode
Class: to:Scale

Individual: scale/majorA -

A major scale - Major scale in A.
Class: to:Scale

Individual: scale/minor -

Natural Minor scale - The Natural Minor scale which is the minor relative of the major scale and the Eloian mode of the diatonic scale. It is a very stable scale but it lacks a major seventh
Class: to:Scale

Individual: scale/pentatonic_maj -

Pentatonic major scale - The Pentatonic major scale.
Class: to:PentatonicScale

Individual: scale/pentatonic_min -

Pentatonic minor scale - Pentatonic minor scale.
Class: to:PentatonicScale