GithubHelp home page GithubHelp logo

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:

https://github.com/VCityTeam/UD-Sample-data/blob/master/CityGMLv3.0/LYON_1ER_BATI_2009-2018_hotel_de_ville/LYON_1ER_47BATI_2018.gml

  • some but not all geometries have srsName. Eg UUID_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?

https://github.com/opengeospatial/CityGML3.0-GML-Encoding/blob/main/resources/examples/Building/Building_CityGML3.0_LOD2_with_several_attributes.gml

  • 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 say srsDimension="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
  • 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

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:

Issues:

  • rename this repo from chek-profiles to perhaps CityRDF-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 to CityGML or CityData?
    [] a city:CityJson ;
  • #2
    but city:hasVertex is unordered in turtle
    city:hasVertex [ city:x 19211 ;
    city:y 19441 ;
    city:z 0 ],
  • Ontology terms are defined with relative URL in the context, resulting in local file: URLs in turtle:
    [ a <file:///home/alx5000/work/Proyectos/ogc/chek-profiles/Building> ;
  • boundaries have a similar structure to vertices (list of numeric triples), but city:hasVertex vs city:boundaries have very different structure:
    city:hasVertex [ city:x 19211 ;
    vs
    city:boundaries ( ( ( 0 1 2 ) ) ( ( 3 4 5 ) ) ( ( 4 6 5 ) ) ( ( 2 7 6 ) ) ( ( 5 8 9 ) ) ( ( 0 2 4 ) ) ( ( 4 2 6 ) ) ( ( 5 6 8 ) ) ( ( 8 10 9 ) ) ( ( 11 12 13 ) ) ( ( 11 9 12 ) ) ( ( 12 10 14 ) ) ( ( 9 10 12 ) ) ( ( 15 5 11 ) ) ( ( 5 9 11 ) ) ( ( 16 3 17 ) ) ( ( 17 5 15 ) ) ( ( 3 5 17 ) ) ( ( 18 17 15 ) ) ( ( 16 19 20 ) ) ( ( 20 19 21 ) ) ( ( 21 19 7 ) ) ( ( 3 20 4 ) ) ( ( 21 7 2 ) ) ( ( 16 20 3 ) ) ( ( 22 2 1 ) ) ( ( 22 21 2 ) ) ( ( 23 1 0 ) ) ( ( 23 22 1 ) ) ( ( 23 4 20 ) ) ( ( 23 0 4 ) ) ( ( 19 24 6 ) ) ( ( 19 6 7 ) ) ( ( 24 25 8 ) ) ( ( 24 8 6 ) ) ( ( 25 10 8 ) ) ( ( 25 14 10 ) ) ( ( 26 27 28 ) ) ( ( 29 26 28 ) ) ( ( 30 26 29 ) ) ( ( 30 31 26 ) ) ( ( 32 13 12 ) ) ( ( 32 12 33 ) ) ( ( 34 32 33 ) ) ( ( 34 33 35 ) ) ( ( 36 37 38 ) ) ( ( 37 39 38 ) ) ( ( 40 41 42 ) ) ( ( 40 42 43 ) ) ( ( 44 40 43 ) ) ( ( 45 40 44 ) ) ( ( 45 44 46 ) ) ( ( 44 47 46 ) ) ( ( 36 46 47 ) ) ( ( 36 47 37 ) ) ( ( 18 35 17 ) ) ( ( 18 34 35 ) ) ( ( 48 49 50 ) ) ( ( 48 50 51 ) ) ( ( 41 51 42 ) ) ( ( 41 48 51 ) ) ( ( 52 27 53 ) ) ( ( 52 28 27 ) ) ( ( 54 31 30 ) ) ( ( 54 55 31 ) ) ( ( 56 52 53 ) ) ( ( 55 56 53 ) ) ( ( 54 56 55 ) ) ( ( 38 39 49 ) ) ( ( 39 50 49 ) ) ( ( 20 21 22 ) ) ( ( 23 20 22 ) ) ( ( 52 29 28 ) ) ( ( 56 29 52 ) ) ( ( 54 29 56 ) ) ( ( 54 30 29 ) ) ( ( 15 11 32 ) ) ( ( 18 15 34 ) ) ( ( 34 15 32 ) ) ( ( 32 11 13 ) ) ( ( 38 49 46 ) ) ( ( 45 46 41 ) ) ( ( 36 38 46 ) ) ( ( 45 41 40 ) ) ( ( 46 49 41 ) ) ( ( 41 49 48 ) ) ( ( 50 12 14 ) ) ( ( 39 12 50 ) ) ( ( 19 27 24 ) ) ( ( 53 27 19 ) ) ( ( 16 35 31 ) ) ( ( 31 37 44 ) ) ( ( 16 31 55 ) ) ( ( 27 43 51 ) ) ( ( 27 51 24 ) ) ( ( 35 37 31 ) ) ( ( 26 43 27 ) ) ( ( 31 44 26 ) ) ( ( 16 53 19 ) ) ( ( 26 44 43 ) ) ( ( 37 47 44 ) ) ( ( 16 55 53 ) ) ( ( 43 42 51 ) ) ( ( 50 14 25 ) ) ( ( 33 12 39 ) ) ( ( 35 33 37 ) ) ( ( 24 51 25 ) ) ( ( 16 17 35 ) ) ( ( 51 50 25 ) ) ( ( 37 33 39 ) ) ) ;
  • city:hasVertex vs city:boundaries don't use a consistent naming convention (I prefer just vertex, boundary)
  • city:lod "2" may be better rendered as a number (2 or even 2.0) so one can compare LODs numerically
  • city:hasTransform, city:translate are defined as xsd:float or double, leading to inexact numeric representation and scientific notation. Maybe better define as xsd:decimal?
    city:translate [ city:x 3.005782e+05 ;
  • (cosmetic) Nested blank nodes are not formatted well: city:x doesn't start in the same position as city:y, city:z:
    city:geographicalExtent [ city:max [ city:x 3.006181e+05 ;
    city:y 5.041289e+06 ;
    city:z 2.945e+01 ] ;
    city:min [ city:x 3.005782e+05 ;
    city:y 5.041258e+06 ;
    city:z 1.3688e+01 ] ] ;
  • an important root object "Building_1" is missing from the turtle

should we use CityGML LandUse or INSPIRE PLU?

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

https://github.com/opengeospatial/CityGML3.0-GML-Encoding/blob/main/resources/examples/Building/Building_CityGML3.0_LOD2_with_several_attributes.gml#L269 has this:

      <bldg:function>31001_9998</bldg:function>
      <bldg:roofType>3100</bldg:roofType>

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 photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.