There is a spectrum of ontological relationships that didn't have very precise terminology. While writing up the documents, I tried to tighten up the terms and concepts.
I was previously using the term aspect for def-to-def relationships to distinguish them from instance data relationships. I renamed this concept associations. These are strictly relationships between defs such as "is", "tagOn", or "quantityOf". See new chapter.
Choices are a mechanism of enumerations leveraging subtyping for late binding (you can add new choices by creating new subtypes). More importantly they have the concept of narrowing in the taxonomy and into actual instance data. See new chapter
Instance relationships and associated filter enhancements hasn't had any new work. I would consider those docs still just a straw-man proposal.
Protos
A long standing and thorny problem during Haystack 4's design has been how to model the typical children points of a given equip. In the last version, we tried out a new concept called "protos" or "prototypes". After several months of working with this concept, it seems to be an ideal solution. I've written up a new chapter on the design.
Plus I've added a new point protos index. These point protos are often what people want when they are looking for an exhaustive "point type list". But unlike first class defs, these prototypes are auto-generated from the ontology based on combinations of tags.
Zone Points
We've ported over all the various zone setpoints as children of thermostat and hvac-zone-space. These points are often bound as children directly under VAV, AHUs, FCUs, etc. This works out by having thermostat as potential child of airHandlingEquip and airTerminalUnit with point flattening (covered in new Protos chapter).
Panels
I ported over elecPanel tag via a new panel taxonomy which includes elec-panel and controls-panel. We probably need a more thorough review of electric panels and circuits from 3.0 ontology, so I'm going to leave that as is for now.
Data Centers
There is a stubbed out a basic ontology of dataCenter which is a subtype of space.
It contains CRAC units and also racks which subtypes equip.
Getting into data center modeling and device networking, requires dipping our toes into a device modeling. I have stubbed out a very simple device taxonomy which needs some review and discussion. The basic idea is that phIoT::equip is for physical assets, sensors, etc and phIct::device is for microprocessor based devices (servers, routers, controllers, etc).
ChangeLog
Version 3.9.6 (25 Sep 2019)
Remove pointKind and use kind to keep it back compatible
Replace mixinOn concept with tagOn
Refactor choice to subtype directly from symbol
Rename aspects to associations
New Normalization chapter
New Protos chapter
New Associations chapter
Zone setpoint ontology
Space subtypes appendix
Point protos appendix
Add panel, elec-panel, controls-panel
Stub simple device taxonomy
Stub simple dataCenter, rack tags
Apply tagOn to ref tags
Jay HerronTue 1 Oct 2019
This looks awesome, Brian! Cool stuff. I really like the Protos structure, and how thermostat fits into the standard.
Cory MosimanWed 9 Oct 2019
Hey Brian,
I was looking at the new protos section, and looking at the pipe example. The children listed under it are:
pump motor equip
valve actuator equip
flow point
pressure point
temp point
I don't fully understand why the first two are children of pipe...can you elaborate?
Brian FrankWed 9 Oct 2019
I don't fully understand why the first two are children of pipe...can you elaborate?
From just a simple perspective its because pumps and valves are placed in piping. Likewise fans and dampers are placed in ducts. Both equipment are used to move and regulate fluid/air of their parent conduit respectively.
There was very long discussion about fans and pumps in Haystack 3 that led to the discussion they can be either sub-equip or a point.
In Haystack 4 we formally capture these rules using a couple of techniques:
We list pumps, valves, fans, dampers as sub-equipment of their respective conduits (for example any pipe can contain a valve)
We specify a child flattening mechanism to model when you can omit a level of the ontology in your instance models
You can see how this works in the prototypes as a series of nested equip:
chiller equip
chilled water leaving pipe equip
chilled water leaving pump motor equip
chilled water leaving pump equip
chilled water leaving pump run state point
Protos take a bit to grok, but they have turned out to be a super powerful tool. They let us formally model what people do today in their models. But they also provide formal definition for modeling individual ducts and pipes if/when people want to model that level of detail.
Cory MosimanThu 17 Oct 2019
I see - ok, thank you Brian! I think I need to spend some time doing deep dive on protos. Also, do you know of any recorded talk from Haystack connect introducing 4.0? Sometimes video explanations can be very helpful - thanks.
Brian Frank Wed 25 Sep 2019
We have upgraded the project-haystack.dev with a new version.
See previous version notes:
There is a lot of new content in this version to review.
New Chapters
There are several new chapters
Associations and Choices
There is a spectrum of ontological relationships that didn't have very precise terminology. While writing up the documents, I tried to tighten up the terms and concepts.
I was previously using the term aspect for def-to-def relationships to distinguish them from instance data relationships. I renamed this concept associations. These are strictly relationships between defs such as "is", "tagOn", or "quantityOf". See new chapter.
Choices are a mechanism of enumerations leveraging subtyping for late binding (you can add new choices by creating new subtypes). More importantly they have the concept of narrowing in the taxonomy and into actual instance data. See new chapter
Instance relationships and associated filter enhancements hasn't had any new work. I would consider those docs still just a straw-man proposal.
Protos
A long standing and thorny problem during Haystack 4's design has been how to model the typical children points of a given equip. In the last version, we tried out a new concept called "protos" or "prototypes". After several months of working with this concept, it seems to be an ideal solution. I've written up a new chapter on the design.
Plus I've added a new point protos index. These point protos are often what people want when they are looking for an exhaustive "point type list". But unlike first class defs, these prototypes are auto-generated from the ontology based on combinations of tags.
Zone Points
We've ported over all the various zone setpoints as children of thermostat and hvac-zone-space. These points are often bound as children directly under VAV, AHUs, FCUs, etc. This works out by having thermostat as potential child of
airHandlingEquip
andairTerminalUnit
with point flattening (covered in new Protos chapter).Panels
I ported over
elecPanel
tag via a new panel taxonomy which includeselec-panel
andcontrols-panel
. We probably need a more thorough review of electric panels and circuits from 3.0 ontology, so I'm going to leave that as is for now.Data Centers
There is a stubbed out a basic ontology of dataCenter which is a subtype of space.
It contains CRAC units and also racks which subtypes equip.
Getting into data center modeling and device networking, requires dipping our toes into a device modeling. I have stubbed out a very simple device taxonomy which needs some review and discussion. The basic idea is that
phIoT::equip
is for physical assets, sensors, etc andphIct::device
is for microprocessor based devices (servers, routers, controllers, etc).ChangeLog
Version 3.9.6 (25 Sep 2019)
Jay Herron Tue 1 Oct 2019
This looks awesome, Brian! Cool stuff. I really like the Protos structure, and how thermostat fits into the standard.
Cory Mosiman Wed 9 Oct 2019
Hey Brian,
I was looking at the new protos section, and looking at the pipe example. The children listed under it are:
I don't fully understand why the first two are children of pipe...can you elaborate?
Brian Frank Wed 9 Oct 2019
From just a simple perspective its because pumps and valves are placed in piping. Likewise fans and dampers are placed in ducts. Both equipment are used to move and regulate fluid/air of their parent conduit respectively.
There was very long discussion about fans and pumps in Haystack 3 that led to the discussion they can be either sub-equip or a point.
In Haystack 4 we formally capture these rules using a couple of techniques:
You can see how this works in the prototypes as a series of nested equip:
Protos take a bit to grok, but they have turned out to be a super powerful tool. They let us formally model what people do today in their models. But they also provide formal definition for modeling individual ducts and pipes if/when people want to model that level of detail.
Cory Mosiman Thu 17 Oct 2019
I see - ok, thank you Brian! I think I need to spend some time doing deep dive on protos. Also, do you know of any recorded talk from Haystack connect introducing 4.0? Sometimes video explanations can be very helpful - thanks.