Skip to content

Commit

Permalink
Sample GeoSPARQL feature
Browse files Browse the repository at this point in the history
  • Loading branch information
avillar committed Jul 30, 2024
1 parent 5745752 commit 61e7daf
Show file tree
Hide file tree
Showing 7 changed files with 99 additions and 2 deletions.
3 changes: 1 addition & 2 deletions _sources/feature/geojsonFeatureFGLenient/bblock.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,5 @@
"feature",
"examples"
],
"group": "Examples",
"highlighted": true
"group": "Examples"
}
25 changes: 25 additions & 0 deletions _sources/feature/geosparqlFeature/bblock.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "Feature with GeoSPARQL geometry",
"abstract": "This example includes an uplift step to use a GeoSPARQL geometry in a GeoJSON object",
"status": "under-development",
"dateTimeAddition": "2024-07-30T00:00:00Z",
"itemClass": "schema",
"register": "ogc-building-block-examples",
"version": "1.0",
"dateOfLastChange": "2023-05-19",
"maturity": "development",
"scope": "unstable",
"tags": [
"feature",
"examples"
],
"group": "Examples",
"semanticUplift": {
"additionalSteps": [
{
"type": "shacl",
"ref": "uplift/geometry.shacl"
}
]
}
}
9 changes: 9 additions & 0 deletions _sources/feature/geosparqlFeature/context.jsonld
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"@context": {
"geojson": "https://purl.org/geojson/vocab#",
"geometry": {
"@id": "geojson:geometry",
"@type": "@json"
}
}
}
5 changes: 5 additions & 0 deletions _sources/feature/geosparqlFeature/examples.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
- title: Sample feature
base-uri: http://example.com/features/
snippets:
- language: json
ref: examples/feature.json
20 changes: 20 additions & 0 deletions _sources/feature/geosparqlFeature/examples/feature.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"id": "f1",
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
-111.67183507997295,
40.056709946862874
],
[
-111.71,
40.156709946862874
]
]
},
"properties": {
"myProp": "Mandatory property example"
}
}
5 changes: 5 additions & 0 deletions _sources/feature/geosparqlFeature/schema.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
allOf:
- $ref: bblocks://ogc.geo.features.feature
- properties:
geometry:
type: object
34 changes: 34 additions & 0 deletions _sources/feature/geosparqlFeature/uplift/geometry.shacl
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix geojson: <https://purl.org/geojson/vocab#> .
@prefix : <urn:ogc-bblocks:examples#> .

:RectangleRulesShape
a sh:NodeShape ;
sh:targetSubjectsOf geojson:geometry ;
sh:rule [
a sh:SPARQLRule ;
sh:construct """
PREFIX geojson: <https://purl.org/geojson/vocab#>
PREFIX geosparql: <http://www.opengis.net/ont/geosparql#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
CONSTRUCT {
$this geosparql:hasGeometry [
geosparql:asGeoJson ?geojsonLiteral
]
}
WHERE {
$this geojson:geometry ?geojson .
BIND(STRDT(STR(?geojson), geosparql:geoJSONLiteral) as ?geojsonLiteral)
}
""" ;

# Only apply to geometries with type rdf:JSON
sh:condition [
sh:property [
sh:path geojson:geometry ;
sh:datatype rdf:JSON ;
] ;
] ;
] ;
.

0 comments on commit 61e7daf

Please sign in to comment.