Skip to content

DEV: IES Common v5.1.0-rc2 (networks and capacities) - #17

Open
aigora-de wants to merge 8 commits into
restructure-for-multi-modulefrom
rc/v5.1.0-rc2
Open

aigora-de wants to merge 8 commits into
restructure-for-multi-modulefrom
rc/v5.1.0-rc2

Conversation

@aigora-de

@aigora-de aigora-de commented Jan 27, 2026

Copy link
Copy Markdown
Contributor

This pull request is "suspended" until a plan for addressing the issues raised is made and resources assigned.

IES Common v5.1.0 Release

Summary

This release introduces two independent extensions to the IES Common ontology:

  • Part 1: Networks — A comprehensive framework for modelling interconnected systems (Networks, Links, Nodes, Connections, Containment, Flows)
  • Part 2: Capacity — A new pattern for modelling what States of Entities can do (modal possibility)

These patterns are independent and can be reviewed separately.


Part 1: Networks, Connections, Containment & Flows

New Ontology Concepts

Networks & Topology

Concept Description
Network A collection of interconnected Links and Nodes
Link An Element which is, or enables, a Flow between its ends
Node What exists at the end of one or more Links
hasEnd Relates a Link to the Nodes at its ends
hasStart / hasFinish Directional variants of hasEnd for unidirectional Links
isSeriesPartOf Relates a Link to a larger Link of which it is a series part
isParallelPartOf Relates a Link to a larger Link of which it is a parallel part

Connections

Concept Description
Connection Enables Flows between two or more Elements
Connector Part of an Element designed to participate in Connections
ConnectionSide The role a Connector plays within a Connection

Containment

Concept Description
Containment An Element that has Container and Contained parts
Container The part of a Containment that contains
Contained The part of a Containment that is contained

Flows

Concept Description
Flow A State representing matter, energy, or signal crossing a surface or passing along a path
FlowAlongPath A Flow following a defined path (e.g., vehicles on a road)
FlowAcrossSurface A Flow crossing a surface boundary (e.g., traffic at a monitoring site)
FlowNode Where Flows merge or divide
isStartBoundaryOf / isFinishBoundaryOf Flow boundary relationships

Documentation (Part 1)

Design Notes (Part 1)

  • Model follows EU INSPIRE network semantics where applicable
  • Networks, Links, and Nodes are Elements (not States) to support Events
  • Containment is an Element (not State) because containers can be Events (e.g., a circling sheepdog containing a flock)

Part 2: Capacity Pattern

Why Capacity?

The existing ies:Capability pattern (via DispositionalClass and isDisposedTo as a sub-property of rdf:type) admits two possible interpretations:

Interpretation 1: The class has a complicated definition

If isDisposedTo and allHaveDispositionalClass are specialisations of rdf:type and rdfs:subClassOf respectively (as stated in IES), then you must create a class like "Aeroplane that can fly at Mach 2 in a permitted use". This class has a complicated definition: a class of aeroplane such that a member can have, in some possible world, a state of flying at Mach 2 in a permitted use.

This complicated class definition is derived from a much simpler concept — the ClassOfState "Fly at Mach 2 in a permitted use" — which has a straightforward definition.

Interpretation 2: The relationships are complicated

Alternatively, the intention may be to relate the class "Eurofighter" or the individual "Eurofighter XYZ-123" directly to the ClassOfState "Fly at Mach 2 in a permitted use", which has a straightforward definition. In this case, the relationships isDisposedTo and allHaveDispositionalClass themselves become complicated.

The Capacity pattern adopts Interpretation 2

Rather than creating intermediate classes with complicated definitions, the Capacity pattern introduces new relationships that directly relate States to ClassOfStates with straightforward definitions. This provides better 4D ontological coherence by attaching capacities to temporal parts (States) rather than whole-life Entities.

The Four Cases

Capacities and roles can be understood through a 2×2 matrix of individual vs class, for both the thing that has the capacity and the capacity itself:

