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" .