From d24a0f0bb7e0ce1ce112f7f9be2c931b9cff6a49 Mon Sep 17 00:00:00 2001 From: rob-metalinkage Date: Mon, 5 Feb 2024 21:11:12 +0000 Subject: [PATCH] Building blocks postprocessing --- build/bblocks.jsonld | 26 +- build/bblocks.ttl | 81 +++-- .../geo/topo/datatypes/topology/index.json | 2 +- .../geo/topo/features/topo-arc/index.json | 2 +- .../topo-feature-collection/index.json | 6 +- .../geo/topo/features/topo-feature/index.json | 8 +- .../geo/topo/features/topo-line/index.json | 2 +- .../geo/topo/features/topo-feature/index.md | 8 +- .../geo/topo/features/topo-feature/index.html | 6 +- .../topo/features/topo-feature/index.html.md | 8 +- build/register.json | 24 +- .../geo/topo/datatypes/topology/_report.json | 2 +- .../example_1_1.validation_passed.txt | 2 +- .../geo/topo/features/topo-arc/_report.json | 322 +++++++++--------- ...ord-orientation-fail.validation_failed.txt | 18 +- ...rc_chord-radius-fail.validation_passed.txt | 18 +- .../circle-fail.validation_passed.txt | 18 +- .../example_1_1.validation_passed.txt | 18 +- .../example_2_1.validation_passed.txt | 18 +- .../example_3_1.validation_passed.txt | 18 +- .../example_4_1.validation_passed.txt | 18 +- .../example_5_1.validation_passed.txt | 18 +- .../example_6_1.validation_passed.txt | 18 +- ...e_with_tangents-fail.validation_passed.txt | 18 +- .../topo-feature-collection/_report.json | 84 ++--- .../example_1_1.validation_passed.txt | 8 +- .../example_2_1.validation_passed.txt | 8 +- .../example_3_1.validation_passed.txt | 10 +- .../linestring-fail.validation_passed.txt | 38 +-- .../topo/features/topo-feature/_report.json | 122 +++---- .../example_1_1.validation_passed.txt | 18 +- .../example_2_1.validation_passed.txt | 18 +- .../linestring-fail.validation_passed.txt | 50 +-- .../geo/topo/features/topo-line/_report.json | 42 +-- .../example_1_1.validation_passed.txt | 18 +- build/tests/report.html | 314 ++++++++--------- 36 files changed, 709 insertions(+), 700 deletions(-) diff --git a/build/bblocks.jsonld b/build/bblocks.jsonld index 23a98e7..87acbf8 100644 --- a/build/bblocks.jsonld +++ b/build/bblocks.jsonld @@ -98,7 +98,10 @@ } } ], - "modified": "2024-02-05T11:36:10.700272", + "name": "Topo-Feature", + "abstract": "Generalised Topology Between Identified Objects (Features)", + "description": "Defines Feature (object) topology using a _topology_ property to reference an ordered list of references to other features. \n\nOther features may be either features with topology properties or GeoJSON (or FG-JSON) point objects.\n\nTopo-Feature defined objects can be solids, swept volumes or any other concept. \n\nNote: This is a generalisation of the TopoJSON concept using inline data, (nested sets of coordinates) but not limited to self-contained geometries (i.e. it allows for general topology to be described between independent features (objects) with any geometry dimensions)\n\nTopo-Feature doesnt use TopoJSON's coordinate compaction and transformation, however it does allow for explicit CRS, and coordinate compaction transformations could be defined as derived CRS if required.)\n", + "modified": "2024-02-05T21:10:34.182392", "tooling": { "bblocks-postprocess": { "commitId": "\"d3ca95c6a06a13ca49593aac13774e5db6835687", @@ -108,7 +111,6 @@ }, "gitRepository": "https://github.com/ogcincubator/topo-feature", "gitHubRepository": "https://github.com/ogcincubator/topo-feature/blob/master/", - "name": "workspace", "baseURL": "https://ogcincubator.github.io/topo-feature/", "viewerURL": "https://ogcincubator.github.io/topo-feature/", "validationReport": "https://ogcincubator.github.io/topo-feature/build/tests/report.html", @@ -119,7 +121,7 @@ "skos:ConceptScheme", "dcat:Catalog" ], - "skos:prefLabel": "workspace", + "skos:prefLabel": "Topo-Feature", "hasConcepts": [ { "itemIdentifier": "ogc.geo.topo.datatypes.topology", @@ -130,7 +132,7 @@ "itemClass": "schema", "register": "icsm-csdm", "version": "0.1", - "dateOfLastChange": "2024-01-25", + "dateOfLastChange": "2024-02-05", "link": "https://github.com/icsm-au/3d-csdm-schema", "sources": [], "maturity": "development", @@ -184,13 +186,13 @@ "itemClass": "schema", "register": "ogc-building-block-register", "version": "0.1", - "dateOfLastChange": "2024-01-25", + "dateOfLastChange": "2024-02-05", "sources": [], "maturity": "development", "scope": "unstable", "dependsOn": [ - "ogc.geo.topo.datatypes.topology", - "ogc.geo.json-fg.feature" + "ogc.geo.json-fg.feature", + "ogc.geo.topo.datatypes.topology" ], "shaclRules": { "ogc.geo.topo.features.topo-feature": [ @@ -249,7 +251,7 @@ "itemClass": "schema", "register": "ogcincubator", "version": "0.1", - "dateOfLastChange": "2024-01-25", + "dateOfLastChange": "2024-02-05", "sources": [], "maturity": "development", "scope": "unstable", @@ -318,7 +320,7 @@ "itemClass": "schema", "register": "icsm-csdm", "version": "0.1", - "dateOfLastChange": "2024-01-25", + "dateOfLastChange": "2024-02-05", "link": "https://github.com/icsm-au/3d-csdm-schema", "sources": [], "maturity": "development", @@ -381,7 +383,7 @@ "itemClass": "schema", "register": "ogc-building-block-register", "version": "0.1", - "dateOfLastChange": "2024-01-25", + "dateOfLastChange": "2024-02-05", "sources": [], "shaclRules": { "ogc.geo.topo.features.topo-feature-collection": [ @@ -396,8 +398,8 @@ "maturity": "development", "scope": "unstable", "dependsOn": [ - "ogc.geo.json-fg.featureCollection-lenient", - "ogc.geo.topo.features.topo-feature" + "ogc.geo.topo.features.topo-feature", + "ogc.geo.json-fg.featureCollection-lenient" ], "tags": [ "topology", diff --git a/build/bblocks.ttl b/build/bblocks.ttl index 4a4c554..1d34540 100644 --- a/build/bblocks.ttl +++ b/build/bblocks.ttl @@ -13,16 +13,16 @@ rdfs:label "Non-linear Arc and Spline Descriptions using Point topology" ; dct:abstract "Defines options for describing Arcs, Circles, Splines using point features as canonical source of geometry coordinates" ; dct:created "2023-11-01T00:00:00+00:00"^^xsd:dateTime ; - dct:description [ dct:format "text/markdown" ; - rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/markdown/geo/topo/features/topo-arc/index.md" ], + dct:description [ dct:format "text/html" ; + rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/slate-build/geo/topo/features/topo-arc/" ], [ dct:format "text/html" ; rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/bblock/ogc.geo.topo.features.topo-arc" ], + [ dct:format "text/markdown" ; + rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/markdown/geo/topo/features/topo-arc/index.md" ], [ dct:format "application/json" ; - rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/json-full/geo/topo/features/topo-arc/index.json" ], - [ dct:format "text/html" ; - rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/slate-build/geo/topo/features/topo-arc/" ] ; + rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/json-full/geo/topo/features/topo-arc/index.json" ] ; dct:hasVersion "0.1" ; - dct:modified "2024-01-25"^^xsd:date ; + dct:modified "2024-02-05"^^xsd:date ; skos:inScheme ; dcat:keyword "2D", "geometry", @@ -44,16 +44,16 @@ rdfs:label "TopoFeatureCollection" ; dct:abstract "This building block defines a GeoJSON (or FG-JSON) Feature Collection for a set of features with geometries defined by topological relationships. From these it is possible to derive simplified geometries using coordinates for each feature." ; dct:created "2023-07-05T00:00:00+00:00"^^xsd:dateTime ; - dct:description [ dct:format "text/markdown" ; - rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/markdown/geo/topo/features/topo-feature-collection/index.md" ], + dct:description [ dct:format "text/html" ; + rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/slate-build/geo/topo/features/topo-feature-collection/" ], [ dct:format "text/html" ; rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/bblock/ogc.geo.topo.features.topo-feature-collection" ], - [ dct:format "text/html" ; - rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/slate-build/geo/topo/features/topo-feature-collection/" ], [ dct:format "application/json" ; - rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/json-full/geo/topo/features/topo-feature-collection/index.json" ] ; + rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/json-full/geo/topo/features/topo-feature-collection/index.json" ], + [ dct:format "text/markdown" ; + rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/markdown/geo/topo/features/topo-feature-collection/index.md" ] ; dct:hasVersion "0.1" ; - dct:modified "2024-01-25"^^xsd:date ; + dct:modified "2024-02-05"^^xsd:date ; skos:inScheme ; dcat:keyword "feature", "topology" ; @@ -74,16 +74,16 @@ rdfs:label "Line using Point References" ; dct:abstract "Demonstration of a schema using coordinates of points, without duplication. Reuses context but constrains to Line types" ; dct:created "2023-04-05T00:00:00+00:00"^^xsd:dateTime ; - dct:description [ dct:format "text/markdown" ; - rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/markdown/geo/topo/features/topo-line/index.md" ], - [ dct:format "text/html" ; - rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/slate-build/geo/topo/features/topo-line/" ], - [ dct:format "text/html" ; + dct:description [ dct:format "text/html" ; rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/bblock/ogc.geo.topo.features.topo-line" ], [ dct:format "application/json" ; - rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/json-full/geo/topo/features/topo-line/index.json" ] ; + rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/json-full/geo/topo/features/topo-line/index.json" ], + [ dct:format "text/markdown" ; + rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/markdown/geo/topo/features/topo-line/index.md" ], + [ dct:format "text/html" ; + rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/slate-build/geo/topo/features/topo-line/" ] ; dct:hasVersion "0.1" ; - dct:modified "2024-01-25"^^xsd:date ; + dct:modified "2024-02-05"^^xsd:date ; skos:inScheme ; dcat:keyword "3D", "geometry", @@ -105,16 +105,16 @@ rdfs:label "Geometry using references" ; dct:abstract "Demonstration of a schema using coordinates of points, withpout duplication" ; dct:created "2023-04-05T00:00:00+00:00"^^xsd:dateTime ; - dct:description [ dct:format "text/markdown" ; - rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/markdown/geo/topo/datatypes/topology/index.md" ], + dct:description [ dct:format "application/json" ; + rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/json-full/geo/topo/datatypes/topology/index.json" ], [ dct:format "text/html" ; rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/slate-build/geo/topo/datatypes/topology/" ], - [ dct:format "application/json" ; - rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/json-full/geo/topo/datatypes/topology/index.json" ], [ dct:format "text/html" ; - rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/bblock/ogc.geo.topo.datatypes.topology" ] ; + rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/bblock/ogc.geo.topo.datatypes.topology" ], + [ dct:format "text/markdown" ; + rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/markdown/geo/topo/datatypes/topology/index.md" ] ; dct:hasVersion "0.1" ; - dct:modified "2024-01-25"^^xsd:date ; + dct:modified "2024-02-05"^^xsd:date ; skos:inScheme ; dcat:keyword "3D", "geometry", @@ -141,7 +141,7 @@ [ dct:format "text/markdown" ; rdfs:isDefinedBy "https://ogcincubator.github.io/topo-feature/build/generateddocs/markdown/geo/topo/features/topo-feature/index.md" ] ; dct:hasVersion "0.1" ; - dct:modified "2024-01-25"^^xsd:date ; + dct:modified "2024-02-05"^^xsd:date ; skos:inScheme ; dcat:keyword "feature", "topology" ; @@ -158,21 +158,32 @@ a skos:ConceptScheme, dcat:Catalog ; - rdfs:label "workspace" ; - skos:prefLabel "workspace" ; + rdfs:label "Topo-Feature" ; + dct:abstract "Generalised Topology Between Identified Objects (Features)" ; + dct:description """Defines Feature (object) topology using a _topology_ property to reference an ordered list of references to other features. + +Other features may be either features with topology properties or GeoJSON (or FG-JSON) point objects. + +Topo-Feature defined objects can be solids, swept volumes or any other concept. + +Note: This is a generalisation of the TopoJSON concept using inline data, (nested sets of coordinates) but not limited to self-contained geometries (i.e. it allows for general topology to be described between independent features (objects) with any geometry dimensions) + +Topo-Feature doesnt use TopoJSON's coordinate compaction and transformation, however it does allow for explicit CRS, and coordinate compaction transformations could be defined as derived CRS if required.) +""" ; + skos:prefLabel "Topo-Feature" ; bblocks:hasValidationReport ; bblocks:imports . [] a prov:Activity ; - prov:endedAtTime "2024-02-05T11:36:22.372124"^^xsd:dateTime ; - prov:startedAtTime "2024-02-05T11:36:22.303048"^^xsd:dateTime ; + prov:endedAtTime "2024-02-05T21:10:52.863441"^^xsd:dateTime ; + prov:startedAtTime "2024-02-05T21:10:52.793857"^^xsd:dateTime ; prov:used [ a prov:Entity ; - dct:format "application/json" ; - dct:hasVersion "git:2eb78dd95aaaef7dba6494a2db21d183123da745" ; - rdfs:seeAlso ], - [ a prov:Entity ; dct:format "application/yaml" ; - rdfs:seeAlso ] ; + rdfs:seeAlso ], + [ a prov:Entity ; + dct:format "application/json" ; + dct:hasVersion "git:fafc8b2432fb7599ad0b2f84525bb797972917ea" ; + rdfs:seeAlso ] ; prov:wasAssociatedWith [ a prov:Agent, schema:SoftwareApplication ; rdfs:label "OGC-NA tools" ; diff --git a/build/generateddocs/json-full/geo/topo/datatypes/topology/index.json b/build/generateddocs/json-full/geo/topo/datatypes/topology/index.json index 831d6bb..9347f08 100644 --- a/build/generateddocs/json-full/geo/topo/datatypes/topology/index.json +++ b/build/generateddocs/json-full/geo/topo/datatypes/topology/index.json @@ -9,7 +9,7 @@ "itemClass": "schema", "register": "icsm-csdm", "version": "0.1", - "dateOfLastChange": "2024-01-25", + "dateOfLastChange": "2024-02-05", "link": "https://github.com/icsm-au/3d-csdm-schema", "sources": [], "maturity": "development", diff --git a/build/generateddocs/json-full/geo/topo/features/topo-arc/index.json b/build/generateddocs/json-full/geo/topo/features/topo-arc/index.json index b8fb789..2f24d9e 100644 --- a/build/generateddocs/json-full/geo/topo/features/topo-arc/index.json +++ b/build/generateddocs/json-full/geo/topo/features/topo-arc/index.json @@ -9,7 +9,7 @@ "itemClass": "schema", "register": "ogcincubator", "version": "0.1", - "dateOfLastChange": "2024-01-25", + "dateOfLastChange": "2024-02-05", "sources": [], "maturity": "development", "scope": "unstable", diff --git a/build/generateddocs/json-full/geo/topo/features/topo-feature-collection/index.json b/build/generateddocs/json-full/geo/topo/features/topo-feature-collection/index.json index 9c222f2..2f549a7 100644 --- a/build/generateddocs/json-full/geo/topo/features/topo-feature-collection/index.json +++ b/build/generateddocs/json-full/geo/topo/features/topo-feature-collection/index.json @@ -9,7 +9,7 @@ "itemClass": "schema", "register": "ogc-building-block-register", "version": "0.1", - "dateOfLastChange": "2024-01-25", + "dateOfLastChange": "2024-02-05", "sources": [], "shaclRules": { "ogc.geo.topo.features.topo-feature-collection": [ @@ -24,8 +24,8 @@ "maturity": "development", "scope": "unstable", "dependsOn": [ - "ogc.geo.json-fg.featureCollection-lenient", - "ogc.geo.topo.features.topo-feature" + "ogc.geo.topo.features.topo-feature", + "ogc.geo.json-fg.featureCollection-lenient" ], "tags": [ "topology", diff --git a/build/generateddocs/json-full/geo/topo/features/topo-feature/index.json b/build/generateddocs/json-full/geo/topo/features/topo-feature/index.json index e478532..8a26ae0 100644 --- a/build/generateddocs/json-full/geo/topo/features/topo-feature/index.json +++ b/build/generateddocs/json-full/geo/topo/features/topo-feature/index.json @@ -9,13 +9,13 @@ "itemClass": "schema", "register": "ogc-building-block-register", "version": "0.1", - "dateOfLastChange": "2024-01-25", + "dateOfLastChange": "2024-02-05", "sources": [], "maturity": "development", "scope": "unstable", "dependsOn": [ - "ogc.geo.topo.datatypes.topology", - "ogc.geo.json-fg.feature" + "ogc.geo.json-fg.feature", + "ogc.geo.topo.datatypes.topology" ], "shaclRules": { "ogc.geo.topo.features.topo-feature": [ @@ -41,7 +41,7 @@ "sourceFiles": "https://ogcincubator.github.io/topo-feature/_sources/features/topo-feature/", "validationPassed": true, "testOutputs": "https://github.com/ogcincubator/topo-feature/blob/master/build/tests/geo/topo/features/topo-feature/", - "description": "## Feature with explicit Topology \n\n%definition% \n\nA feature type using a topology property to reference an ordered list of references to other features. \n\nOther features may be either features with topology properties or GeoJSON (or FG-JSON) point objects.\n\nThis is a generalisation of the TopoJSON concept using inline data, but not limited to the LineStrings. Topological defined objects \ncan be solids, swept volumes or any other concept.\n\n", + "description": "## Feature with explicit Topology\n\nA feature type using a topology property to reference an ordered list of references to other features. \n\nOther features may be either features with topology properties or GeoJSON (or FG-JSON) point objects.\n\nThis is a generalisation of the TopoJSON concept using inline data, (nested sets of coordinates) but not limited to the LineStrings. Topological defined objects \ncan be solids, swept volumes or any other concept. (It doesnt use TopoJSON coordinate compaction and transformation, however it does allow for explicit CRS, and coordinate compaction transformations could be defined as derived CRS if required.)\n\n", "examples": [ { "title": "Example of a LineString", diff --git a/build/generateddocs/json-full/geo/topo/features/topo-line/index.json b/build/generateddocs/json-full/geo/topo/features/topo-line/index.json index a146382..5181400 100644 --- a/build/generateddocs/json-full/geo/topo/features/topo-line/index.json +++ b/build/generateddocs/json-full/geo/topo/features/topo-line/index.json @@ -9,7 +9,7 @@ "itemClass": "schema", "register": "icsm-csdm", "version": "0.1", - "dateOfLastChange": "2024-01-25", + "dateOfLastChange": "2024-02-05", "link": "https://github.com/icsm-au/3d-csdm-schema", "sources": [], "maturity": "development", diff --git a/build/generateddocs/markdown/geo/topo/features/topo-feature/index.md b/build/generateddocs/markdown/geo/topo/features/topo-feature/index.md index 1c57fc7..8a058e9 100644 --- a/build/generateddocs/markdown/geo/topo/features/topo-feature/index.md +++ b/build/generateddocs/markdown/geo/topo/features/topo-feature/index.md @@ -9,16 +9,14 @@ This building block defines a GeoJSON feature with topological relationships to ## Description -## Feature with explicit Topology - -%definition% +## Feature with explicit Topology A feature type using a topology property to reference an ordered list of references to other features. Other features may be either features with topology properties or GeoJSON (or FG-JSON) point objects. -This is a generalisation of the TopoJSON concept using inline data, but not limited to the LineStrings. Topological defined objects -can be solids, swept volumes or any other concept. +This is a generalisation of the TopoJSON concept using inline data, (nested sets of coordinates) but not limited to the LineStrings. Topological defined objects +can be solids, swept volumes or any other concept. (It doesnt use TopoJSON coordinate compaction and transformation, however it does allow for explicit CRS, and coordinate compaction transformations could be defined as derived CRS if required.) ## Examples diff --git a/build/generateddocs/slate-build/geo/topo/features/topo-feature/index.html b/build/generateddocs/slate-build/geo/topo/features/topo-feature/index.html index 943ebb5..1721b33 100644 --- a/build/generateddocs/slate-build/geo/topo/features/topo-feature/index.html +++ b/build/generateddocs/slate-build/geo/topo/features/topo-feature/index.html @@ -374,14 +374,12 @@

Feature with t This building block is valid

Description

Feature with explicit Topology

-

%definition%

-

A feature type using a topology property to reference an ordered list of references to other features.

Other features may be either features with topology properties or GeoJSON (or FG-JSON) point objects.

-

This is a generalisation of the TopoJSON concept using inline data, but not limited to the LineStrings. Topological defined objects -can be solids, swept volumes or any other concept.

+

This is a generalisation of the TopoJSON concept using inline data, (nested sets of coordinates) but not limited to the LineStrings. Topological defined objects +can be solids, swept volumes or any other concept. (It doesnt use TopoJSON coordinate compaction and transformation, however it does allow for explicit CRS, and coordinate compaction transformations could be defined as derived CRS if required.)

Examples

Example of a LineString

{
   "type": "Feature",
   "id": "LineP1P2",
diff --git a/build/generateddocs/slate/geo/topo/features/topo-feature/index.html.md b/build/generateddocs/slate/geo/topo/features/topo-feature/index.html.md
index 73ff518..d040823 100644
--- a/build/generateddocs/slate/geo/topo/features/topo-feature/index.html.md
+++ b/build/generateddocs/slate/geo/topo/features/topo-feature/index.html.md
@@ -35,16 +35,14 @@ This building block is  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b1": {
+                "topo:testTopoLinesReferencePoints": {
                   "nodes": []
                 },
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b3": {
-                  "nodes": []
+                "topo:testTopoReferencesExist": {
+                  "nodes": [
+                    "/geojson:topology"
+                  ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: *none*\n - Shape topo:testTopoReferencesExist: /geojson:topology\n"
             },
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
-                  "nodes": [
-                    "/geojson:topology"
-                  ]
+                "_:n42b9475448c64912a1a74634f1cf63f6b3": {
+                  "nodes": []
                 },
-                "topo:testTopoLinesReferencePoints": {
+                "_:n42b9475448c64912a1a74634f1cf63f6b1": {
                   "nodes": []
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: /geojson:topology\n - Shape topo:testTopoLinesReferencePoints: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*\n"
             }
           ]
         },
@@ -210,45 +210,45 @@
           "entries": [
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b1": {
+                "topo:testTopoLinesReferencePoints": {
                   "nodes": []
                 },
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b3": {
-                  "nodes": []
+                "topo:testTopoReferencesExist": {
+                  "nodes": [
+                    "/geojson:topology"
+                  ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: *none*\n - Shape topo:testTopoReferencesExist: /geojson:topology\n"
             },
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
-                  "nodes": [
-                    "/geojson:topology"
-                  ]
+                "_:n42b9475448c64912a1a74634f1cf63f6b3": {
+                  "nodes": []
                 },
-                "topo:testTopoLinesReferencePoints": {
+                "_:n42b9475448c64912a1a74634f1cf63f6b1": {
                   "nodes": []
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: /geojson:topology\n - Shape topo:testTopoLinesReferencePoints: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*\n"
             }
           ]
         },
@@ -338,45 +338,45 @@
           "entries": [
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b1": {
+                "topo:testTopoLinesReferencePoints": {
                   "nodes": []
                 },
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b3": {
-                  "nodes": []
+                "topo:testTopoReferencesExist": {
+                  "nodes": [
+                    "/geojson:topology"
+                  ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: *none*\n - Shape topo:testTopoReferencesExist: /geojson:topology\n"
             },
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
-                  "nodes": [
-                    "/geojson:topology"
-                  ]
+                "_:n42b9475448c64912a1a74634f1cf63f6b3": {
+                  "nodes": []
                 },
-                "topo:testTopoLinesReferencePoints": {
+                "_:n42b9475448c64912a1a74634f1cf63f6b1": {
                   "nodes": []
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: /geojson:topology\n - Shape topo:testTopoLinesReferencePoints: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*\n"
             }
           ]
         },
@@ -466,45 +466,45 @@
           "entries": [
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b1": {
+                "topo:testTopoLinesReferencePoints": {
                   "nodes": []
                 },
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b3": {
-                  "nodes": []
+                "topo:testTopoReferencesExist": {
+                  "nodes": [
+                    "/geojson:topology"
+                  ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: *none*\n - Shape topo:testTopoReferencesExist: /geojson:topology\n"
             },
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
-                  "nodes": [
-                    "/geojson:topology"
-                  ]
+                "_:n42b9475448c64912a1a74634f1cf63f6b3": {
+                  "nodes": []
                 },
-                "topo:testTopoLinesReferencePoints": {
+                "_:n42b9475448c64912a1a74634f1cf63f6b1": {
                   "nodes": []
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: /geojson:topology\n - Shape topo:testTopoLinesReferencePoints: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*\n"
             }
           ]
         },
@@ -588,45 +588,45 @@
           "entries": [
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b1": {
+                "topo:testTopoLinesReferencePoints": {
                   "nodes": []
                 },
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b3": {
-                  "nodes": []
+                "topo:testTopoReferencesExist": {
+                  "nodes": [
+                    "/geojson:topology"
+                  ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: *none*\n - Shape topo:testTopoReferencesExist: /geojson:topology\n"
             },
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
-                  "nodes": [
-                    "/geojson:topology"
-                  ]
+                "_:n42b9475448c64912a1a74634f1cf63f6b3": {
+                  "nodes": []
                 },
-                "topo:testTopoLinesReferencePoints": {
+                "_:n42b9475448c64912a1a74634f1cf63f6b1": {
                   "nodes": []
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: /geojson:topology\n - Shape topo:testTopoLinesReferencePoints: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*\n"
             }
           ]
         },
@@ -710,45 +710,45 @@
           "entries": [
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b1": {
+                "topo:testTopoLinesReferencePoints": {
                   "nodes": []
                 },
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b3": {
-                  "nodes": []
+                "topo:testTopoReferencesExist": {
+                  "nodes": [
+                    "/geojson:topology"
+                  ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: *none*\n - Shape topo:testTopoReferencesExist: /geojson:topology\n"
             },
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
-                  "nodes": [
-                    "/geojson:topology"
-                  ]
+                "_:n42b9475448c64912a1a74634f1cf63f6b3": {
+                  "nodes": []
                 },
-                "topo:testTopoLinesReferencePoints": {
+                "_:n42b9475448c64912a1a74634f1cf63f6b1": {
                   "nodes": []
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: /geojson:topology\n - Shape topo:testTopoLinesReferencePoints: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*\n"
             }
           ]
         },
@@ -832,45 +832,45 @@
           "entries": [
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b1": {
+                "topo:testTopoLinesReferencePoints": {
                   "nodes": []
                 },
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b3": {
-                  "nodes": []
+                "topo:testTopoReferencesExist": {
+                  "nodes": [
+                    "/geojson:topology"
+                  ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: *none*\n - Shape topo:testTopoReferencesExist: /geojson:topology\n"
             },
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
-                  "nodes": [
-                    "/geojson:topology"
-                  ]
+                "_:n42b9475448c64912a1a74634f1cf63f6b3": {
+                  "nodes": []
                 },
-                "topo:testTopoLinesReferencePoints": {
+                "_:n42b9475448c64912a1a74634f1cf63f6b1": {
                   "nodes": []
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: /geojson:topology\n - Shape topo:testTopoLinesReferencePoints: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*\n"
             }
           ]
         },
@@ -954,45 +954,45 @@
           "entries": [
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b1": {
+                "topo:testTopoLinesReferencePoints": {
                   "nodes": []
                 },
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b3": {
-                  "nodes": []
+                "topo:testTopoReferencesExist": {
+                  "nodes": [
+                    "/geojson:topology"
+                  ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: *none*\n - Shape topo:testTopoReferencesExist: /geojson:topology\n"
             },
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
-                  "nodes": [
-                    "/geojson:topology"
-                  ]
+                "_:n42b9475448c64912a1a74634f1cf63f6b3": {
+                  "nodes": []
                 },
-                "topo:testTopoLinesReferencePoints": {
+                "_:n42b9475448c64912a1a74634f1cf63f6b1": {
                   "nodes": []
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: /geojson:topology\n - Shape topo:testTopoLinesReferencePoints: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*\n"
             }
           ]
         },
@@ -1076,45 +1076,45 @@
           "entries": [
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b1": {
+                "topo:testTopoLinesReferencePoints": {
                   "nodes": []
                 },
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b3": {
-                  "nodes": []
+                "topo:testTopoReferencesExist": {
+                  "nodes": [
+                    "/geojson:topology"
+                  ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: *none*\n - Shape topo:testTopoReferencesExist: /geojson:topology\n"
             },
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
-                  "nodes": [
-                    "/geojson:topology"
-                  ]
+                "_:n42b9475448c64912a1a74634f1cf63f6b3": {
+                  "nodes": []
                 },
-                "topo:testTopoLinesReferencePoints": {
+                "_:n42b9475448c64912a1a74634f1cf63f6b1": {
                   "nodes": []
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: /geojson:topology\n - Shape topo:testTopoLinesReferencePoints: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*\n"
             }
           ]
         },
@@ -1198,45 +1198,45 @@
           "entries": [
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b1": {
+                "topo:testTopoLinesReferencePoints": {
                   "nodes": []
                 },
-                "_:n7753bdcdc70d420ca5c11ba6774f3526b3": {
-                  "nodes": []
+                "topo:testTopoReferencesExist": {
+                  "nodes": [
+                    "/geojson:topology"
+                  ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*\n - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: *none*\n - Shape topo:testTopoReferencesExist: /geojson:topology\n"
             },
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
-                  "nodes": [
-                    "/geojson:topology"
-                  ]
+                "_:n42b9475448c64912a1a74634f1cf63f6b3": {
+                  "nodes": []
                 },
-                "topo:testTopoLinesReferencePoints": {
+                "_:n42b9475448c64912a1a74634f1cf63f6b1": {
                   "nodes": []
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: /geojson:topology\n - Shape topo:testTopoLinesReferencePoints: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*\n - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*\n"
             }
           ]
         },
diff --git a/build/tests/geo/topo/features/topo-arc/arc_chord-orientation-fail.validation_failed.txt b/build/tests/geo/topo/features/topo-arc/arc_chord-orientation-fail.validation_failed.txt
index 77da9d2..dece0c1 100644
--- a/build/tests/geo/topo/features/topo-arc/arc_chord-orientation-fail.validation_failed.txt
+++ b/build/tests/geo/topo/features/topo-arc/arc_chord-orientation-fail.validation_failed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-arc - Non-linear Arc and Spline Descriptions using Point topology
-Generated 2024-02-05T11:36:19.373289+00:00
+Generated 2024-02-05T21:10:48.632968+00:00
 === General ===
 
 ** Validation error **
@@ -18,21 +18,21 @@ Validation passed
 === End JSON Schema ===
 
 === SHACL ===
-Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*
+Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+ - Shape topo:testTopoLinesReferencePoints: *none*
+ - Shape topo:testTopoReferencesExist: /geojson:topology
 
-Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: /geojson:topology
- - Shape topo:testTopoLinesReferencePoints: *none*
+Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
 
 === End SHACL ===
 
diff --git a/build/tests/geo/topo/features/topo-arc/arc_chord-radius-fail.validation_passed.txt b/build/tests/geo/topo/features/topo-arc/arc_chord-radius-fail.validation_passed.txt
index ea010ff..7847a6f 100644
--- a/build/tests/geo/topo/features/topo-arc/arc_chord-radius-fail.validation_passed.txt
+++ b/build/tests/geo/topo/features/topo-arc/arc_chord-radius-fail.validation_passed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-arc - Non-linear Arc and Spline Descriptions using Point topology
-Generated 2024-02-05T11:36:19.432522+00:00
+Generated 2024-02-05T21:10:48.692605+00:00
 === General ===
 Test was expected to fail and it did.
 === End General ===
@@ -58,21 +58,21 @@ On instance['topology']:
 === End JSON Schema ===
 
 === SHACL ===
-Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*
+Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+ - Shape topo:testTopoLinesReferencePoints: *none*
+ - Shape topo:testTopoReferencesExist: /geojson:topology
 
-Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: /geojson:topology
- - Shape topo:testTopoLinesReferencePoints: *none*
+Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
 
 === End SHACL ===
 
diff --git a/build/tests/geo/topo/features/topo-arc/circle-fail.validation_passed.txt b/build/tests/geo/topo/features/topo-arc/circle-fail.validation_passed.txt
index 81a0019..98e2b98 100644
--- a/build/tests/geo/topo/features/topo-arc/circle-fail.validation_passed.txt
+++ b/build/tests/geo/topo/features/topo-arc/circle-fail.validation_passed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-arc - Non-linear Arc and Spline Descriptions using Point topology
-Generated 2024-02-05T11:36:19.490800+00:00
+Generated 2024-02-05T21:10:48.751909+00:00
 === General ===
 Test was expected to fail and it did.
 === End General ===
@@ -57,21 +57,21 @@ On instance['topology']:
 === End JSON Schema ===
 
 === SHACL ===
-Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*
+Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+ - Shape topo:testTopoLinesReferencePoints: *none*
+ - Shape topo:testTopoReferencesExist: /geojson:topology
 
-Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: /geojson:topology
- - Shape topo:testTopoLinesReferencePoints: *none*
+Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
 
 === End SHACL ===
 
diff --git a/build/tests/geo/topo/features/topo-arc/example_1_1.validation_passed.txt b/build/tests/geo/topo/features/topo-arc/example_1_1.validation_passed.txt
index de88043..b4d22e1 100644
--- a/build/tests/geo/topo/features/topo-arc/example_1_1.validation_passed.txt
+++ b/build/tests/geo/topo/features/topo-arc/example_1_1.validation_passed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-arc - Non-linear Arc and Spline Descriptions using Point topology
-Generated 2024-02-05T11:36:19.655233+00:00
+Generated 2024-02-05T21:10:48.916246+00:00
 === Files ===
 Using example_1_1.json from examples
 JSON-LD context is present - uplifting
@@ -12,21 +12,21 @@ Validation passed
 === End JSON Schema ===
 
 === SHACL ===
-Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*
+Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+ - Shape topo:testTopoLinesReferencePoints: *none*
+ - Shape topo:testTopoReferencesExist: /geojson:topology
 
-Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: /geojson:topology
- - Shape topo:testTopoLinesReferencePoints: *none*
+Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
 
 === End SHACL ===
 
diff --git a/build/tests/geo/topo/features/topo-arc/example_2_1.validation_passed.txt b/build/tests/geo/topo/features/topo-arc/example_2_1.validation_passed.txt
index ed21ca4..3432a53 100644
--- a/build/tests/geo/topo/features/topo-arc/example_2_1.validation_passed.txt
+++ b/build/tests/geo/topo/features/topo-arc/example_2_1.validation_passed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-arc - Non-linear Arc and Spline Descriptions using Point topology
-Generated 2024-02-05T11:36:19.758399+00:00
+Generated 2024-02-05T21:10:49.019724+00:00
 === Files ===
 Using example_2_1.json from examples
 JSON-LD context is present - uplifting
@@ -12,21 +12,21 @@ Validation passed
 === End JSON Schema ===
 
 === SHACL ===
-Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*
+Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+ - Shape topo:testTopoLinesReferencePoints: *none*
+ - Shape topo:testTopoReferencesExist: /geojson:topology
 
-Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: /geojson:topology
- - Shape topo:testTopoLinesReferencePoints: *none*
+Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
 
 === End SHACL ===
 
diff --git a/build/tests/geo/topo/features/topo-arc/example_3_1.validation_passed.txt b/build/tests/geo/topo/features/topo-arc/example_3_1.validation_passed.txt
index 5ab98e0..ff0badd 100644
--- a/build/tests/geo/topo/features/topo-arc/example_3_1.validation_passed.txt
+++ b/build/tests/geo/topo/features/topo-arc/example_3_1.validation_passed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-arc - Non-linear Arc and Spline Descriptions using Point topology
-Generated 2024-02-05T11:36:19.886298+00:00
+Generated 2024-02-05T21:10:49.152829+00:00
 === Files ===
 Using example_3_1.json from examples
 JSON-LD context is present - uplifting
@@ -12,21 +12,21 @@ Validation passed
 === End JSON Schema ===
 
 === SHACL ===
-Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*
+Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+ - Shape topo:testTopoLinesReferencePoints: *none*
+ - Shape topo:testTopoReferencesExist: /geojson:topology
 
-Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: /geojson:topology
- - Shape topo:testTopoLinesReferencePoints: *none*
+Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
 
 === End SHACL ===
 
diff --git a/build/tests/geo/topo/features/topo-arc/example_4_1.validation_passed.txt b/build/tests/geo/topo/features/topo-arc/example_4_1.validation_passed.txt
index d7aacef..5b38600 100644
--- a/build/tests/geo/topo/features/topo-arc/example_4_1.validation_passed.txt
+++ b/build/tests/geo/topo/features/topo-arc/example_4_1.validation_passed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-arc - Non-linear Arc and Spline Descriptions using Point topology
-Generated 2024-02-05T11:36:19.986931+00:00
+Generated 2024-02-05T21:10:49.254601+00:00
 === Files ===
 Using example_4_1.json from examples
 JSON-LD context is present - uplifting
@@ -12,21 +12,21 @@ Validation passed
 === End JSON Schema ===
 
 === SHACL ===
-Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*
+Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+ - Shape topo:testTopoLinesReferencePoints: *none*
+ - Shape topo:testTopoReferencesExist: /geojson:topology
 
-Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: /geojson:topology
- - Shape topo:testTopoLinesReferencePoints: *none*
+Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
 
 === End SHACL ===
 
diff --git a/build/tests/geo/topo/features/topo-arc/example_5_1.validation_passed.txt b/build/tests/geo/topo/features/topo-arc/example_5_1.validation_passed.txt
index 9959383..1aae646 100644
--- a/build/tests/geo/topo/features/topo-arc/example_5_1.validation_passed.txt
+++ b/build/tests/geo/topo/features/topo-arc/example_5_1.validation_passed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-arc - Non-linear Arc and Spline Descriptions using Point topology
-Generated 2024-02-05T11:36:20.090471+00:00
+Generated 2024-02-05T21:10:49.358499+00:00
 === Files ===
 Using example_5_1.json from examples
 JSON-LD context is present - uplifting
@@ -12,21 +12,21 @@ Validation passed
 === End JSON Schema ===
 
 === SHACL ===
-Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*
+Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+ - Shape topo:testTopoLinesReferencePoints: *none*
+ - Shape topo:testTopoReferencesExist: /geojson:topology
 
-Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: /geojson:topology
- - Shape topo:testTopoLinesReferencePoints: *none*
+Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
 
 === End SHACL ===
 
diff --git a/build/tests/geo/topo/features/topo-arc/example_6_1.validation_passed.txt b/build/tests/geo/topo/features/topo-arc/example_6_1.validation_passed.txt
index 039ec1b..a4c8934 100644
--- a/build/tests/geo/topo/features/topo-arc/example_6_1.validation_passed.txt
+++ b/build/tests/geo/topo/features/topo-arc/example_6_1.validation_passed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-arc - Non-linear Arc and Spline Descriptions using Point topology
-Generated 2024-02-05T11:36:20.194331+00:00
+Generated 2024-02-05T21:10:49.461651+00:00
 === Files ===
 Using example_6_1.json from examples
 JSON-LD context is present - uplifting
@@ -12,21 +12,21 @@ Validation passed
 === End JSON Schema ===
 
 === SHACL ===
-Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*
+Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+ - Shape topo:testTopoLinesReferencePoints: *none*
+ - Shape topo:testTopoReferencesExist: /geojson:topology
 
-Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: /geojson:topology
- - Shape topo:testTopoLinesReferencePoints: *none*
+Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
 
 === End SHACL ===
 
diff --git a/build/tests/geo/topo/features/topo-arc/spline_with_tangents-fail.validation_passed.txt b/build/tests/geo/topo/features/topo-arc/spline_with_tangents-fail.validation_passed.txt
index 1d2b12d..cc55d63 100644
--- a/build/tests/geo/topo/features/topo-arc/spline_with_tangents-fail.validation_passed.txt
+++ b/build/tests/geo/topo/features/topo-arc/spline_with_tangents-fail.validation_passed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-arc - Non-linear Arc and Spline Descriptions using Point topology
-Generated 2024-02-05T11:36:19.549469+00:00
+Generated 2024-02-05T21:10:48.812156+00:00
 === General ===
 Test was expected to fail and it did.
 === End General ===
@@ -58,21 +58,21 @@ On instance['topology']:
 === End JSON Schema ===
 
 === SHACL ===
-Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none*
- - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none*
+Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+ - Shape topo:testTopoLinesReferencePoints: *none*
+ - Shape topo:testTopoReferencesExist: /geojson:topology
 
-Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: /geojson:topology
- - Shape topo:testTopoLinesReferencePoints: *none*
+Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none*
+ - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
 
 === End SHACL ===
 
diff --git a/build/tests/geo/topo/features/topo-feature-collection/_report.json b/build/tests/geo/topo/features/topo-feature-collection/_report.json
index 0ff5699..d7f9f28 100644
--- a/build/tests/geo/topo/features/topo-feature-collection/_report.json
+++ b/build/tests/geo/topo/features/topo-feature-collection/_report.json
@@ -2,7 +2,7 @@
   "title": "Validation report for ogc.geo.topo.features.topo-feature-collection - TopoFeatureCollection",
   "bblockName": "TopoFeatureCollection",
   "bblockId": "ogc.geo.topo.features.topo-feature-collection",
-  "generated": "2024-02-05T11:36:22.288886+00:00",
+  "generated": "2024-02-05T21:10:52.779864+00:00",
   "result": true,
   "items": [
     {
@@ -83,26 +83,26 @@
             {
               "op": "shacl-report",
               "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
-              "graph": "@prefix geojson:  .\n@prefix rdf:  .\n@prefix sh:  .\n@prefix topo:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms false ;\n    sh:result [ a sh:ValidationResult ;\n            sh:focusNode _:N277f56daf75e4cccae1e6a972adbf142 ;\n            sh:resultMessage \"Lines topologies must reference points within current graph closure.\" ;\n            sh:resultPath geojson:topology ;\n            sh:resultSeverity sh:Violation ;\n            sh:sourceConstraint [ sh:message \"Lines topologies must reference points within current graph closure.\" ;\n                    sh:select \"\"\"\n        prefix rdf:     \n        PREFIX rdfs:    \n        prefix geojson: \n\n        SELECT $this (geojson:topology as ?path) (?ref as ?value)\n        WHERE {\n         $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .\n         FILTER NOT EXISTS {\n             ?ref geojson:geometry/rdf:type geojson:Point }\n        }\n\"\"\" ] ;\n            sh:sourceConstraintComponent sh:SPARQLConstraintComponent ;\n            sh:sourceShape topo:testTopoLinesReferencePoints ;\n            sh:value  ],\n        [ a sh:ValidationResult ;\n            sh:focusNode _:N277f56daf75e4cccae1e6a972adbf142 ;\n            sh:resultMessage \"Referenced features must be present within current graph closure for  topological feature.\" ;\n            sh:resultPath geojson:relatedFeatures ;\n            sh:resultSeverity sh:Violation ;\n            sh:sourceConstraint [ sh:message \"Referenced features must be present within current graph closure for  topological feature.\" ;\n                    sh:select \"\"\"\n        prefix rdf:     \n        PREFIX rdfs:    \n        prefix geojson: \n\n        SELECT $this (geojson:relatedFeatures as ?path) (?ref as ?value)\n        WHERE {\n         $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .\n         $this a ?geomtype .\n         FILTER ( ?geomtype != geojson:Polygon)\n         FILTER NOT EXISTS { ?ref ?p ?o }\n        }\n\"\"\" ] ;\n            sh:sourceConstraintComponent sh:SPARQLConstraintComponent ;\n            sh:sourceShape topo:testTopoReferencesExist ;\n            sh:value  ] .\n\n_:Ncb665c9fc536463e88702d8e8821eda9 rdf:first  ;\n    rdf:rest (  ) .\n\n_:N277f56daf75e4cccae1e6a972adbf142 a geojson:LineString ;\n    geojson:relatedFeatures _:Ncb665c9fc536463e88702d8e8821eda9 .\n\n",
+              "graph": "@prefix geojson:  .\n@prefix rdf:  .\n@prefix sh:  .\n@prefix topo:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms false ;\n    sh:result [ a sh:ValidationResult ;\n            sh:focusNode _:Nb764ba7e0bc14e8baaeb9dbf00ef2ae8 ;\n            sh:resultMessage \"Referenced features must be present within current graph closure for  topological feature.\" ;\n            sh:resultPath geojson:relatedFeatures ;\n            sh:resultSeverity sh:Violation ;\n            sh:sourceConstraint [ sh:message \"Referenced features must be present within current graph closure for  topological feature.\" ;\n                    sh:select \"\"\"\n        prefix rdf:     \n        PREFIX rdfs:    \n        prefix geojson: \n\n        SELECT $this (geojson:relatedFeatures as ?path) (?ref as ?value)\n        WHERE {\n         $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .\n         $this a ?geomtype .\n         FILTER ( ?geomtype != geojson:Polygon)\n         FILTER NOT EXISTS { ?ref ?p ?o }\n        }\n\"\"\" ] ;\n            sh:sourceConstraintComponent sh:SPARQLConstraintComponent ;\n            sh:sourceShape topo:testTopoReferencesExist ;\n            sh:value  ],\n        [ a sh:ValidationResult ;\n            sh:focusNode _:Nb764ba7e0bc14e8baaeb9dbf00ef2ae8 ;\n            sh:resultMessage \"Lines topologies must reference points within current graph closure.\" ;\n            sh:resultPath geojson:topology ;\n            sh:resultSeverity sh:Violation ;\n            sh:sourceConstraint [ sh:message \"Lines topologies must reference points within current graph closure.\" ;\n                    sh:select \"\"\"\n        prefix rdf:     \n        PREFIX rdfs:    \n        prefix geojson: \n\n        SELECT $this (geojson:topology as ?path) (?ref as ?value)\n        WHERE {\n         $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .\n         FILTER NOT EXISTS {\n             ?ref geojson:geometry/rdf:type geojson:Point }\n        }\n\"\"\" ] ;\n            sh:sourceConstraintComponent sh:SPARQLConstraintComponent ;\n            sh:sourceShape topo:testTopoLinesReferencePoints ;\n            sh:value  ] .\n\n_:N7a8138ed67664c989ac901a5ebbe0051 rdf:first  ;\n    rdf:rest (  ) .\n\n_:Nb764ba7e0bc14e8baaeb9dbf00ef2ae8 a geojson:LineString ;\n    geojson:relatedFeatures _:N7a8138ed67664c989ac901a5ebbe0051 .\n\n",
               "isError": true,
-              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: False\n  Results (2):\n  Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent):\n  \tSeverity: sh:Violation\n  \tSource Shape: topo:testTopoReferencesExist\n  \tFocus Node: [ geojson:relatedFeatures (   ) ; rdf:type geojson:LineString ]\n  \tValue Node: \n  \tResult Path: geojson:relatedFeatures\n  \tSource Constraint: [ sh:message Literal(\"Referenced features must be present within current graph closure for  topological feature.\") ; sh:select Literal(\"\n          prefix rdf:     \n          PREFIX rdfs:    \n          prefix geojson: \n  \n          SELECT $this (geojson:relatedFeatures as ?path) (?ref as ?value)\n          WHERE {\n           $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .\n           $this a ?geomtype .\n           FILTER ( ?geomtype != geojson:Polygon)\n           FILTER NOT EXISTS { ?ref ?p ?o }\n          }\n  \") ]\n  \tMessage: Referenced features must be present within current graph closure for  topological feature.\n  Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent):\n  \tSeverity: sh:Violation\n  \tSource Shape: topo:testTopoLinesReferencePoints\n  \tFocus Node: [ geojson:relatedFeatures (   ) ; rdf:type geojson:LineString ]\n  \tValue Node: \n  \tResult Path: geojson:topology\n  \tSource Constraint: [ sh:message Literal(\"Lines topologies must reference points within current graph closure.\") ; sh:select Literal(\"\n          prefix rdf:     \n          PREFIX rdfs:    \n          prefix geojson: \n  \n          SELECT $this (geojson:topology as ?path) (?ref as ?value)\n          WHERE {\n           $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .\n           FILTER NOT EXISTS {\n               ?ref geojson:geometry/rdf:type geojson:Point }\n          }\n  \") ]\n  \tMessage: Lines topologies must reference points within current graph closure.\n  "
+              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: False\n  Results (2):\n  Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent):\n  \tSeverity: sh:Violation\n  \tSource Shape: topo:testTopoLinesReferencePoints\n  \tFocus Node: [ geojson:relatedFeatures (   ) ; rdf:type geojson:LineString ]\n  \tValue Node: \n  \tResult Path: geojson:topology\n  \tSource Constraint: [ sh:message Literal(\"Lines topologies must reference points within current graph closure.\") ; sh:select Literal(\"\n          prefix rdf:     \n          PREFIX rdfs:    \n          prefix geojson: \n  \n          SELECT $this (geojson:topology as ?path) (?ref as ?value)\n          WHERE {\n           $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .\n           FILTER NOT EXISTS {\n               ?ref geojson:geometry/rdf:type geojson:Point }\n          }\n  \") ]\n  \tMessage: Lines topologies must reference points within current graph closure.\n  Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent):\n  \tSeverity: sh:Violation\n  \tSource Shape: topo:testTopoReferencesExist\n  \tFocus Node: [ geojson:relatedFeatures (   ) ; rdf:type geojson:LineString ]\n  \tValue Node: \n  \tResult Path: geojson:relatedFeatures\n  \tSource Constraint: [ sh:message Literal(\"Referenced features must be present within current graph closure for  topological feature.\") ; sh:select Literal(\"\n          prefix rdf:     \n          PREFIX rdfs:    \n          prefix geojson: \n  \n          SELECT $this (geojson:relatedFeatures as ?path) (?ref as ?value)\n          WHERE {\n           $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .\n           $this a ?geomtype .\n           FILTER ( ?geomtype != geojson:Polygon)\n           FILTER NOT EXISTS { ?ref ?p ?o }\n          }\n  \") ]\n  \tMessage: Referenced features must be present within current graph closure for  topological feature.\n  "
             },
             {
               "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
+                "topo:testTopoLinesReferencePoints": {
                   "nodes": [
                     "/geojson:topology"
                   ]
                 },
-                "topo:testTopoLinesReferencePoints": {
+                "topo:testTopoReferencesExist": {
                   "nodes": [
                     "/geojson:topology"
                   ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: /geojson:topology\n - Shape topo:testTopoLinesReferencePoints: /geojson:topology\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: /geojson:topology\n - Shape topo:testTopoReferencesExist: /geojson:topology\n"
             },
             {
               "op": "shacl-report",
@@ -114,21 +114,21 @@
             {
               "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "_:n49156267b91941879c3e511d5c191f47b3": {
+                "_:n5941f89151ce4d90bebd0e22ba76ce80b1": {
                   "nodes": [
-                    "/geojson:geometry",
-                    "/geojson:geometry"
+                    "/geojson:geometry",
+                    "/geojson:geometry"
                   ]
                 },
-                "_:n49156267b91941879c3e511d5c191f47b1": {
+                "_:n5941f89151ce4d90bebd0e22ba76ce80b3": {
                   "nodes": [
-                    "/geojson:geometry",
-                    "/geojson:geometry"
+                    "/geojson:geometry",
+                    "/geojson:geometry"
                   ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n49156267b91941879c3e511d5c191f47b3: /geojson:geometry,/geojson:geometry\n - Shape _:n49156267b91941879c3e511d5c191f47b1: /geojson:geometry,/geojson:geometry\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b1: /geojson:geometry,/geojson:geometry\n - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b3: /geojson:geometry,/geojson:geometry\n"
             }
           ]
         },
@@ -220,15 +220,15 @@
             {
               "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
+                "topo:testTopoLinesReferencePoints": {
                   "nodes": []
                 },
-                "topo:testTopoLinesReferencePoints": {
+                "topo:testTopoReferencesExist": {
                   "nodes": []
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: *none*\n - Shape topo:testTopoLinesReferencePoints: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: *none*\n - Shape topo:testTopoReferencesExist: *none*\n"
             },
             {
               "op": "shacl-report",
@@ -240,21 +240,21 @@
             {
               "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "_:n49156267b91941879c3e511d5c191f47b3": {
+                "_:n5941f89151ce4d90bebd0e22ba76ce80b1": {
                   "nodes": [
-                    "/geojson:geometry",
-                    "/geojson:geometry"
+                    "/geojson:geometry",
+                    "/geojson:geometry"
                   ]
                 },
-                "_:n49156267b91941879c3e511d5c191f47b1": {
+                "_:n5941f89151ce4d90bebd0e22ba76ce80b3": {
                   "nodes": [
-                    "/geojson:geometry",
-                    "/geojson:geometry"
+                    "/geojson:geometry",
+                    "/geojson:geometry"
                   ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n49156267b91941879c3e511d5c191f47b3: /geojson:geometry,/geojson:geometry\n - Shape _:n49156267b91941879c3e511d5c191f47b1: /geojson:geometry,/geojson:geometry\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b1: /geojson:geometry,/geojson:geometry\n - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b3: /geojson:geometry,/geojson:geometry\n"
             }
           ]
         },
@@ -346,19 +346,19 @@
             {
               "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
+                "topo:testTopoLinesReferencePoints": {
                   "nodes": [
                     "/geojson:topology"
                   ]
                 },
-                "topo:testTopoLinesReferencePoints": {
+                "topo:testTopoReferencesExist": {
                   "nodes": [
                     "/geojson:topology"
                   ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: /geojson:topology\n - Shape topo:testTopoLinesReferencePoints: /geojson:topology\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: /geojson:topology\n - Shape topo:testTopoReferencesExist: /geojson:topology\n"
             },
             {
               "op": "shacl-report",
@@ -370,13 +370,13 @@
             {
               "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "_:n49156267b91941879c3e511d5c191f47b3": {
+                "_:n5941f89151ce4d90bebd0e22ba76ce80b1": {
                   "nodes": [
                     "/geojson:geometry",
                     "/geojson:geometry"
                   ]
                 },
-                "_:n49156267b91941879c3e511d5c191f47b1": {
+                "_:n5941f89151ce4d90bebd0e22ba76ce80b3": {
                   "nodes": [
                     "/geojson:geometry",
                     "/geojson:geometry"
@@ -384,7 +384,7 @@
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n49156267b91941879c3e511d5c191f47b3: /geojson:geometry,/geojson:geometry\n - Shape _:n49156267b91941879c3e511d5c191f47b1: /geojson:geometry,/geojson:geometry\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b1: /geojson:geometry,/geojson:geometry\n - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b3: /geojson:geometry,/geojson:geometry\n"
             }
           ]
         },
@@ -476,24 +476,24 @@
             {
               "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
+                "topo:testTopoLinesReferencePoints": {
                   "nodes": [
-                    "/geojson:topology",
+                    "/geojson:topology",
                     "/geojson:topology",
-                    "/geojson:topology",
-                    "/geojson:topology"
+                    "/geojson:topology"
                   ]
                 },
-                "topo:testTopoLinesReferencePoints": {
+                "topo:testTopoReferencesExist": {
                   "nodes": [
+                    "/geojson:topology",
+                    "/geojson:topology",
                     "/geojson:topology",
-                    "/geojson:topology",
-                    "/geojson:topology"
+                    "/geojson:topology"
                   ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: /geojson:topology,/geojson:topology,/geojson:topology,/geojson:topology\n - Shape topo:testTopoLinesReferencePoints: /geojson:topology,/geojson:topology,/geojson:topology\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: /geojson:topology,/geojson:topology,/geojson:topology\n - Shape topo:testTopoReferencesExist: /geojson:topology,/geojson:topology,/geojson:topology,/geojson:topology\n"
             },
             {
               "op": "shacl-report",
@@ -505,23 +505,23 @@
             {
               "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "_:n49156267b91941879c3e511d5c191f47b3": {
+                "_:n5941f89151ce4d90bebd0e22ba76ce80b1": {
                   "nodes": [
-                    "/geojson:geometry",
                     "/geojson:geometry",
+                    "/geojson:geometry",
                     "/geojson:geometry"
                   ]
                 },
-                "_:n49156267b91941879c3e511d5c191f47b1": {
+                "_:n5941f89151ce4d90bebd0e22ba76ce80b3": {
                   "nodes": [
-                    "/geojson:geometry",
                     "/geojson:geometry",
+                    "/geojson:geometry",
                     "/geojson:geometry"
                   ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n49156267b91941879c3e511d5c191f47b3: /geojson:geometry,/geojson:geometry,/geojson:geometry\n - Shape _:n49156267b91941879c3e511d5c191f47b1: /geojson:geometry,/geojson:geometry,/geojson:geometry\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b1: /geojson:geometry,/geojson:geometry,/geojson:geometry\n - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b3: /geojson:geometry,/geojson:geometry,/geojson:geometry\n"
             }
           ]
         },
diff --git a/build/tests/geo/topo/features/topo-feature-collection/example_1_1.validation_passed.txt b/build/tests/geo/topo/features/topo-feature-collection/example_1_1.validation_passed.txt
index 98dad1a..7d123c2 100644
--- a/build/tests/geo/topo/features/topo-feature-collection/example_1_1.validation_passed.txt
+++ b/build/tests/geo/topo/features/topo-feature-collection/example_1_1.validation_passed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-feature-collection - TopoFeatureCollection
-Generated 2024-02-05T11:36:22.144230+00:00
+Generated 2024-02-05T21:10:52.602213+00:00
 === Files ===
 Using example_1_1.json from examples
 JSON-LD context is present - uplifting
@@ -17,16 +17,16 @@ Validation result for _sources/features/topo-feature-collection/tests/topo-refs-
   Conforms: True
   
 Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: *none*
  - Shape topo:testTopoLinesReferencePoints: *none*
+ - Shape topo:testTopoReferencesExist: *none*
 
 Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
   Validation Report
   Conforms: True
   
 Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:n49156267b91941879c3e511d5c191f47b3: /geojson:geometry,/geojson:geometry
- - Shape _:n49156267b91941879c3e511d5c191f47b1: /geojson:geometry,/geojson:geometry
+ - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b1: /geojson:geometry,/geojson:geometry
+ - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b3: /geojson:geometry,/geojson:geometry
 
 === End SHACL ===
 
diff --git a/build/tests/geo/topo/features/topo-feature-collection/example_2_1.validation_passed.txt b/build/tests/geo/topo/features/topo-feature-collection/example_2_1.validation_passed.txt
index 24829ae..84a3cb5 100644
--- a/build/tests/geo/topo/features/topo-feature-collection/example_2_1.validation_passed.txt
+++ b/build/tests/geo/topo/features/topo-feature-collection/example_2_1.validation_passed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-feature-collection - TopoFeatureCollection
-Generated 2024-02-05T11:36:22.187235+00:00
+Generated 2024-02-05T21:10:52.677632+00:00
 === Files ===
 Using example_2_1.json from examples
 JSON-LD context is present - uplifting
@@ -17,16 +17,16 @@ Validation result for _sources/features/topo-feature-collection/tests/topo-refs-
   Conforms: True
   
 Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: /geojson:topology
  - Shape topo:testTopoLinesReferencePoints: /geojson:topology
+ - Shape topo:testTopoReferencesExist: /geojson:topology
 
 Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
   Validation Report
   Conforms: True
   
 Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:n49156267b91941879c3e511d5c191f47b3: /geojson:geometry,/geojson:geometry
- - Shape _:n49156267b91941879c3e511d5c191f47b1: /geojson:geometry,/geojson:geometry
+ - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b1: /geojson:geometry,/geojson:geometry
+ - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b3: /geojson:geometry,/geojson:geometry
 
 === End SHACL ===
 
diff --git a/build/tests/geo/topo/features/topo-feature-collection/example_3_1.validation_passed.txt b/build/tests/geo/topo/features/topo-feature-collection/example_3_1.validation_passed.txt
index d0d03e4..821d786 100644
--- a/build/tests/geo/topo/features/topo-feature-collection/example_3_1.validation_passed.txt
+++ b/build/tests/geo/topo/features/topo-feature-collection/example_3_1.validation_passed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-feature-collection - TopoFeatureCollection
-Generated 2024-02-05T11:36:22.288813+00:00
+Generated 2024-02-05T21:10:52.779793+00:00
 === Files ===
 Using example_3_1.json from examples
 JSON-LD context is present - uplifting
@@ -17,16 +17,16 @@ Validation result for _sources/features/topo-feature-collection/tests/topo-refs-
   Conforms: True
   
 Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: /geojson:topology,/geojson:topology,/geojson:topology,/geojson:topology
- - Shape topo:testTopoLinesReferencePoints: /geojson:topology,/geojson:topology,/geojson:topology
+ - Shape topo:testTopoLinesReferencePoints: /geojson:topology,/geojson:topology,/geojson:topology
+ - Shape topo:testTopoReferencesExist: /geojson:topology,/geojson:topology,/geojson:topology,/geojson:topology
 
 Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
   Validation Report
   Conforms: True
   
 Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:n49156267b91941879c3e511d5c191f47b3: /geojson:geometry,/geojson:geometry,/geojson:geometry
- - Shape _:n49156267b91941879c3e511d5c191f47b1: /geojson:geometry,/geojson:geometry,/geojson:geometry
+ - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b1: /geojson:geometry,/geojson:geometry,/geojson:geometry
+ - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b3: /geojson:geometry,/geojson:geometry,/geojson:geometry
 
 === End SHACL ===
 
diff --git a/build/tests/geo/topo/features/topo-feature-collection/linestring-fail.validation_passed.txt b/build/tests/geo/topo/features/topo-feature-collection/linestring-fail.validation_passed.txt
index 8b1c468..d72cdbc 100644
--- a/build/tests/geo/topo/features/topo-feature-collection/linestring-fail.validation_passed.txt
+++ b/build/tests/geo/topo/features/topo-feature-collection/linestring-fail.validation_passed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-feature-collection - TopoFeatureCollection
-Generated 2024-02-05T11:36:22.119262+00:00
+Generated 2024-02-05T21:10:52.577975+00:00
 === General ===
 Test was expected to fail and it did.
 === End General ===
@@ -24,55 +24,55 @@ Validation result for _sources/features/topo-feature-collection/tests/topo-refs-
   Results (2):
   Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent):
   	Severity: sh:Violation
-  	Source Shape: topo:testTopoReferencesExist
+  	Source Shape: topo:testTopoLinesReferencePoints
   	Focus Node: [ geojson:relatedFeatures (   ) ; rdf:type geojson:LineString ]
   	Value Node: 
-  	Result Path: geojson:relatedFeatures
-  	Source Constraint: [ sh:message Literal("Referenced features must be present within current graph closure for  topological feature.") ; sh:select Literal("
+  	Result Path: geojson:topology
+  	Source Constraint: [ sh:message Literal("Lines topologies must reference points within current graph closure.") ; sh:select Literal("
           prefix rdf:     
           PREFIX rdfs:    
           prefix geojson: 
   
-          SELECT $this (geojson:relatedFeatures as ?path) (?ref as ?value)
+          SELECT $this (geojson:topology as ?path) (?ref as ?value)
           WHERE {
            $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .
-           $this a ?geomtype .
-           FILTER ( ?geomtype != geojson:Polygon)
-           FILTER NOT EXISTS { ?ref ?p ?o }
+           FILTER NOT EXISTS {
+               ?ref geojson:geometry/rdf:type geojson:Point }
           }
   ") ]
-  	Message: Referenced features must be present within current graph closure for  topological feature.
+  	Message: Lines topologies must reference points within current graph closure.
   Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent):
   	Severity: sh:Violation
-  	Source Shape: topo:testTopoLinesReferencePoints
+  	Source Shape: topo:testTopoReferencesExist
   	Focus Node: [ geojson:relatedFeatures (   ) ; rdf:type geojson:LineString ]
   	Value Node: 
-  	Result Path: geojson:topology
-  	Source Constraint: [ sh:message Literal("Lines topologies must reference points within current graph closure.") ; sh:select Literal("
+  	Result Path: geojson:relatedFeatures
+  	Source Constraint: [ sh:message Literal("Referenced features must be present within current graph closure for  topological feature.") ; sh:select Literal("
           prefix rdf:     
           PREFIX rdfs:    
           prefix geojson: 
   
-          SELECT $this (geojson:topology as ?path) (?ref as ?value)
+          SELECT $this (geojson:relatedFeatures as ?path) (?ref as ?value)
           WHERE {
            $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .
-           FILTER NOT EXISTS {
-               ?ref geojson:geometry/rdf:type geojson:Point }
+           $this a ?geomtype .
+           FILTER ( ?geomtype != geojson:Polygon)
+           FILTER NOT EXISTS { ?ref ?p ?o }
           }
   ") ]
-  	Message: Lines topologies must reference points within current graph closure.
+  	Message: Referenced features must be present within current graph closure for  topological feature.
   
 Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: /geojson:topology
  - Shape topo:testTopoLinesReferencePoints: /geojson:topology
+ - Shape topo:testTopoReferencesExist: /geojson:topology
 
 Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
   Validation Report
   Conforms: True
   
 Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:n49156267b91941879c3e511d5c191f47b3: /geojson:geometry,/geojson:geometry
- - Shape _:n49156267b91941879c3e511d5c191f47b1: /geojson:geometry,/geojson:geometry
+ - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b1: /geojson:geometry,/geojson:geometry
+ - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b3: /geojson:geometry,/geojson:geometry
 
 === End SHACL ===
 
diff --git a/build/tests/geo/topo/features/topo-feature/_report.json b/build/tests/geo/topo/features/topo-feature/_report.json
index 7576ec5..c194358 100644
--- a/build/tests/geo/topo/features/topo-feature/_report.json
+++ b/build/tests/geo/topo/features/topo-feature/_report.json
@@ -2,7 +2,7 @@
   "title": "Validation report for ogc.geo.topo.features.topo-feature - Feature with topology",
   "bblockName": "Feature with topology",
   "bblockId": "ogc.geo.topo.features.topo-feature",
-  "generated": "2024-02-05T11:36:18.466097+00:00",
+  "generated": "2024-02-05T21:10:47.537006+00:00",
   "result": true,
   "items": [
     {
@@ -82,47 +82,47 @@
           "entries": [
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
-              "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
-              "isError": false,
-              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "graph": "@prefix geojson:  .\n@prefix rdf:  .\n@prefix sh:  .\n@prefix topo:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms false ;\n    sh:result [ a sh:ValidationResult ;\n            sh:focusNode _:N49b68248f14a4667bc3104e58e3a1288 ;\n            sh:resultMessage \"Lines topologies must reference points within current graph closure.\" ;\n            sh:resultPath geojson:topology ;\n            sh:resultSeverity sh:Violation ;\n            sh:sourceConstraint [ sh:message \"Lines topologies must reference points within current graph closure.\" ;\n                    sh:select \"\"\"\n        prefix rdf:     \n        PREFIX rdfs:    \n        prefix geojson: \n\n        SELECT $this (geojson:topology as ?path) (?ref as ?value)\n        WHERE {\n         $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .\n         FILTER NOT EXISTS {\n             ?ref geojson:geometry/rdf:type geojson:Point }\n        }\n\"\"\" ] ;\n            sh:sourceConstraintComponent sh:SPARQLConstraintComponent ;\n            sh:sourceShape topo:testTopoLinesReferencePoints ;\n            sh:value  ],\n        [ a sh:ValidationResult ;\n            sh:focusNode _:N49b68248f14a4667bc3104e58e3a1288 ;\n            sh:resultMessage \"Referenced features must be present within current graph closure for  topological feature.\" ;\n            sh:resultPath geojson:relatedFeatures ;\n            sh:resultSeverity sh:Violation ;\n            sh:sourceConstraint [ sh:message \"Referenced features must be present within current graph closure for  topological feature.\" ;\n                    sh:select \"\"\"\n        prefix rdf:     \n        PREFIX rdfs:    \n        prefix geojson: \n\n        SELECT $this (geojson:relatedFeatures as ?path) (?ref as ?value)\n        WHERE {\n         $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .\n         $this a ?geomtype .\n         FILTER ( ?geomtype != geojson:Polygon)\n         FILTER NOT EXISTS { ?ref ?p ?o }\n        }\n\"\"\" ] ;\n            sh:sourceConstraintComponent sh:SPARQLConstraintComponent ;\n            sh:sourceShape topo:testTopoReferencesExist ;\n            sh:value  ] .\n\n_:Ncec847e945344fe5b609e69610d67697 rdf:first  ;\n    rdf:rest () .\n\n_:N49b68248f14a4667bc3104e58e3a1288 a geojson:LineString ;\n    geojson:relatedFeatures _:Ncec847e945344fe5b609e69610d67697 .\n\n",
+              "isError": true,
+              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: False\n  Results (2):\n  Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent):\n  \tSeverity: sh:Violation\n  \tSource Shape: topo:testTopoLinesReferencePoints\n  \tFocus Node: [ geojson:relatedFeatures (  ) ; rdf:type geojson:LineString ]\n  \tValue Node: \n  \tResult Path: geojson:topology\n  \tSource Constraint: [ sh:message Literal(\"Lines topologies must reference points within current graph closure.\") ; sh:select Literal(\"\n          prefix rdf:     \n          PREFIX rdfs:    \n          prefix geojson: \n  \n          SELECT $this (geojson:topology as ?path) (?ref as ?value)\n          WHERE {\n           $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .\n           FILTER NOT EXISTS {\n               ?ref geojson:geometry/rdf:type geojson:Point }\n          }\n  \") ]\n  \tMessage: Lines topologies must reference points within current graph closure.\n  Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent):\n  \tSeverity: sh:Violation\n  \tSource Shape: topo:testTopoReferencesExist\n  \tFocus Node: [ geojson:relatedFeatures (  ) ; rdf:type geojson:LineString ]\n  \tValue Node: \n  \tResult Path: geojson:relatedFeatures\n  \tSource Constraint: [ sh:message Literal(\"Referenced features must be present within current graph closure for  topological feature.\") ; sh:select Literal(\"\n          prefix rdf:     \n          PREFIX rdfs:    \n          prefix geojson: \n  \n          SELECT $this (geojson:relatedFeatures as ?path) (?ref as ?value)\n          WHERE {\n           $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .\n           $this a ?geomtype .\n           FILTER ( ?geomtype != geojson:Polygon)\n           FILTER NOT EXISTS { ?ref ?p ?o }\n          }\n  \") ]\n  \tMessage: Referenced features must be present within current graph closure for  topological feature.\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "_:n506ed5e046c54ba0af0faabc2264567cb3": {
-                  "nodes": []
+                "topo:testTopoLinesReferencePoints": {
+                  "nodes": [
+                    "/geojson:topology"
+                  ]
                 },
-                "_:n506ed5e046c54ba0af0faabc2264567cb1": {
-                  "nodes": []
+                "topo:testTopoReferencesExist": {
+                  "nodes": [
+                    "/geojson:topology"
+                  ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n506ed5e046c54ba0af0faabc2264567cb3: *none*\n - Shape _:n506ed5e046c54ba0af0faabc2264567cb1: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: /geojson:topology\n - Shape topo:testTopoReferencesExist: /geojson:topology\n"
             },
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
-              "graph": "@prefix geojson:  .\n@prefix rdf:  .\n@prefix sh:  .\n@prefix topo:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms false ;\n    sh:result [ a sh:ValidationResult ;\n            sh:focusNode _:N3653ec1e237c4e8ca08724c0948f7544 ;\n            sh:resultMessage \"Referenced features must be present within current graph closure for  topological feature.\" ;\n            sh:resultPath geojson:relatedFeatures ;\n            sh:resultSeverity sh:Violation ;\n            sh:sourceConstraint [ sh:message \"Referenced features must be present within current graph closure for  topological feature.\" ;\n                    sh:select \"\"\"\n        prefix rdf:     \n        PREFIX rdfs:    \n        prefix geojson: \n\n        SELECT $this (geojson:relatedFeatures as ?path) (?ref as ?value)\n        WHERE {\n         $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .\n         $this a ?geomtype .\n         FILTER ( ?geomtype != geojson:Polygon)\n         FILTER NOT EXISTS { ?ref ?p ?o }\n        }\n\"\"\" ] ;\n            sh:sourceConstraintComponent sh:SPARQLConstraintComponent ;\n            sh:sourceShape topo:testTopoReferencesExist ;\n            sh:value  ],\n        [ a sh:ValidationResult ;\n            sh:focusNode _:N3653ec1e237c4e8ca08724c0948f7544 ;\n            sh:resultMessage \"Lines topologies must reference points within current graph closure.\" ;\n            sh:resultPath geojson:topology ;\n            sh:resultSeverity sh:Violation ;\n            sh:sourceConstraint [ sh:message \"Lines topologies must reference points within current graph closure.\" ;\n                    sh:select \"\"\"\n        prefix rdf:     \n        PREFIX rdfs:    \n        prefix geojson: \n\n        SELECT $this (geojson:topology as ?path) (?ref as ?value)\n        WHERE {\n         $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .\n         FILTER NOT EXISTS {\n             ?ref geojson:geometry/rdf:type geojson:Point }\n        }\n\"\"\" ] ;\n            sh:sourceConstraintComponent sh:SPARQLConstraintComponent ;\n            sh:sourceShape topo:testTopoLinesReferencePoints ;\n            sh:value  ] .\n\n_:Nea582b4e874145c29293b66c6394179f rdf:first  ;\n    rdf:rest () .\n\n_:N3653ec1e237c4e8ca08724c0948f7544 a geojson:LineString ;\n    geojson:relatedFeatures _:Nea582b4e874145c29293b66c6394179f .\n\n",
-              "isError": true,
-              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: False\n  Results (2):\n  Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent):\n  \tSeverity: sh:Violation\n  \tSource Shape: topo:testTopoReferencesExist\n  \tFocus Node: [ geojson:relatedFeatures (  ) ; rdf:type geojson:LineString ]\n  \tValue Node: \n  \tResult Path: geojson:relatedFeatures\n  \tSource Constraint: [ sh:message Literal(\"Referenced features must be present within current graph closure for  topological feature.\") ; sh:select Literal(\"\n          prefix rdf:     \n          PREFIX rdfs:    \n          prefix geojson: \n  \n          SELECT $this (geojson:relatedFeatures as ?path) (?ref as ?value)\n          WHERE {\n           $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .\n           $this a ?geomtype .\n           FILTER ( ?geomtype != geojson:Polygon)\n           FILTER NOT EXISTS { ?ref ?p ?o }\n          }\n  \") ]\n  \tMessage: Referenced features must be present within current graph closure for  topological feature.\n  Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent):\n  \tSeverity: sh:Violation\n  \tSource Shape: topo:testTopoLinesReferencePoints\n  \tFocus Node: [ geojson:relatedFeatures (  ) ; rdf:type geojson:LineString ]\n  \tValue Node: \n  \tResult Path: geojson:topology\n  \tSource Constraint: [ sh:message Literal(\"Lines topologies must reference points within current graph closure.\") ; sh:select Literal(\"\n          prefix rdf:     \n          PREFIX rdfs:    \n          prefix geojson: \n  \n          SELECT $this (geojson:topology as ?path) (?ref as ?value)\n          WHERE {\n           $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .\n           FILTER NOT EXISTS {\n               ?ref geojson:geometry/rdf:type geojson:Point }\n          }\n  \") ]\n  \tMessage: Lines topologies must reference points within current graph closure.\n  "
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
+              "isError": false,
+              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
-                  "nodes": [
-                    "/geojson:topology"
-                  ]
+                "_:n413ceb9f71134d53be0989d09800db7fb1": {
+                  "nodes": []
                 },
-                "topo:testTopoLinesReferencePoints": {
-                  "nodes": [
-                    "/geojson:topology"
-                  ]
+                "_:n413ceb9f71134d53be0989d09800db7fb3": {
+                  "nodes": []
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: /geojson:topology\n - Shape topo:testTopoLinesReferencePoints: /geojson:topology\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n413ceb9f71134d53be0989d09800db7fb1: *none*\n - Shape _:n413ceb9f71134d53be0989d09800db7fb3: *none*\n"
             }
           ]
         },
@@ -206,47 +206,47 @@
           "entries": [
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "_:n506ed5e046c54ba0af0faabc2264567cb3": {
-                  "nodes": []
+                "topo:testTopoLinesReferencePoints": {
+                  "nodes": [
+                    "/geojson:topology"
+                  ]
                 },
-                "_:n506ed5e046c54ba0af0faabc2264567cb1": {
-                  "nodes": []
+                "topo:testTopoReferencesExist": {
+                  "nodes": [
+                    "/geojson:topology"
+                  ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n506ed5e046c54ba0af0faabc2264567cb3: *none*\n - Shape _:n506ed5e046c54ba0af0faabc2264567cb1: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: /geojson:topology\n - Shape topo:testTopoReferencesExist: /geojson:topology\n"
             },
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
-                  "nodes": [
-                    "/geojson:topology"
-                  ]
+                "_:n413ceb9f71134d53be0989d09800db7fb1": {
+                  "nodes": []
                 },
-                "topo:testTopoLinesReferencePoints": {
-                  "nodes": [
-                    "/geojson:topology"
-                  ]
+                "_:n413ceb9f71134d53be0989d09800db7fb3": {
+                  "nodes": []
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: /geojson:topology\n - Shape topo:testTopoLinesReferencePoints: /geojson:topology\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n413ceb9f71134d53be0989d09800db7fb1: *none*\n - Shape _:n413ceb9f71134d53be0989d09800db7fb3: *none*\n"
             }
           ]
         },
@@ -330,45 +330,45 @@
           "entries": [
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "_:n506ed5e046c54ba0af0faabc2264567cb3": {
+                "topo:testTopoLinesReferencePoints": {
                   "nodes": []
                 },
-                "_:n506ed5e046c54ba0af0faabc2264567cb1": {
-                  "nodes": []
+                "topo:testTopoReferencesExist": {
+                  "nodes": [
+                    "/geojson:topology"
+                  ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n506ed5e046c54ba0af0faabc2264567cb3: *none*\n - Shape _:n506ed5e046c54ba0af0faabc2264567cb1: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: *none*\n - Shape topo:testTopoReferencesExist: /geojson:topology\n"
             },
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
-                  "nodes": [
-                    "/geojson:topology"
-                  ]
+                "_:n413ceb9f71134d53be0989d09800db7fb1": {
+                  "nodes": []
                 },
-                "topo:testTopoLinesReferencePoints": {
+                "_:n413ceb9f71134d53be0989d09800db7fb3": {
                   "nodes": []
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: /geojson:topology\n - Shape topo:testTopoLinesReferencePoints: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:n413ceb9f71134d53be0989d09800db7fb1: *none*\n - Shape _:n413ceb9f71134d53be0989d09800db7fb3: *none*\n"
             }
           ]
         },
diff --git a/build/tests/geo/topo/features/topo-feature/example_1_1.validation_passed.txt b/build/tests/geo/topo/features/topo-feature/example_1_1.validation_passed.txt
index 6b97fbf..269456a 100644
--- a/build/tests/geo/topo/features/topo-feature/example_1_1.validation_passed.txt
+++ b/build/tests/geo/topo/features/topo-feature/example_1_1.validation_passed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-feature - Feature with topology
-Generated 2024-02-05T11:36:18.276497+00:00
+Generated 2024-02-05T21:10:47.344986+00:00
 === Files ===
 Using example_1_1.json from examples
 JSON-LD context is present - uplifting
@@ -12,21 +12,21 @@ Validation passed
 === End JSON Schema ===
 
 === SHACL ===
-Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:n506ed5e046c54ba0af0faabc2264567cb3: *none*
- - Shape _:n506ed5e046c54ba0af0faabc2264567cb1: *none*
+Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+ - Shape topo:testTopoLinesReferencePoints: /geojson:topology
+ - Shape topo:testTopoReferencesExist: /geojson:topology
 
-Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: /geojson:topology
- - Shape topo:testTopoLinesReferencePoints: /geojson:topology
+Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+ - Shape _:n413ceb9f71134d53be0989d09800db7fb1: *none*
+ - Shape _:n413ceb9f71134d53be0989d09800db7fb3: *none*
 
 === End SHACL ===
 
diff --git a/build/tests/geo/topo/features/topo-feature/example_2_1.validation_passed.txt b/build/tests/geo/topo/features/topo-feature/example_2_1.validation_passed.txt
index 741940f..6fac914 100644
--- a/build/tests/geo/topo/features/topo-feature/example_2_1.validation_passed.txt
+++ b/build/tests/geo/topo/features/topo-feature/example_2_1.validation_passed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-feature - Feature with topology
-Generated 2024-02-05T11:36:18.466022+00:00
+Generated 2024-02-05T21:10:47.536926+00:00
 === Files ===
 Using example_2_1.json from examples
 JSON-LD context is present - uplifting
@@ -12,21 +12,21 @@ Validation passed
 === End JSON Schema ===
 
 === SHACL ===
-Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:n506ed5e046c54ba0af0faabc2264567cb3: *none*
- - Shape _:n506ed5e046c54ba0af0faabc2264567cb1: *none*
+Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+ - Shape topo:testTopoLinesReferencePoints: *none*
+ - Shape topo:testTopoReferencesExist: /geojson:topology
 
-Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: /geojson:topology
- - Shape topo:testTopoLinesReferencePoints: *none*
+Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+ - Shape _:n413ceb9f71134d53be0989d09800db7fb1: *none*
+ - Shape _:n413ceb9f71134d53be0989d09800db7fb3: *none*
 
 === End SHACL ===
 
diff --git a/build/tests/geo/topo/features/topo-feature/linestring-fail.validation_passed.txt b/build/tests/geo/topo/features/topo-feature/linestring-fail.validation_passed.txt
index 7bfba11..3301100 100644
--- a/build/tests/geo/topo/features/topo-feature/linestring-fail.validation_passed.txt
+++ b/build/tests/geo/topo/features/topo-feature/linestring-fail.validation_passed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-feature - Feature with topology
-Generated 2024-02-05T11:36:18.165019+00:00
+Generated 2024-02-05T21:10:47.231497+00:00
 === General ===
 Test was expected to fail and it did.
 === End General ===
@@ -16,14 +16,6 @@ Validation passed
 === End JSON Schema ===
 
 === SHACL ===
-Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
-  Validation Report
-  Conforms: True
-  
-Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:n506ed5e046c54ba0af0faabc2264567cb3: *none*
- - Shape _:n506ed5e046c54ba0af0faabc2264567cb1: *none*
-
 
 ** Validation error **
 Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
@@ -32,47 +24,55 @@ Validation result for _sources/features/topo-feature-collection/tests/topo-refs-
   Results (2):
   Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent):
   	Severity: sh:Violation
-  	Source Shape: topo:testTopoReferencesExist
+  	Source Shape: topo:testTopoLinesReferencePoints
   	Focus Node: [ geojson:relatedFeatures (  ) ; rdf:type geojson:LineString ]
   	Value Node: 
-  	Result Path: geojson:relatedFeatures
-  	Source Constraint: [ sh:message Literal("Referenced features must be present within current graph closure for  topological feature.") ; sh:select Literal("
+  	Result Path: geojson:topology
+  	Source Constraint: [ sh:message Literal("Lines topologies must reference points within current graph closure.") ; sh:select Literal("
           prefix rdf:     
           PREFIX rdfs:    
           prefix geojson: 
   
-          SELECT $this (geojson:relatedFeatures as ?path) (?ref as ?value)
+          SELECT $this (geojson:topology as ?path) (?ref as ?value)
           WHERE {
            $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .
-           $this a ?geomtype .
-           FILTER ( ?geomtype != geojson:Polygon)
-           FILTER NOT EXISTS { ?ref ?p ?o }
+           FILTER NOT EXISTS {
+               ?ref geojson:geometry/rdf:type geojson:Point }
           }
   ") ]
-  	Message: Referenced features must be present within current graph closure for  topological feature.
+  	Message: Lines topologies must reference points within current graph closure.
   Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent):
   	Severity: sh:Violation
-  	Source Shape: topo:testTopoLinesReferencePoints
+  	Source Shape: topo:testTopoReferencesExist
   	Focus Node: [ geojson:relatedFeatures (  ) ; rdf:type geojson:LineString ]
   	Value Node: 
-  	Result Path: geojson:topology
-  	Source Constraint: [ sh:message Literal("Lines topologies must reference points within current graph closure.") ; sh:select Literal("
+  	Result Path: geojson:relatedFeatures
+  	Source Constraint: [ sh:message Literal("Referenced features must be present within current graph closure for  topological feature.") ; sh:select Literal("
           prefix rdf:     
           PREFIX rdfs:    
           prefix geojson: 
   
-          SELECT $this (geojson:topology as ?path) (?ref as ?value)
+          SELECT $this (geojson:relatedFeatures as ?path) (?ref as ?value)
           WHERE {
            $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref .
-           FILTER NOT EXISTS {
-               ?ref geojson:geometry/rdf:type geojson:Point }
+           $this a ?geomtype .
+           FILTER ( ?geomtype != geojson:Polygon)
+           FILTER NOT EXISTS { ?ref ?p ?o }
           }
   ") ]
-  	Message: Lines topologies must reference points within current graph closure.
+  	Message: Referenced features must be present within current graph closure for  topological feature.
   
 Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: /geojson:topology
  - Shape topo:testTopoLinesReferencePoints: /geojson:topology
+ - Shape topo:testTopoReferencesExist: /geojson:topology
+
+Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+  Validation Report
+  Conforms: True
+  
+Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+ - Shape _:n413ceb9f71134d53be0989d09800db7fb1: *none*
+ - Shape _:n413ceb9f71134d53be0989d09800db7fb3: *none*
 
 === End SHACL ===
 
diff --git a/build/tests/geo/topo/features/topo-line/_report.json b/build/tests/geo/topo/features/topo-line/_report.json
index 461d94b..4b9498d 100644
--- a/build/tests/geo/topo/features/topo-line/_report.json
+++ b/build/tests/geo/topo/features/topo-line/_report.json
@@ -2,7 +2,7 @@
   "title": "Validation report for ogc.geo.topo.features.topo-line - Line using Point References",
   "bblockName": "Line using Point References",
   "bblockId": "ogc.geo.topo.features.topo-line",
-  "generated": "2024-02-05T11:36:20.766249+00:00",
+  "generated": "2024-02-05T21:10:51.040855+00:00",
   "result": true,
   "items": [
     {
@@ -78,47 +78,47 @@
           "entries": [
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
+              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
               "focusNodes": {
-                "_:ndb67b2824dec4aa4935092588870e8a0b1": {
-                  "nodes": []
+                "topo:testTopoLinesReferencePoints": {
+                  "nodes": [
+                    "/geojson:topology"
+                  ]
                 },
-                "_:ndb67b2824dec4aa4935092588870e8a0b3": {
-                  "nodes": []
+                "topo:testTopoReferencesExist": {
+                  "nodes": [
+                    "/geojson:topology"
+                  ]
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:ndb67b2824dec4aa4935092588870e8a0b1: *none*\n - Shape _:ndb67b2824dec4aa4935092588870e8a0b3: *none*\n"
+              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoLinesReferencePoints: /geojson:topology\n - Shape topo:testTopoReferencesExist: /geojson:topology\n"
             },
             {
               "op": "shacl-report",
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "graph": "@prefix sh:  .\n@prefix xsd:  .\n\n[] a sh:ValidationReport ;\n    sh:conforms true .\n\n",
               "isError": false,
-              "message": "Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n  Validation Report\n  Conforms: True\n  "
+              "message": "Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n  Validation Report\n  Conforms: True\n  "
             },
             {
-              "shaclFile": "_sources/features/topo-feature-collection/tests/topo-refs-exist.shacl",
+              "shaclFile": "_sources/features/topo-feature/tests/geometry-coordinates.shacl",
               "focusNodes": {
-                "topo:testTopoReferencesExist": {
-                  "nodes": [
-                    "/geojson:topology"
-                  ]
+                "_:nf77cdfbf2cf0449480c9772b70fd2369b1": {
+                  "nodes": []
                 },
-                "topo:testTopoLinesReferencePoints": {
-                  "nodes": [
-                    "/geojson:topology"
-                  ]
+                "_:nf77cdfbf2cf0449480c9772b70fd2369b3": {
+                  "nodes": []
                 }
               },
               "isError": false,
-              "message": "Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:\n - Shape topo:testTopoReferencesExist: /geojson:topology\n - Shape topo:testTopoLinesReferencePoints: /geojson:topology\n"
+              "message": "Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:\n - Shape _:nf77cdfbf2cf0449480c9772b70fd2369b1: *none*\n - Shape _:nf77cdfbf2cf0449480c9772b70fd2369b3: *none*\n"
             }
           ]
         },
diff --git a/build/tests/geo/topo/features/topo-line/example_1_1.validation_passed.txt b/build/tests/geo/topo/features/topo-line/example_1_1.validation_passed.txt
index cceedf8..8c14075 100644
--- a/build/tests/geo/topo/features/topo-line/example_1_1.validation_passed.txt
+++ b/build/tests/geo/topo/features/topo-line/example_1_1.validation_passed.txt
@@ -1,5 +1,5 @@
 Validation report for ogc.geo.topo.features.topo-line - Line using Point References
-Generated 2024-02-05T11:36:20.766184+00:00
+Generated 2024-02-05T21:10:51.040785+00:00
 === Files ===
 Using example_1_1.json from examples
 JSON-LD context is present - uplifting
@@ -12,21 +12,21 @@ Validation passed
 === End JSON Schema ===
 
 === SHACL ===
-Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
- - Shape _:ndb67b2824dec4aa4935092588870e8a0b1: *none*
- - Shape _:ndb67b2824dec4aa4935092588870e8a0b3: *none*
+Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+ - Shape topo:testTopoLinesReferencePoints: /geojson:topology
+ - Shape topo:testTopoReferencesExist: /geojson:topology
 
-Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
+Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
   Validation Report
   Conforms: True
   
-Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl:
- - Shape topo:testTopoReferencesExist: /geojson:topology
- - Shape topo:testTopoLinesReferencePoints: /geojson:topology
+Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl:
+ - Shape _:nf77cdfbf2cf0449480c9772b70fd2369b1: *none*
+ - Shape _:nf77cdfbf2cf0449480c9772b70fd2369b3: *none*
 
 === End SHACL ===
 
diff --git a/build/tests/report.html b/build/tests/report.html
index 8394b70..12b21b6 100644
--- a/build/tests/report.html
+++ b/build/tests/report.html
@@ -26,7 +26,7 @@
     
         

Building blocks validation report

- Generated at 2024-02-05T11:36:22.301527+00:00 + Generated at 2024-02-05T21:10:52.792397+00:00

Number of passing building blocks: 4 / 5 (80%)

@@ -134,61 +134,61 @@

JSON Schema
Validation passed
SHACL
-
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - Validation Report - Conforms: True -
-
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:n506ed5e046c54ba0af0faabc2264567cb3: *none* - - Shape _:n506ed5e046c54ba0af0faabc2264567cb1: *none* -
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: Validation Report Conforms: False Results (2): Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent): Severity: sh:Violation - Source Shape: topo:testTopoReferencesExist + Source Shape: topo:testTopoLinesReferencePoints Focus Node: [ geojson:relatedFeatures ( <file:///github/workspace/P1> ) ; rdf:type geojson:LineString ] Value Node: <file:///github/workspace/P1> - Result Path: geojson:relatedFeatures - Source Constraint: [ sh:message Literal("Referenced features must be present within current graph closure for topological feature.") ; sh:select Literal(" + Result Path: geojson:topology + Source Constraint: [ sh:message Literal("Lines topologies must reference points within current graph closure.") ; sh:select Literal(" prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix geojson: <https://purl.org/geojson/vocab#> - SELECT $this (geojson:relatedFeatures as ?path) (?ref as ?value) + SELECT $this (geojson:topology as ?path) (?ref as ?value) WHERE { $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref . - $this a ?geomtype . - FILTER ( ?geomtype != geojson:Polygon) - FILTER NOT EXISTS { ?ref ?p ?o } + FILTER NOT EXISTS { + ?ref geojson:geometry/rdf:type geojson:Point } } ") ] - Message: Referenced features must be present within current graph closure for topological feature. + Message: Lines topologies must reference points within current graph closure. Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent): Severity: sh:Violation - Source Shape: topo:testTopoLinesReferencePoints + Source Shape: topo:testTopoReferencesExist Focus Node: [ geojson:relatedFeatures ( <file:///github/workspace/P1> ) ; rdf:type geojson:LineString ] Value Node: <file:///github/workspace/P1> - Result Path: geojson:topology - Source Constraint: [ sh:message Literal("Lines topologies must reference points within current graph closure.") ; sh:select Literal(" + Result Path: geojson:relatedFeatures + Source Constraint: [ sh:message Literal("Referenced features must be present within current graph closure for topological feature.") ; sh:select Literal(" prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix geojson: <https://purl.org/geojson/vocab#> - SELECT $this (geojson:topology as ?path) (?ref as ?value) + SELECT $this (geojson:relatedFeatures as ?path) (?ref as ?value) WHERE { $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref . - FILTER NOT EXISTS { - ?ref geojson:geometry/rdf:type geojson:Point } + $this a ?geomtype . + FILTER ( ?geomtype != geojson:Polygon) + FILTER NOT EXISTS { ?ref ?p ?o } } ") ] - Message: Lines topologies must reference points within current graph closure. + Message: Referenced features must be present within current graph closure for topological feature.
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: <file:///github/workspace/LineP1P2>/geojson:topology - Shape topo:testTopoLinesReferencePoints: <file:///github/workspace/LineP1P2>/geojson:topology + - Shape topo:testTopoReferencesExist: <file:///github/workspace/LineP1P2>/geojson:topology +
+
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: + Validation Report + Conforms: True +
+
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: + - Shape _:n413ceb9f71134d53be0989d09800db7fb1: *none* + - Shape _:n413ceb9f71134d53be0989d09800db7fb3: *none*

@@ -220,21 +220,21 @@

JSON Schema
Validation passed
SHACL
-
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: +
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:n506ed5e046c54ba0af0faabc2264567cb3: *none* - - Shape _:n506ed5e046c54ba0af0faabc2264567cb1: *none* +
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: + - Shape topo:testTopoLinesReferencePoints: <http://www.example.com/features/LineP1P2>/geojson:topology + - Shape topo:testTopoReferencesExist: <http://www.example.com/features/LineP1P2>/geojson:topology
-
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: +
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: <http://www.example.com/features/LineP1P2>/geojson:topology - - Shape topo:testTopoLinesReferencePoints: <http://www.example.com/features/LineP1P2>/geojson:topology +
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: + - Shape _:n413ceb9f71134d53be0989d09800db7fb1: *none* + - Shape _:n413ceb9f71134d53be0989d09800db7fb3: *none*
@@ -266,21 +266,21 @@

JSON Schema
Validation passed
SHACL
-
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: +
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:n506ed5e046c54ba0af0faabc2264567cb3: *none* - - Shape _:n506ed5e046c54ba0af0faabc2264567cb1: *none* +
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: + - Shape topo:testTopoLinesReferencePoints: *none* + - Shape topo:testTopoReferencesExist: <http://www.example.com/features/TriangleP1P2P3>/geojson:topology
-
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: +
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: <http://www.example.com/features/TriangleP1P2P3>/geojson:topology - - Shape topo:testTopoLinesReferencePoints: *none* +
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: + - Shape _:n413ceb9f71134d53be0989d09800db7fb1: *none* + - Shape _:n413ceb9f71134d53be0989d09800db7fb3: *none*
@@ -337,21 +337,21 @@

JSON Schema
Validation passed
SHACL
-
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: +
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none* - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none* +
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: + - Shape topo:testTopoLinesReferencePoints: *none* + - Shape topo:testTopoReferencesExist: <http://www.example.com/features/chord1>/geojson:topology
-
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: +
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: <http://www.example.com/features/chord1>/geojson:topology - - Shape topo:testTopoLinesReferencePoints: *none* +
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: + - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none* + - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
@@ -426,21 +426,21 @@

'x-description': 'References is an ordered list of features with for ' 'an Arc Chord, radius and length determine geometry'}

SHACL
-
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: +
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none* - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none* +
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: + - Shape topo:testTopoLinesReferencePoints: *none* + - Shape topo:testTopoReferencesExist: <http://www.example.com/features/chord1>/geojson:topology
-
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: +
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: <http://www.example.com/features/chord1>/geojson:topology - - Shape topo:testTopoLinesReferencePoints: *none* +
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: + - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none* + - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
@@ -514,21 +514,21 @@

'x-description': 'Reference is the feature defining the centre point ' 'of a circle - it must have a Point geometry.'}

SHACL
-
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: +
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none* - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none* +
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: + - Shape topo:testTopoLinesReferencePoints: *none* + - Shape topo:testTopoReferencesExist: <http://www.example.com/features/1853004>/geojson:topology
-
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: +
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: <http://www.example.com/features/1853004>/geojson:topology - - Shape topo:testTopoLinesReferencePoints: *none* +
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: + - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none* + - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
@@ -603,21 +603,21 @@

'point geometries, with tangent vectors defining ' 'entry and exit angles'}

SHACL
-
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: +
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none* - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none* +
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: + - Shape topo:testTopoLinesReferencePoints: *none* + - Shape topo:testTopoReferencesExist: <http://www.example.com/features/1853004>/geojson:topology
-
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: +
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: <http://www.example.com/features/1853004>/geojson:topology - - Shape topo:testTopoLinesReferencePoints: *none* +
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: + - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none* + - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
@@ -649,21 +649,21 @@

JSON Schema
Validation passed
SHACL
-
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: +
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none* - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none* +
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: + - Shape topo:testTopoLinesReferencePoints: *none* + - Shape topo:testTopoReferencesExist: <http://www.example.com/features/1853004>/geojson:topology
-
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: +
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: <http://www.example.com/features/1853004>/geojson:topology - - Shape topo:testTopoLinesReferencePoints: *none* +
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: + - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none* + - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
@@ -695,21 +695,21 @@

JSON Schema
Validation passed
SHACL
-
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: +
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none* - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none* +
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: + - Shape topo:testTopoLinesReferencePoints: *none* + - Shape topo:testTopoReferencesExist: <http://www.example.com/features/arc1>/geojson:topology
-
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: +
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: <http://www.example.com/features/arc1>/geojson:topology - - Shape topo:testTopoLinesReferencePoints: *none* +
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: + - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none* + - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
@@ -741,21 +741,21 @@

JSON Schema
Validation passed
SHACL
-
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: +
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none* - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none* +
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: + - Shape topo:testTopoLinesReferencePoints: *none* + - Shape topo:testTopoReferencesExist: <http://www.example.com/features/chord1>/geojson:topology
-
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: +
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: <http://www.example.com/features/chord1>/geojson:topology - - Shape topo:testTopoLinesReferencePoints: *none* +
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: + - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none* + - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
@@ -787,21 +787,21 @@

JSON Schema
Validation passed
SHACL
-
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: +
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none* - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none* +
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: + - Shape topo:testTopoLinesReferencePoints: *none* + - Shape topo:testTopoReferencesExist: <http://www.example.com/features/1853004>/geojson:topology
-
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: +
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: <http://www.example.com/features/1853004>/geojson:topology - - Shape topo:testTopoLinesReferencePoints: *none* +
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: + - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none* + - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
@@ -833,21 +833,21 @@

JSON Schema
Validation passed
SHACL
-
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: +
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none* - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none* +
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: + - Shape topo:testTopoLinesReferencePoints: *none* + - Shape topo:testTopoReferencesExist: <http://www.example.com/features/1853004>/geojson:topology
-
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: +
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: <http://www.example.com/features/1853004>/geojson:topology - - Shape topo:testTopoLinesReferencePoints: *none* +
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: + - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none* + - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
@@ -879,21 +879,21 @@

JSON Schema
Validation passed
SHACL
-
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: +
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b1: *none* - - Shape _:n7753bdcdc70d420ca5c11ba6774f3526b3: *none* +
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: + - Shape topo:testTopoLinesReferencePoints: *none* + - Shape topo:testTopoReferencesExist: <http://www.example.com/features/1853004>/geojson:topology
-
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: +
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: <http://www.example.com/features/1853004>/geojson:topology - - Shape topo:testTopoLinesReferencePoints: *none* +
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: + - Shape _:n42b9475448c64912a1a74634f1cf63f6b3: *none* + - Shape _:n42b9475448c64912a1a74634f1cf63f6b1: *none*
@@ -947,21 +947,21 @@

JSON Schema
Validation passed
SHACL
-
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: +
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:ndb67b2824dec4aa4935092588870e8a0b1: *none* - - Shape _:ndb67b2824dec4aa4935092588870e8a0b3: *none* +
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: + - Shape topo:testTopoLinesReferencePoints: <http://www.example.com/features/LineP1P2>/geojson:topology + - Shape topo:testTopoReferencesExist: <http://www.example.com/features/LineP1P2>/geojson:topology
-
Validation result for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: +
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: Validation Report Conforms: True
-
Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: <http://www.example.com/features/LineP1P2>/geojson:topology - - Shape topo:testTopoLinesReferencePoints: <http://www.example.com/features/LineP1P2>/geojson:topology +
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: + - Shape _:nf77cdfbf2cf0449480c9772b70fd2369b1: *none* + - Shape _:nf77cdfbf2cf0449480c9772b70fd2369b3: *none*
@@ -1024,55 +1024,55 @@

Results (2): Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent): Severity: sh:Violation - Source Shape: topo:testTopoReferencesExist + Source Shape: topo:testTopoLinesReferencePoints Focus Node: [ geojson:relatedFeatures ( <file:///github/workspace/P1> <file:///github/workspace/P2> ) ; rdf:type geojson:LineString ] Value Node: <file:///github/workspace/P2> - Result Path: geojson:relatedFeatures - Source Constraint: [ sh:message Literal("Referenced features must be present within current graph closure for topological feature.") ; sh:select Literal(" + Result Path: geojson:topology + Source Constraint: [ sh:message Literal("Lines topologies must reference points within current graph closure.") ; sh:select Literal(" prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix geojson: <https://purl.org/geojson/vocab#> - SELECT $this (geojson:relatedFeatures as ?path) (?ref as ?value) + SELECT $this (geojson:topology as ?path) (?ref as ?value) WHERE { $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref . - $this a ?geomtype . - FILTER ( ?geomtype != geojson:Polygon) - FILTER NOT EXISTS { ?ref ?p ?o } + FILTER NOT EXISTS { + ?ref geojson:geometry/rdf:type geojson:Point } } ") ] - Message: Referenced features must be present within current graph closure for topological feature. + Message: Lines topologies must reference points within current graph closure. Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent): Severity: sh:Violation - Source Shape: topo:testTopoLinesReferencePoints + Source Shape: topo:testTopoReferencesExist Focus Node: [ geojson:relatedFeatures ( <file:///github/workspace/P1> <file:///github/workspace/P2> ) ; rdf:type geojson:LineString ] Value Node: <file:///github/workspace/P2> - Result Path: geojson:topology - Source Constraint: [ sh:message Literal("Lines topologies must reference points within current graph closure.") ; sh:select Literal(" + Result Path: geojson:relatedFeatures + Source Constraint: [ sh:message Literal("Referenced features must be present within current graph closure for topological feature.") ; sh:select Literal(" prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix geojson: <https://purl.org/geojson/vocab#> - SELECT $this (geojson:topology as ?path) (?ref as ?value) + SELECT $this (geojson:relatedFeatures as ?path) (?ref as ?value) WHERE { $this geojson:relatedFeatures/rdf:rest*/rdf:first ?ref . - FILTER NOT EXISTS { - ?ref geojson:geometry/rdf:type geojson:Point } + $this a ?geomtype . + FILTER ( ?geomtype != geojson:Polygon) + FILTER NOT EXISTS { ?ref ?p ?o } } ") ] - Message: Lines topologies must reference points within current graph closure. + Message: Referenced features must be present within current graph closure for topological feature.

Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: <file:///github/workspace/LineP1P2>/geojson:topology - Shape topo:testTopoLinesReferencePoints: <file:///github/workspace/LineP1P2>/geojson:topology + - Shape topo:testTopoReferencesExist: <file:///github/workspace/LineP1P2>/geojson:topology
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: Validation Report Conforms: True
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:n49156267b91941879c3e511d5c191f47b3: <file:///github/workspace/P1>/geojson:geometry,<file:///github/workspace/P3>/geojson:geometry - - Shape _:n49156267b91941879c3e511d5c191f47b1: <file:///github/workspace/P1>/geojson:geometry,<file:///github/workspace/P3>/geojson:geometry + - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b1: <file:///github/workspace/P3>/geojson:geometry,<file:///github/workspace/P1>/geojson:geometry + - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b3: <file:///github/workspace/P3>/geojson:geometry,<file:///github/workspace/P1>/geojson:geometry

@@ -1109,16 +1109,16 @@

Conforms: True

Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: *none* - Shape topo:testTopoLinesReferencePoints: *none* + - Shape topo:testTopoReferencesExist: *none*
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: Validation Report Conforms: True
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:n49156267b91941879c3e511d5c191f47b3: <http://www.example.com/features/P1>/geojson:geometry,<http://www.example.com/features/P2>/geojson:geometry - - Shape _:n49156267b91941879c3e511d5c191f47b1: <http://www.example.com/features/P1>/geojson:geometry,<http://www.example.com/features/P2>/geojson:geometry + - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b1: <http://www.example.com/features/P2>/geojson:geometry,<http://www.example.com/features/P1>/geojson:geometry + - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b3: <http://www.example.com/features/P2>/geojson:geometry,<http://www.example.com/features/P1>/geojson:geometry

@@ -1155,16 +1155,16 @@

Conforms: True

Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: <http://www.example.com/features/LineP1P2>/geojson:topology - Shape topo:testTopoLinesReferencePoints: <http://www.example.com/features/LineP1P2>/geojson:topology + - Shape topo:testTopoReferencesExist: <http://www.example.com/features/LineP1P2>/geojson:topology
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: Validation Report Conforms: True
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:n49156267b91941879c3e511d5c191f47b3: <http://www.example.com/features/P1>/geojson:geometry,<http://www.example.com/features/P2>/geojson:geometry - - Shape _:n49156267b91941879c3e511d5c191f47b1: <http://www.example.com/features/P1>/geojson:geometry,<http://www.example.com/features/P2>/geojson:geometry + - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b1: <http://www.example.com/features/P1>/geojson:geometry,<http://www.example.com/features/P2>/geojson:geometry + - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b3: <http://www.example.com/features/P1>/geojson:geometry,<http://www.example.com/features/P2>/geojson:geometry

@@ -1201,16 +1201,16 @@

Conforms: True

Focus nodes for _sources/features/topo-feature-collection/tests/topo-refs-exist.shacl: - - Shape topo:testTopoReferencesExist: <http://www.example.com/features/TriangleP1P2P3>/geojson:topology,<http://www.example.com/features/LineP2P3>/geojson:topology,<http://www.example.com/features/LineP3P1>/geojson:topology,<http://www.example.com/features/LineP1P2>/geojson:topology - - Shape topo:testTopoLinesReferencePoints: <http://www.example.com/features/LineP2P3>/geojson:topology,<http://www.example.com/features/LineP3P1>/geojson:topology,<http://www.example.com/features/LineP1P2>/geojson:topology + - Shape topo:testTopoLinesReferencePoints: <http://www.example.com/features/LineP1P2>/geojson:topology,<http://www.example.com/features/LineP2P3>/geojson:topology,<http://www.example.com/features/LineP3P1>/geojson:topology + - Shape topo:testTopoReferencesExist: <http://www.example.com/features/TriangleP1P2P3>/geojson:topology,<http://www.example.com/features/LineP1P2>/geojson:topology,<http://www.example.com/features/LineP2P3>/geojson:topology,<http://www.example.com/features/LineP3P1>/geojson:topology
Validation result for _sources/features/topo-feature/tests/geometry-coordinates.shacl: Validation Report Conforms: True
Focus nodes for _sources/features/topo-feature/tests/geometry-coordinates.shacl: - - Shape _:n49156267b91941879c3e511d5c191f47b3: <http://www.example.com/features/P2>/geojson:geometry,<http://www.example.com/features/P1>/geojson:geometry,<http://www.example.com/features/P3>/geojson:geometry - - Shape _:n49156267b91941879c3e511d5c191f47b1: <http://www.example.com/features/P2>/geojson:geometry,<http://www.example.com/features/P1>/geojson:geometry,<http://www.example.com/features/P3>/geojson:geometry + - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b1: <http://www.example.com/features/P1>/geojson:geometry,<http://www.example.com/features/P2>/geojson:geometry,<http://www.example.com/features/P3>/geojson:geometry + - Shape _:n5941f89151ce4d90bebd0e22ba76ce80b3: <http://www.example.com/features/P1>/geojson:geometry,<http://www.example.com/features/P2>/geojson:geometry,<http://www.example.com/features/P3>/geojson:geometry