tudaIIB / omg

OMG: Ontology for Managing Geometry
4 stars 1 forks source link

additional metadata for a geometry description #3

Open mathib opened 5 years ago

mathib commented 5 years ago

We should consider methods for adding additional metadata to geometry descriptions in a uniform way. This includes:

Pattern [1]

inst:door1 omg:hasGeometry inst:geometry1 .
inst:geometry1 a omg:Geometry ;
   omg:locallyTransformedBy inst:matrix1 ;
   fog:asObj_v3.0-obj "myOriginalObjFile.obj" .
inst:matrix1 ...

Pattern [2]

inst:door1 omg:hasGeometry inst:geometry1 .
inst:geometry1 a omg:Geometry ;
   ex:locallyTransformedObj inst:transformedDoorGeometry .
inst:transformedDoorGeometry a geom:Transformation ;
   geom:matrix inst:matrix1 ;
   geom:object inst:doorGeometry .
inst:doorGeometry fog:asObj_v3.0-obj "myOriginalObjFile.obj" .
inst:matrix1 ...

Pattern [3]

inst:door1 omg:hasGeometry inst:geometry1 .
inst:geometry1 a omg:Geometry ;
   omg:locallyTransformedBy inst:matrix1 ;
   fog:asObj_v3.0-obj "myOriginalObjFileInLocalCoordates" ;
   omg:globallyTransformedBy inst:matrix2 ;
   omg:hasGlobalCoordinateSystem "http://www.opengis.net/def/crs/EPSG/0/4979" .
mathib commented 5 years ago

Note regarding georeferencing geometry descriptions: suggestion to objectify the local coordinate system, to lower the amount of triples (rdf:type triples are not incl as they can be inferred):

Such a pattern [4-a] would look like (individual geometry file per GS):

inst:door1 omg:hasGeometry inst:geometry1 .
inst:geometry1 a omg:Geometry ;
   fog:asObj_v3.0-obj "geometry of door in OBJ" ;
   omg:hasCoordinateSystem inst:coordSys1 .
inst:coordSys1 a omg:CoordinateSystem ;
   omg:hasGeoreference inst:georef1 .
inst:georef1 a omg:Georeference ;
   omg:globallyTransformedBy inst:matrix2 ;
   omg:hasGlobalCoordinateSystem "http://www.opengis.net/def/crs/EPSG/0/4979"^^xsd:anyURI .

or [4-b] (shared geometry file over multiple GS):

inst:door1 omg:hasGeometry inst:geometry1 .
inst:geometry1 a omg:Geometry ;
   omg:locallyTransformedBy inst:matrix1 ;
   omg:hasGeometry inst:myOriginalGeometryFile .
inst:myOriginalGeometryFile a omg:Geometry ;
   fog:asObj_v3.0-obj "myOriginalObjFileInLocalCoordates" ;
   omg:hasCoordinateSystem inst:coordSys1 .
inst:coordSys1 a omg:CoordinateSystem ;
   omg:hasGeoreference inst:georef1 .
inst:georef1 a omg:Georeference ;
   omg:globallyTransformedBy inst:matrix2 ;
   omg:hasGlobalCoordinateSystem "http://www.opengis.net/def/crs/EPSG/0/4979"^^xsd:anyURI .

~ similar approach as the second suggestion in issue 2: https://github.com/tudaIIB/omg/issues/2#issuecomment-496995984_

mathib commented 5 years ago

general question is also if this metadata terminology should end up in the OMG module, or a separate metadata module.. In this light, a separate module has already been developed for some other research project I'm involved with, i.e. V4Design: https://gitlab.com/v4designEU/V4D-Linked_Data_Ontology/tree/master/KULeuven/TBox

AnnaWagner commented 5 years ago

3 different appraoches: 1) extension of OMG (transformation based on omg:transformsGeometry) 2) suggestions for re-using existing ontologies (QUDT/OM, PROV, DCT,...) - "alignment maps" 3) metadata ontology for geometry files --> 3DMO

AnnaWagner commented 5 years ago

Suggestions could be realised using class axioms with cardinality restricitons (max 1)

AnnaWagner commented 5 years ago

bpo:ClassifiedObject rdf:type owl:Class ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:minCardinality "1"^^xsd:nonNegativeInteger ; owl:onProperty schema:additionalType ; ] ; .

mathib commented 5 years ago

The omg:transformsGeometry relation can start from static geometry (the geometry description is already calculated) or dynamic geometry (the geometry description is calculated based on the transformation matrix and the original geometry description, similar as pattern [1]):

inst:door1 omg:hasGeometry inst:geometry1 , inst:geometry2 .
inst:geometry1 a omg:Geometry ;  ##dynamic
   omg:locallyTransformedBy inst:matrix1 ;
   omg:transformsGeometry inst:originalGeometryA .
inst:geometry2 a a omg:Geometry ; ##static
   fog:asObj_v3.0-obj "myTransformedObjFile.obj" .
   omg:transformsGeometry inst:originalGeometryA .
inst:originalGeometryA fog:asObj_v3.0-obj "myOriginalObjFile.obj" .
inst:matrix1 ...