@prefix dc:    <http://purl.org/dc/elements/1.1/> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .
@prefix event: <http://purl.org/NET/c4dm/event.owl#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix note:  <http://purl.org/ontology/chord/note/> .
@prefix chord: <http://purl.org/ontology/chord/> .

note:Gb  a                chord:Note ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "Gb" ;
        chord:modifier    chord:flat ;
        chord:natural     note:G .

note:Gs  a                chord:Note ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "G#" ;
        chord:modifier    chord:sharp ;
        chord:natural     note:G .

note:A  a                 chord:Natural ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "A" .

chord:semitone_interval
        a                 rdf:Property ;
        rdfs:comment      "An interval measured in semitones." ;
        rdfs:domain       chord:SemitoneInterval ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "semitone_interval" ;
        rdfs:range        <http://www.w3.org/2001/XMLSchema#integer> .

chord:maj6  a             chord:Chord ;
        rdfs:comment      "A major sixth chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "maj6" ;
        rdfs:seeAlso      <http://dbpedia.org/resource/Sixth_chord> , <http://dbpedia.org/resource/Major_chord> ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "5"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "3"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "1"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "6"
                          ] .

chord:min  a              chord:Chord ;
        rdfs:comment      "A minor chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "min" ;
        rdfs:seeAlso      <http://dbpedia.org/resource/Minor_chord> ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "5"
                          ] ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "3" ;
                            chord:modifier  chord:flat
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "1"
                          ] .

note:F  a                 chord:Natural ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "F" .

chord:bass  a             rdf:Property ;
        rdfs:comment      "The bass note of the chord (indicates the inversion)." ;
        rdfs:domain       chord:Chord ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "bass" ;
        rdfs:range        chord:Interval .

note:Bb  a                chord:Note ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "Bb" ;
        chord:modifier    chord:flat ;
        chord:natural     note:B .

chord:SemitoneInterval
        a                 owl:Class , rdfs:Class ;
        rdfs:comment      "A semitone interval." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "SemitoneInterval" ;
        rdfs:subClassOf   chord:Interval .

chord:Chord  a            owl:Class , rdfs:Class ;
        rdfs:comment      "Two or more notes played together." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "Chord" .

note:Bs  a                chord:Note ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "B#" ;
        chord:modifier    chord:sharp ;
        chord:natural     note:B .

chord:hdim7  a            chord:Chord ;
        rdfs:comment      "A half-diminished seventh chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "hdim7" ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "7" ;
                            chord:modifier  chord:flat
                          ] ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "5" ;
                            chord:modifier  chord:flat
                          ] ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "3" ;
                            chord:modifier  chord:flat
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "1"
                          ] .

chord:chord  a            rdf:Property ;
        rdfs:comment      "The chord associated with a chord event." ;
        rdfs:domain       chord:ChordEvent ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "chord" ;
        rdfs:range        chord:Chord .

chord:aug  a              chord:Chord ;
        rdfs:comment      "An augmented chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "aug" ;
        rdfs:seeAlso      <http://dbpedia.org/resource/Augmented_chord> ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "5" ;
                            chord:modifier  chord:sharp
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "3"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "1"
                          ] .

chord:sus2  a             chord:Chord ;
        rdfs:comment      "A suspended fourth chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "sus2" ;
        rdfs:seeAlso      <http://dbpedia.org/resource/Suspended_chord> ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "5"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "2"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "1"
                          ] .

note:E  a                 chord:Natural ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "E" .

chord:doublesharp  a      chord:Modifier ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "double sharp" .

chord:doubleflat  a       chord:Modifier ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "double flat" .

note:Db  a                chord:Note ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "Db" ;
        chord:modifier    chord:flat ;
        chord:natural     note:D .

note:Ds  a                chord:Note ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "D#" ;
        chord:modifier    chord:sharp ;
        chord:natural     note:D .

chord:degree  a           rdf:Property ;
        rdfs:comment      "The degree of an interval based on the root of a chord." ;
        rdfs:domain       chord:ScaleInterval ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "degree" ;
        rdfs:range        <http://www.w3.org/2001/XMLSchema#integer> .

