Accord-Project / aec3po

AEC3PO: Architecture, Engineering, Construction Compliance Checking and Permitting Ontology
https://w3id.org/lbd/aec3po/
2 stars 1 forks source link

RASE are not referenced #9

Closed VladimirAlexiev closed 1 year ago

VladimirAlexiev commented 1 year ago

The 4 RASE classes are defined, but not referenced anywhere: there are no incoming/outgoing properties. I think you need to implement the structure described in https://github.com/Accord-Project/bcrl/blob/main/RASE.md#nisbetfuturevirtualconstruction2008: each RASE can have multiple RASE (recursively), their logical connectives (evaluation logic) are implicit, and atomic RASE (that are not further broken down) are implemented by different kinds of checks (simple comparison, declarative rule, procedural rule, subjective/human judgement).

VladimirAlexiev commented 1 year ago
beachtom commented 1 year ago

What is there is fine as is for now - the hierarchical comes from the hasPart relationship a few options:

(1) perhaps we should have some form of restriction that something that is an Application/Exception etc... should also have another type (2) or we can mention the hasPart directly on the RASE item itself - (3) or make RASE items a subclass of one of the document structuring classes

VladimirAlexiev commented 1 year ago

Right, I've missed it since it's in different files (aec3po.ttl vs document.ttl):

Then we don't need aec3po:hasSubCheck and aec3po:ChecklistStatement

should also have another type

Which other type do you mean?

beachtom commented 1 year ago

If the heirarchy is in place no other type needed in my view.

We need some way of distinguishing if something is inline or hierarchical. The way I do it at the moment is looking if it is a CheckListStatement

VladimirAlexiev commented 1 year ago

@beachtom Let me see if I understand you right by paraphrasing:

beachtom commented 1 year ago

OK so let's say

Hierarchical:

Doors should be all of:

Inline

Doors should be A, B and C.

It is not important in processing but is important in presenting the text of the regulations back to the users in the form that they are familiar with

VladimirAlexiev commented 1 year ago

Ah! We shouldn't mix the kind of check (atomic vs composite) with the "verbalization" used in the regulation. The two above are the same, only stated slightly differently.

@EdliraK , @maximelefrancois86 , @beachtom

Tom, the text of your examples can be broken up like this:

# FIRST
1.1 Doors should be all of:
1.1.1 - A
1.1.2 - B
1.1.3 - C

# SECOND
1.1 Doors should be 
1.1.1 A, 
1.1.2 B 
1.2.3 and C.

We could also store the full text of a node redundantly, but I think that's a worse choice.

In both cases the structure is the same (assuming A is a type check, B,C are a property check):

IMPORTANT: the computation logic is determined by the relation from parent to child check, not by the type of child. Presumably, the same check can be a Requirement in one parent but an Exception in another parent. @EdliraK, what do you think?

beachtom commented 1 year ago

Taking a step back - from a user perspective as long as I can differentiate so how between the two then it is OK

beachtom commented 1 year ago

Looking at this now - I think this is fine as-is. Suggest this is closed