Individual Capacity Class of Capacity
Individual State Case 1: Fred Bloggs in 2026 is captain of Medway Queen Case 2: Fighter XYZ-123 in operational condition can perform a Mach 2 overflight
Class of State Case 3: A Eurofighter in operational condition can perform Mission M-101 Case 4: A Eurofighter in operational condition can perform a Mach 2 overflight

Each case requires a relationship pair (relationship and its inverse):

Case Domain Range Relationship Inverse
1 State Element ies:isStateOf hasRole (not yet defined)
2 State ClassOfState canBeAStateOf hasCapacity
3 ClassOfState Element canBeAStateOfAMemberOf eachCanHaveRole
4 ClassOfState ClassOfState eachCanBeAStateOf eachHasCapacity

Coverage:

  • Case 1 is covered by existing IES patterns (ies:InstalledState, ies:EventParticipant via ies:isStateOf), though no inverse hasRole is currently defined.
  • Cases 2 and 4 are covered by this proposal via hasCapacity and eachHasCapacity.
  • Case 3 is not covered by existing IES patterns or this proposal. It could be added if required by defining the canBeAStateOfAMemberOf / eachCanHaveRole relationship pair.

Advantages of Capacity

In addition to avoiding complicated class definitions, the Capacity pattern provides:

  • Improved 4D ontological coherence — Capacities attach to States (temporal parts) not whole-life Entities
  • Better alignment with modal logic — "can be a member of" semantics express possibility clearly
  • Clearer spatio-temporal semantics — Inherits from State and ClassOfState patterns
  • Separates potential from actuality — Having a Capacity (hasCapacity) vs actualising it (rdf:type)
  • Supports conditional capacities — e.g., "can fly at Mach 2 only when in operational state"
  • Supports temporal bounds — Capacities can be time-limited via State temporal properties
  • Contextualised — Same Entity may have different Capacities in different States or PossibleWorlds

New Ontology Concepts (Part 2)

Concept Description
Capacity A ClassOfState representing what a State can be (modal possibility)
hasCapacity Asserts that a State can have (be a member of) a particular ClassOfState (Capacity)
eachHasCapacity Asserts that all members of a ClassOfState can have a particular Capacity

Property Signatures:

ies:hasCapacity
    rdfs:domain ies:State ;
    rdfs:range ies:ClassOfState .

ies:eachHasCapacity
    rdfs:domain ies:ClassOfState ;
    rdfs:range ies:ClassOfState .

hasCapacity vs eachHasCapacity

Property Scope Example
hasCapacity Instance-level State "Fighter XYZ-123 in operational condition during 2024 can fly at Mach 2"
eachHasCapacity Class-level "Every Eurofighter in operational condition can fly at Mach 2"
# Class-level: ALL Eurofighters in operational condition have this capacity
ex:EurofighterInOperationalCondition a ies:ClassOfState ;
    rdfs:subClassOf ies:VehicleState ;
    ies:eachHasCapacity ex:PerformerOfMach2Flight .

# Instance-level: THIS specific State of Fighter XYZ-123 can fly at Mach 2
data:FighterXYZ123InOpsCondition2024 a ies:VehicleState, ex:EurofighterInOperationalCondition ;
    ies:isStateOf data:FighterXYZ123 ;
    ies:inPeriod data:Period2024 .
    # Inherits Mach 2 capacity from ex:EurofighterInOperationalCondition

# Instance-level: THIS specific hall State has been assessed as having shelter capacity
data:SandownHallDuring2024 a ies:LocationState ;
    ies:isStateOf data:SandownCommunityHall ;
    ies:inPeriod data:Period2024 ;
    ies:hasCapacity ex:ShelterDisplacedPersons .

Whole-Life Capacities

For capacities that persist throughout an Entity's existence, IES provides a convenient pattern: Entity subclasses are also subclasses of their corresponding State subclass (e.g., ies:Person rdfs:subClassOf ies:PersonState, ies:Location rdfs:subClassOf ies:LocationState).

