@prefix rdf: . @prefix co: . @prefix event: . @prefix foaf: . @prefix mo: . @prefix owl: . @prefix rdfs: . @prefix tl: . @prefix vs: . @prefix xsd: . @prefix : . a owl:Ontology ; rdfs:comment """ Symbolic notation ontology TODO: * Time signature; * Key signature? * Repetitions """@en ; foaf:maker . :Accidental a owl:Class ; rdfs:comment """ An accidental - eg. flat, sharp, natural """ ; rdfs:label "accidental"@en . :Bar a owl:Class ; rdfs:comment """ A bar is an event, grouping a bunch of sub_event - eg. note events. Relationships such as Allen's meets hold for two consecutive bars. """@en ; rdfs:label "bar"@en ; rdfs:subClassOf event:Event . :DottedDoubleWholeNote a owl:Class ; rdfs:label "dotted double whole note"@en-us ; rdfs:subClassOf :NoteEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :DottedDoubleWhole ; owl:onProperty event:time ] . :DottedEighthNote a owl:Class ; rdfs:label "dotted eighth note"@en-us ; rdfs:subClassOf :NoteEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :DottedEighth ; owl:onProperty event:time ] . :DottedHalfNote a owl:Class ; rdfs:label "dotted half note"@en-us ; rdfs:subClassOf :NoteEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :DottedHalf ; owl:onProperty event:time ] . :DottedQuarterNote a owl:Class ; rdfs:label "dotted quarter note"@en-us ; rdfs:subClassOf :NoteEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :DottedQuarter ; owl:onProperty event:time ] . :DottedSixteenthNote a owl:Class ; rdfs:label "dotted sixteenth note"@en-us ; rdfs:subClassOf :NoteEvent ; owl:equivalentlass [ a owl:Restriction ; owl:allValuesFrom :DottedSixteenth ; owl:onProperty event:time ] . :DottedThirtySecondNote a owl:Class ; rdfs:label "dotted thirty second note"@en-us ; rdfs:subClassOf :NoteEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :DottedThirtysecond ; owl:onProperty event:time ] . :DottedWholeNote a owl:Class ; rdfs:label "dotted whole note"@en-us ; rdfs:subClassOf :NoteEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :DottedWhole ; owl:onProperty event:time ] . :DoubleWhole a owl:Class ; rdfs:label "double whole"@en ; rdfs:subClassOf :ScoreInterval ; owl:equivalentClass [ a owl:Restriction ; owl:hasValue "2"^^xsd:float ; owl:onProperty tl:duration ] . :DoubleWholeNote a owl:Class ; rdfs:label "breve"@en-uk, "double ronde"@fr, "double whole"@en-us ; rdfs:subClassOf :NoteEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :DoubleWhole ; owl:onProperty event:time ] . :DoubleWholeRest a owl:Class ; rdfs:label "breve rest"@en-uk, "double whole rest"@en-us ; rdfs:subClassOf :RestEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :DoubleWhole ; owl:onProperty event:time ] . :Eighth a owl:Class ; rdfs:label "eighth"@en ; rdfs:subClassOf :ScoreInterval ; owl:equivalentClass [ a owl:Restriction ; owl:hasValue "0.125"^^xsd:float ; owl:onProperty tl:duration ] . :EighthNote a owl:Class ; rdfs:label "croche"@fr, "eighth note"@en-us, "quaver"@en-uk ; rdfs:subClassOf :NoteEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :Eighth ; owl:onProperty event:time ] . :EighthRest a owl:Class ; rdfs:label "eighth rest"@en-us, "quaver rest"@en-uk ; rdfs:subClassOf :RestEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :Eighth ; owl:onProperty event:time ] . :Half a owl:Class ; rdfs:label "half"@en ; rdfs:subClassOf :ScoreInterval ; owl:equivalentClass [ a owl:Restriction ; owl:hasValue "0.5"^^xsd:float ; owl:onProperty tl:duration ] . :HalfNote a owl:Class ; rdfs:label "blanche"@fr, "half note"@en-us, "minim"@en-uk ; rdfs:subClassOf :NoteEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :Half ; owl:onProperty event:time ] . :HalfRest a owl:Class ; rdfs:label "half rest"@en-us, "minim rest"@en-uk ; rdfs:subClassOf :RestEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :Half ; owl:onProperty event:time ] . :Longa a owl:Class ; rdfs:label "longa"@en ; rdfs:subClassOf :ScoreInterval ; owl:equivalentClass [ a owl:Restriction ; owl:hasValue "4"^^xsd:float ; owl:onProperty tl:duration ] . :LongaRest a owl:Class ; rdfs:label "longa"@en ; rdfs:subClassOf :RestEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :Longa ; owl:onProperty event:time ] . :Motif a owl:Class ; rdfs:comment """ A classification of a set of events forming a motif. It can either be several note events, a set of bars, etc. """ ; rdfs:label "motif"@en ; rdfs:subClassOf event:Event . :Note a owl:Class ; rdfs:comment """ A note. Either A, B, C, D, E, F or G. """@en ; rdfs:label "note"@en . :NoteEvent a owl:Class ; rdfs:comment """ Classifying a particular region of a score' timeline (or another concept, depending on the context), as holding a note. Several subclasses are defined, implicitly specifying (through a DL restriction) the duration of the event. """@en ; rdfs:label "note event"@en ; rdfs:subClassOf event:Event ; owl:disjointWith :RestEvent . :Octave a owl:Class . :Pitch a owl:Class ; rdfs:comment """ The pitch of a note. A pitch holds information about the modifiers (sharp, flat, natural), the note, and the octave. """@en ; rdfs:label "pitch"@en . :Quarter a owl:Class ; rdfs:label "quarter"@en ; rdfs:subClassOf :ScoreInterval ; owl:equivalentClass [ a owl:Restriction ; owl:hasValue "0.25"^^xsd:float ; owl:onProperty tl:duration ] . :QuarterNote a owl:Class ; rdfs:label "crotchet"@en-uk, "noire"@fr, "quarter note"@en-us ; rdfs:subClassOf :NoteEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :Quarter ; owl:onProperty event:time ] . :QuarterRest a owl:Class ; rdfs:label "crotchet rest"@en-uk, "quarter rest"@en-us ; rdfs:subClassOf :RestEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :Quarter ; owl:onProperty event:time ] . :RestEvent a owl:Class ; rdfs:comment """ Classifying a particular region as holding a rest (an interval of silence). Subclasses of this event are restriced to a particular length, as note events. """@en ; rdfs:label "rest event"@en ; rdfs:subClassOf event:Event ; owl:disjointWith :NoteEvent . :ScoreInterval a owl:Class ; rdfs:comment """ An interval defined on a score time line (defined canonically in number of beats). """@en ; rdfs:label "score interval"@en ; rdfs:subClassOf tl:AbstractInterval . :ScoreTimeLine a owl:Class ; rdfs:comment """ A class of timelines backing scores, or other symbolic representations. """@en ; rdfs:label "score timeline"@en ; rdfs:subClassOf tl:AbstractTimeLine . :Sixteenth a owl:Class ; rdfs:label "sixteenth"@en ; rdfs:subClassOf :ScoreInterval ; owl:equivalentClass [ a owl:Restriction ; owl:hasValue "0.0625"^^xsd:float ; owl:onProperty tl:duration ] . :SixteenthNote a owl:Class ; rdfs:label "double croche"@fr, "semiquaver"@en-uk, "sixteenth note"@en-us ; rdfs:subClassOf :NoteEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :Sixteenth ; owl:onProperty event:time ] . :SixteenthRest a owl:Class ; rdfs:label "semiquaver rest"@en-uk, "sixteenth rest"@en-us ; rdfs:subClassOf :RestEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :Sixteenth ; owl:onProperty event:time ] . :Slur a owl:Class ; rdfs:label "slur"@en-uk ; rdfs:subClassOf event:Event . :ThirtySecondNote a owl:Class ; rdfs:label "demisemiquaver"@en-uk, "thirtysecond note"@en-us, "triple croche"@fr ; rdfs:subClassOf :NoteEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :Thirtysecond ; owl:onProperty event:time ] . :ThirtySecondRest a owl:Class ; rdfs:label "demisemiquaver rest"@en-uk, "thirtysecond rest"@en-us ; rdfs:subClassOf :RestEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :Thirtysecond ; owl:onProperty event:time ] . :Thirtysecond a owl:Class ; rdfs:label "thirtysecond"@en ; rdfs:subClassOf :ScoreInterval ; owl:equivalentClass [ a owl:Restriction ; owl:hasValue "0.03125"^^xsd:float ; owl:onProperty tl:duration ] . :Tie a owl:Class ; rdfs:label "tie"@en-uk ; rdfs:subClassOf event:Event . :Timbre a owl:Class . :Voice a owl:Class ; rdfs:comment """ This is stolen from Christophe Rhodes' GSharp. A grouping of events forming a `voice'. """ ; rdfs:label "voice"@en ; rdfs:subClassOf event:Event . :Whole a owl:Class ; rdfs:label "whole"@en ; rdfs:subClassOf :ScoreInterval ; owl:equivalentClass [ a owl:Restriction ; owl:hasValue "1"^^xsd:float ; owl:onProperty tl:duration ] . :WholeNote a owl:Class ; rdfs:label "ronde"@fr, "semibreve"@en-uk, "whole note"@en-us ; rdfs:subClassOf :NoteEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :Whole ; owl:onProperty event:time ] . :WholeRest a owl:Class ; rdfs:label "semibreve rest"@en-uk, "whole rest"@en-us ; rdfs:subClassOf :RestEvent ; owl:equivalentClass [ a owl:Restriction ; owl:allValuesFrom :Whole ; owl:onProperty event:time ] . :a a :Note . :accidental a owl:FunctionalProperty, owl:ObjectProperty ; rdfs:domain :Note ; rdfs:label "accidental"@en ; rdfs:range :Accidental . :b a :Note . :c a :Note . :d a :Note . :double_flat a :Accidental . :double_natural a :Accidental . :double_sharp a :Accidental . :e a :Note . :f a :Note . :flat a :Accidental . :g a :Note . :natural a :Accidental . :note a owl:FunctionalProperty, owl:ObjectProperty ; rdfs:domain :Pitch ; rdfs:label "note"@en ; rdfs:range :Note . :octave a owl:DatatypeProperty ; rdfs:domain :Note ; rdfs:label "octave"@en ; rdfs:range xsd:int . :pitch a owl:FunctionalProperty, owl:ObjectProperty ; rdfs:domain :NoteEvent ; rdfs:label "pitch"@en ; rdfs:range :Pitch ; rdfs:subPropertyOf event:factor . :sharp a :Accidental . :timbre a owl:ObjectProperty ; rdfs:domain :NoteEvent ; rdfs:label "timbre"@en ; rdfs:range :Timbre ; rdfs:subPropertyOf event:factor .