The WaTr vocabulary#
plumb.watr is generated from WaTr
v0.3.0.rc1,
vendored unmodified as ontology/watr-0.3.0rc1.ttl. Terms may change before
0.3.0.
Equipment, process, objective, and role#
Each answers a different question about a unit:
Question |
Relation |
Example |
|---|---|---|
What is it? |
|
|
What does it do? |
|
|
What is it for? |
|
|
What is its place in this system? |
|
|
A sedimentation tank and a gravity thickener share a process, settling, but not an objective: one clarifies water, the other thickens sludge. A role depends on the installation.
Processes and objectives are classes, used directly as values; they serialize as class IRIs. Roles are enum values. See Set processes, objectives, and roles.
Class defaults#
Some processes and objectives follow from the equipment class: every
GravityThickener settles to thicken. WaTr’s ClassDefaultsRule infers these
in RDF, and generated constructors apply the same defaults. A default is
skipped when you supply that term or a subclass of it.
Where |
Defaults applied |
|---|---|
Python constructor |
most specific term only |
|
every implied term |
|
none; the graph is kept as written |
ProcessObjectiveRule adds the objective a process implies
(Process-Chlorination implies disinfection). It runs only as a SHACL rule.
No rule supplies a role.
Media and constituents#
WaTr models freshwater with an H₂O constituent, and seawater, brackish water, and brine with H₂O and NaCl. A shared constituent makes media compatible at a connection. It does not assert equal composition.
Fluid-Sludge is a Mix-Fluid of water and solids, not a kind of
Fluid-Water, so a sludge port does not accept a water-only connection.
The bundled shapes also check percentage compositions:
CompositionPercentageShapeflags constituent percentages that exceed 100%.CompositionComplementRuleinfers a single missing percentage from the rest.