This means instances of Entity subclasses are automatically both an Entity and a State representing their whole life:

# A fire station that has always been able to house emergency vehicles
# Because Location is a subclass of LocationState, this instance is BOTH
data:PortsmouthFireStation a ies:Location ;  # Therefore also a LocationState
    rdfs:label "Portsmouth Fire Station"@en-gb ;
    # Can attach capacity directly - no need for separate State instance
    ies:hasCapacity ex:HouseEmergencyVehicles .

For temporal capacities (capacities during specific periods), you create explicit State instances with temporal bounds.

Backwards Compatibility

The existing patterns using DispositionalClass, Capability, and Tendency remain fully valid. The new Capacity pattern is additive and non-breaking — implementers may choose whichever approach better fits their data and use cases.

Documentation (Part 2)

Use Cases

The Capacity pattern is particularly suited for:

  • Emergency planning and resilience — Identifying assets that could serve emergency functions
  • Asset management — Tracking what facilities are capable of during different periods
  • Contingency operations — Modelling potential vs actual deployment
  • Infrastructure assessment — Recording assessed capabilities of locations and facilities over time

Other Changes

  • Version bump to 5.1.0
  • Updated copyright dates to 2026

Review Notes

Feedback is requested on this Release Candidate, which introduces:

  • New concepts for the basis of recording information about Networks (consisting of Nodes and Links), Flows through Networks, Connectors and Connections, and Containment
  • An alternative pattern for modal capabilities, Capacity, with associated properties that attach to States rather than Elements

Please also flag any:

  • Inconsistencies in documentation
  • Broken links or missing cross-references
  • Deviations from established documentation patterns
  • Missing glossary entries or index updates

@aigora-de aigora-de self-assigned this Jan 27, 2026
@aigora-de aigora-de changed the title chore(docs): new content for v5.1.0-rc2 DEV: IES Common v5.1.0-rc2 (networks and capacities) Jan 27, 2026
- Updated ies:hasCapacity domain from Element to State
- Updated ies:eachHasCapacity domain from ClassOfElement to ClassOfState
- Changed range to ClassOfState for both properties
- Added dcterms:identifier to eachHasCapacity
- Revised all sample data files to use State-centric pattern
- Updated capacity.md user guide with enhanced semantics
- Enhanced property comments to explain modal semantics
@MonkeyChap

Copy link
Copy Markdown

To your point "If isDisposedTo and allHaveDispositionalClass are specialisations of rdf:type and rdfs:subClassOf respectively (as stated in IES), then you must create a class like "Aeroplane that can fly at Mach 2 in a permitted use". This class has a complicated definition: a class of aeroplane such that a member can have, in some possible world, a state of flying at Mach 2 in a permitted use."

That's how extensional ontologies work. That's how properties work in IES too. Fudging this won't make it better.

@MonkeyChap

MonkeyChap commented Feb 3, 2026

Copy link
Copy Markdown

This is difficult to review without diagrams. Are there ODM UML models for this ? The references to usage guides (e.g. docs/user-guides/networks/) don't seem to be available in this branch or in main. Do we need additional permissions ?

For other reviewers trying to navigate this, the actual paths are:

https://github.com/IES-Org/ont-ies/blob/rc/v5.1.0-rc2/docs/common/user-guides/capacity.md
https://github.com/IES-Org/ont-ies/tree/rc/v5.1.0-rc2/docs/common/user-guides/networks

@MonkeyChap

Copy link
Copy Markdown

Disposition and "capacity" are not 4D problems, it's set-theory and possible worlds.

@chrispartridge1091

chrispartridge1091 commented Feb 12, 2026

Copy link
Copy Markdown

