@prefix : <http://geographicknowledge.de/vocab/AMMO#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <http://geographicknowledge.de/vocab/AMMO> .

<http://geographicknowledge.de/vocab/AMMO> rdf:type owl:Ontology ;
                                            rdfs:comment "This ontology  can be used to classify datasets and values which represent extensive measurements. It is based on the theory laid out in the article \"The Semantics of Extensive Quantities within Geographic Information\". Quantities are single values, quantity domains are values domains with sum and order operations. Measurements functions are controlled by quantities and measure other quantities. Extensive measurements are defined as additive and subtractive with respect to their domains and ranges."@en .

#################################################################
#    Object Properties
#################################################################

###  http://geographicknowledge.de/vocab/AMMO#hasDenominator
:hasDenominator rdf:type owl:ObjectProperty ;
                rdfs:subPropertyOf owl:topObjectProperty .


###  http://geographicknowledge.de/vocab/AMMO#hasDenominatorD
:hasDenominatorD rdf:type owl:ObjectProperty ;
                 rdfs:subPropertyOf owl:topObjectProperty .


###  http://geographicknowledge.de/vocab/AMMO#hasNumerator
:hasNumerator rdf:type owl:ObjectProperty ;
              rdfs:subPropertyOf owl:topObjectProperty .


###  http://geographicknowledge.de/vocab/AMMO#hasNumeratorD
:hasNumeratorD rdf:type owl:ObjectProperty ;
               rdfs:subPropertyOf owl:topObjectProperty .


###  http://geographicknowledge.de/vocab/AMMO#hasControl
:hasControl rdf:type owl:ObjectProperty ;
            rdfs:domain :Measurement ;
            rdfs:range :Quantity .


###  http://geographicknowledge.de/vocab/AMMO#hasControlD
:hasControlD rdf:type owl:ObjectProperty ;
             rdfs:domain :MeasurementFunction ;
             rdfs:range :QuantityDomain .


###  http://geographicknowledge.de/vocab/AMMO#hasElement
:hasElement rdf:type owl:ObjectProperty ;
            owl:inverseOf :isElementOf .


###  http://geographicknowledge.de/vocab/AMMO#hasMeasure
:hasMeasure rdf:type owl:ObjectProperty ;
            rdfs:domain :Measurement ;
            rdfs:range :Quantity .


###  http://geographicknowledge.de/vocab/AMMO#hasMeasureD
:hasMeasureD rdf:type owl:ObjectProperty ;
             rdfs:domain :MeasurementFunction ;
             rdfs:range :QuantityDomain .


###  http://geographicknowledge.de/vocab/AMMO#isElementOf
:isElementOf rdf:type owl:ObjectProperty .


#################################################################
#    Classes
#################################################################

###  http://geographicknowledge.de/vocab/geoAMMO#Extensive
<http://geographicknowledge.de/vocab/geoAMMO#Extensive> rdf:type owl:Class .


###  http://geographicknowledge.de/vocab/AMMO#Amount
:Amount rdf:type owl:Class ;
        owl:equivalentClass [ owl:intersectionOf ( :Quantity
                                                   [ rdf:type owl:Restriction ;
                                                     owl:onProperty :isElementOf ;
                                                     owl:someValuesFrom :AmountD
                                                   ]
                                                 ) ;
                              rdf:type owl:Class
                            ] ;
        rdfs:subClassOf :Quantity ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :isElementOf ;
                          owl:someValuesFrom :AmountD
                        ] ;
        owl:disjointWith :Magnitude ;
        rdfs:comment "Mereological quantity." .


###  http://geographicknowledge.de/vocab/AMMO#AmountD
:AmountD rdf:type owl:Class ;
         rdfs:subClassOf :QuantityDomain ,
                         [ rdf:type owl:Restriction ;
                           owl:onProperty :hasElement ;
                           owl:someValuesFrom :Amount
                         ] ;
         owl:disjointWith :MagnitudeD ;
         rdfs:comment "Domain of mereological quantities." .


###  http://geographicknowledge.de/vocab/AMMO#AmountOfAmountM
:AmountOfAmountM rdf:type owl:Class ;
                 owl:equivalentClass [ owl:intersectionOf ( :Measurement
                                                            [ rdf:type owl:Restriction ;
                                                              owl:onProperty :hasControl ;
                                                              owl:someValuesFrom :Amount
                                                            ]
                                                            [ rdf:type owl:Restriction ;
                                                              owl:onProperty :hasMeasure ;
                                                              owl:someValuesFrom :Amount
                                                            ]
                                                          ) ;
                                       rdf:type owl:Class
                                     ] ,
                                     [ owl:intersectionOf ( :Measurement
                                                            [ rdf:type owl:Restriction ;
                                                              owl:onProperty :isElementOf ;
                                                              owl:someValuesFrom :AmountOfAmountMF
                                                            ]
                                                          ) ;
                                       rdf:type owl:Class
                                     ] ;
                 rdfs:subClassOf :Measurement ,
                                 [ rdf:type owl:Restriction ;
                                   owl:onProperty :isElementOf ;
                                   owl:someValuesFrom :AmountOfAmountMF
                                 ] ;
                 rdfs:comment "A measurement from some amount to another amount" .


###  http://geographicknowledge.de/vocab/AMMO#AmountOfAmountMF
:AmountOfAmountMF rdf:type owl:Class ;
                  owl:equivalentClass [ owl:intersectionOf ( :MeasurementFunction
                                                             [ rdf:type owl:Restriction ;
                                                               owl:onProperty :hasControlD ;
                                                               owl:someValuesFrom :AmountD
                                                             ]
                                                             [ rdf:type owl:Restriction ;
                                                               owl:onProperty :hasMeasureD ;
                                                               owl:someValuesFrom :AmountD
                                                             ]
                                                           ) ;
                                        rdf:type owl:Class
                                      ] ;
                  rdfs:subClassOf :MeasurementFunction ;
                  owl:disjointWith :MagnitudeOfAmountMF ;
                  rdfs:comment "A measurement function where both the the domain and range are populated by amounts." .


###  http://geographicknowledge.de/vocab/AMMO#ArchimedeanMagnitude
:ArchimedeanMagnitude rdf:type owl:Class ;
                      owl:equivalentClass [ owl:intersectionOf ( :Quantity
                                                                 [ rdf:type owl:Restriction ;
                                                                   owl:onProperty :isElementOf ;
                                                                   owl:someValuesFrom :ArchimedeanMagnitudeD
                                                                 ]
                                                               ) ;
                                            rdf:type owl:Class
                                          ] ;
                      rdfs:subClassOf :Magnitude ,
                                      [ rdf:type owl:Restriction ;
                                        owl:onProperty :isElementOf ;
                                        owl:someValuesFrom :ArchimedeanMagnitudeD
                                      ] ;
                      owl:disjointWith :ProportionalMagnitude ;
                      rdfs:comment "Quantities that are sizes, extents, or effects of amounts in terms of a unit." .


###  http://geographicknowledge.de/vocab/AMMO#ArchimedeanMagnitudeD
:ArchimedeanMagnitudeD rdf:type owl:Class ;
                       rdfs:subClassOf :MagnitudeD ,
                                       [ rdf:type owl:Restriction ;
                                         owl:onProperty :hasElement ;
                                         owl:someValuesFrom :ArchimedeanMagnitude
                                       ] ;
                       owl:disjointWith :ProportionalMagnitudeD ;
                       rdfs:comment "Domain of quantities that are sizes, extents, or effects of amounts in terms of a unit." .


###  http://geographicknowledge.de/vocab/AMMO#ExtensiveM
:ExtensiveM rdf:type owl:Class ;
            owl:equivalentClass [ owl:intersectionOf ( :Measurement
                                                       [ rdf:type owl:Restriction ;
                                                         owl:onProperty :isElementOf ;
                                                         owl:someValuesFrom :ExtensiveMF
                                                       ]
                                                     ) ;
                                  rdf:type owl:Class
                                ] ;
            rdfs:subClassOf :Measurement ,
                            [ rdf:type owl:Restriction ;
                              owl:onProperty :isElementOf ;
                              owl:someValuesFrom :ExtensiveMF
                            ] ;
            rdfs:comment "A measurement where both the argument and value are additive and subtractive with respect to other measurements of the same kind (i.e. those that stem from the same measurement function)." .


###  http://geographicknowledge.de/vocab/AMMO#ExtensiveMF
:ExtensiveMF rdf:type owl:Class ;
             owl:equivalentClass [ owl:intersectionOf ( <http://geographicknowledge.de/vocab/geoAMMO#Extensive>
                                                        :MeasurementFunction
                                                      ) ;
                                   rdf:type owl:Class
                                 ] ;
             rdfs:subClassOf :MeasurementFunction ;
             owl:disjointWith :IntensiveMF ;
             rdfs:comment "A measurement function where additive and subtractive relations in the domain are preserved in the range."@en .


###  http://geographicknowledge.de/vocab/AMMO#IntensiveM
:IntensiveM rdf:type owl:Class ;
            owl:equivalentClass [ owl:intersectionOf ( :Measurement
                                                       [ rdf:type owl:Restriction ;
                                                         owl:onProperty :isElementOf ;
                                                         owl:someValuesFrom :IntensiveMF
                                                       ]
                                                     ) ;
                                  rdf:type owl:Class
                                ] ;
            rdfs:subClassOf :Measurement ,
                            [ rdf:type owl:Restriction ;
                              owl:onProperty :isElementOf ;
                              owl:someValuesFrom :IntensiveMF
                            ] ;
            rdfs:comment "A measurement that is not an extensive relation." .


###  http://geographicknowledge.de/vocab/AMMO#IntensiveMF
:IntensiveMF rdf:type owl:Class ;
             owl:equivalentClass [ owl:intersectionOf ( :MeasurementFunction
                                                        [ rdf:type owl:Class ;
                                                          owl:complementOf <http://geographicknowledge.de/vocab/geoAMMO#Extensive>
                                                        ]
                                                      ) ;
                                   rdf:type owl:Class
                                 ] ;
             rdfs:subClassOf :MeasurementFunction ;
             rdfs:comment "A measurement function that is intensive, i.e. not extensive." .


###  http://geographicknowledge.de/vocab/AMMO#Magnitude
:Magnitude rdf:type owl:Class ;
           owl:equivalentClass [ owl:intersectionOf ( :Quantity
                                                      [ rdf:type owl:Restriction ;
                                                        owl:onProperty :isElementOf ;
                                                        owl:someValuesFrom :MagnitudeD
                                                      ]
                                                    ) ;
                                 rdf:type owl:Class
                               ] ;
           rdfs:subClassOf :Quantity ,
                           [ rdf:type owl:Restriction ;
                             owl:onProperty :isElementOf ;
                             owl:someValuesFrom :MagnitudeD
                           ] ;
           rdfs:comment "Quantities that denote a degree of greatness, i.e. a size or effect." .


###  http://geographicknowledge.de/vocab/AMMO#MagnitudeD
:MagnitudeD rdf:type owl:Class ;
            rdfs:subClassOf :QuantityDomain ,
                            [ rdf:type owl:Restriction ;
                              owl:onProperty :hasElement ;
                              owl:someValuesFrom :Magnitude
                            ] ;
            rdfs:comment "Domain of quantities that denote a degree of greatness, i.e. a size or effect." .


###  http://geographicknowledge.de/vocab/AMMO#MagnitudeOfAmountM
:MagnitudeOfAmountM rdf:type owl:Class ;
                    owl:equivalentClass [ owl:intersectionOf ( :Measurement
                                                               [ rdf:type owl:Restriction ;
                                                                 owl:onProperty :hasControl ;
                                                                 owl:someValuesFrom :Amount
                                                               ]
                                                               [ rdf:type owl:Restriction ;
                                                                 owl:onProperty :hasMeasure ;
                                                                 owl:someValuesFrom :Magnitude
                                                               ]
                                                             ) ;
                                          rdf:type owl:Class
                                        ] ,
                                        [ owl:intersectionOf ( :Measurement
                                                               [ rdf:type owl:Restriction ;
                                                                 owl:onProperty :isElementOf ;
                                                                 owl:someValuesFrom :MagnitudeOfAmountMF
                                                               ]
                                                             ) ;
                                          rdf:type owl:Class
                                        ] ;
                    rdfs:subClassOf :Measurement ,
                                    [ rdf:type owl:Restriction ;
                                      owl:onProperty :isElementOf ;
                                      owl:someValuesFrom :MagnitudeOfAmountMF
                                    ] ;
                    rdfs:comment "A measurement from an amount to a magnitude." .


###  http://geographicknowledge.de/vocab/AMMO#MagnitudeOfAmountMF
:MagnitudeOfAmountMF rdf:type owl:Class ;
                     owl:equivalentClass [ owl:intersectionOf ( :MeasurementFunction
                                                                [ rdf:type owl:Restriction ;
                                                                  owl:onProperty :hasControlD ;
                                                                  owl:someValuesFrom :AmountD
                                                                ]
                                                                [ rdf:type owl:Restriction ;
                                                                  owl:onProperty :hasMeasureD ;
                                                                  owl:someValuesFrom :MagnitudeD
                                                                ]
                                                              ) ;
                                           rdf:type owl:Class
                                         ] ;
                     rdfs:subClassOf :MeasurementFunction ;
                     rdfs:comment "A measurement function with an amount as control and a magnitude as measure" .


###  http://geographicknowledge.de/vocab/AMMO#Measurement
:Measurement rdf:type owl:Class ;
             rdfs:subClassOf [ owl:intersectionOf ( [ rdf:type owl:Restriction ;
                                                      owl:onProperty :hasControl ;
                                                      owl:someValuesFrom :Quantity
                                                    ]
                                                    [ rdf:type owl:Restriction ;
                                                      owl:onProperty :hasMeasure ;
                                                      owl:someValuesFrom :Quantity
                                                    ]
                                                  ) ;
                               rdf:type owl:Class
                             ] ,
                             [ rdf:type owl:Restriction ;
                               owl:onProperty :isElementOf ;
                               owl:someValuesFrom :MeasurementFunction
                             ] ;
             owl:disjointWith :Quantity ;
             rdfs:comment "A relation which may be written as a tuple (x,m,y) where x,y are quantities and m refers to a measurement function such that x(m)=y." .


###  http://geographicknowledge.de/vocab/AMMO#MeasurementFunction
:MeasurementFunction rdf:type owl:Class ;
                     rdfs:subClassOf [ owl:intersectionOf ( [ rdf:type owl:Restriction ;
                                                              owl:onProperty :hasControlD ;
                                                              owl:someValuesFrom :QuantityDomain
                                                            ]
                                                            [ rdf:type owl:Restriction ;
                                                              owl:onProperty :hasMeasureD ;
                                                              owl:someValuesFrom :QuantityDomain
                                                            ]
                                                          ) ;
                                       rdf:type owl:Class
                                     ] ;
                     owl:disjointWith :QuantityDomain ;
                     rdfs:comment "A function that takes some quantity and yields another quantity." .


###  http://geographicknowledge.de/vocab/AMMO#ProportionalMagnitude
:ProportionalMagnitude rdf:type owl:Class ;
                       owl:equivalentClass [ owl:intersectionOf ( :Quantity
                                                                  [ rdf:type owl:Restriction ;
                                                                    owl:onProperty :hasDenominator ;
                                                                    owl:someValuesFrom :Magnitude
                                                                  ]
                                                                  [ rdf:type owl:Restriction ;
                                                                    owl:onProperty :hasNumerator ;
                                                                    owl:someValuesFrom :Magnitude
                                                                  ]
                                                                ) ;
                                             rdf:type owl:Class
                                           ] ,
                                           [ owl:intersectionOf ( :Quantity
                                                                  [ rdf:type owl:Restriction ;
                                                                    owl:onProperty :isElementOf ;
                                                                    owl:someValuesFrom :ProportionalMagnitudeD
                                                                  ]
                                                                ) ;
                                             rdf:type owl:Class
                                           ] ;
                       rdfs:subClassOf :Magnitude ,
                                       [ rdf:type owl:Restriction ;
                                         owl:onProperty :isElementOf ;
                                         owl:someValuesFrom :ProportionalMagnitudeD
                                       ] ;
                       rdfs:comment "Magnitude that denote proportions between Archimedean magnitudes, similar to how scalars may multiply vectors." .


###  http://geographicknowledge.de/vocab/AMMO#ProportionalMagnitudeD
:ProportionalMagnitudeD rdf:type owl:Class ;
                        owl:equivalentClass [ owl:intersectionOf ( :MagnitudeD
                                                                   [ rdf:type owl:Restriction ;
                                                                     owl:onProperty :hasDenominatorD ;
                                                                     owl:someValuesFrom :MagnitudeD
                                                                   ]
                                                                   [ rdf:type owl:Restriction ;
                                                                     owl:onProperty :hasNumeratorD ;
                                                                     owl:someValuesFrom :MagnitudeD
                                                                   ]
                                                                 ) ;
                                              rdf:type owl:Class
                                            ] ;
                        rdfs:subClassOf :MagnitudeD ,
                                        [ rdf:type owl:Restriction ;
                                          owl:onProperty :hasElement ;
                                          owl:someValuesFrom :ProportionalMagnitude
                                        ] ;
                        rdfs:comment "Domain of magnitudes that denote proportions between Archimedean magnitudes, similar to how scalars may multiply vectors." .


###  http://geographicknowledge.de/vocab/AMMO#Quantity
:Quantity rdf:type owl:Class ;
          rdfs:subClassOf [ rdf:type owl:Restriction ;
                            owl:onProperty :isElementOf ;
                            owl:someValuesFrom :QuantityDomain
                          ] ;
          rdfs:comment "That by which the absolute or relative greatness of things and stuff are contained." .


###  http://geographicknowledge.de/vocab/AMMO#QuantityDomain
:QuantityDomain rdf:type owl:Class ;
                rdfs:subClassOf [ rdf:type owl:Restriction ;
                                  owl:onProperty :hasElement ;
                                  owl:someValuesFrom :Quantity
                                ] .


###  Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi
