Warning
This model has not been updated since the last revision of the 223P ontology, and it may not pass validation. 223P was last updated on 2025-06-24 17:37:14. The model file was last updated on 2024-09-12 17:10:55
LBNL Example SMB Radiant#
This is a reference model provided by LBNL of a medium office building using a radiant system. Labels have been anonymized, and may not be interpretable.
Downloads#
What are these files?
Turtle file (original): This is the original source Turtle file that was provided to
models.open223.info
, usually as the output of some model creation tool.Turtle file (compiled): This is the original Turtle file with all inferred relationships and values added through SHACL inference against the 223P ontology and other dependencies. You should use this file for any further processing. It does not contain any of the ontologies.
Turtle file (with all imports): This is the compiled Turtle file with all imports included in the file (223P ontology, QUDT ontology, and others). This is helpful when you do not want to deal with downloading and managing ontology dependencies. It is also much larger than the compiled file.
JSON-LD file (original): This is the original Turtle file converted to the JSON-LD format.
Turtle is a syntax for RDF (Resource Description Framework) that is easy to read and write. It is a popular format for representing linked data. Parsers and serializers are available in many programming languages. JSON-LD is a JSON-based format for linked data that is easy to use with JavaScript and other web technologies.
Queries#
Description |
Query URL |
---|---|
Select all triples from model. |
Model Components#
Parent Class |
Class |
Instances |
---|---|---|
15 |
||
8 |
||
3 |
||
2 |
||
1 |
||
1 |
||
1 |
||
79 |
||
62 |
||
38 |
||
46 |
||
6 |
Load and Validate Model#
This code uses the BuildingMOTIF library to load the 223P ontology and the model file into a temporary in-memory instance. It then validates the model against the ontology. If the model is invalid, it will print the validation report.
To run this code, you need to have Java installed on your system. If you do not have Java installed, you can remove the shacl_engine='topquadrant'
parameter from the BuildingMOTIF
constructor.
Be warned that without the shacl_engine='topquadrant'
parameter, the validation process will be slower.
Note
BuildingMOTIF installation
To install the buildingmotif
library, you can use the following command:
pip install 'buildingmotif[topquadrant] @ git+https://github.com/NREL/buildingmotif.git@develop'
If you do not have Java installed, you can use the following command to install the library:
pip install 'buildingmotif @ git+https://github.com/NREL/buildingmotif.git@develop'
from buildingmotif import BuildingMOTIF
from buildingmotif.dataclasses import Library, Model
import ontoenv
import logging
# Create a BuildingMOTIF object. If you do not have Java installed, remove the "shacl_engine" parameter
bm = BuildingMOTIF('sqlite://', shacl_engine='topquadrant', log_level=logging.ERROR)
# load 223P library. We will load a recent copy from the models.open223.info
# git repository; later, we will load this from the location of the actual standard
s223 = Library.load(ontology_graph="https://open223.info/223p.ttl")
unit = Library.load(ontology_graph="http://qudt.org/3.1.1/vocab/unit")
quantitykind = Library.load(ontology_graph="http://qudt.org/3.1.1/vocab/quantitykind")
# load the model into the BuildingMOTIF instance
model = Model.create("urn:lbnl-example-radiant")
model.graph.parse("https://models.open223.info/lbnl-example-radiant.ttl")
# validate the model against 223P ontology
ctx = model.validate([s223.get_shape_collection(),
unit.get_shape_collection(),
quantitykind.get_shape_collection()],
error_on_missing_imports=False)
# print the validation result
print(f"Model is valid: {ctx.valid}")
# if the model is invalid, print the validation report
if not ctx.valid:
print(ctx.report_string[:1000]) # first 1000 characters of the report
# BuildingMOTIF can also interpret the report to provide recommendations on fixes
for focus_node, diffs in ctx.get_reasons_with_severity("Violation").items():
if len(diffs) == 0:
continue
print(focus_node)
for diff in diffs:
print(" - " + diff.reason())
Model is valid: 0
@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
[] a sh:ValidationReport ;
sh:conforms false ;
sh:result [ a sh:ValidationResult ;
sh:focusNode <urn:ex/YANvPsKv403> ;
sh:resultMessage "s223: `ConnectionPoint` <urn:ex/YANvPsKv403> probably needs an association with a `Connection`, or use of `hasOptionalConnectionPoint` or `hasBoundaryConnectionPoint` qualifiers." ;
sh:resultPath ns1:connectsThrough ;
sh:resultSeverity sh:Info ;
sh:sourceConstraint _:nec70e34ac5b549c499af730d14b828afb5 ;
sh:sourceConstraintComponent sh:SPARQLConstraintComponent ;
sh:sourceShape <urn:well-known/08c41403> ],
[ a sh:ValidationResult ;
sh:focusNode <urn:ex/aR68jkur483> ;
sh:resultMessage "s223: A `ConnectionPoint` shall be associated with exactly one `Connectable` using the relation `isC
urn:ex/78Qbi7Fo352
- urn:ex/78Qbi7Fo352 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/SWdxEIhn26
- urn:ex/SWdxEIhn26 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/dLYt0KIT319
- urn:ex/dLYt0KIT319 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/XfllCghn64
- urn:ex/XfllCghn64 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/mOefS7S2337
- urn:ex/mOefS7S2337 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/Pj1x4yV9368
- urn:ex/Pj1x4yV9368 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/yBpJjQAV389
- urn:ex/yBpJjQAV389 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/1JpP6zXv670
- urn:ex/1JpP6zXv670 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/XGPv8y1i250
- urn:ex/XGPv8y1i250 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/Apko0TOe520
- urn:ex/Apko0TOe520 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/b5tdvVHM39
- urn:ex/b5tdvVHM39 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/uVlW5FMz445
- urn:ex/uVlW5FMz445 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/LBWzUtoZ442
- urn:ex/LBWzUtoZ442 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/qZg3DGvk316
- urn:ex/qZg3DGvk316 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/7Yn4H59D273
- urn:ex/7Yn4H59D273 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/tGPgeyRr355
- urn:ex/tGPgeyRr355 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/pv235IR9229
- urn:ex/pv235IR9229 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/lvpLQvmp354
- urn:ex/lvpLQvmp354 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/VaZzJCtS350
- urn:ex/VaZzJCtS350 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/YKbncoJN336
- urn:ex/YKbncoJN336 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/Xx7MnV9M582
- urn:ex/Xx7MnV9M582 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/68PIcWok524
- urn:ex/68PIcWok524 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/CsJNd2CT297
- urn:ex/CsJNd2CT297 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/BiKiJvUX264
- urn:ex/BiKiJvUX264 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/auqKqKUP540
- urn:ex/auqKqKUP540 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/ihjgobmS409
- urn:ex/ihjgobmS409 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/AOowjS3s200
- urn:ex/AOowjS3s200 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/oyQ1DgZx70
- urn:ex/oyQ1DgZx70 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/ICJhYnMh502
- urn:ex/ICJhYnMh502 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/NzYF9trZ71
- urn:ex/NzYF9trZ71 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/bjwSmEDY138
- urn:ex/bjwSmEDY138 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/BfCfCErP353
- urn:ex/BfCfCErP353 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/OATdW6VI72
- urn:ex/OATdW6VI72 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/uCwEUFeI345
- urn:ex/uCwEUFeI345 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/LZjshvIF340
- urn:ex/LZjshvIF340 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/kyIAgAAq325
- urn:ex/kyIAgAAq325 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/hlzlZfkY164
- urn:ex/hlzlZfkY164 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/SrkSOnTF89
- urn:ex/SrkSOnTF89 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/aldnlUFo357
- urn:ex/aldnlUFo357 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/mloUlnTr344
- urn:ex/mloUlnTr344 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/4fh7GlSA277
- urn:ex/4fh7GlSA277 expected at least 1 instance(s) of ns1:BidirectionalConnectionPoint on path ns1:hasConnectionPoint
urn:ex/KJ4qilWW90
- urn:ex/KJ4qilWW90 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/y62223k0107
- urn:ex/y62223k0107 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/SBePB6sI137
- urn:ex/SBePB6sI137 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/DRxxau5r601
- urn:ex/DRxxau5r601 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/aR68jkur483
- urn:ex/aR68jkur483 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/6bLp9flF404
- urn:ex/6bLp9flF404 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/CJ1DEcTJ550
- urn:ex/CJ1DEcTJ550 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/ppGOzxUO461
- urn:ex/ppGOzxUO461 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/vGQfwGxo176
- urn:ex/vGQfwGxo176 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/t0oRv7hG233
- urn:ex/t0oRv7hG233 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/BmiW3IeK330
- urn:ex/BmiW3IeK330 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/dv8t7etb101
- urn:ex/dv8t7etb101 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/fVWrrgPi606
- urn:ex/fVWrrgPi606 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/UzGWRDPZ9
- urn:ex/UzGWRDPZ9 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/1yoTn6BP186
- urn:ex/1yoTn6BP186 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/z7sTel3w320
- urn:ex/z7sTel3w320 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/HnEWaTyu25
- urn:ex/HnEWaTyu25 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/2GPPHY5B129
- urn:ex/2GPPHY5B129 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/KDRab1lr370
- urn:ex/KDRab1lr370 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/1KK5lI2d83
- urn:ex/1KK5lI2d83 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/hqp0aUUN168
- urn:ex/hqp0aUUN168 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/sKh9n6ON367
- urn:ex/sKh9n6ON367 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/amTwuuDu463
- urn:ex/amTwuuDu463 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/4L9brF9m219
- urn:ex/4L9brF9m219 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/BRYT4HS582
- urn:ex/BRYT4HS582 expected at least 1 instance(s) of ns1:BidirectionalConnectionPoint on path ns1:hasConnectionPoint
urn:ex/a4DCmbwh420
- urn:ex/a4DCmbwh420 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/6xP216Xu27
- urn:ex/6xP216Xu27 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/2ME0tCwW456
- urn:ex/2ME0tCwW456 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf
urn:ex/RsJOTyRV373
- urn:ex/RsJOTyRV373 expected 1 instance(s) of ns1:Connectable on path ns1:isConnectionPointOf