@MonkeyChap asked me to have a look at this.
I have started with a quick look at Part 2 - the capacity section.
I am a little confused by what is going on and not sure how to approach it.
As I think a number of people have mentioned, starting with a UML Conceptual Model (one that includes a good sample of data) is really useful in helping to manage the Implementation. This is the way Andreas Cola and I work. I think this approach would have helped here.
First to illustrate what is confusing me.
These claims are made:
• “Improved 4D ontological coherence — Capacities attach to States (temporal parts) not whole-life Entities
• Better alignment with modal logic — "can be a member of" semantics express possibility clearly
• Clearer spatio-temporal semantics — Inherits from State and ClassOfState patterns”
The first claim would seem to imply that whole-life Entities cannot have capacities. This seems odd as whole-life Entities having modal properties would seem to be the typical case (though not to exclude states having capacities). For example, during the development of IDEAS, where the Mach 2 flight was discussed in the context of a contract for delivery – then the aeroplane itself was expected to have this capacity. Restricting it to be a property of the state of (say) “being in operational condition” would technically contractually allow for planes to meet this condition if they never could be the state - “being in operational condition” - and never fly at Mach2. Fixing this by adding the ‘capability’ to be in the state “being in operational condition” would be adding a capability of a whole life Entity.
But this is also said:
“For capacities that persist throughout an Entity's existence, IES provides a convenient pattern: Entity subclasses are also subclasses of their corresponding State subclass (e.g., ies:Person rdfs:subClassOf ies:PersonState, ies:Location rdfs:subClassOf ies:LocationState).”
However, this falls short of being able to model the standard modal properties of whole life entities.
The points above would seem to undermine the second claim of “Better alignment with modal logic ”. It would be interesting if any references could be made to literature that supports this claim. I have done some checking, and I cannot find any support – though given the nature of work on modality there will surely be something somewhere that looks at this position. If one cannot find anything, then it shows the oddity of the claim. More generally, if one is advocating a radical position, it probably requires more explanation and justification.
The final claim that “Clearer spatio-temporal semantics” is, as far as I can see, unsubstantiated. It would be good to know how the proposal makes the semantic clearer.
What is really odd about the proposal, is that it seems to reduce the expressivity of the model.
If one looks at the original model – see https://github.com/dstl/IES4/blob/master/ies.md#capability
“Capability
A DispositionalClass where all the instances share the same capability
Example: Vehicles capable of Mach 2”
And https://github.com/dstl/IES4/blob/master/ies.md#Disposition (this UML diagram illustrates the usefulness of diagrams).
Then in the original model all types of Element (whether Entity or State or Event) could have a modal property. Whereas the proposal seems to be restricting this.
To make this a little clearer.
In the original IDEAS work, when discussing capability, we had use cases where we wanted to describe the ‘functional’ level of a mission, without commitments to specific types of assets. So, we would talk about e.g. an asset capable of flying at Mach 2 and we would need to model this. This seems related to Interpretation 1 in the text – though I cannot see why this is claimed to be complicated.
At some later stage in the planning, we would identify specific types of aeroplane and want to model this. So that, for example, Eurofighter is capable of flying at Mach 2.
Then at an even later stage, we would talk about the specific asset.
The original model supports this. But it looks as if the current proposal specifically excludes this.
There is a lot more in the proposal that seems odd, but perhaps what I have said so far gives a flavour of the issues.

@nigel81562

Copy link
Copy Markdown

It seems to me the points on alignment with modal logic is at best a red-herring, but may well be erroneously trying to fit some modal constraints into the model of a single world thereby introducing world set membership constraints - which may be unfounded (as Chris points out above). It is also potentially inconsistent/incompatible with the more comprehensive modal treatment in the forthcoming ies-possibilia. Capacity, as made clear in definition and description, is about potential irrespective of whether realised - in the world being described. It is therefore inconsistent to then constrain possible worlds within the definition of particular classes. There are possible worlds where a euro-fighter does not have the mach-2 capacity, there are possible worlds where it does but exercised, there are worlds where the capacity is realised at different stages in its lifetime. The modal uncertainty is which of these worlds this euro-fighter is in - not what its counterpart set is. As a state of an entity is part of the whole-life entity, a state of have a capacity implies that the thing the state is part of, has that capacity bounded by that part. Is it not the case that capacity would be better considered via the replaceable part pattern, where the replaceable part is drawn from a set of states that can fulfil the slot? Eg a state of flying at mach 2 is in the set of operational states that can be part of the euro-fighter's life. As remarked above, disposition and capacity realisation imply sets and possible worlds - possible worlds are not a 4D problem (indeed the worlds we are considering are all 4D wholes).

Agree with others - UML diagrams would help reviewing

@chrispartridge1091

Copy link
Copy Markdown

Containment

https://github.com/IES-Org/ont-ies/blob/rc/v5.1.0-rc2/docs/common/user-guides/networks/containment.md

WRT: “An Element can contain one or more other Elements. An Element that contains, or is intended to contain, is a Container. An Element that is contained is a Contained.”
I wonder what role the word ‘can’ plays here. Is it intended to be modal? If so, this should be made clear.

WRT: “A Containment is an Element that has as parts:
• a single instance of Container;
• one or more instances of Contained.”

So, technically, the pattern divides an element into two or more parts (I’m guessing they should be disjoint), where one part is nominated as the container and the others as contained. I’m also guessing that the fusion of the divided parts in not necessarily equal to the (overall) containment. So, the division into parts in not a partition.
Given this formal structure, any non-atomic element can be divided into parts – so is a containment – an instance of the class Containment. Any non-world element will be a part of some worldbound element, and so a Contained and/or a Container – an instance of the class Contained and/or the class Container. So, the example in the diagram misses out this structure, if one added it, the issues would become clear.
This seems to me a little too lax. I think a higher-order pattern will capture what is intended.

@nigel81562

Copy link
Copy Markdown

Flow
"A Flow or "stream" is a State that is the matter, energy or signal that crosses a surface or passes along path."
"In many cases, a Flow is output from one Event and input to another.", "A Flow can be a participant in an Event"
"...motion as a participant in a Movement Event"

It seems to me that something can only be in flow, i.e. motion, with respect to / relative to something else. Flow inherently involves some other element(s) in relation. Flow should therefore be considered an event involving the participation of what is flowing and what it is flowing through/across (the latter inherently involving the elements the boundary delimits). The logic of events subsuming sub-events and being part of larger event sets. then naturally follows

Link
"...an IES Link can lose or gain intermediate Nodes over time" - Pedantic point but IES is 4D; an IES link may have different configurations of intermediate nodes over its lifetime (link states)

measuring flows
"There is a semantic difficulty with Figure 11, because is merely an arbitrary boundary placed along the B3322, across which traffic passes. Therefore the ies:isPartOf relationship is correct.

However an intermediate Node along a Link is not necessarily part of it. Therefore there is a choice: either regard an arbitrary boundary as something other than a Node, or as a special type of Node."

This can get deep very quickly! Arguably the (arbitrary) boundary/node at which flow is measured - a "probe" - is not part (or at least intended to be part) of the network being measured, but is necessarily part of the physical medium over which the flow occurs. (This bring to mind the issue in quantum physics where the question arises as to whether you can measure something without affecting it...) As the position of observation strictly is part of the network at the time and location of the observation (it is in a state of being observed) but (hopefully) not affecting flow, this would favour the creation of different class of node. Out of scope here, but this leads on to what perhaps requires a more fundamental modelling connecting observer and observation to what is being observed.

@chrispartridge1091

Copy link
Copy Markdown

@nigel81562 - #17 (comment) - Uncanny. I was going to make the same point.

"It seems to me that something can only be in flow, i.e. motion, with respect to / relative to something else."

This shows in the Wikipedia entry as - see https://en.wikipedia.org/wiki/Lagrangian_and_Eulerian_specification_of_the_flow_field --- "The Eulerian specification of the flow field is a way of looking at fluid motion that focuses on specific locations in the space through which the fluid flows as time passes." and "The Lagrangian and Eulerian specifications of the flow field are sometimes loosely denoted as the Lagrangian and Eulerian frame of reference. However, in general both the Lagrangian and Eulerian specification of the flow field can be applied in any observer's frame of reference, and in any coordinate system used within the chosen frame of reference. "

What is interesting here, is that the so-called observer's frame of reference is often another object. This seems to play directly into the 4D framework for general relativity - with reference frames for objects. One useful way of thinking about this - that originates with Robb is rapidity - https://en.wikipedia.org/wiki/Rapidity. Robb and subsequent work starts in the metric space, but it is feasible to work in the mereotopological/conformal space (if you have the causal relation).

@chrispartridge1091

Copy link
Copy Markdown

Firstly, can I say the UML diagrams were very useful.

Looking at them and the rest of the text, it seems to me that the mereotopology of the proposal is not always clearly worked out. Given that the extensionality of identity is built on top of mereology, this is worth investing in.

https://github.com/IES-Org/ont-ies/blob/rc/v5.1.0-rc2/docs/common/user-guides/networks/network.md
WRT: What is a network? A Network consists of one or more Links and Nodes.

Does this imply that a network is the fusion of its nodes and links? Or at a minimum has them as parts. The later UML uses an isPartOf relation, so the second option looks to be true, though I cannot see this stated directly anywhere in the model. Be good to say it, if that is intended.

Does the hasEnd relation imply any mereotopology? So, is there, for example, some overlap or connection between nodes and links.

The Node and Link classes presumably have instances. What characterises those instances. Can any element be a node or a link? The Highway network diagrams are ambiguous, it looks as if their nodes and links have been simplified to points and lines. I'm guessing that it is the junctions and roads that are nodes and links (as the UML suggests), that the simplification is for ease of representation. Do nodes and links have to be self-connected? Does there have to be a path from node to node along the link? Does this path have to exist at all times or just most the time?

In Figure 1 - Network in IES, has End is between Nodes and links. In Figure 5 - Record of changes to a network is is also between states of Nodes. It is not clear whether these states are also members of the Nodes class. This is a good example as it shows the time sensitivity of the node-part relation.

I also wonder about the mereotopology of flows.
https://github.com/IES-Org/ont-ies/blob/rc/v5.1.0-rc2/docs/common/user-guides/networks/flow.md
A Flow or "stream" is a State that is the matter, energy or signal that crosses a surface or passes along path.

Is a flow self-connected? Traffic would seem to be a counter-example.

Is there any connection between flows and nodes and links? There is a comment that "Flows can also be regarded as a Network." I wonder what work the modal 'can' is doing here. Does it mean that any flow can be regarded as a network. In other words, that instances of the class flow are also instances of the class network? Or something else? Hopefully it does not mean that one can do this if and when one wants - so the extension of the flow and network classes varies and depends upon the whim of the person encoding the data.

@chrispartridge1091

Copy link
Copy Markdown

Looking quickly at containment. https://github.com/IES-Org/ont-ies/blob/rc/v5.1.0-rc2/docs/common/user-guides/networks/containment.md

#17 (comment) has this definition of Containment.
Containment
Concept Description
Containment An Element that has Container and Contained parts
Container The part of a Containment that contains
Contained The part of a Containment that is contained