chord:seventh  a          chord:Chord ;
        rdfs:comment      "A seventh chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "7" ;
        rdfs:seeAlso      <http://dbpedia.org/resource/Seventh_chord> ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "7" ;
                            chord:modifier  chord:flat
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "5"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "3"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "1"
                          ] .

chord:Modifier  a         owl:Class , rdfs:Class ;
        rdfs:comment      "A modifier applied to a note to change its pitch." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "Modifier" .

chord:maj  a              chord:Chord ;
        rdfs:comment      "A major chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "maj" ;
        rdfs:seeAlso      <http://dbpedia.org/resource/Major_chord> ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "5"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "3"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "1"
                          ] .

chord:modifier  a         rdf:Property ;
        rdfs:comment      "A modification to a note's pitch." ;
        rdfs:domain       [ a            owl:Class ;
                            owl:unionOf  ( chord:Note chord:ScaleInterval )
                          ] ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "modifier" ;
        rdfs:range        chord:Modifier .

chord:min9  a             chord:Chord ;
        rdfs:comment      "A minor ninth chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "min9" ;
        rdfs:seeAlso      <http://dbpedia.org/resource/Minor_chord> ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "5"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "1"
                          ] ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "7" ;
                            chord:modifier  chord:flat
                          ] ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "3" ;
                            chord:modifier  chord:flat
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "9"
                          ] .

note:Fb  a                chord:Note ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "Fb" ;
        chord:modifier    chord:flat ;
        chord:natural     note:F .

note:Fs  a                chord:Note ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "F#" ;
        chord:modifier    chord:sharp ;
        chord:natural     note:F .

chord:Interval  a         owl:Class , rdfs:Class ;
        rdfs:comment      "An interval above the root of a chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "Interval" .

chord:  a                owl:Ontology ;
        dc:date          "2007-09-11" ;
        dc:description   "FIXME\n\t\t" ;
        dc:title         "The Chord Ontology" ;
        owl:versionInfo  "Revision: 0.1" ;
        foaf:maker       <http://chrissutton.org/me> .

chord:interval  a         rdf:Property ;
        rdfs:comment      "An interval from the root which is part of the chord." ;
        rdfs:domain       chord:Chord ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "interval" ;
        rdfs:range        chord:Interval .

note:D  a                 chord:Natural ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "D" .

chord:minmaj7  a          chord:Chord ;
        rdfs:comment      "A minor (major 7th) chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "minmaj7" ;
        rdfs:seeAlso      <http://dbpedia.org/resource/Minor_major_seventh_chord> ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "7"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "5"
                          ] ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "3" ;
                            chord:modifier  chord:flat
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "1"
                          ] .

chord:maj9  a             chord:Chord ;
        rdfs:comment      "A major ninth chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "maj9" ;
        rdfs:seeAlso      <http://dbpedia.org/resource/Major_chord> ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "3"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "9"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "5"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "1"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "7"
                          ] .

chord:dim  a              chord:Chord ;
        rdfs:comment      "A diminished chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "dim" ;
        rdfs:seeAlso      <http://dbpedia.org/resource/Diminished_chord> ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "5" ;
                            chord:modifier  chord:flat
                          ] ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "3" ;
                            chord:modifier  chord:flat
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "1"
                          ] .

chord:flat  a             chord:Modifier ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "flat" .

chord:base_chord  a       rdf:Property ;
        rdfs:comment      "The chord on which this one is based. \n\t\t\tFor example, a C7 chord might have chord:Cmaj as its base chord." ;
        rdfs:domain       chord:Chord ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "base_chord" ;
        rdfs:range        chord:Chord .

note:C  a                 chord:Natural ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "C" .

chord:noChord  a          chord:Chord ;
        rdfs:comment      "Indicates that no chord is played." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "noChord" .

chord:Note  a             owl:Class , rdfs:Class ;
        rdfs:comment      "FIXME" ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "Note" .

chord:natural  a          rdf:Property ;
        rdfs:comment      "The natural from which this note is derived." ;
        rdfs:domain       chord:Note ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "natural" ;
        rdfs:range        chord:Natural .

