Chris@0: @base .
Chris@0: @prefix rdf: .
Chris@0: @prefix rdfs: .
Chris@0: @prefix owl: .
Chris@0: @prefix vs: .
Chris@0: @prefix foaf: .
Chris@0: @prefix dc: .
Chris@0: @prefix xsd: .
Chris@0: @prefix tm: .
Chris@0: @prefix : .
Chris@0: @prefix pc: .
Chris@0: @prefix tm: <> .
Chris@0:
Chris@0:
Chris@0: a owl:Ontology;
Chris@0: dc:title "The OMRAS2 Temperament Ontology";
Chris@0: owl:versionInfo "Draft Revision: 1.0";
Chris@0: dc:description """
Chris@0: This ontology can be used to give a detailed description
Chris@0: of the tuning of an instrument.
Chris@0: """;
Chris@0: dc:date "$Date: 2009/11/18 13:54:19 $" .
Chris@0:
Chris@0:
Chris@0: # Status of terms
Chris@0: vs:term_status a owl:AnnotationProperty.
Chris@0:
Chris@0: ###############################################
Chris@0: # Part 1: Core terms defined in this ontology #
Chris@0: ###############################################
Chris@0:
Chris@0: tm:Temperament a owl:Class;
Chris@0: a rdfs:Class;
Chris@0: rdfs:label "Temperament";
Chris@0: rdfs:comment """A temperament specifies a system of
Chris@0: instrument tuning.
Chris@0: Tempering is a way of altering the size of intervals,
Chris@0: such that they no longer based on pure rational intervals.""";
Chris@0: vs:term_status "stable" .
Chris@0:
Chris@0:
Chris@0: tm:RegularTemperament a owl:Class;
Chris@0: a rdfs:Class;
Chris@0: rdfs:subClassOf tm:Temperament;
Chris@0: rdfs:label "Regular Temperament";
Chris@0: rdfs:comment """Regular temperament is a class of temperaments
Chris@0: where each interval is altered by the same amount.""";
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0:
Chris@0: tm:WellTemperament a owl:Class;
Chris@0: a rdfs:Class;
Chris@0: rdfs:subClassOf tm:Temperament;
Chris@0: rdfs:label "Well Temperament";
Chris@0: rdfs:comment """Well temperament represents a system of tuning
Chris@0: where 5ths are tempered by irregular amounts, such that some 5ths
Chris@0: are tempered by an equal amount, while others remain pure.""";
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0:
Chris@0: tm:MeantoneTemperament a owl:Class;
Chris@0: a rdfs:Class;
Chris@0: rdfs:subClassOf tm:Temperament;
Chris@0: rdfs:label "Meantone Temperament";
Chris@0: rdfs:comment """In a meantone temperament, each fifth is narrowed
Chris@0: by the same amount relative to its width in Just Intonation. """;
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0:
Chris@0: tm:RestrictedTemperament a owl:Class;
Chris@0: a rdfs:Class;
Chris@0: rdfs:subClassOf tm:Temperament;
Chris@0: rdfs:label "Restricted Temperament";
Chris@0: rdfs:comment """In restricted temperaments
Chris@0: playing some keys results in poor intonation. """;
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0:
Chris@0: tm:TemperamentDescription a owl:Class;
Chris@0: a rdfs:Class;
Chris@0: rdfs:label "Temperament Description";
Chris@0: rdfs:comment """
Chris@0: A super class of temperament descriptions using,
Chris@0: for example, deviation from equal temperament,
Chris@0: or the circle of fifths.""";
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: #properties
Chris@0:
Chris@0: tm:description
Chris@0: a rdf:Property, owl:ObjectProperty;
Chris@0: rdfs:label "temperament description";
Chris@0: rdfs:comment """ Associates a temperament with its detailed description.""";
Chris@0: rdfs:domain tm:Temperament;
Chris@0: rdfs:range tm:TemperamentDescription;
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: tm:constraint
Chris@0: a rdf:Property, owl:ObjectProperty;
Chris@0: rdfs:label "mathematical constraint";
Chris@0: rdfs:comment """A mathematical constrain on the temperament (This can be described in a named graph or and N3 graph literal).""";
Chris@0: rdfs:domain tm:TemperamentDescription;
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0:
Chris@0: ###############################################
Chris@0: # Part 2: Auxiliary parts required for temperament descriptions #
Chris@0: ###############################################
Chris@0:
Chris@0: tm:Comma a owl:Class;
Chris@0: a rdfs:Class;
Chris@0: rdfs:label "Comma";
Chris@0: rdfs:comment """A comma is a very small interval between
Chris@0: two enharmonic notes tuned in different ways. (Source: Wikipedia) """;
Chris@0: vs:term_status "stable" .
Chris@0:
Chris@0: tm:PitchClass a owl:Class;
Chris@0: a rdfs:Class;
Chris@0: rdfs:label "Pitch Class";
Chris@0: rdfs:comment """The set of all pitches that are a
Chris@0: whole number of octaves apart.""";
Chris@0: vs:term_status "stable" .
Chris@0:
Chris@0: tm:Interval a owl:Class;
Chris@0: a rdfs:Class;
Chris@0: rdfs:label "Interval";
Chris@0: rdfs:comment """Describes the relationship between the
Chris@0: pitches of two notes or pitch classes.""";
Chris@0: vs:term_status "stable" .
Chris@0:
Chris@0: tm:PitchClassInterval a owl:Class;
Chris@0: a rdfs:Class;
Chris@0: rdfs:subClassOf tm:Interval;
Chris@0: rdfs:label "Pitch Class Interval";
Chris@0: rdfs:comment """Describes the relationship between two pitch classes.""";
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0:
Chris@0: tm:FifthInterval a rdf:Class ;
Chris@0: rdfs:subClassOf tm:PitchClassInterval ;
Chris@0: rdfs:label "Fifth Interval";
Chris@0: rdfs:comment """A fifth interval between notes, either
Chris@0: pure or altered. In the case of a pure fifth it is a
Chris@0: frequecy ratio of 3:2. We may use it to represent a
Chris@0: specific interval on the circle of fifths, with a specific
Chris@0: deviation from a pure fifth. """;
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: tm:WolfInterval a rdf:Class ;
Chris@0: rdfs:subClassOf tm:Interval ;
Chris@0: rdfs:label "Wolf Interval";
Chris@0: rdfs:comment """An interval which is regarded as howling may be
Chris@0: called a wolf interval. It is typically a wolf fifth in
Chris@0: meantone temperament. """;
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: ###############################################
Chris@0: # Part 3: Detailed temperament description #
Chris@0: ###############################################
Chris@0:
Chris@0: #description classes
Chris@0:
Chris@0: tm:DeviationsFromEqual a owl:Class;
Chris@0: a rdfs:Class;
Chris@0: rdfs:subClassOf tm:TemperamentDescription;
Chris@0: rdfs:label "Deviations From Equal";
Chris@0: rdfs:comment """A type of temperament description which describes
Chris@0: a tuning in terms of the deviation of each note (in cents)
Chris@0: from the equal temperament.""";
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: tm:CircleOfFifths a owl:Class;
Chris@0: a rdfs:Class;
Chris@0: rdfs:subClassOf tm:TemperamentDescription;
Chris@0: rdfs:label "Circle Of Fifths";
Chris@0: rdfs:comment """We use the circle of fifth to describe a temperament.
Chris@0: Each alteration of a fifth can be expressed in a number of ways,
Chris@0: for example, we may express interval deviations in a particular
Chris@0: comma.""";
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: tm:IntervalDeviation a owl:Class;
Chris@0: a rdfs:Class;
Chris@0: rdfs:label "Interval Deviation (from pure interval)";
Chris@0: rdfs:comment """Represents any type of alteration of a pure interval.""";
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: tm:PitchClassDeviation a owl:Class;
Chris@0: a rdfs:Class;
Chris@0: rdfs:label "Pitch Class Deviation";
Chris@0: rdfs:comment """Deviation in cents of a pitch class from its value in equal temperament.""";
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: tm:DeviationFromFifth a owl:Class;
Chris@0: a rdfs:Class;
Chris@0: rdfs:subClassOf tm:IntervalDeviation;
Chris@0: rdfs:label "Deviation from Fifth";
Chris@0: rdfs:comment """Represent the deviation from a pure fifth interval.""";
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: # properties
Chris@0:
Chris@0: tm:interval
Chris@0: a rdf:Property, owl:ObjectProperty;
Chris@0: rdfs:label "interval";
Chris@0: rdfs:comment """Associates a specific interval on the circle of fifths. """;
Chris@0: rdfs:domain tm:TemperamentDescription;
Chris@0: rdfs:range tm:Interval;
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: tm:deviation
Chris@0: a rdf:Property, owl:ObjectProperty, owl:FunctionalProperty;
Chris@0: rdfs:label "interval deviation";
Chris@0: rdfs:comment """Links an interval with a particular deviation
Chris@0: from pure that characterises the interval.""";
Chris@0: rdfs:domain tm:Interval;
Chris@0: rdfs:range tm:IntervalDeviation;
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: tm:pitch_class_deviation
Chris@0: a rdf:Property, owl:ObjectProperty, owl:FunctionalProperty;
Chris@0: rdfs:label "pitch class deviation";
Chris@0: rdfs:comment """The deviation of a particular pitch class in the described
Chris@0: temperament from its equivalent in equal temperament.""";
Chris@0: rdfs:domain tm:DeviationsFromEqual;
Chris@0: rdfs:range tm:PitchClassDeviation;
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: tm:comma
Chris@0: a rdf:Property, owl:ObjectProperty, owl:FunctionalProperty;
Chris@0: rdfs:label "comma";
Chris@0: rdfs:comment """Links an interval deviation with a type of comma. """;
Chris@0: rdfs:domain tm:IntervalDeviation;
Chris@0: rdfs:range tm:Comma;
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: tm:value
Chris@0: a rdf:Property, owl:DatatypeProperty, owl:FunctionalProperty;
Chris@0: rdfs:label "deviation value";
Chris@0: rdfs:comment """Links an interval deviation to its float value (in cents). """;
Chris@0: rdfs:domain tm:IntervalDeviation, tm:PitchClassDeviation;
Chris@0: rdfs:range xsd:float;
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: # please refine the terminology here :
Chris@0:
Chris@0: tm:lower
Chris@0: a rdf:Property, owl:ObjectProperty, owl:FunctionalProperty;
Chris@0: rdfs:label "lower pitch class";
Chris@0: rdfs:comment """Links an interval a pitch calss which is lower on a scale.""";
Chris@0: rdfs:domain tm:Interval;
Chris@0: rdfs:range tm:PitchClass;
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: tm:upper
Chris@0: a rdf:Property, owl:ObjectProperty, owl:FunctionalProperty;
Chris@0: rdfs:label "upper pitch class";
Chris@0: rdfs:comment """Links an interval with a pitch class which is higher on a scale compared to the other pitch class of this interval.""";
Chris@0: rdfs:domain tm:Interval;
Chris@0: rdfs:range tm:PitchClass;
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: tm:pitch_class
Chris@0: a rdf:Property, owl:ObjectProperty, owl:FunctionalProperty;
Chris@0: rdfs:label "pitch class";
Chris@0: rdfs:comment """The pitch class of a particular pitch class deviation.
Chris@0: This can be used to express deviations from equal temperament.""";
Chris@0: rdfs:domain tm:PitchClassDeviation;
Chris@0: rdfs:range tm:PitchClass;
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: tm:frequency_ratio
Chris@0: a rdf:Property, owl:ObjectProperty, owl:FunctionalProperty;
Chris@0: rdfs:label "frequency ratio";
Chris@0: rdfs:comment """The frequency ratio of the two pitch classes in the interval.
Chris@0: This may be a single value or an expression (given for example in an N3 graph literal).""";
Chris@0: rdfs:domain tm:intarval;
Chris@0: vs:term_status "unstable" .
Chris@0:
Chris@0: ###############################################
Chris@0: # Part 4: Individuals #
Chris@0: ###############################################
Chris@0:
Chris@0: # some named temperaments
Chris@0:
Chris@0: tm:Valotti a tm:WellTemperament ;
Chris@0: rdfs:label "Valotti" .
Chris@0:
Chris@0: tm:Neidhardt a tm:WellTemperament ;
Chris@0: rdfs:label "Neidhardt" .
Chris@0:
Chris@0: tm:Bendeler a tm:WellTemperament ;
Chris@0: rdfs:label "Bendeler" .
Chris@0:
Chris@0: tm:Stanhope a tm:WellTemperament ;
Chris@0: rdfs:label "Stanhope" .
Chris@0:
Chris@0: tm:KirnbergerIII a tm:WellTemperament ;
Chris@0: rdfs:label "KirnbergerIII" .
Chris@0:
Chris@0: tm:YoungII a tm:WellTemperament ;
Chris@0: rdfs:label "YoungII" .
Chris@0:
Chris@0: tm:WerckmeisterIII a tm:WellTemperament ;
Chris@0: rdfs:label "WerckmeisterIII" .
Chris@0:
Chris@0: tm:QuarterCommaMeantone a tm:MeantoneTemperament;
Chris@0: a tm:RegularTemperament ;
Chris@0: rdfs:label "QuarterCommaMeantone" .
Chris@0:
Chris@0: tm:FifthCommaMeantone a tm:MeantoneTemperament;
Chris@0: a tm:RegularTemperament ;
Chris@0: rdfs:label "FifthCommaMeantone" .
Chris@0:
Chris@0: tm:SixthCommaMeantone a tm:MeantoneTemperament;
Chris@0: a tm:RegularTemperament ;
Chris@0: rdfs:label "SixthCommaMeantone" .
Chris@0:
Chris@0:
Chris@0:
Chris@0: # specific commas
Chris@0:
Chris@0: :PythagoreanComma a tm:Comma;
Chris@0: rdfs:label "Pythagorean Comma";
Chris@0: rdfs:comment """One Pythagorean Comma, the difference between
Chris@0: 7 octaves and 12 pure fifths, is 23.5 cents. It is equivalent to the Ditonic comma.""" .
Chris@0:
Chris@0: :DitonicComma a tm:Comma;
Chris@0: rdfs:label "Ditonic Comma";
Chris@0: rdfs:comment "The Ditonic comma is equivalent to the Pythagorean comma." ;
Chris@0: owl:sameAs tm:PythagoreanComma .
Chris@0:
Chris@0: :SyntonicComma a tm:Comma;
Chris@0: rdfs:label "Syntonic Comma";
Chris@0: rdfs:comment """One Syntonic Comma is 21.51 cents. """ .
Chris@0:
Chris@0: :DidymusComma a tm:Comma;
Chris@0: rdfs:label "Didymus Comma";
Chris@0: rdfs:comment "The Didymus is equivalent to the Syntonic comma (21.51 cents)." ;
Chris@0: owl:sameAs tm:SyntonicComma .
Chris@0:
Chris@0: :Diaschisma a tm:Comma;
Chris@0: rdfs:label "Diaschisma";
Chris@0: rdfs:comment """One Diaschisma is 19.55 cents. """ .
Chris@0:
Chris@0: :Schisma a tm:Comma;
Chris@0: rdfs:label "Schisma";
Chris@0: rdfs:comment """One Schisma is 1.95 cents. """ .
Chris@0:
Chris@0:
Chris@0: # individuals of pitch classes (e.g. to describe the circle of fifths)
Chris@0:
Chris@0: pc:A
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "A" ;
Chris@0: rdfs:comment "pitch class A" .
Chris@0:
Chris@0: pc:B
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "B" ;
Chris@0: rdfs:comment "pitch class B" .
Chris@0:
Chris@0: pc:C
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "C" ;
Chris@0: rdfs:comment "pitch class C" .
Chris@0:
Chris@0: pc:D
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "D" ;
Chris@0: rdfs:comment "pitch class D" .
Chris@0:
Chris@0: pc:E
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "E" ;
Chris@0: rdfs:comment "pitch class E" .
Chris@0:
Chris@0: pc:F
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "F" ;
Chris@0: rdfs:comment "pitch class F" .
Chris@0:
Chris@0: pc:G
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "G" ;
Chris@0: rdfs:comment "pitch class G" .
Chris@0:
Chris@0: pc:Ab
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "Ab" ;
Chris@0: rdfs:comment "pitch class Ab" .
Chris@0:
Chris@0: pc:Bb
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "Bb" ;
Chris@0: rdfs:comment "pitch class Bb" .
Chris@0:
Chris@0: pc:Cb
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "Cb" ;
Chris@0: rdfs:comment "pitch class Cb" .
Chris@0:
Chris@0: pc:Db
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "Db" ;
Chris@0: rdfs:comment "pitch class Db" .
Chris@0:
Chris@0: pc:Eb
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "Eb" ;
Chris@0: rdfs:comment "pitch class Eb" .
Chris@0:
Chris@0: pc:Fb
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "Fb" ;
Chris@0: rdfs:comment "pitch class Fb" .
Chris@0:
Chris@0: pc:Gb
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "Gb" ;
Chris@0: rdfs:comment "pitch class Gb" .
Chris@0:
Chris@0: pc:As
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "As" ;
Chris@0: rdfs:comment "pitch class As" .
Chris@0:
Chris@0: pc:Bs
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "Bs" ;
Chris@0: rdfs:comment "pitch class Bs" .
Chris@0:
Chris@0: pc:Cs
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "Cs" ;
Chris@0: rdfs:comment "pitch class Cs" .
Chris@0:
Chris@0: pc:Ds
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "Ds" ;
Chris@0: rdfs:comment "pitch class Ds" .
Chris@0:
Chris@0: pc:Es
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "Es" ;
Chris@0: rdfs:comment "pitch class Es" .
Chris@0:
Chris@0: pc:Fs
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "Fs" ;
Chris@0: rdfs:comment "pitch class Fs" .
Chris@0:
Chris@0: pc:Gs
Chris@0: a tm:PitchClass;
Chris@0: rdfs:label "Gs" ;
Chris@0: rdfs:comment "pitch class Gs" .