Is this the only definition of Containment, etc.? I’ve only briefly looked, but it seems like you are relying on an informal grasp of the meaning (a kind of https://en.wikipedia.org/wiki/I_know_it_when_I_see_it ) rather than a definition - but maybe I have missed something.
https://github.com/IES-Org/ont-ies/blob/rc/v5.1.0-rc2/docs/common/user-guides/networks/location-and-containment.md

  1. The inLocation and Containment approaches appear to say the same thing but the Containment approach has the additional semantics of constraining the Contained to remain within the Container. A neutrino can be part of the interior of a tank but is not constrained by the tank.
  2. Identification of interior spaces is important, because a tank can contain more than one interior space. Similarly a building can have many interior spaces. The building Industry Foundation Classes (IFCs) has IfcSpace (see https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcSpace.htm).
  3. It is important to identify what is part of a tank and what is not. A level sensor is usually regarded as part of a tank, and therefore can be associated with a tank by an inLocation relationship. Similarly the heating, lighting and air-conditioning systems are usually regarded as part of a building, whereas furniture is inside a building without being part of it.

It would be good to understand what containment implies – in the sense that neutrinos aren’t contained in the quote above. (Also, aren’t some neutrinos contained - https://en.wikipedia.org/wiki/Super-Kamiokande ?)
Also, it is not totally clear why some parts are contained and some are not: what is behind the intuition that this distinction can be made. For example, in what sense is “furniture is inside a building without being part of it” true. One way to clarify this is as the heating, lighting and air-conditioning systems as (necessary) dependent parts (see Partridge, C., Mitchell, A., & Grenon, P. (2021). A Framework for Composition: A Step Towards a Foundation for Assembly. CDBB. https://www.repository.cam.ac.uk/handle/1810/321335 ) Then furniture, in general, would not be a necessary part, but may accidentally be a (4D) part – and is often a part at a time. Some kinds of fitted furniture would seem to be good candidates for (necessary) dependent parts. Anyway, it would be good to clarify these points.
Also, what can be qualified as contained? For example, if a water pipe was to spring a leak, would the water inside still be contained?

Also, if the water flowing in an open gutter, is the water contained? If so, how is this explained – in terms of gravity and ability to flow? At the extreme, tanks and vessels have openings: in what cases do these openings count as breaching containment and where don’t they? If I turn the tank/vessel upside down and the contents flow out, are the contents still contained while they are still inside. More generally, the contained does not seem to reliably be strictly an interior, so how is this handled? By a convex hull, for example? If a convex hull, how would a meniscus be handled? (Or ice cream in a cone, or coal in a truck?) I’m guessing that when https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcSpace.htm says “A space represents an area or volume bounded actually or theoretically.” The theoretically is hinting at the openings.
There is, of course, something useful in informal containment talk. For an ontology, doesn’t one have to try for a more formal regimented notion. For example, the necessary dependency notion for parthood mentioned earlier could ground one such distinction.

@nigel81562

Copy link
Copy Markdown

Containment

Further to Chris's comments:

In general a containment may rely not just on the container, but an environmental factor; for example gravity of a very large body (the Earth say) preventing water from leaving a bucket in an upright position in said gravitational field: turn the bucket upside down and the water is no longer contained (given an open bucket). The point here is that containment is not solely reliant on the container and the thing being contained. It is not, therefore an intrinsic state of an element.

The example given has L-101 during delivery D-101, the pallet loaded as a contained state (in relation to corresponding state of container SC-101). However, should the delivery include a time when the pallet fell out of container, the containment during delivery would be discontinuous. There is a temporal continuity assumption in this model, and elements are considered from external 4D perspective. The containment factors other than the container and the contained are not accounted for - thus the apparent lack of distinction between inLocation and contained remarked upon in previous comments.

What should be apparent from this is that rather than being a joint part-of relationship between container and the contained, a containment should be viewed as an Event. (The pre-amble explanation given almost realises this in noting any member can be an Event, but misses that an Event can be part of a more extensive Event). Also note that IES extension guidelines state that one should Not extend Element.

Given a containment event, one would have participatory states - so the state of the pallet in containment, the state of the shipping container in the containment, where the pallet is located within, and constrained to be so by the environment, the container. The environment, and relevant parts thereof, are also participants (whether explicitly called out or not).

Modelling as an event also allows for further distinctions and characterisations to be made, such as 'leaky containment'... and allow for dependencies to be accommodated (must be participatory to event for the event to be).

@aigora-de

Copy link
Copy Markdown
Contributor Author

This pull request is "suspended" until a plan for addressing the issues raised is made and resources assigned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants