chek-profiles's Issues
`srsName, srsDimension` questions
@rob-metalinkage @avillar (cc @nataschake)
I looked at some examples and have some questions about SRS representation in GML:
- some but not all geometries have
srsName
. EgUUID_c3e08e2a-5406-473b-b94b-e09013054651_msl_N65584
doesn't (and it's not nested in any other object to assume that it would "inherit" it from somewhere) - the ones that have it use
srsName="EPSG:3946"
: but isn't this supposed to be a full URL?
srsName="urn:adv:crs:DE_DHDN_3GK4*DE_DHHN92_NH"
: how's any geospatial software supposed to find the attributes of this SRS to be able to transform the geometry?- Again, the majority of geometries don't have a
srsName
- The first
<gml:posList>
doesn't even saysrsDimension="3"
so how's any geospatial software able to parse this properly into triples not pairs?
use GeoSPARQL (WKT, GML) for geometries
@avillar @rob-metalinkage @peterrdf (and cc @nataschake)
I'll split this topic from #1 since it's crucial.
https://github.com/ogcincubator/chek-profiles/blob/master/cityjson/twobuildings.city.ttl shows geometries converted to triples (down to individual vertices and individual coordinates).
- I believe that's the wrong way to do geometry. A similar approach is used in IfcOwl (though using lists of blank nodes), and pretty much nobody uses it because it's too complicated.
- The right way is to use GeoSPARQL opaque literals
- 1.0 supports WKT, GML. For CityGML (XML) source, the best way is to convert to
geo:asGML "..."^^geo:gmlLiteral
- 1.1 also supports KML, GeoJSON. For CityJSON source, the best way is to convert to
geo:asGeoJSON "..."^^geo:geoJSONLiteral
- 1.0 supports WKT, GML. For CityGML (XML) source, the best way is to convert to
- The benefit of GeoSPARQL literals is that semantic repositories handle them specially in geospatial indexes, so you can use fast "magic predicates" for the topological relations (eg
sf:Within
).
Looking at https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/3.0/core,
I think that CityGML ties up into GeoSPARQL geometries, eg
- core:ImplicitGeometry.relativeGeometry has range gmlowl:AbstractGeometry
- https://schemas.opengis.net/gml/3.2.1/gml_32_geometries.rdf
shows thatgmlowl:AbstractGeometry rdfs:subClassOf geo:Geometry
(http://www.opengis.net/ont/geosparql#Geometry)
Cheers!
initial list of issues
@avillar @rob-metalinkage @peterrdf Here's an initial list of issues from about 20 min inspection of the example json/turtle.
Conventions:
- Change the checkbox state as we go through the bullets
- If you can edit this description, add eventual notes as sub-bullets
- For links to show as code snippets, you need to refer to the specific commit (eg
blob/c46b466e036857a719f31ae47c4753637f9ca248
notblob/master
).
As https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-a-permanent-link-to-a-code-snippet describes, you can copy this link by using... > Copy permalink
(don't copy from the address bar). Let's adopt this convention since it's very convenient to see the snippets
Issues:
- rename this repo from
chek-profiles
to perhapsCityRDF-examples
. I don't think our project controller will look nicely at me working on some other project's repo/stuff. Also, I feel it's prestigious to work on an RDF/OWL rendition of CityGML, but not so on somebody else's project. - The
city:CityJson
type is wrong, because the turtle result is NOT json. Maybe rename this type toCityGML
orCityData
? - #2
butcity:hasVertex
is unordered in turtlechek-profiles/cityjson/twobuildings.city.ttl
Lines 44 to 46 in c46b466
- Ontology terms are defined with relative URL in the context, resulting in local
file:
URLs in turtle: -
boundaries
have a similar structure tovertices
(list of numeric triples), butcity:hasVertex
vscity:boundaries
have very different structure:
vs
-
city:hasVertex
vscity:boundaries
don't use a consistent naming convention (I prefer justvertex, boundary
) -
city:lod "2"
may be better rendered as a number (2
or even2.0
) so one can compare LODs numerically
-
city:hasTransform, city:translate
are defined asxsd:float
ordouble
, leading to inexact numeric representation and scientific notation. Maybe better define asxsd:decimal
?
- (cosmetic) Nested blank nodes are not formatted well:
city:x
doesn't start in the same position ascity:y, city:z
:
chek-profiles/cityjson/twobuildings.city.ttl
Lines 24 to 29 in c46b466
- an important root object "Building_1" is missing from the turtle
should we use CityGML LandUse or INSPIRE PLU?
@rob-metalinkage @avillar @pzaborowski @FrancescaNoardo, cc @nataschake
CityGML defines a LandUse class:
https://docs.ogc.org/is/21-006r2/21-006r2.html#landuse-section
https://docs.ogc.org/is/20-010/20-010.html#landuse-uml
https://docs.ogc.org/is/20-010/20-010.html#toc55
But it is fairly modest:
- class: specific type [0..1]
- function: intended use [0..*]
- usage: actual use [0..*]
In contrast, INSPIRE PLU defines quite a lot more things:
- docs: https://inspire-mif.github.io/technical-guidelines/data/lu/dataspecification_lu.html (or https://inspire-mif.github.io/technical-guidelines/data/lu/dataspecification_lu.pdf)
- UML: https://inspire-mif.github.io/uml-models/approved/html/index.htm?guid=7B3F6C7A-BB36-4310-A6E9-3E8C242E1AB7
- XSD: https://inspire.ec.europa.eu/schemas/plu/4.0/PlannedLandUse.xsd, https://inspire.ec.europa.eu/schemas/lunom/4.0/LandUseNomenclature.xsd
- OWL (converted by Portelle): saved to https://github.com/Accord-Project/Tegel/tree/main/inspire-plu/ontology
GML CodeList questions
@rob-metalinkage @avillar, and @pzaborowski @FrancescaNoardo, cc @nataschake
I'm looking at an example and trying to figure out how to decode CodeList values
<bldg:function>31001_9998</bldg:function>
<bldg:roofType>3100</bldg:roofType>
- GML Conceptual Model https://docs.ogc.org/is/20-010/20-010.html#RoofTypeValue-section just says there is a codelist
RoofTypeValue
- GML Encoding Standard https://docs.ogc.org/is/21-006r2/21-006r2.html has 25 occurences of "rooftype", including
<bldg:roofType>3100</bldg:roofType>, <bldg:roofType>1030</bldg:roofType>
<bldg:roofType>Flat</bldg:roofType>, <bldg:roofType>Saddle</bldg:roofType>
: I think that it's inconsistent to use both codes and English words in the same element!- https://docs.ogc.org/is/21-006r2/21-006r2.html#_gml gives example of defining
1000->flat roof, 3100->saddle roof
in XML- And refers to https://www.ogc.org/citygml/3.0/codelists/gml/rooftypes, which is Page not found
- https://docs.ogc.org/is/21-006r2/21-006r2.html#_comma_separated_values_csv_structure gives a simple understandable CSV, but only as an example
Does that mean there's no registry of the 130 or so GML codelists, and so each CityGML file uses codes that are not standardized anywhere?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.