note:Ab  a                chord:Note ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "Ab" ;
        chord:modifier    chord:flat ;
        chord:natural     note:A .

note:As  a                chord:Note ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "A#" ;
        chord:modifier    chord:sharp ;
        chord:natural     note:A .

chord:ninth  a            chord:Chord ;
        rdfs:comment      "A ninth chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "9" ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "9"
                          ] ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "7" ;
                            chord:modifier  chord:flat
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "5"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "3"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "1"
                          ] .

chord:min7  a             chord:Chord ;
        rdfs:comment      "A minor seventh chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "min7" ;
        rdfs:seeAlso      <http://dbpedia.org/resource/Minor_seventh_chord> ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "7" ;
                            chord:modifier  chord:flat
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "5"
                          ] ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "3" ;
                            chord:modifier  chord:flat
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "1"
                          ] .

chord:without_interval
        a                 rdf:Property ;
        rdfs:comment      "A degree of the scale expected in the chord but not actually present here." ;
        rdfs:domain       chord:Chord ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "without_interval" ;
        rdfs:range        chord:ScaleInterval .

note:Cb  a                chord:Note ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "Cb" ;
        chord:modifier    chord:flat ;
        chord:natural     note:C .

chord:ChordEvent  a       owl:Class , rdfs:Class ;
        rdfs:comment      "A chord being played." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "ChordEvent" ;
        rdfs:subClassOf   event:Event .

note:Cs  a                chord:Note ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "C#" ;
        chord:modifier    chord:sharp ;
        chord:natural     note:C .

chord:root  a             rdf:Property ;
        rdfs:comment      "The root note of the chord." ;
        rdfs:domain       chord:Chord ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "root" ;
        rdfs:range        chord:Note .

note:B  a                 chord:Natural ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "B" .

chord:Natural  a          owl:Class , rdfs:Class ;
        rdfs:comment      "One of the seven natural notes of the Western music system." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "Natural" ;
        rdfs:subClassOf   chord:Note .

chord:maj7  a             chord:Chord ;
        rdfs:comment      "A major seventh chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "maj7" ;
        rdfs:seeAlso      <http://dbpedia.org/resource/Major_seventh_chord> ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "7"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "5"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "3"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "1"
                          ] .

note:Eb  a                chord:Note ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "Eb" ;
        chord:modifier    chord:flat ;
        chord:natural     note:E .

chord:ScaleInterval  a    owl:Class , rdfs:Class ;
        rdfs:comment      "An interval in the root scale, made up of the degree of the scale and optional modifier." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "ScaleInterval" ;
        rdfs:subClassOf   chord:Interval .

note:Es  a                chord:Note ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "E#" ;
        chord:modifier    chord:sharp ;
        chord:natural     note:E .

chord:sharp  a            chord:Modifier ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "sharp" .

chord:sus4  a             chord:Chord ;
        rdfs:comment      "A suspended fourth chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "sus4" ;
        rdfs:seeAlso      <http://dbpedia.org/resource/Suspended_chord> ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "5"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "4"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "1"
                          ] .

chord:min6  a             chord:Chord ;
        rdfs:comment      "A minor sixth chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "min6" ;
        rdfs:seeAlso      <http://dbpedia.org/resource/Sixth_chord> , <http://dbpedia.org/resource/Minor_chord> ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "6"
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "1"
                          ] ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "3" ;
                            chord:modifier  chord:flat
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "5"
                          ] .

note:G  a                 chord:Natural ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "G" .

chord:dim7  a             chord:Chord ;
        rdfs:comment      "A diminished seventh chord." ;
        rdfs:isDefinedBy  chord: ;
        rdfs:label        "dim7" ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "7" ;
                            chord:modifier  chord:doubleflat
                          ] ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "5" ;
                            chord:modifier  chord:flat
                          ] ;
        chord:interval    [ a               chord:ScaleInterval ;
                            chord:degree    "3" ;
                            chord:modifier  chord:flat
                          ] ;
        chord:interval    [ a             chord:ScaleInterval ;
                            chord:degree  "1"
                          ] .
