jyrkioraskari/IFCtoLBD

Different URI naming strategies ?

Opened this issue · 1 comments

IRIs were all under the same inst: namespace, their local name is made of a type name and a UUID.

For modular knowledge graphs like the one described in Isaac Fatokun, Arun Raveendran Nair, Thamer Mecharnia, Maxime Lefrançois, Victor Charpenay, Fabien Badeig and Antoine Zimmermann, (2023) "Modular Knowledge integration for Smart Building Digital Twins", LDAC 2023

We like to have IRIs named with a different strategy. For example, we establish a more natural IRI structure that reflects the organisation of the building. For example <{building}>, <{building}/{storey}>, <{building}/{storey}/{space}>, <{building}/{storey}/{space}/{knx_device_in_space}>.

This is implemented in https://github.com/maximelefrancois86/databat-kgc-revit/blob/main/scripts/4_renameObjects.py

Any idea about how to offer different naming strategies to the user would be great.

I have been testing this. The current optional output is like this:

https://www.ugent.be/myAwesomeFirstBIMProject#building_7b7032cc-b822-417b-9aea-642906a29bd4/Level_2/B204
bot:adjacentElement inst:covering_e586c31c-dfb6-463e-aee7-a2dffc98515e ;
bot:adjacentElement inst:wall_9808fd7f-dc48-478e-9217-628e833d548e ;
bot:adjacentElement inst:wall_64b7f7d3-8cfc-4277-ba33-8de2e6533e77 ;
bot:adjacentElement inst:slab_982f59b0-f2e1-485f-8ce1-c9f6117b70a9 ;
rdf:type bot:Space ;
props:globalIdIfcRoot_attribute_simple "0BTBFw6f90Nfh9rP1dl_3C" ;
props:longNameIfcSpatialStructureElement_attribute_simple "Bathroom 2" ;
bot:adjacentElement inst:door_982f59b0-f2e1-485f-8ce1-c9f6117b96c4 ;
bot:adjacentElement inst:door_64b7f7d3-8cfc-4277-ba33-8de2e6533fec ;
bot:adjacentElement inst:wall_9808fd7f-dc48-478e-9217-628e833d55b5 ;
bot:containsElement inst:furniture_aa6e13ea-b5bc-4245-93bf-8b2355840c33 ;
bot:adjacentElement inst:slab_6b61ce71-1a7a-473c-8f87-4262e0bdbd1e ;
bot:adjacentElement inst:wall_27ece05c-f06c-4dd2-9ccd-945e52597fa3 ;
rdfs:label "B204" ;
bot:containsElement inst:furniture_aa6e13ea-b5bc-4245-93bf-8b2355840d02 .

A separate consideration is needed for the device/element level as there are some models that are missing the building topology. Perhaps a post-processing step could fix it.

Here the building had no name:
#36=IFCBUILDING('1xS3BCk291UvhgP2a6eflK',#33,$,$,$,#25,$,$,.ELEMENT.,$,$,#35);

Otherwise, there would be the name of the building as a part of the URI.