IFC Schema - ontology - semantic web

Dear Community,

I would like to say hi, this is my first post here - I hope some of you will help me clarify some things.
I really welcome this initiative, making a transparent workflow to handle and store AEC related data in a future-proof way is crucial in my opinion. Ethics is a philosophical domain through which it could be argued that the way is through open standards, not proprietary model schemas - clarifying this argument (or reasoning, if you will) could be another post.

In order for this to happen, we need an agreed conceptual system that means the same for everyone - an ontology. If we have this system, then computers can use agreed formats to store information according to it and everyone can manage this data. It could be opened decades (or centuries) later.

It seems a bit far-fetched, but this is how I can get onto the my questions: I’ve been trying to understand how IFC is structured, in order to be able to store plans and project-specific data in a systematic way that has longevity to it. (I’m also trying to reduce my texts to plaintext recently whenever possible.) I don’t find it transparent at all how all the bits and pieces of properties/attributes are handled, which is crucial for any kind of engineering work.

Is IFC an ontology? What is an ontology, by the way? How does the semantic web concept come into play?

The following points are according to my limited understanding, I wrote it to illustrate what’s going on in my head to connect these ideas, please correct me, if I’m wrong:

  1. An ontology is a directed graph, in which every entity (let it be an object, or a concept) has an exact position and only one. If you can place something in more than one place, the ontology is flawed, it needs to be absolute and clear.
  2. IFC, when it started in the 90s, had similar goals, but the EXPRESS language doesn’t allow a clarity of this level. As a result it is an extremely wide classification system not an ontology at this point?
  3. I heard the phrase that IFC is a “semantic standard”. What does this mean exactly?
  4. IfcOWL is a more recent, ontological representation of the IFC Schema with an emphasis on disallowing discrepancies that can be present the IFC Schema. (?!) This will result in an ontology (based on the current classification system) in the future (I guess it will always be work in progress).
  5. The semantic web is a machine readable “version” of the world wide web, where data is stored in agreed open formats in order to be able to universally read and share it. The “semantic web technologies” are what allow this to happen - I could only repeat what’s on the W3C website but I’m a layman to this.
  6. Introducing ifcOWL, ifcJSON, etc. means that more methods will be available for the AEC industry, many that are currently are used in the model-based systems engineering world, where the above mentioned concepts are more widely spread.
  7. How are the different classification systems like Uniclass, Uniformat, Omniclass, etc. relate to IFC? Do they have direct mapping onto the IFC Schema?

I really liked Dion’s videos when he explained the basics of OpenBIM and IFC, I would really appreciate if these concepts could be described in a similar manner.

Thanks!
Balazs

CyrilCGR

Comments

  • which Video from Dion? Link?
    Thanks
    Lukas

  • Hi @lukas ,
    I had these in mind, but the BIMvoice channel has a lot of other interesting ones:

  • Welcome @furtonb to the OSArch community! Semantics is not my strength, but I'll have a shot at answering to the best of my ability.

    Based on the definition of an ontology which you indirectly linked to, IFC is indeed an ontology. In particular, it satisfies this definition:

    In the context of computer and information sciences, an ontology defines a set of representational primitives with which to model a domain of knowledge or discourse. The representational primitives are typically classes (or sets), attributes (or properties), and relationships (or relations among class members). The definitions of the representational primitives include information about their meaning and constraints on their logically consistent application.

    To address (2), I'm not sure what limitations you are alluding to in EXPRESS. I'd be curious to know more :) IFC is not a classification system. It admittedly contains class names that may connote similarities to a classification systems (e.g. wall, partition wall, shear wall) but they exist more for practical implementation than for increased semantics. There have been discussions to remove them altogether and simply have IfcBuiltElement or similar.

    For (3), the term "semantic standard" may be referring to the fact that IFC describes semantics, not technology implementations (hence why it satisfies the definition of an ontology, too). Concrete standards like the IFC-SPF file format are separate from IFC itself.

    As far as I am aware, for (4) IfcOWL is simply a translation of EXPRESS to another representation format, that may be more convenient to parse when implementing IFC using RDF. Just because it is represented in IfcOWL does not meant that it is an ontology and EXPRESS is not. My understanding is that both are simply two different representations of the same set of concepts. I'm not sure what discrepancies you might be referring to? Each technology has some curiosities about how it stores data, but I believe since IfcOWL imports EXPRESS, I think the differences are minor.

    For (5) and (6), I haven't seen these really in practice yet in the world of IFC and AEC. So I'm curious to see what will happen :)

    For (7), classification systems are just that - classifications. They do not describe objects, properties, relationships, data types, data restrictions, and semantic rules. IFC comes with some "classification" built-in, like walls, partition walls, and shear walls, but these have little to no impact on the data relationships - they exist purely for convenience. IFC includes concepts (or classes) that describe a relationship between an object and a classification system (like Uniclass, Omniclass, etc). Therefore, in theory, IFC could exist just as IfcBuiltElement, and provide no more granularity after that, and then the user could choose to use Uniclass, Omniclass, or whatever on top. However, in practice, it is useful for IFC to provide some form of rudimentary classification, like IfcWall and IfcSlab and so on, even though it is not as granular as dedicated classification systems. I hope this makes some sense.

    In terms of mapping classification systems onto IFC built element classes, there are indeed some attempts to do so. There have been some private attempts, but the current way forward seems to be via registering database entries into the bSDD (buildingSMART Data Dictionary). This is a centralised registrar of standardised data attributes that can be looked up and applied by vendors to help improve data cleanliness.

    furtonbduncan
  • can this ontology be a 'graph' ? with a certain topology ?
    if one think of an electrical-network for the building, these ifc-electrical-appliances are all connected in an easy tree-structure. Is there some open-source 'tree' handling tools (graph handling) ? Like Topology/topologise creates a building out of a 'cahier de charges'/'Raumbuch' oder 'Leistungsverzeichnis'/'table of constraints?' or 'owner's wishes' (the geometries), one could extract an electrical-wiring (or water plumbing) scheme out the graph.. this is then to be convert to IFC elements..or the graph is directly made of ifc elements. (which topologise would place from defined rules). Which would be the tools to look for those 'graph' handlings.

    does it make sense somehow?
    Lukas

  • edited December 2020

    Thanks @Moult ! To clarify, all my points were hypothetical, I was writing them to get my misconceptions to the surface - which they did!

    you are alluding to in EXPRESS. I'd be curious to know more

    I remembered reading, that is hard for people to interpret, but it seems that I read it fast in the source and misunderstood the actual meaning of the following - the bold part refers to the STEP file not the EXPRESS schema :

    (...)The so-called 'Part 21 physical file' [STEP-file] used to exchange sets of data conforming to an EXPRESS schema has severe limitations, and is not easily interpretable by humans, or by machines that do not have prior knowledge of the schema itself. (...)

    My bad, thanks for cleaning this up!

    There have been discussions to remove them [you referred to IFC classes] altogether and simply have IfcBuiltElement or similar.

    Could you elaborate on this? What purpose would it serve? I cannot really imagine why culling classes but a generic IfcBuiltElement would be beneficial.
    IfcOWL: I thought the implementation of the OWL representation was for greater semantic clarity. I noticed that certain types moved between domains or were deprecated moving from IFC2x3 to IFC4 (like IfcWindowStyle is deprecated and IfcWindowType is its successor), I thought it had to with the new representation. Sorry for all these assumptions!:( I'm new to IFC and it's hard to put the puzzle pieces together "right" without formal education or guidance.

    For (7), classification systems are just that - classifications. They do not describe objects, properties, relationships, data types, data restrictions, and semantic rules. (...) Therefore, in theory, IFC could exist just as IfcBuiltElement, and provide no more granularity after that, and then the user could choose to use Uniclass, Omniclass, or whatever on top

    But then we would lose all the ability to have Psets defined for each concept - or linking them to the Uniclass "wall" would mean a mapping layer between the Ifc "concepts" and the said classification layer? (I think what you said is how ARCHICAD operates in recent versions, it has its proprietary "classification" and "property" system that gets mapped onto the IFC schema.)

    the current way forward seems to be via registering database entries into the bSDD (buildingSMART Data Dictionary)

    I've checked the website for bSDD, it's still not clear to me how it should be used. They say:

    The main entry to bSDD is the Application Programming Interface(API). You need to register to access the bSDD data. It is also possible (but not recommended) to browse and search the content of the buildingSMART Data Dictionary from a web page.

    In the demo video (from the bSDD Github) you can see more functionality.

    I found a good summary for bSDD in this paper, starting on page 20.

    @lukas I'm not sure I followed you entirely. Are you envisioning an expert system that sets up an actual model from a schematic diagram that is defined based on written inputs, e.g. a "Raumbuch"(which is a list of detailed parameters a room needs to fulfil - for those that don't speak German)?

  • Hi,
    I am trying to translate hat I read in my own non-programmer words.. between all those concepts, I get lost. RDF(S), OWL and so on. I try to link the programmers tools to what we need in our daily workflows. Find out how the software tools can be linked to improve our daily 'elektroplaner' tasks (the german engineer that plans your electricity in the building).
    I believe that when this software tool set is defined, the AI (KI in german) and ML can improve a lot our engineer work. Something like neo4j or orange-data-mining is powerful. Wondering if somewhen out of a 'Raumbuch' (the builder's description of what he wants), the computer would deliver a complete BIM-building. This is the purpose of my interventions here in OSarch. Find out how long my job is still needed, before computer takes it over :-)

  • I am trying to translate hat I read in my own non-programmer words.. between all those concepts

    I have a background in architectural engineering. I had started this thread with the intention to clarify the higher level software development-related (and philosophical) concepts, I can relate to how you feel.:)

    I think you identified one of the biggest issues right now: the gap between the "BIM" jargon and the "traditional" (sic) jargon - they both describe the same things, with very different words. And this is really a problem in the industry - people that are good in their engineering field and the people that are good in BIM are separate groups (according to my past experience). The younger engineers/designers seem to adapt more easily (it is my personal experience, I don't know if this is true generally) to the digital environment, and they have an answer "how" to model something before they know exactly "why".

    People with decades of experience could build valid BIM (as they know a ton about how buildings and systems are constructed), but they don't really have the time to build it themselves, and the younger staff knows how to model but its validity could be questioned. A lot of problems come from this in my country and it hinders "BIM adoption".

    Find out how long my job is still needed, before computer takes it over

    I honestly don't think that you need to worry too much right now. We are far from even the automation of calculations - yes, there are niche areas where it is already applied, but the same question arise as with self-driving cars: if something goes wrong, who is to blame? The car manufacturers won't take any responsibility (I read an article yesterday that an expensive BMW crashed into the fence on the highway due to malfunctioning of the system that keeps the lane automatically), the software developers won't take either. All the EULAs contain paragraphs that exclude any warranty or responsibility on their side (software comes as is, etc.). Maybe AI will come sooner than I imagine, but the legal system and responsibilities won't shift fast, I imagine - the AEC industry is a conservative one, digitization of it is only one side. What about the enormous energy demand of buildings? Recycling demolished materials and systems - what happens with the HVAC equipments after they are thrown out? The implications of prefabrication: my country faces (at least faced before the coronavirus pandemic) a massive shortage of skilled labour. The workers are not educated enough and they are not many enough. But switching to prefab needs manufacturing facilities and a more thorough planning - this is developed like 3/10 (my impression, no scientific data to back this up). What about making the industry less fractured? Introducing more and more "AI", and this "machine will steal your job" actually makes these divisions deeper and wider - it won't be solved with machines, in my opinion. I consider myself as a "pro-technology" guy, but I try to be realistic here.

    I recently tried to follow what a commercially available software does when it calculates energy demand from a model - I can't. On one hand, the algorithms are hidden from me ("trade secret), and the documentation is poor. The result: there is a program, that does something, but the developer won't be responsible for any of the miscalculations that are either a result from my bad model setup (they don't provide enough information for me to actually know the limits) or the limitations of the underlying engine. With a modelling software you don't really care about how a polyline is drawn, because you can check it anytime visually, but would any authority accept your work if you cannot back your calculations with a detailed description that I did it according to a certain DIN standard? How silly would it be, that a wire has a size x, because "my Revit family said so" - ok, how does it work? I went off-topic too much, sorry about it.

    I would honestly be happy if a system could mimic my ways of thinking in a transparent way and do a lot the usual workload I need to deal with, and I could enjoy more diving into more ideas more deeply. Or I could have the time to build other businesses or services, the possibilities are endless.

    Something like neo4j or orange-data-mining is powerful.

    Could you explain what are these?

  • neo4j is dedicated to graph-data-science. Some bunch of Software tools that sorts/analyse/display data, where ever it comes from. Orange, is similar. They have their AI modules.. I am not proficient with them, just know they are available. You may have heard of GPT3, a AI-bot which should have 80 to 90 % of the understanding of a human. Those AI (or ML) algorithm can understand/classify by themselves.. so I imagine such a bot reading a 'wish-list' from a builder/owner: translating the text to a BIM building. An expert system translating text into graphs, a graph for each function of a building and its entities. The whole graphs-packages being at the end the BIM model. A graph being the building geometry. another one the heating-system and so on.. probably is Topologic the tool for geometries. What could be the graph-system for the electrical system? The organisation tool of the IFC Classes.
    yWorks is a graph editing tool. But can it be mixed with IFC classes. Or is Sverchok the way to edit graphs, and link the node to classes/elements.
    I have only very little experience of software.. it is fascinating what can be achieved.
    And I am impressed by the coding energy of some members here. It is also a very nice place to discover the potentials of software and the diversity of the ideas and activities.

  • As I understand, and I'm no expert in the field, the translation of IFC express to IFC OWL ontology allows the use of reasoning engine software to validate BIM models against requirements much like Solibri does, also it allows linking BIM to other disiplines such as GIS data or real time sensor data (e.g. smart homes, infrastructures). You might want to look at some abstracts or presentations available for free on the "Linked Data in Architecture and Construction Workshop" website: http://linkedbuildingdata.net/ldac2020/abstracts.html

    furtonb
  • oh, wow @tlang , I think I will watch them, that workshop looks like a goldmine.

    reasoning engine software

    what do they do? I'm somewhat familiar with Solibri, but I didn't realise that its QA/QC capabilities would be connected to these topics. I don't have a clue how Solibri works under the hood.

    also it allows linking BIM to other disciplines such as GIS data or real time sensor data

    how would such a process look like?
    I'm thinking about what scenario would require such a setup, but I'm afraid I don't understand it enough to come up with a useful one.
    anyway, an example: if I have an "as-built" BIM about a lot of homes in a district, they can attach sensor data to rooms/equipments (for colourful graphs, and maybe informed decisions about future home improvement), that can result in a building level metrics, which can be transferred to the GIS model to optimize renewable energy distribution? the underlying technological necessity is ifcOWL - to parse elements and look for certain properties (BIM -> GIS) and for devices to find the elements to which they should attach the data (smart home appliances -> BIM)? how is the ifcOWL ontology represented in a file format? why isn't an IFC STEP file sufficient for data conversions - because it's not easily deconstructed by other software, but another representation can be parsed more easily?
    sorry for asking this much, and babbling nonsense, it would be much easier to have this discussion over a beer...

Sign In or Register to comment.