#694 Haystack 4.0 Review - 3.9.3

Brian Frank Fri 26 Apr 2019

For the 4.0 public review we'll be using a series of 3.9.xxx version numbers. The initial public review was 3.9.2 announced via topic 687. This is the next iteration of the design focused on two main areas:

  • simplification of the meta-model by removing generics and compose symbols
  • flushing out more of the ontology

The docs are available on the public review site https://project-haystack.dev/doc/index

The Haystack 4.0 ontology and docs are managed on BitBucket.

Removal of Compose Symbols

The previous design used a model such as "floor.floorNum" to associate a tag name with a entity type. This creates a lot of boilerplate and documentation noise. Plus it was confusing in reflection, RDF export etc. So we've simplified this to just create that relationship using the "tagOn" tag. This maps much closer to how RDF works too via the domain property.

For example now we do this:

def: ^floorNum
tagOn: ^floor

If you want to use that tag on another entity using late binding, you can do it like this (note we use defx for "def extension" here):

defx: ^floorNum
tagOn: ^someOtherEntity

Likewise compose symbols for entity containment is replaced by the containedBy tag.

Removed Generics

We nuked the generics feature. It was powerful, but made the documentation ugly and difficult for most people to understand. The current plan is to replace that using meta-data in the tagging model to drive dict instances. For example given a chilled-water leaving pipe, then we would annotate that the fluid conveyed and pipe section should be "flattened" into children pumps, valves, and points so that instances work just like they do today. This work is still left to do.

HVAC Equip

This version flushes out what should be a fairly complete taxonomy for HVAC equipment that is organized into a subtype tree. Air side:


Also included is an initial taxonomy for radiant systems:


All of these can be reviewed in new docs under equip.


We've flushed out more of the floor model including ground, subterranean, roof, and floorNum tags.


We've simplified the process taxonomy to not use a separate "tree" for every equipment type. For example now AHUs, fan power VAVs, and boilers all just share a single heatingProcess taxonomy.

We've also added an equipFunction taxonomy that defines terms for equipment features: conveys, cools, dehumidifies, heats, humidifies, moves, regulates, stores, ventilates. These are then applied to specific equip to model their functionality. For example a valve regulates a fluid and an damper regulates air.


We have flushed out the lighting quantities as specified in WG 649 so far. And also stubbed out the luminaire equip type.

Change Log

Version 3.9.3 (26 Apr 2019)

  • Remove generics
  • Remove compose symbols (replaced with tagOn, containedBy)
  • Add defx support
  • Rename Spaces to Namespaces
  • Simplify process taxonomy
  • Add ac-elec-meter, dc-elec-meter subtypes
  • Add fan, damper, pump, valve
  • Rename meterSphere to meterScope
  • Flush out submeterOf relationship
  • Add ground-floor, roof-floor, subterranean-floor, and floorNum
  • Add equipFunction aspects
  • Add airTerminalUnit and cav equip types
  • Add airHandlingEquip, mau, rtu, fcu, uv, heatPump, fumeHood
  • Add radiantEquip, radiator, radiantFloor, chilledBeam
  • Add thermostat
  • Add quantities: illuminance, luminance, luminous-flux, luminous-intensity
  • Add luminaire
  • Add verticalTransport, elevator, escalator

Login or Signup to reply.