@prefix : <https://w3id.org/citydata/part1/v1/> .
@prefix cc: <http://creativecommons.org/ns#> .
@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#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix time: <http://www.w3.org/2006/time#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@base <https://w3id.org/citydata/part1/v1/> .

<https://w3id.org/citydata/part1/v1/ChangePattern> rdf:type owl:Ontology ;
                                                    owl:imports :CorePattern ;
                                                    cc:license "http://creativecommons.org/licenses/by/4.0/" ;
                                                    dcterms:alternative "CDM Change Pattern" ;
                                                    dcterms:creator "Kenneth Vaughn" ,
                                                                    "Mark Fox" ,
                                                                    "Megan Katsumi" ;
                                                    dcterms:modified "2026-02-12"^^xsd:date ;
                                                    dcterms:title "Information technology - City data model - Part 1: Foundation level concepts - Change Pattern" ;
                                                    vann:preferredNamespacePrefix "cdm1" ;
                                                    vann:preferredNamespaceUri "https://w3id.org/citydata/part1/v1/" ;
                                                    rdfs:comment "The prior version of this ontology used a different ontology IRI. This update remains semantically consistent with the version adopted as ISO 5087-1:2023." ;
                                                    owl:priorVersion <https://standards.iso.org/iso-iec/5087/-1/ed-1/en/ontology/Change/> ;
                                                    owl:versionIRI <https://w3id.org/citydata/part1/v1/ChangePattern/r3.0/> ;
                                                    owl:versionInfo "1.3.0" ;
                                                    skos:definition "This ontology specifies the foundation-level concepts related to the change pattern of the city data model." .

#################################################################
#    Object Properties
#################################################################

###  https://w3id.org/citydata/part1/v1/ChangeObjectProperty
:ChangeObjectProperty rdf:type owl:ObjectProperty ;
                      rdfs:subPropertyOf :FoundationalCdmObjectProperty ;
                      skos:definition "Added for organizational purposes, to identify all change object properties defined in the City Data Model." .


###  https://w3id.org/citydata/part1/v1/existsAt
:existsAt rdf:type owl:ObjectProperty ;
          rdfs:subPropertyOf :ChangeObjectProperty ;
          rdf:type owl:FunctionalProperty ;
          rdfs:range time:TemporalEntity ;
          skos:definition "Identifies the TemporalEntity that reflects the time Instant or Interval during which a Thing is valid." .


###  https://w3id.org/citydata/part1/v1/hasFirstManifestation
:hasFirstManifestation rdf:type owl:ObjectProperty ;
                       rdfs:subPropertyOf :ChangeObjectProperty ;
                       rdf:type owl:FunctionalProperty ;
                       rdfs:domain :Manifestation ;
                       rdfs:range :Manifestation ;
                       skos:definition "Identifies the First Manifestation that is related to a particular Manifestation (i.e., for some snapshot of an object, it identifies the first such snapshot of the object)." .


###  https://w3id.org/citydata/part1/v1/hasLatestManifestation
:hasLatestManifestation rdf:type owl:ObjectProperty ;
                        rdfs:subPropertyOf :ChangeObjectProperty ;
                        rdf:type owl:FunctionalProperty ;
                        rdfs:domain :FirstManifestation ;
                        rdfs:range :Manifestation ;
                        skos:definition "Identifies the most recent Manifestation that is related to a particular FirstManifestation (i.e., for some snapshot of an object, it identifies the most recent snapshot of the object)." .


###  https://w3id.org/citydata/part1/v1/hasManifestation
:hasManifestation rdf:type owl:ObjectProperty ;
                  rdfs:subPropertyOf :ChangeObjectProperty ;
                  rdfs:range :Manifestation ;
                  skos:definition "identifies a Manifestation that captures the instantiation of variant attributes of an object at some time (i.e., a temporal snapshot of some individual). The individual is related to all manifestations in a series via the hasManifestation property." .


###  https://w3id.org/citydata/part1/v1/hasNextManifestation
:hasNextManifestation rdf:type owl:ObjectProperty ;
                      rdfs:subPropertyOf :ChangeObjectProperty ;
                      rdf:type owl:FunctionalProperty ;
                      rdfs:domain :Manifestation ;
                      rdfs:range :Manifestation ;
                      skos:definition "Identifies the immediate successor Manifestation (i.e. the subsequent snapshot of the object)." .


###  https://w3id.org/citydata/part1/v1/hasPreviousManifestation
:hasPreviousManifestation rdf:type owl:ObjectProperty ;
                          rdfs:subPropertyOf :ChangeObjectProperty ;
                          owl:inverseOf :hasNextManifestation ;
                          skos:definition "Identifies the immediate prior Manifestation (i.e. the prior snapshot of the object)." .


###  https://w3id.org/citydata/part1/v1/precedesManifestation
:precedesManifestation rdf:type owl:ObjectProperty ;
                       rdfs:subPropertyOf :ChangeObjectProperty ;
                       rdfs:domain :FirstManifestation ;
                       rdfs:range [ rdf:type owl:Class ;
                                    owl:intersectionOf ( :Manifestation
                                      [ rdf:type owl:Class ;
                                        owl:complementOf :FirstManifestation
                                      ]
                                    )
                                  ] ;
                       skos:definition "Identifies all subsequent Manifestations that follow a FirstManifestation." .


#################################################################
#    Annotation Properties
#################################################################

###  https://w3id.org/citydata/part1/v1/isInvariant
:isInvariant rdf:type owl:AnnotationProperty ;
             rdfs:range xsd:boolean ;
             rdfs:comment "Identifies whether a property is to be interpreted as invariant (i.e., its value is not subject to change over time)."@en .


#################################################################
#    Classes
#################################################################

###  https://w3id.org/citydata/part1/v1/ChangeThing
:ChangeThing rdf:type owl:Class ;
             rdfs:subClassOf :FoundationalCdmThing ;
             rdfs:comment "Added for organizational purposes to group the classes defined in the Change portion of the CDM." .


###  https://w3id.org/citydata/part1/v1/FirstManifestation
:FirstManifestation rdf:type owl:Class ;
                    rdfs:subClassOf :Manifestation ,
                                    [ rdf:type owl:Restriction ;
                                      owl:onProperty :precedesManifestation ;
                                      owl:allValuesFrom [ rdf:type owl:Class ;
                                        owl:intersectionOf ( :Manifestation
                                          [ rdf:type owl:Class ;
                                            owl:complementOf :FirstManifestation
                                          ]
                                        )
                                      ]
                                    ] ,
                                    [ rdf:type owl:Restriction ;
                                      owl:onProperty :hasLatestManifestation ;
                                      owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
                                      owl:onClass :Manifestation
                                    ] ;
                    skos:definition "The first recorded manifestation of an individual. No prior manifestations (in time) exist for the individual. It is a subclassOf Manifestation." .


###  https://w3id.org/citydata/part1/v1/Manifestation
:Manifestation rdf:type owl:Class ;
               rdfs:subClassOf :ChangeThing ,
                               [ rdf:type owl:Restriction ;
                                 owl:onProperty :existsAt ;
                                 owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
                                 owl:onClass time:TemporalEntity
                               ] ,
                               [ rdf:type owl:Restriction ;
                                 owl:onProperty :hasFirstManifestation ;
                                 owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
                                 owl:onClass :Manifestation
                               ] ,
                               [ rdf:type owl:Restriction ;
                                 owl:onProperty :hasNextManifestation ;
                                 owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
                                 owl:onClass :Manifestation
                               ] ,
                               [ rdf:type owl:Restriction ;
                                 owl:onProperty :hasPreviousManifestation ;
                                 owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
                                 owl:onClass :Manifestation
                               ] ;
               skos:definition "Manifestations may be interpreted as “snapshots” of an object at some point in time. This enables the representation of changing attributes of an object, without losing information about its past values/relationships. The properties of the class must then be identified as properties that are (and aren't) subject to change, in order to distinguish between the static and dynamic aspects of a particular entity." .
