diff --git a/spec/conceptual-model/UML/attributes.uml b/spec/conceptual-model/UML/attributes.uml index 6769cf50..6da6055e 100644 --- a/spec/conceptual-model/UML/attributes.uml +++ b/spec/conceptual-model/UML/attributes.uml @@ -1,6 +1,8 @@ -classDiagram +@startuml class AttributesStore { dataType = ATTRIBUTES } EntityStore <|.. AttributesStore + +@enduml \ No newline at end of file diff --git a/spec/conceptual-model/UML/core.uml b/spec/conceptual-model/UML/core.uml index d067107b..06fc7579 100644 --- a/spec/conceptual-model/UML/core.uml +++ b/spec/conceptual-model/UML/core.uml @@ -1,4 +1,4 @@ -classDiagram +@startuml class CoordinateReferenceSystem { title: String @@ -50,13 +50,15 @@ classDiagram valueType: ValueType } GeoPackage o-- "3..n" CoordinateReferenceSystem - EntityStore ..> CoordinateReferenceSystem - EntityStore ..> "0..1" BoundingBox - BoundingBox ..> CoordinateReferenceSystem + EntityStore --> CoordinateReferenceSystem + EntityStore --> "0..1" BoundingBox + BoundingBox --> CoordinateReferenceSystem GeoPackage o-- "*" EntityStore: contents EntityStore o-- "*" Entity EntityStore o-- EntityType EntityType o-- "*" AttributeType - Entity ..> EntityType + Entity --> EntityType Entity o-- "*" Attribute - Attribute ..> AttributeType \ No newline at end of file + Attribute --> AttributeType + +@enduml diff --git a/spec/conceptual-model/UML/extensions.uml b/spec/conceptual-model/UML/extensions.uml index e63b9f70..c2bbc81d 100644 --- a/spec/conceptual-model/UML/extensions.uml +++ b/spec/conceptual-model/UML/extensions.uml @@ -1,4 +1,4 @@ -classDiagram +@startuml class Extension { title: String @@ -13,4 +13,6 @@ classDiagram GeoPackage o-- "*" Extension Extension --> "*" EntityStore Extension --> "*" AttributeType - EntityStore o-- "*" AttributeType \ No newline at end of file + EntityStore o-- "*" AttributeType + +@enduml diff --git a/spec/conceptual-model/UML/features.uml b/spec/conceptual-model/UML/features.uml index f441015d..5c7e6df4 100644 --- a/spec/conceptual-model/UML/features.uml +++ b/spec/conceptual-model/UML/features.uml @@ -1,4 +1,4 @@ -classDiagram +@startuml class GeometryAttributeType { valueType = Geometry @@ -43,17 +43,18 @@ classDiagram class FeatureStore { dataType = features } - EntityStore <|.. FeatureStore - EntityType <|.. FeatureType - Entity <|.. Feature + EntityStore <|-- FeatureStore + EntityType <|-- FeatureType + Entity <|-- Feature FeatureStore o-- FeatureType AttributeType <|-- GeometryAttributeType FeatureStore o-- "*" Feature: features GeometryAttributeType --o FeatureType - GeometryAttributeType ..> CoordinateReferenceSystem : crs - Feature ..> FeatureType - Attribute ..> AttributeType - GeometryAttribute ..> GeometryAttributeType + GeometryAttributeType --> CoordinateReferenceSystem : crs + Feature --> FeatureType + Attribute --> AttributeType + GeometryAttribute --> GeometryAttributeType Feature o-- GeometryAttribute: geometry Attribute <|-- GeometryAttribute - \ No newline at end of file + +@enduml \ No newline at end of file diff --git a/spec/conceptual-model/UML/metadata.uml b/spec/conceptual-model/UML/metadata.uml index d7d12790..1a65b9af 100644 --- a/spec/conceptual-model/UML/metadata.uml +++ b/spec/conceptual-model/UML/metadata.uml @@ -1,4 +1,4 @@ -classDiagram +@startuml class MetadataEntityStore { } @@ -56,11 +56,12 @@ classDiagram MetadataEntityStore o-- "*" MetadataReference MetadataEntityStore --|> EntityStore Attribute <|-- MetadataAttribute - Metadata ..> MetadataAttribute + Metadata --> MetadataAttribute MetadataAttributeType --|> AttributeType Metadata --|> Entity - MetadataAttribute ..> MetadataAttributeType + MetadataAttribute --> MetadataAttributeType MetadataAttribute *-- MetadataDocument EntityType <|-- MetadataEntityType - Metadata ..> MetadataEntityType - MetadataEntityType ..> MetadataAttributeType + Metadata --> MetadataEntityType + MetadataEntityType --> MetadataAttributeType +@enduml diff --git a/spec/conceptual-model/UML/rte.uml b/spec/conceptual-model/UML/rte.uml index cbf424f2..f6e45001 100644 --- a/spec/conceptual-model/UML/rte.uml +++ b/spec/conceptual-model/UML/rte.uml @@ -1,4 +1,4 @@ -classDiagram +@startuml class RelationStore { type: RelationName @@ -14,6 +14,7 @@ classDiagram GeoPackage o-- "*" RelationStore EntityStore <|-- RelationStore - RelationStore ..> "2" EntityStore + RelationStore --> "2" EntityStore RelationStore o-- Relation - Relation ..> "2" Entity + Relation --> "2" Entity +@enduml diff --git a/spec/conceptual-model/UML/schema.uml b/spec/conceptual-model/UML/schema.uml index c92b6122..6f438e7a 100644 --- a/spec/conceptual-model/UML/schema.uml +++ b/spec/conceptual-model/UML/schema.uml @@ -1,4 +1,5 @@ -classDiagram +@startuml + class SchemaStore { } class AttributeType { @@ -29,7 +30,9 @@ classDiagram GeoPackage o-- "*" SchemaStore EntityStore <|-- SchemaStore SchemaStore o-- "*" Constraint - Constraint ..> AttributeType - Constraint ..> EntityStore + Constraint --> AttributeType + Constraint --> EntityStore SchemaStore o-- "*" EntityStore - SchemaStore o-- "*" AttributeType \ No newline at end of file + SchemaStore o-- "*" AttributeType + +@enduml diff --git a/spec/conceptual-model/UML/tgce.uml b/spec/conceptual-model/UML/tgce.uml index 632146d1..eea55a2a 100644 --- a/spec/conceptual-model/UML/tgce.uml +++ b/spec/conceptual-model/UML/tgce.uml @@ -1,4 +1,4 @@ -classDiagram +@startuml class TiledGriddedCoverage { id: Integer @@ -36,4 +36,6 @@ classDiagram TilePyramid <|-- TiledGriddedCoverage Tile <|-- CoverageTile TiledGriddedCoverage o-- "*" CoverageTile - TilePyramid o-- "*" Tile \ No newline at end of file + TilePyramid o-- "*" Tile + +@enduml diff --git a/spec/conceptual-model/annex-a.adoc b/spec/conceptual-model/annex-a.adoc deleted file mode 100644 index 066ae3ff..00000000 --- a/spec/conceptual-model/annex-a.adoc +++ /dev/null @@ -1,19 +0,0 @@ -[appendix] -:appendix-caption: Annex -== Conformance Class Abstract Test Suite (Normative) - -[NOTE] -Ensure that there is a conformance class for each requirements class and a test for each requirement (identified by requirement name and number) - -=== Conformance Class A - -==== Requirement 1 -[cols=">20h,<80d",width="100%"] -|=== -|Test id: |/conf/conf-class-a/req-name-1 -|Requirement: |/req/req-class-a/req-name-1 -|Test purpose: | Verify that... -|Test method: | Inspect... -|=== - -==== Requirement 2 diff --git a/spec/conceptual-model/annex-bibliography.adoc b/spec/conceptual-model/annex-bibliography.adoc deleted file mode 100644 index a3465dff..00000000 --- a/spec/conceptual-model/annex-bibliography.adoc +++ /dev/null @@ -1,25 +0,0 @@ -[appendix] -:appendix-caption: Annex -[[Bibliography]] -= Bibliography - -[NOTE] -.Example Bibliography (Delete this note). -=============================================== -The TC has approved Springer LNCS as the official document citation type. - -Springer LNCS is widely used in technical and computer science journals and other publications - -* For citations in the text please use square brackets and consecutive numbers: [1], [2], [3] - -– Actual References: - -[n] Journal: Author Surname, A.: Title. Publication Title. Volume number, Issue number, Pages Used (Year Published) - -[n] Web: Author Surname, A.: Title, http://Website-Url - -=============================================== - -((( Example ))) -[[OGC2015]] -[1] OGC: OGC Testbed 12 Annex B: Architecture. (2015). diff --git a/spec/conceptual-model/annex-history.adoc b/spec/conceptual-model/annex-history.adoc index 3a2024ed..9b25b9f8 100644 --- a/spec/conceptual-model/annex-history.adoc +++ b/spec/conceptual-model/annex-history.adoc @@ -9,4 +9,6 @@ |2021-06-21 |0.2 |Jeff Yutzler |all |code complete |2021-07-31 |0.3 |Amy Youmans |all |review for clarity |2021-08-18 |0.4 |Carl Reed |1, 7 |review for clarity and consistency +|2022-04-27 |0.5 |Gobe Hobona |8 |consistency +|2022-04-28 |0.51 |Irina Bastrakova |4 |consistency |=== diff --git a/spec/conceptual-model/annex-n.adoc b/spec/conceptual-model/annex-n.adoc deleted file mode 100644 index c7e91161..00000000 --- a/spec/conceptual-model/annex-n.adoc +++ /dev/null @@ -1,6 +0,0 @@ -[appendix] -:appendix-caption: Annex -== Title ( {Normative/Informative} ) - -[NOTE] -Place other Annex material in sequential annexes beginning with "B" and leave final two annexes for the Revision History and Bibliography diff --git a/spec/conceptual-model/clause_3_references.adoc b/spec/conceptual-model/clause_3_references.adoc index 50f7ba07..620deccd 100644 --- a/spec/conceptual-model/clause_3_references.adoc +++ b/spec/conceptual-model/clause_3_references.adoc @@ -1,6 +1,12 @@ == References The following normative documents contain provisions that, through reference in this text, constitute provisions of this document. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For undated references, the latest edition of the normative document referred to applies. +[[ISO-19115-1]] +ISO: ISO 19115-1:2016, Geographic information — Metadata — Part 1: Fundamentals (2014) https://www.iso.org/standard/53798.html + +[[ISO-19115-3]] +ISO: ISO 19115-3:2016, Geographic information — Metadata — Part 3: XML schema implementation for fundamental concepts (2016) https://www.iso.org/standard/32579.html + [[OGC-06-103r4]] OGC: OGC 06-103r4, OpenGIS Implementation Standard for Geographic Information - Simple feature access - Part 1: Common architecture (2011) https://portal.ogc.org/files/?artifact_id=25355 diff --git a/spec/conceptual-model/clause_7_conceptual_model.adoc b/spec/conceptual-model/clause_7_conceptual_model.adoc index 6054f702..ddfe75c7 100644 --- a/spec/conceptual-model/clause_7_conceptual_model.adoc +++ b/spec/conceptual-model/clause_7_conceptual_model.adoc @@ -7,14 +7,14 @@ _Since most readers will be familiar with the GES, an indication of how GeoPacka All GeoPackages conform to Core. Attribute:: - a value for a particular attribute type for a particular entity. + A characteristic of an entity. (SOURCE: Adapted from ISO 19101-1:2014) _In the GES, an attribute is realized through a column value of a user-defined table._ Attribute Type:: - a characteristic of an entity. + A characteristic of an entity type. An attribute type has a name, a data type, and a value domain associated to it. No restrictions are implied as to the type of attributes a user-defined type may have. - Not all entity types have attributes. (SOURCE: Adapted from ISO19101) + Not all entity types have attributes. (SOURCE: Adapted from ISO 19101-1:2014) _In the GES, an attribute is realized through a column of a user-defined table._ Coordinate Reference System (CRS):: @@ -22,16 +22,22 @@ A coordinate reference system, or spatial reference system, is a set of mathemat _The GES uses the term "spatial reference system." In the GES, a spatial reference system is realized through a `gpkg_spatial_ref_sys` row._ Entity:: - For the purposes of this standard, an entity is simply a unit of content contained in a GeoPackage. - This is deliberately open-ended so as not to prejudice the content that a GeoPackage may contain. + An individual item that is perceivable or conceivable. (SOURCE: ISO/IEC 21838-1:2021) _In the GES, an entity is realized through a row of a user-defined table._ + +[NOTE] +==== +In this standard, "entity" is used to denote the concept that is denoted "particular" in ISO/IEC 21838-1:2021). +For the purposes of this standard, an entity is simply a unit of content contained in a GeoPackage. +This is deliberately open-ended so as not to prejudice the content that a GeoPackage may contain. +==== Entity Store:: a container for entities. _In the GES, an entity store is realized through a user-defined table and a row in `gpkg_contents`._ Entity Type:: - the characteristics of an entity, including attribute types (if any). + A class of entities having common characteristics. (SOURCE: Adapted from 19156:2011) _In the GES, an entity type is realized through the schema of a user-defined table._ GeoPackage:: @@ -48,29 +54,35 @@ The Features Requirements Class implements Simple Features as per OGC 06-103r4. The definitions of the concepts below are from that document unless otherwise indicated. Feature:: - abstraction of real world phenomena (SOURCE: ISO 19101). + An abstraction of real world phenomena. (SOURCE: ISO 19101) For the purposes of this document, it refers to an individual realization thereof. - _In the GES, a feature is realized through a row of a user-defined features table._ + Features can be classified as _geographic_ and _non-geographic_. + _In the GES, the Features Requirements Class is for geographic features._ + _For non-geographic features, see <> below._ Feature Store:: - a container for features. - _In the GES, an attributes store is realized through a user-defined features table._ + A container for features. + _In the GES, a feature store is realized through a user-defined features table (for geographic features) or attributes table (for non-geographic features; see below)._ Feature Type:: - the attributes that comprise a class of a feature. - _In the GES, a feature type is realized through the schema of a user-defined features table._ + A class of features having common characteristics. (SOURCE: Adapted from ISO 19101) + _In the GES, a feature type is realized through the schema of a user-defined features table (for geographic features) or attributes table (for non-geographic features; see below)._ + +Geographic Feature:: + A representation of real world phenomenon associatied with a location relative to the Earth. (SOURCE: ISO 19125-2:2004) + _In the GES, a geographic feature is realized through a row of a user-defined features table._ Geometry:: - spatial object representing a geometric set (SOURCE: ISO19107) + A spatial object representing a geometric set. (SOURCE: ISO 19107) _In the GES, a geometry is realized through a Well Known Binary value for a geometry attribute for a feature in a user-defined features table._ Geometry Attribute:: - a specialization of attribute for geometry values. - _In the GES, a geometry attribute is realized through a column of a user-defined features table._ + A specialization of attribute for geometry values. + _In the GES, a geometry attribute is realized through a column of a user-defined features table._ Geometry Attribute Type:: - a specialization of attribute types for a geometry data type. - _In the GES, a geometry attribute type is realized through a row of `gpkg_geometry_columns`._ + A specialization of attribute types for a geometry data type. + _In the GES, a geometry attribute type is realized through a row of `gpkg_geometry_columns`._ === Tiles @@ -117,13 +129,18 @@ Tiling Scheme:: A tiling scheme is not restricted to a coordinate reference system or a tile matrix set and allows for other spatial reference systems such as DGGS and other organizations including irregular ones. ==== +[[attributes]] === Attributes GeoPackages that conform to the Attributes Requirements Class contain the content represented in <>. -Attributes Set:: +Attributes Store:: + a container for attributes sets. + _In the GES, an attributes store is realized through a user-defined attributes table._ + +Non-Geographic Feature Set:: a user-defined type with one or attributes, none of which is a geometry. - _In the GES, an attributes set is realized through a row of a user-defined attributes table._ + _In the GES, a non-geographic feature set is realized through a row of a user-defined attributes table._ [NOTE] ==== @@ -131,13 +148,9 @@ OGC 12-128 defined this concept as "attributes". However, this conflicts with the standard definition of an attribute as a member of a class. ==== -Attributes Set Type:: - the characteristics (attribute types) of an attributes set. - _In the GES, an attributes set type is realized through the schema of a user-defined attributes table._ - -Attributes Store:: - a container for attributes sets. - _In the GES, an attributes store is realized through a user-defined attributes table._ +Non-Geograpic Feature Set Type:: + A class of features having common characteristics. (SOURCE: Adapted from ISO 19101) + _In the GES, an non-geographic feature set type is realized through the schema of a user-defined attributes table._ [[extensions]] === Extensions @@ -153,7 +166,7 @@ Extension:: GeoPackages that conform to the Metadata Requirements Class contain the content represented here. Metadata:: - for the purposes of this document, a discrete unit of data about data. (SOURCE: ISO 19115) + for the purposes of this document, a discrete unit of data about data. (SOURCE: ISO 19115-1) _In the GES, metadata is realized through rows of `gpkg_metadata`._ Metadata Reference:: diff --git a/spec/conceptual-model/clause_8_logical_model.adoc b/spec/conceptual-model/clause_8_logical_model.adoc index 902b1a48..87cae6d5 100644 --- a/spec/conceptual-model/clause_8_logical_model.adoc +++ b/spec/conceptual-model/clause_8_logical_model.adoc @@ -1,6 +1,6 @@ -== GeoPackage Conceptual Model (Normative) -This section presents the normative definition of the GeoPackage Conceptual Model (CM). -The CM is primarily presented as UML diagrams but are augmented with text where needed. +== GeoPackage Logical Model (Normative) +This section presents the normative definition of the GeoPackage Logical Model (LM). +The LM is primarily presented as UML diagrams but are augmented with text where needed. The diagrams are intended to be normative, but if there is any discrepancy between the diagrams and the text then the text takes priority. [NOTE] diff --git a/spec/conceptual-model/figures/attributes.png b/spec/conceptual-model/figures/attributes.png index 9a834bd9..5b18b739 100644 Binary files a/spec/conceptual-model/figures/attributes.png and b/spec/conceptual-model/figures/attributes.png differ diff --git a/spec/conceptual-model/figures/core.png b/spec/conceptual-model/figures/core.png index 11ba9be1..7954c6a3 100644 Binary files a/spec/conceptual-model/figures/core.png and b/spec/conceptual-model/figures/core.png differ diff --git a/spec/conceptual-model/figures/extensions.png b/spec/conceptual-model/figures/extensions.png index 6c7d8512..db44440a 100644 Binary files a/spec/conceptual-model/figures/extensions.png and b/spec/conceptual-model/figures/extensions.png differ diff --git a/spec/conceptual-model/figures/features.png b/spec/conceptual-model/figures/features.png index 67d37f80..a6c8ba63 100644 Binary files a/spec/conceptual-model/figures/features.png and b/spec/conceptual-model/figures/features.png differ diff --git a/spec/conceptual-model/figures/metadata.png b/spec/conceptual-model/figures/metadata.png index c3da2589..70ab05ab 100644 Binary files a/spec/conceptual-model/figures/metadata.png and b/spec/conceptual-model/figures/metadata.png differ diff --git a/spec/conceptual-model/figures/rte.png b/spec/conceptual-model/figures/rte.png index 35b9fff9..d65bc793 100644 Binary files a/spec/conceptual-model/figures/rte.png and b/spec/conceptual-model/figures/rte.png differ diff --git a/spec/conceptual-model/figures/schema.png b/spec/conceptual-model/figures/schema.png index 7acb5af2..41ecba87 100644 Binary files a/spec/conceptual-model/figures/schema.png and b/spec/conceptual-model/figures/schema.png differ diff --git a/spec/conceptual-model/figures/tgce.png b/spec/conceptual-model/figures/tgce.png index 98297219..b9110acf 100644 Binary files a/spec/conceptual-model/figures/tgce.png and b/spec/conceptual-model/figures/tgce.png differ diff --git a/spec/conceptual-model/figures/tiles.png b/spec/conceptual-model/figures/tiles.png index bfd49af2..c1def05b 100644 Binary files a/spec/conceptual-model/figures/tiles.png and b/spec/conceptual-model/figures/tiles.png differ diff --git a/spec/conceptual-model/standard_document.adoc b/spec/conceptual-model/standard_document.adoc index 36fa93fb..886d6a38 100644 --- a/spec/conceptual-model/standard_document.adoc +++ b/spec/conceptual-model/standard_document.adoc @@ -111,5 +111,5 @@ Bibliography should be the last annex //// include::annex-history.adoc[] -<<< -include::annex-bibliography.adoc[] +//<<< +//include::annex-bibliography.adoc[]