From 8eef30e3cecca10a37dcd75323c65ffb69b473f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20Lefran=C3=A7ois?= Date: Thu, 27 Feb 2020 01:52:58 +0100 Subject: [PATCH] run class org.etsi.saref.server.SAREFServer --- .gitignore | 1 + pom.xml | 101 +- .../org/etsi/saref/server/SAREFServer.java | 64 +- .../saref/server/entities/HomePageFilter.java | 43 + .../org/etsi/saref/server/resources/Bean.java | 15 - .../saref/server/resources/CoreFilter.java | 90 - .../etsi/saref/server/resources/Index.java | 27 + .../saref/server/resources/ListExercises.java | 71 - .../server/resources/OntologyResource.java | 2 +- .../etsi/saref/server/resources/OsInfo.java | 19 - .../saref/server/resources/Resources.java | 27 + .../etsi/saref/server/resources/Search.java | 92 +- .../saref/server/resources/SearchKeyWord.java | 136 - src/main/resources/log4j.properties | 2 +- .../resources/saref-portal-generator/LICENSE | 23 - .../saref-portal-generator/public/.htaccess | 104 - .../public/core/v3.1.1/406.html | 10 - .../public/core/v3.1.1/core.html | 101 - .../public/core/v3.1.1/core.json | 2865 ----------- .../public/core/v3.1.1/core.nt | 1230 ----- .../public/core/v3.1.1/core.ttl | 1374 ----- .../public/core/v3.1.1/core.xml | 2134 -------- .../core/v3.1.1/provenance/provenance-en.html | 19 - .../core/v3.1.1/provenance/provenance-en.ttl | 15 - .../public/core/v3.1.1/readme.md | 34 - .../images/SAREF figures-Overview.jpg | 0 .../public/core/v3.1.1/resources/jquery.js | 18 - .../core/v3.1.1/resources/marked.min.js | 6 - .../public/core/v3.1.1/resources/rec.css | 88 - .../core/v3.1.1/sections/abstract-en.html | 4 - .../core/v3.1.1/sections/crossref-en.html | 3298 ------------ .../core/v3.1.1/sections/description-en.html | 11 - .../core/v3.1.1/sections/introduction-en.html | 22 - .../core/v3.1.1/sections/overview-en.html | 410 -- .../core/v3.1.1/sections/references-en.html | 6 - .../public/index (copy).html | 473 -- .../public/index-maria.html | 1188 ----- .../public/index-online.html | 412 -- .../saref-portal-generator/public/index.html | 252 - .../public/lode/extra.css | 124 - .../public/lode/owl.css | 248 - .../public/lode/primer.css | 103 - .../public/resources.html | 450 -- .../public/saref/latest/saref.html | 184 - .../public/saref/latest/saref.n3 | 1231 ----- .../public/saref/latest/saref.rdf | 1857 ------- .../public/saref/latest/saref.ttl | 1620 ------ .../public/saref/v2.1.1/catalog-v001.xml | 4 - .../saref/v2.1.1/example/doorswitch.ttl | 80 - .../saref/v2.1.1/example/energymeter.ttl | 73 - .../saref/v2.1.1/example/lightswitch.ttl | 82 - .../saref/v2.1.1/example/smokesensor.ttl | 121 - .../v2.1.1/example/temperaturesensor.ttl | 80 - .../public/saref/v2.1.1/example/time.ttl | 15 - .../saref/v2.1.1/example/washingmachine.ttl | 118 - .../public/saref/v2.1.1/oldsaref-to-slash.ttl | 802 --- .../public/saref/v2.1.1/oldsaref.ttl | 802 --- .../public/saref/v2.1.1/saref.html | 184 - .../public/saref/v2.1.1/saref.n3 | 1231 ----- .../public/saref/v2.1.1/saref.rdf | 1857 ------- .../public/saref/v2.1.1/saref.ttl | 1620 ------ .../public/saref4agri/latest/saref4agri.html | 185 - .../public/saref4agri/latest/saref4agri.n3 | 939 ---- .../public/saref4agri/latest/saref4agri.rdf | 1272 ----- .../public/saref4agri/latest/saref4agri.ttl | 1374 ----- .../public/saref4agri/v1.1.1/saref4agri.html | 185 - .../public/saref4agri/v1.1.1/saref4agri.n3 | 939 ---- .../public/saref4agri/v1.1.1/saref4agri.rdf | 1272 ----- .../public/saref4agri/v1.1.1/saref4agri.ttl | 1374 ----- .../public/saref4bldg/latest/saref4bldg.html | 184 - .../public/saref4bldg/latest/saref4bldg.n3 | 3127 ----------- .../public/saref4bldg/latest/saref4bldg.rdf | 4570 ----------------- .../public/saref4bldg/latest/saref4bldg.ttl | 4248 --------------- .../public/saref4bldg/v1.1.1/saref4bldg.html | 184 - .../public/saref4bldg/v1.1.1/saref4bldg.n3 | 3127 ----------- .../public/saref4bldg/v1.1.1/saref4bldg.rdf | 4570 ----------------- .../public/saref4bldg/v1.1.1/saref4bldg.ttl | 4248 --------------- .../public/saref4city/latest/saref4city.html | 184 - .../public/saref4city/latest/saref4city.n3 | 608 --- .../public/saref4city/latest/saref4city.rdf | 857 ---- .../public/saref4city/latest/saref4city.ttl | 817 --- .../public/saref4city/v1.1.1/saref4city.html | 184 - .../public/saref4city/v1.1.1/saref4city.n3 | 608 --- .../public/saref4city/v1.1.1/saref4city.rdf | 857 ---- .../public/saref4city/v1.1.1/saref4city.ttl | 817 --- .../public/saref4ener/latest/desktop.ini | 5 - .../public/saref4ener/latest/saref4ener.html | 184 - .../public/saref4ener/latest/saref4ener.n3 | 1254 ----- .../public/saref4ener/latest/saref4ener.rdf | 1952 ------- .../public/saref4ener/latest/saref4ener.ttl | 1551 ------ .../public/saref4ener/v1.1.1/desktop.ini | 5 - .../public/saref4ener/v1.1.1/saref4ener.html | 184 - .../public/saref4ener/v1.1.1/saref4ener.n3 | 1254 ----- .../public/saref4ener/v1.1.1/saref4ener.rdf | 1952 ------- .../public/saref4ener/v1.1.1/saref4ener.ttl | 1551 ------ .../public/saref4envi/desktop.ini | 5 - .../public/saref4envi/latest/desktop.ini | 5 - .../public/saref4envi/latest/saref4envi.html | 184 - .../public/saref4envi/latest/saref4envi.n3 | 712 --- .../public/saref4envi/latest/saref4envi.rdf | 1104 ---- .../public/saref4envi/latest/saref4envi.ttl | 960 ---- .../public/saref4envi/v1.1.1/desktop.ini | 5 - .../public/saref4envi/v1.1.1/saref4envi.html | 184 - .../public/saref4envi/v1.1.1/saref4envi.n3 | 712 --- .../public/saref4envi/v1.1.1/saref4envi.rdf | 1104 ---- .../public/saref4envi/v1.1.1/saref4envi.ttl | 960 ---- .../public/saref4inma/desktop.ini | 5 - .../public/saref4inma/latest/desktop.ini | 5 - .../public/saref4inma/latest/saref4inma.html | 184 - .../public/saref4inma/latest/saref4inma.n3 | 518 -- .../public/saref4inma/latest/saref4inma.rdf | 693 --- .../public/saref4inma/latest/saref4inma.ttl | 690 --- .../public/saref4inma/v1.1.1/desktop.ini | 5 - .../public/saref4inma/v1.1.1/saref4inma.html | 184 - .../public/saref4inma/v1.1.1/saref4inma.n3 | 518 -- .../public/saref4inma/v1.1.1/saref4inma.rdf | 693 --- .../public/saref4inma/v1.1.1/saref4inma.ttl | 690 --- .../public/saref4syst/desktop.ini | 5 - .../public/saref4syst/latest/desktop.ini | 5 - .../public/saref4syst/latest/example.ttl | 64 - .../public/saref4syst/latest/saref4syst.html | 184 - .../public/saref4syst/latest/saref4syst.n3 | 176 - .../public/saref4syst/latest/saref4syst.rdf | 187 - .../public/saref4syst/latest/saref4syst.ttl | 157 - .../public/saref4syst/v1.1.1/desktop.ini | 5 - .../public/saref4syst/v1.1.1/example.ttl | 64 - .../public/saref4syst/v1.1.1/saref4syst.html | 184 - .../public/saref4syst/v1.1.1/saref4syst.n3 | 176 - .../public/saref4syst/v1.1.1/saref4syst.rdf | 187 - .../public/saref4syst/v1.1.1/saref4syst.ttl | 157 - .../public/templates/desktop.ini | 5 - .../g5_helium/custom/css-compiled/desktop.ini | 5 - .../templates/g5_helium/custom/desktop.ini | 5 - .../public/templates/g5_helium/desktop.ini | 5 - .../templates/g5_helium/fonts/desktop.ini | 5 - .../g5_helium/fonts/lato/desktop.ini | 5 - .../fonts/lato/lato-bold/desktop.ini | 5 - .../g5_helium/fonts/raleway/desktop.ini | 5 - .../fonts/raleway/raleway-bold/desktop.ini | 5 - .../fonts/raleway/raleway-regular/desktop.ini | 5 - .../raleway/raleway-semibold/desktop.ini | 5 - .../public/templates/g5_helium/js/desktop.ini | 5 - .../templates/g5_helium/js/jui/desktop.ini | 5 - .../saref-portal-generator/public/vocab.html | 341 -- .../public => }/saref.png | Bin src/main/resources/templates/beans.mustache | 2 - src/main/resources/templates/header.mustache | 4 +- src/main/resources/templates/index.mustache | 54 +- .../resources.mustache} | 658 +-- src/main/resources/templates/search.mustache | 22 + src/main/resources/templates/view.mustache | 23 - .../webapp/WEB-INF/lib/collection-0.7.jar | Bin 164973 -> 0 bytes .../webapp/WEB-INF/lib/commons-cli-1.4.jar | Bin 53820 -> 0 bytes .../webapp/WEB-INF/lib/commons-csv-1.5.jar | Bin 41586 -> 0 bytes .../webapp/WEB-INF/lib/commons-io-2.6.jar | Bin 214788 -> 0 bytes .../webapp/WEB-INF/lib/commons-lang3-3.4.jar | Bin 434678 -> 0 bytes .../webapp/WEB-INF/lib/jena-text-3.14.0.jar | Bin 130899 -> 0 bytes .../webapp/WEB-INF/lib/slf4j-api-1.7.25.jar | Bin 41203 -> 0 bytes .../webapp/WEB-INF/lib/xercesImpl-2.11.0.jar | Bin 1367760 -> 0 bytes .../webapp/WEB-INF/lib/xml-apis-1.4.01.jar | Bin 220536 -> 0 bytes src/main/webapp/WEB-INF/web.xml | 18 +- .../public => webapp}/desktop.ini | 0 .../documentation-draft.html | 0 .../public => webapp}/favicon.ico | Bin .../files/ETSI-Logo_BW_S_Office1.png | Bin .../public => webapp}/files/ETSI/desktop.ini | 0 .../files/ETSI/etsi-arrows-crop.png | Bin .../files/ETSI/home/arrows-home-575.PNG | Bin .../files/ETSI/home/build-home-575.PNG | Bin .../files/ETSI/home/desktop.ini | 0 .../files/ETSI/home/globe-home-575.PNG | Bin .../public => webapp}/files/ETSI/svn256.png | Bin .../public => webapp}/files/desktop.ini | 0 .../public => webapp}/images/desktop.ini | 0 .../public => webapp}/images/logo-l.png | Bin src/main/webapp/images/saref.png | Bin 0 -> 175973 bytes .../public => webapp/images}/test.png | Bin .../public => webapp}/keywordSearchPage.html | 0 .../public => webapp}/lode/desktop.ini | 0 .../resources => webapp/lode}/extra.css | 0 .../v3.1.1/resources => webapp/lode}/owl.css | 0 .../resources => webapp/lode}/primer.css | 0 .../public => webapp}/lode/rec.css | 0 .../public => webapp}/media/desktop.ini | 0 .../gantry5/assets/css/bootstrap-gantry.css | 0 .../media/gantry5/assets/css/desktop.ini | 0 .../gantry5/assets/css/font-awesome.min.css | 0 .../media/gantry5/assets/desktop.ini | 0 .../media/gantry5/assets/fonts/desktop.ini | 0 .../assets/fonts/fontawesome-webfont.woff2 | Bin .../media/gantry5/assets/js/desktop.ini | 0 .../media/gantry5/assets/js/main.js | 0 .../media/gantry5/desktop.ini | 0 .../media/gantry5/engines/desktop.ini | 0 .../engines/nucleus/css-compiled/desktop.ini | 0 .../engines/nucleus/css-compiled/joomla.css | 0 .../engines/nucleus/css-compiled/nucleus.css | 0 .../media/gantry5/engines/nucleus/desktop.ini | 0 .../media/jui/css/desktop.ini | 0 .../media/jui/css/icomoon.css | 0 .../public => webapp}/media/jui/desktop.ini | 0 .../media/jui/js/bootstrap.min.js | 0 .../media/jui/js/desktop.ini | 0 .../media/jui/js/jquery-migrate.min.js | 0 .../media/jui/js/jquery-noconflict.js | 0 .../media/system/desktop.ini | 0 .../media/system/js/caption.js | 0 .../media/system/js/desktop.ini | 0 src/main/webapp/saref.png | Bin 0 -> 175973 bytes .../saref => webapp/templates}/desktop.ini | 0 .../custom/css-compiled/custom_19.css | 0 .../custom/css-compiled}/desktop.ini | 0 .../custom/css-compiled/helium-joomla_19.css | 0 .../custom/css-compiled/helium_19.css | 0 .../templates/g5_helium/custom}/desktop.ini | 0 .../templates/g5_helium}/desktop.ini | 0 .../templates/g5_helium/fonts}/desktop.ini | 0 .../g5_helium/fonts/lato}/desktop.ini | 0 .../fonts/lato/lato-bold}/desktop.ini | 0 .../lato/lato-bold/lato-bold-webfont.woff2 | Bin .../g5_helium/fonts/raleway}/desktop.ini | 0 .../fonts/raleway/raleway-bold}/desktop.ini | 0 .../raleway-bold/raleway-bold-webfont.woff2 | Bin .../raleway/raleway-regular}/desktop.ini | 0 .../raleway-regular-webfont.woff2 | Bin .../raleway/raleway-semibold}/desktop.ini | 0 .../raleway-semibold-webfont.woff2 | Bin .../templates/g5_helium/js}/desktop.ini | 0 .../templates/g5_helium/js/jui}/desktop.ini | 0 .../templates/g5_helium/js/jui/jquery.min.js | 0 .../templates/g5_helium/js/juitabs.js | 0 src/main/webapp/toto.html | 2 - 232 files changed, 537 insertions(+), 86618 deletions(-) create mode 100644 src/main/java/org/etsi/saref/server/entities/HomePageFilter.java delete mode 100644 src/main/java/org/etsi/saref/server/resources/Bean.java delete mode 100644 src/main/java/org/etsi/saref/server/resources/CoreFilter.java create mode 100644 src/main/java/org/etsi/saref/server/resources/Index.java delete mode 100644 src/main/java/org/etsi/saref/server/resources/ListExercises.java delete mode 100644 src/main/java/org/etsi/saref/server/resources/OsInfo.java create mode 100644 src/main/java/org/etsi/saref/server/resources/Resources.java delete mode 100644 src/main/java/org/etsi/saref/server/resources/SearchKeyWord.java delete mode 100644 src/main/resources/saref-portal-generator/LICENSE delete mode 100644 src/main/resources/saref-portal-generator/public/.htaccess delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/406.html delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/core.html delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/core.json delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/core.nt delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/core.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/core.xml delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/provenance/provenance-en.html delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/provenance/provenance-en.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/readme.md delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/images/SAREF figures-Overview.jpg delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/jquery.js delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/marked.min.js delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/rec.css delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/abstract-en.html delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/crossref-en.html delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/description-en.html delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/introduction-en.html delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/overview-en.html delete mode 100644 src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/references-en.html delete mode 100644 src/main/resources/saref-portal-generator/public/index (copy).html delete mode 100644 src/main/resources/saref-portal-generator/public/index-maria.html delete mode 100644 src/main/resources/saref-portal-generator/public/index-online.html delete mode 100644 src/main/resources/saref-portal-generator/public/index.html delete mode 100644 src/main/resources/saref-portal-generator/public/lode/extra.css delete mode 100644 src/main/resources/saref-portal-generator/public/lode/owl.css delete mode 100644 src/main/resources/saref-portal-generator/public/lode/primer.css delete mode 100644 src/main/resources/saref-portal-generator/public/resources.html delete mode 100644 src/main/resources/saref-portal-generator/public/saref/latest/saref.html delete mode 100644 src/main/resources/saref-portal-generator/public/saref/latest/saref.n3 delete mode 100644 src/main/resources/saref-portal-generator/public/saref/latest/saref.rdf delete mode 100644 src/main/resources/saref-portal-generator/public/saref/latest/saref.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref/v2.1.1/catalog-v001.xml delete mode 100644 src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/doorswitch.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/energymeter.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/lightswitch.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/smokesensor.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/temperaturesensor.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/time.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/washingmachine.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref/v2.1.1/oldsaref-to-slash.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref/v2.1.1/oldsaref.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref/v2.1.1/saref.html delete mode 100644 src/main/resources/saref-portal-generator/public/saref/v2.1.1/saref.n3 delete mode 100644 src/main/resources/saref-portal-generator/public/saref/v2.1.1/saref.rdf delete mode 100644 src/main/resources/saref-portal-generator/public/saref/v2.1.1/saref.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref4agri/latest/saref4agri.html delete mode 100644 src/main/resources/saref-portal-generator/public/saref4agri/latest/saref4agri.n3 delete mode 100644 src/main/resources/saref-portal-generator/public/saref4agri/latest/saref4agri.rdf delete mode 100644 src/main/resources/saref-portal-generator/public/saref4agri/latest/saref4agri.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/saref4agri.html delete mode 100644 src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/saref4agri.n3 delete mode 100644 src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/saref4agri.rdf delete mode 100644 src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/saref4agri.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref4bldg/latest/saref4bldg.html delete mode 100644 src/main/resources/saref-portal-generator/public/saref4bldg/latest/saref4bldg.n3 delete mode 100644 src/main/resources/saref-portal-generator/public/saref4bldg/latest/saref4bldg.rdf delete mode 100644 src/main/resources/saref-portal-generator/public/saref4bldg/latest/saref4bldg.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/saref4bldg.html delete mode 100644 src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/saref4bldg.n3 delete mode 100644 src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/saref4bldg.rdf delete mode 100644 src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/saref4bldg.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref4city/latest/saref4city.html delete mode 100644 src/main/resources/saref-portal-generator/public/saref4city/latest/saref4city.n3 delete mode 100644 src/main/resources/saref-portal-generator/public/saref4city/latest/saref4city.rdf delete mode 100644 src/main/resources/saref-portal-generator/public/saref4city/latest/saref4city.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/saref4city.html delete mode 100644 src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/saref4city.n3 delete mode 100644 src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/saref4city.rdf delete mode 100644 src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/saref4city.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref4ener/latest/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/saref4ener/latest/saref4ener.html delete mode 100644 src/main/resources/saref-portal-generator/public/saref4ener/latest/saref4ener.n3 delete mode 100644 src/main/resources/saref-portal-generator/public/saref4ener/latest/saref4ener.rdf delete mode 100644 src/main/resources/saref-portal-generator/public/saref4ener/latest/saref4ener.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/saref4ener.html delete mode 100644 src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/saref4ener.n3 delete mode 100644 src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/saref4ener.rdf delete mode 100644 src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/saref4ener.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref4envi/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/saref4envi/latest/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/saref4envi/latest/saref4envi.html delete mode 100644 src/main/resources/saref-portal-generator/public/saref4envi/latest/saref4envi.n3 delete mode 100644 src/main/resources/saref-portal-generator/public/saref4envi/latest/saref4envi.rdf delete mode 100644 src/main/resources/saref-portal-generator/public/saref4envi/latest/saref4envi.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/saref4envi.html delete mode 100644 src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/saref4envi.n3 delete mode 100644 src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/saref4envi.rdf delete mode 100644 src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/saref4envi.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref4inma/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/saref4inma/latest/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/saref4inma/latest/saref4inma.html delete mode 100644 src/main/resources/saref-portal-generator/public/saref4inma/latest/saref4inma.n3 delete mode 100644 src/main/resources/saref-portal-generator/public/saref4inma/latest/saref4inma.rdf delete mode 100644 src/main/resources/saref-portal-generator/public/saref4inma/latest/saref4inma.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/saref4inma.html delete mode 100644 src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/saref4inma.n3 delete mode 100644 src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/saref4inma.rdf delete mode 100644 src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/saref4inma.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref4syst/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/saref4syst/latest/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/saref4syst/latest/example.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref4syst/latest/saref4syst.html delete mode 100644 src/main/resources/saref-portal-generator/public/saref4syst/latest/saref4syst.n3 delete mode 100644 src/main/resources/saref-portal-generator/public/saref4syst/latest/saref4syst.rdf delete mode 100644 src/main/resources/saref-portal-generator/public/saref4syst/latest/saref4syst.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/example.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/saref4syst.html delete mode 100644 src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/saref4syst.n3 delete mode 100644 src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/saref4syst.rdf delete mode 100644 src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/saref4syst.ttl delete mode 100644 src/main/resources/saref-portal-generator/public/templates/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/templates/g5_helium/custom/css-compiled/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/templates/g5_helium/custom/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/templates/g5_helium/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/lato/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/lato/lato-bold/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-bold/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-regular/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-semibold/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/templates/g5_helium/js/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/templates/g5_helium/js/jui/desktop.ini delete mode 100644 src/main/resources/saref-portal-generator/public/vocab.html rename src/main/resources/{saref-portal-generator/public => }/saref.png (100%) delete mode 100644 src/main/resources/templates/beans.mustache rename src/main/resources/{saref-portal-generator/public/index-save.html => templates/resources.mustache} (62%) create mode 100644 src/main/resources/templates/search.mustache delete mode 100644 src/main/resources/templates/view.mustache delete mode 100644 src/main/webapp/WEB-INF/lib/collection-0.7.jar delete mode 100644 src/main/webapp/WEB-INF/lib/commons-cli-1.4.jar delete mode 100644 src/main/webapp/WEB-INF/lib/commons-csv-1.5.jar delete mode 100644 src/main/webapp/WEB-INF/lib/commons-io-2.6.jar delete mode 100644 src/main/webapp/WEB-INF/lib/commons-lang3-3.4.jar delete mode 100644 src/main/webapp/WEB-INF/lib/jena-text-3.14.0.jar delete mode 100644 src/main/webapp/WEB-INF/lib/slf4j-api-1.7.25.jar delete mode 100644 src/main/webapp/WEB-INF/lib/xercesImpl-2.11.0.jar delete mode 100644 src/main/webapp/WEB-INF/lib/xml-apis-1.4.01.jar rename src/main/{resources/saref-portal-generator/public => webapp}/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/documentation-draft.html (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/favicon.ico (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/files/ETSI-Logo_BW_S_Office1.png (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/files/ETSI/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/files/ETSI/etsi-arrows-crop.png (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/files/ETSI/home/arrows-home-575.PNG (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/files/ETSI/home/build-home-575.PNG (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/files/ETSI/home/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/files/ETSI/home/globe-home-575.PNG (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/files/ETSI/svn256.png (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/files/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/images/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/images/logo-l.png (100%) create mode 100644 src/main/webapp/images/saref.png rename src/main/{resources/saref-portal-generator/public => webapp/images}/test.png (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/keywordSearchPage.html (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/lode/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public/core/v3.1.1/resources => webapp/lode}/extra.css (100%) rename src/main/{resources/saref-portal-generator/public/core/v3.1.1/resources => webapp/lode}/owl.css (100%) rename src/main/{resources/saref-portal-generator/public/core/v3.1.1/resources => webapp/lode}/primer.css (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/lode/rec.css (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/gantry5/assets/css/bootstrap-gantry.css (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/gantry5/assets/css/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/gantry5/assets/css/font-awesome.min.css (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/gantry5/assets/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/gantry5/assets/fonts/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/gantry5/assets/fonts/fontawesome-webfont.woff2 (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/gantry5/assets/js/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/gantry5/assets/js/main.js (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/gantry5/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/gantry5/engines/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/gantry5/engines/nucleus/css-compiled/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/gantry5/engines/nucleus/css-compiled/joomla.css (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/gantry5/engines/nucleus/css-compiled/nucleus.css (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/gantry5/engines/nucleus/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/jui/css/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/jui/css/icomoon.css (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/jui/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/jui/js/bootstrap.min.js (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/jui/js/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/jui/js/jquery-migrate.min.js (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/jui/js/jquery-noconflict.js (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/system/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/system/js/caption.js (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/media/system/js/desktop.ini (100%) create mode 100644 src/main/webapp/saref.png rename src/main/{resources/saref-portal-generator/public/saref => webapp/templates}/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/templates/g5_helium/custom/css-compiled/custom_19.css (100%) rename src/main/{resources/saref-portal-generator/public/saref/latest => webapp/templates/g5_helium/custom/css-compiled}/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/templates/g5_helium/custom/css-compiled/helium-joomla_19.css (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/templates/g5_helium/custom/css-compiled/helium_19.css (100%) rename src/main/{resources/saref-portal-generator/public/saref/v2.1.1 => webapp/templates/g5_helium/custom}/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public/saref4agri => webapp/templates/g5_helium}/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public/saref4agri/latest => webapp/templates/g5_helium/fonts}/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public/saref4agri/v1.1.1 => webapp/templates/g5_helium/fonts/lato}/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public/saref4bldg => webapp/templates/g5_helium/fonts/lato/lato-bold}/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/templates/g5_helium/fonts/lato/lato-bold/lato-bold-webfont.woff2 (100%) rename src/main/{resources/saref-portal-generator/public/saref4bldg/latest => webapp/templates/g5_helium/fonts/raleway}/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public/saref4bldg/v1.1.1 => webapp/templates/g5_helium/fonts/raleway/raleway-bold}/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/templates/g5_helium/fonts/raleway/raleway-bold/raleway-bold-webfont.woff2 (100%) rename src/main/{resources/saref-portal-generator/public/saref4city => webapp/templates/g5_helium/fonts/raleway/raleway-regular}/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/templates/g5_helium/fonts/raleway/raleway-regular/raleway-regular-webfont.woff2 (100%) rename src/main/{resources/saref-portal-generator/public/saref4city/latest => webapp/templates/g5_helium/fonts/raleway/raleway-semibold}/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/templates/g5_helium/fonts/raleway/raleway-semibold/raleway-semibold-webfont.woff2 (100%) rename src/main/{resources/saref-portal-generator/public/saref4city/v1.1.1 => webapp/templates/g5_helium/js}/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public/saref4ener => webapp/templates/g5_helium/js/jui}/desktop.ini (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/templates/g5_helium/js/jui/jquery.min.js (100%) rename src/main/{resources/saref-portal-generator/public => webapp}/templates/g5_helium/js/juitabs.js (100%) delete mode 100644 src/main/webapp/toto.html diff --git a/.gitignore b/.gitignore index ea8c4bf..e3dae90 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /target +nbactions.xml diff --git a/pom.xml b/pom.xml index 30d540c..df5e3cb 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ UTF-8 3.4.0 ${project.build.directory}/endorsed - 9.4.17.v20190418 + 9.4.14.v20181114 2.28 2.0-SNAPSHOT false @@ -29,31 +29,33 @@ ${jena.version} pom - + + org.apache.jena + jena-text + ${jena.version} + + org.slf4j slf4j-log4j12 1.7.25 + + + - javax.ws.rs - javax.ws.rs-api - 2.1 - provided + org.eclipse.jetty + jetty-annotations + ${jetty.version} - javax.servlet - javax.servlet-api - 3.1.0 - provided + org.eclipse.jetty + jetty-servlets + ${jetty.version} org.glassfish.jersey.containers - jersey-container-jetty-servlet + jersey-container-servlet-core ${jersey.version} @@ -72,75 +74,8 @@ jersey-hk2 ${jersey.version} - - org.eclipse.jetty - jetty-servlets - 9.4.14.v20181114 - - - - org.apache.jena - jena-text - ${jena.version} - - - org.apache.jena - jena-arq - ${jena.version} - - + - - ROOT - - - org.apache.maven.plugins - maven-deploy-plugin - 2.7 - - true - - - - org.eclipse.jetty - jetty-maven-plugin - 9.4.14.v20181114 - - 1 - - - - 80 - - - - - src/main/webapp - - / - - - - - org.eclipse.jetty - jetty-servlets - 9.4.14.v20181114 - - - org.slf4j - slf4j-log4j12 - 1.7.25 - - - com.google.code.gson - gson - 2.8.2 - jar - - - - - diff --git a/src/main/java/org/etsi/saref/server/SAREFServer.java b/src/main/java/org/etsi/saref/server/SAREFServer.java index 4af8957..da19880 100644 --- a/src/main/java/org/etsi/saref/server/SAREFServer.java +++ b/src/main/java/org/etsi/saref/server/SAREFServer.java @@ -15,18 +15,29 @@ */ package org.etsi.saref.server; +import com.github.mustachejava.DefaultMustacheFactory; +import com.github.mustachejava.MustacheFactory; +import com.github.mustachejava.MustacheResolver; +import com.github.mustachejava.resolver.DefaultResolver; import java.util.HashMap; import org.etsi.saref.server.entities.MediaTypeExt; import java.util.List; import java.util.Map; -import javax.ws.rs.ApplicationPath; -import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Variant; import org.apache.jena.shared.PrefixMapping; import org.apache.jena.shared.impl.PrefixMappingImpl; import org.apache.jena.sparql.expr.NodeValue; +import org.eclipse.jetty.server.Handler; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.server.handler.DefaultHandler; +import org.eclipse.jetty.server.handler.ErrorHandler; +import org.eclipse.jetty.server.handler.HandlerList; +import org.eclipse.jetty.server.handler.ResourceHandler; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.servlet.ServletHolder; import org.glassfish.jersey.server.ResourceConfig; import org.glassfish.jersey.server.mvc.mustache.MustacheMvcFeature; +import org.glassfish.jersey.servlet.ServletContainer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,8 +45,7 @@ import org.slf4j.LoggerFactory; * * @author Maxime Lefrançois */ -@ApplicationPath("/") -public class SAREFServer extends ResourceConfig { +public class SAREFServer{ public static final String NS = "https://saref.etsi.org/"; public static final String DS = "http://localhost:3030/ds/"; @@ -48,6 +58,7 @@ public class SAREFServer extends ResourceConfig { public static final MediaTypeExt TEXT_TURTLE = new MediaTypeExt("text", "turtle", "ttl", "TTL", true); public static final MediaTypeExt APPLICATION_NTRIPLE = new MediaTypeExt("application", "n-triples", "nt", "N-TRIPLE", true); public static final MediaTypeExt APPLICATION_N3 = new MediaTypeExt("application", "n3", "n3", "N3", true); + public static final MediaTypeExt APPLICATION_JSONLD = new MediaTypeExt("application", "ld+json", "jsonld", "JSON-LD", true); public static final MediaTypeExt APPLICATION_XHTMLXML = new MediaTypeExt("application", "xhtml+xml", "html", null, false); public static final List VARIANTS = Variant.mediaTypes( @@ -56,6 +67,7 @@ public class SAREFServer extends ResourceConfig { TEXT_TURTLE, APPLICATION_NTRIPLE, APPLICATION_N3, + APPLICATION_JSONLD, APPLICATION_XHTMLXML).build(); public static final Map EXTENSIONS; @@ -83,12 +95,46 @@ public class SAREFServer extends ResourceConfig { PM.setNsPrefix("saref", "https://saref.etsi.org/core/"); } - public SAREFServer() { - LOG.info("Starting Jersey app..."); - property(MustacheMvcFeature.TEMPLATE_BASE_PATH, "/templates"); - register(MustacheMvcFeature.class); - packages("org.etsi.saref.server.resources"); + public static void main(String[] args) { NodeValue.VerboseExceptions = true; NodeValue.VerboseWarnings = false; + + ResourceConfig resourceConfig = new ResourceConfig(); + resourceConfig.property(MustacheMvcFeature.TEMPLATE_BASE_PATH, "/templates"); + MustacheResolver resolver = new DefaultResolver("."); + MustacheFactory factory = new DefaultMustacheFactory(resolver); + resourceConfig.property(MustacheMvcFeature.TEMPLATE_OBJECT_FACTORY, factory); + resourceConfig.register(MustacheMvcFeature.class); + resourceConfig.packages("org.etsi.saref.server.resources"); + ServletHolder servletHolder = new ServletHolder(new ServletContainer(resourceConfig)); + + ServletContextHandler contextHandler = new ServletContextHandler(); + contextHandler.addServlet(servletHolder, "/*"); + + ResourceHandler resourceHandler = new ResourceHandler(); + resourceHandler.setDirectoriesListed(true); + resourceHandler.setResourceBase("src/main/webapp"); + + HandlerList handlers = new HandlerList(); + handlers.setHandlers(new Handler[]{ + resourceHandler, + contextHandler, + new ErrorHandler(), + new DefaultHandler()}); + + Server server = new Server(8080); + server.setHandler(handlers); + + try { + server.start(); + server.join(); + } catch (Exception ex) { + try { + server.stop(); + } catch (Exception e) { + System.exit(-1); + } + } } + } diff --git a/src/main/java/org/etsi/saref/server/entities/HomePageFilter.java b/src/main/java/org/etsi/saref/server/entities/HomePageFilter.java new file mode 100644 index 0000000..b9d1620 --- /dev/null +++ b/src/main/java/org/etsi/saref/server/entities/HomePageFilter.java @@ -0,0 +1,43 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.etsi.saref.server.entities; + +import java.io.IOException; +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.annotation.WebFilter; +import javax.servlet.http.HttpServletRequest; + +/** + * + * @author maxime.lefrancois + */ +@WebFilter(urlPatterns = {""}) +public class HomePageFilter implements Filter { + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws IOException, ServletException { + HttpServletRequest req = ((HttpServletRequest) request); + String contextPath = req.getContextPath() + "/"; + req.getRequestDispatcher(contextPath+"index.html"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + + } + + @Override + public void init(javax.servlet.FilterConfig filterConfig) throws ServletException { + System.out.println("hello servlet !!!"); + } + +} diff --git a/src/main/java/org/etsi/saref/server/resources/Bean.java b/src/main/java/org/etsi/saref/server/resources/Bean.java deleted file mode 100644 index aeb3887..0000000 --- a/src/main/java/org/etsi/saref/server/resources/Bean.java +++ /dev/null @@ -1,15 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package org.etsi.saref.server.resources; - -/** - * - * @author maxime.lefrancois - */ -public class Bean { - - String name = "sldkgb"; -} diff --git a/src/main/java/org/etsi/saref/server/resources/CoreFilter.java b/src/main/java/org/etsi/saref/server/resources/CoreFilter.java deleted file mode 100644 index 598cbf7..0000000 --- a/src/main/java/org/etsi/saref/server/resources/CoreFilter.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package org.etsi.saref.server.resources; - -import java.io.IOException; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.annotation.WebFilter; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import org.apache.jena.query.QueryExecution; -import org.apache.jena.query.QueryExecutionFactory; -import org.apache.jena.query.QueryFactory; -import org.apache.jena.query.ReadWrite; -import org.apache.jena.rdf.model.Model; -import org.apache.jena.rdfconnection.RDFConnection; -import org.apache.jena.rdfconnection.RDFConnectionFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Redirect: - * - * @author maxime.lefrancois - */ -@WebFilter(urlPatterns = {"/core*"}) -public class CoreFilter implements Filter { - - static final String NS = "https://saref.etsi.org/"; - private static final String DS = "http://localhost:3030/ds/"; - private static final Logger LOG = LoggerFactory.getLogger(CoreFilter.class); - private static final String CONFIG = "http://example.org/" + "config"; - - @Override - public void init(FilterConfig filterConfig) throws ServletException { - LOG.info("starting..."); - } - - @Override - public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { -// HttpServletRequest req = ((HttpServletRequest) request); -// String contextPath = req.getContextPath() + "/"; -// String requestURI = req.getRequestURI(); -// String resourcePath = requestURI.substring(contextPath.length()); -// System.out.println("ResourcePath is " + resourcePath); -// String redirection = null; -// -// if (resourcePath.equals("core")) { -// -// // find latest version of core. -// try (RDFConnection conn = RDFConnectionFactory.connect(DS)) { -// try (QueryExecution exec = conn.query("PREFIX ex: \n" -// + "PREFIX rdfs: \n" -// + "SELECT ?v\n" -// + "FROM \n" -// + "WHERE {\n" -// + " \n" -// + " ex:hasVersion ?v .\n" -// + " FILTER NOT EXISTS {\n" -// + " ?v2 ex:priorVersion ?v .\n" -// + " }\n" -// + "}")) { -// String uri = exec.execSelect().next().getResource("v").getURI(); -// redirection = uri.substring(NS.length()); -// -// } -// } -// } -// -// if (redirection != null) { -// HttpServletResponse res = (HttpServletResponse) response; -// res.setHeader("Location", redirection); -// res.setStatus(HttpServletResponse.SC_SEE_OTHER); -// res.flushBuffer(); -// return; -// } - chain.doFilter(request, response); - } - - @Override - public void destroy() { - } -} diff --git a/src/main/java/org/etsi/saref/server/resources/Index.java b/src/main/java/org/etsi/saref/server/resources/Index.java new file mode 100644 index 0000000..b856757 --- /dev/null +++ b/src/main/java/org/etsi/saref/server/resources/Index.java @@ -0,0 +1,27 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.etsi.saref.server.resources; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import org.glassfish.jersey.server.mvc.Template; + +/** + * + * @author maxime.lefrancois + */ +@Path("/{home: /?|index\\.html}") +public class Index { + + @GET + @Produces(MediaType.TEXT_HTML) + @Template(name = "/index") + public String getHome() { + return ""; + } +} diff --git a/src/main/java/org/etsi/saref/server/resources/ListExercises.java b/src/main/java/org/etsi/saref/server/resources/ListExercises.java deleted file mode 100644 index 7fedfa1..0000000 --- a/src/main/java/org/etsi/saref/server/resources/ListExercises.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2016 Ecole des Mines de Saint-Etienne. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.etsi.saref.server.resources; - -import com.github.mustachejava.DefaultMustacheFactory; -import com.github.mustachejava.Mustache; -import com.github.mustachejava.MustacheFactory; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import org.glassfish.jersey.server.mvc.Template; - - -@Path("/{p: (index\\.html)?}") -public class ListExercises { - - @GET - @Produces(MediaType.TEXT_HTML) - @Template(name = "/view") - public Map getView() throws IOException { - Map model = new HashMap(); - model.put("title", "OS"); - Set oses = new HashSet(); - OsInfo i = new OsInfo(); - i.name = "iOS"; - i.vendor = "Apple"; - i.version = 8; - oses.add(i); - i = new OsInfo(); - i.name = "Android"; - i.vendor = "Google"; - i.version = 5; - oses.add(i); - i = new OsInfo(); - i.name = "WindowsPhone"; - - StringWriter sw = new StringWriter(); - MustacheFactory mf = new DefaultMustacheFactory(); - Mustache mustache = mf.compile("templates/beans.mustache"); - mustache.execute(sw, new Bean()).flush(); - i.vendor = sw.toString(); - - i.version = 9; - oses.add(i); - model.put("os", oses); - - return model; - - } -} diff --git a/src/main/java/org/etsi/saref/server/resources/OntologyResource.java b/src/main/java/org/etsi/saref/server/resources/OntologyResource.java index eaa4802..45c5d29 100644 --- a/src/main/java/org/etsi/saref/server/resources/OntologyResource.java +++ b/src/main/java/org/etsi/saref/server/resources/OntologyResource.java @@ -33,7 +33,7 @@ import org.slf4j.LoggerFactory; @Path("/{onto: core|saref4[a-z][a-z][a-z][a-z]}") public class OntologyResource { - private static final Logger LOG = LoggerFactory.getLogger(CoreFilter.class); + private static final Logger LOG = LoggerFactory.getLogger(OntologyResource.class); private @PathParam("onto") String onto; diff --git a/src/main/java/org/etsi/saref/server/resources/OsInfo.java b/src/main/java/org/etsi/saref/server/resources/OsInfo.java deleted file mode 100644 index e475237..0000000 --- a/src/main/java/org/etsi/saref/server/resources/OsInfo.java +++ /dev/null @@ -1,19 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package org.etsi.saref.server.resources; - -import javax.xml.bind.annotation.XmlRootElement; - -/** - * - * @author maxime.lefrancois - */ -@XmlRootElement -public class OsInfo { - - public String name, vendor; - public Integer version; -} diff --git a/src/main/java/org/etsi/saref/server/resources/Resources.java b/src/main/java/org/etsi/saref/server/resources/Resources.java new file mode 100644 index 0000000..2729be3 --- /dev/null +++ b/src/main/java/org/etsi/saref/server/resources/Resources.java @@ -0,0 +1,27 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.etsi.saref.server.resources; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import org.glassfish.jersey.server.mvc.Template; + +/** + * + * @author maxime.lefrancois + */ +@Path("/resources.html") +public class Resources { + + @GET + @Produces(MediaType.TEXT_HTML) + @Template(name = "/resources") + public String getHome() { + return ""; + } +} diff --git a/src/main/java/org/etsi/saref/server/resources/Search.java b/src/main/java/org/etsi/saref/server/resources/Search.java index eaf3796..19ffcf9 100644 --- a/src/main/java/org/etsi/saref/server/resources/Search.java +++ b/src/main/java/org/etsi/saref/server/resources/Search.java @@ -3,7 +3,6 @@ */ package org.etsi.saref.server.resources; -import java.io.IOException; import javax.ws.rs.GET; import javax.ws.rs.Path; @@ -18,11 +17,19 @@ import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.StringWriter; -import java.net.URI; import com.github.mustachejava.DefaultMustacheFactory; import com.github.mustachejava.Mustache; import com.github.mustachejava.MustacheFactory; +import java.util.HashMap; +import java.util.Map; +import org.apache.jena.rdf.model.Model; +import org.apache.jena.rdf.model.impl.LiteralImpl; +import org.apache.jena.rdfconnection.RDFConnection; +import org.apache.jena.rdfconnection.RDFConnectionFactory; +import org.apache.jena.sparql.expr.NodeValue; +import org.apache.jena.sparql.expr.nodevalue.NodeValueString; +import org.etsi.saref.server.SAREFServer; /** * @author Omar Qawasmeh @@ -32,46 +39,53 @@ import com.github.mustachejava.MustacheFactory; @Path("/search") public class Search { + + private static final String QUERY_COUNT = "PREFIX ex: \n" + + "PREFIX rdfs: \n" + + "PREFIX text: \n" + + "SELECT (COUNT(*) AS ?count)\n" + + "WHERE {\n" + + " ( ?s ?score ?literal ?g ) text:query %s .\n" + + " OPTIONAL { ?s rdfs:label ?label }\n" + + " OPTIONAL { ?s rdfs:comment ?comment }\n" + + "}"; + private static final String QUERY = "PREFIX ex: \n" + + "PREFIX rdfs: \n" + + "PREFIX text: \n" + + "SELECT DISTINCT *\n" + + "WHERE {\n" + + " ( ?s ?score ?literal ?g ) text:query %s .\n" + + " OPTIONAL { ?s rdfs:label ?label }\n" + + " OPTIONAL { ?s rdfs:comment ?comment }\n" + + "}\n" + + "ORDER BY DESC ( ?score )\n" + + "OFFSET %s\n" + + "LIMIT %s"; @GET @Produces(MediaType.TEXT_HTML) - @Template(name = "/index") - public String doSearch(@QueryParam("q") String keyword) throws IOException { - // String results; - - MustacheFactory mf = new DefaultMustacheFactory(); - - Mustache m = mf.compile("templates/index.mustache"); - - SearchKeyWord queryResults = new SearchKeyWord(); - // "has meter reading type" - queryResults.setSearchResultsLabels(keyword); - - // results=queryResults.getSearchResultsLabels(); - - System.out.println(queryResults.getSearchResultsLabels()); - - StringWriter writer = new StringWriter(); - - System.out.println("Before:" + writer.toString()); - - m.execute(writer, queryResults).flush(); - - writer.close(); - - System.out.println("After:" + writer); - - String html = writer.toString(); - FileWriter fw = new FileWriter("src/main/resources/saref-portal-generator/public/keywordSearchPage.html"); - StringWriter sw = new StringWriter(); - sw.write(html); - fw.write(sw.toString()); - - fw.close(); - File htmlFile = new File("src/main/resources/saref-portal-generator/public/keywordSearchPage.html"); - Desktop.getDesktop().browse(htmlFile.toURI()); - - return writer.toString(); + @Template(name = "/search") + public Map doSearch(@QueryParam("q") String keyword) throws IOException { + // build Node to avoid injection + NodeValue nv = new NodeValueString(keyword); + System.out.println(nv.toString()); + Map map = new HashMap<>(); + map.put("results", ""); + return new HashMap<>(); + +// +// try (RDFConnection conn = RDFConnectionFactory.connect(SAREFServer.DS)) { +// +// ResultSet countRs = conn.query(query)fetch(v.getUri()); +// +// +// } +// +// SearchKeyWord queryResults = new SearchKeyWord(); +// String results = queryResults.doSearchResultsLabels(keyword); +// Map map = new HashMap<>(); +// map.put("results", results); +// return map; } } diff --git a/src/main/java/org/etsi/saref/server/resources/SearchKeyWord.java b/src/main/java/org/etsi/saref/server/resources/SearchKeyWord.java deleted file mode 100644 index bacb98f..0000000 --- a/src/main/java/org/etsi/saref/server/resources/SearchKeyWord.java +++ /dev/null @@ -1,136 +0,0 @@ -/** - * - */ -package org.etsi.saref.server.resources; - -import org.apache.jena.query.Dataset; -import org.apache.jena.query.DatasetFactory; -import org.apache.jena.query.Query; -import org.apache.jena.query.QueryExecution; -import org.apache.jena.query.QueryExecutionFactory; -import org.apache.jena.query.QueryFactory; -import org.apache.jena.query.ReadWrite; -import org.apache.jena.query.ResultSet; -import org.apache.jena.query.ResultSetFormatter; -import org.apache.jena.query.text.EntityDefinition; -import org.apache.jena.query.text.TextDatasetFactory; -import org.apache.jena.query.text.TextIndexConfig; -import org.apache.jena.rdf.model.Model; -import org.apache.jena.riot.RDFDataMgr; -import org.apache.jena.sparql.util.QueryExecUtils; -import org.apache.jena.vocabulary.RDFS; -import org.apache.lucene.store.Directory; -import org.apache.lucene.store.RAMDirectory; - - -/** - * @author Omar Qawasmeh - */ - -public class SearchKeyWord { - - - private static final String DS = "http://localhost:3030/test-sarefTtl/data"; - private String searchResultsLabels; - private String title; - private Dataset ds; - - public SearchKeyWord() { - ds = createCode(); - loadData(ds, DS); - - } - - /** - * @return the searchResultsLabels - */ - public String getSearchResultsLabels() { - return searchResultsLabels; - } - - - public void setSearchResultsLabels(String searchResultsLabels) { - this.searchResultsLabels = queryDataLabels(ds, searchResultsLabels); - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = queryDataLabels(ds, "has meter reading type"); - } - // public static void main(String args[]) { - - // queryDataComment(ds, "some measurements that are characterized by a - // certain value "); - // } - - public static Dataset createCode() { - - Dataset ds1 = DatasetFactory.create(); - - // EntityDefinition entDef = new EntityDefinition("uri", "text", - // RDFS.label) ; - EntityDefinition entDef = new EntityDefinition("uri", "text"); - entDef.setPrimaryPredicate(RDFS.label.asNode()); - entDef.setPrimaryPredicate(RDFS.comment.asNode()); - - Directory dir = new RAMDirectory(); - - Dataset ds = TextDatasetFactory.createLucene(ds1, dir, new TextIndexConfig(entDef)); - - return ds; - } - - public static void loadData(Dataset dataset, String TtlFileLocation) { - - // dataset.begin(ReadWrite.WRITE); - try { - Model m = dataset.getDefaultModel(); - RDFDataMgr.read(m, TtlFileLocation); - dataset.commit(); - } finally { - dataset.end(); - } - - } - - public static String queryDataLabels(Dataset dataset, String kw) { - String queryResults; - String queryString = "PREFIX : " + "PREFIX text: " - + "PREFIX rdfs: " + "SELECT * " + " { " - + "?s text:query (rdfs:label '" + kw + "') ;" + " rdfs:label ?label" + " } limit 10"; - - dataset.begin(ReadWrite.READ); - try { - Query q = QueryFactory.create(queryString); - QueryExecution qexec = QueryExecutionFactory.create(q, dataset); - ResultSet qresults = qexec.execSelect(); - queryResults = ResultSetFormatter.asText(qresults); - - // QueryExecUtils.executeQuery(q, qexec); - // searchResultsLabels=QueryExecUtils.executeQuery(q, qexec)+""; - } finally { - dataset.end(); - } - return queryResults; - } - - public static void queryDataComment(Dataset dataset, String kw) { - - String queryString = "PREFIX : " + "PREFIX text: " - + "PREFIX rdfs: " + "SELECT * " + " { " - + "?s text:query (rdfs:comment '" + kw + "') ;" + " rdfs:comment ?comment" + " } limit 10"; - - dataset.begin(ReadWrite.READ); - try { - Query q = QueryFactory.create(queryString); - QueryExecution qexec = QueryExecutionFactory.create(q, dataset); - QueryExecUtils.executeQuery(q, qexec); - } finally { - dataset.end(); - } - - } -} diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties index e6f91fb..c77a150 100644 --- a/src/main/resources/log4j.properties +++ b/src/main/resources/log4j.properties @@ -1,6 +1,6 @@ log4j.rootLogger=TRACE, stdout log4j.logger.com.jayway.jsonpath.internal.path=OFF -log4j.logger.org.eclipse.jetty=WARN +log4j.logger.org.eclipse.jetty=TRACE log4j.logger.org.apache.jena.riot.system.stream=WARN log4j.logger.org.apache.jena.util=WARN log4j.logger.org.apache.http=WARN diff --git a/src/main/resources/saref-portal-generator/LICENSE b/src/main/resources/saref-portal-generator/LICENSE deleted file mode 100644 index 4436d6d..0000000 --- a/src/main/resources/saref-portal-generator/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright 2019 ETSI - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: -1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -3. Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/.htaccess b/src/main/resources/saref-portal-generator/public/.htaccess deleted file mode 100644 index dc46639..0000000 --- a/src/main/resources/saref-portal-generator/public/.htaccess +++ /dev/null @@ -1,104 +0,0 @@ -Options -MultiViews - -RewriteEngine on -DirectorySlash Off - -# internal redirects for core - -# redirects core to core/v3.1.1/core -RewriteRule ^core$ /core/v3.1.1/core - -# redirects core/example to core/v3.1.1/example -# redirects core/example/ to core/v3.1.1/example -RewriteRule ^core/example/?$ /core/v3.1.1/example - -# redirects core/v1.1.1 to core/v1.1.1/core -RewriteRule ^core/v([0-9]+)\.([0-9]+)\.([0-9]+)/?$ /core/v$1.$2.$3/core - -# redirects core/v1.1.1.ttl to core/v1.1.1/core.ttl -RewriteRule ^core/v([0-9]+)\.([0-9]+)\.([0-9]+)\.([^\./]+)$ /core/v$1.$2.$3/core.$4 [R=302,NE] - -# redirects core.ttl to core/v3.1.1/core.ttl -RewriteRule ^core\.([^\./]*)$ /core/v3.1.1/core.$1 [R=302,NE] - - -# internal redirects for sarefabcd - -# redirects saref4ener to saref4ener/latest/saref4ener -RewriteRule ^(saref[^\./]*)$ /$1/latest/$1 - -# redirects saref4ener/latest to saref4ener/latest/saref4ener -# redirects saref4ener/latest/ to saref4ener/latest/saref4ener -RewriteRule ^(saref[^\./]*)/latest/?$ /$1/latest/$1 - -# redirects saref4ener/example to saref4ener/latest/example -# redirects saref4ener/example/ to saref4ener/latest/example -RewriteRule ^(saref[^\./]*)/example/?$ /$1/latest/example - -# redirects saref4ener/v1.1.1 to saref4ener/v1.1.1/saref4ener -# redirects saref4ener/v1.1.1/ to saref4ener/v1.1.1/saref4ener -RewriteRule ^(saref[^\./]*)/v([0-9]+)\.([0-9]+)\.([0-9]+)/?$ /$1/v$2.$3.$4/$1 - -# redirects saref4ener/latest.ttl to saref4ener/latest/saref4ener.ttl -RewriteRule ^(saref[^\./]*)/latest\.([^\./]+)$ /$1/latest/$1.$2 [R=302,NE] - -# redirects saref4ener/v1.1.1.ttl to saref4ener/v1.1.1/saref4ener.ttl -RewriteRule ^(saref[^\./]*)/v([0-9]+)\.([0-9]+)\.([0-9]+)\.([^\./]+)$ /$1/v$2.$3.$4/$1.$5 [R=302,NE] - -# redirects saref4ener.ttl to saref4ener/latest/saref4ener.ttl -RewriteRule ^(saref[^\./]*)\.([^\./]*)$ /$1/latest/$1.$2 [R=302,NE] - - -# Main - -# internal redirects for core - -# redirects core/bbb/core to core/bbb/core.html -RewriteCond %{HTTP_ACCEPT} !(application/rdf\+xml|text/turtle|text/n3) -RewriteRule ^core/([^/]+)/core$ /core/$1/core.html [R=302,NE] - -# redirects core/bbb/core to core/bbb/core.rdf -RewriteCond %{HTTP_ACCEPT} application/rdf\+xml -RewriteRule ^core/([^/]+)/core$ /core/$1/core.rdf [R=302,NE] - -# redirects core/bbb/core to core/bbb/core.ttl -RewriteCond %{HTTP_ACCEPT} text/turtle -RewriteRule ^core/([^/]+)/core$ /core/$1/core.ttl [R=302,NE] - -# redirects core/bbb/core to core/bbb/core.n3 -RewriteCond %{HTTP_ACCEPT} text/n3 -RewriteRule ^core/([^/]+)/core$ /core/$1/core.n3 [R=302,NE] - - - -# internal redirects for sarefabcd - -# redirects sarefaaa/bbb/sarefccc to sarefaaa/bbb/sarefccc.html -RewriteCond %{HTTP_ACCEPT} !(application/rdf\+xml|text/turtle|text/n3) -RewriteRule ^(saref[^\./]*)/([^/]+)/(saref[^\./]*)$ /$1/$2/$3.html [R=302,NE] - -# redirects sarefaaa/bbb/sarefccc to sarefaaa/bbb/sarefccc.rdf -RewriteCond %{HTTP_ACCEPT} application/rdf\+xml -RewriteRule ^(saref[^\./]*)/([^/]+)/(saref[^\./]*)$ /$1/$2/$3.rdf [R=302,NE] - -# redirects sarefaaa/bbb/sarefccc to sarefaaa/bbb/sarefccc.ttl -RewriteCond %{HTTP_ACCEPT} text/turtle -RewriteRule ^(saref[^\./]*)/([^/]+)/(saref[^\./]*)$ /$1/$2/$3.ttl [R=302,NE] - -# redirects sarefaaa/bbb/sarefccc to sarefaaa/bbb/sarefccc.n3 -RewriteCond %{HTTP_ACCEPT} text/n3 -RewriteRule ^(saref[^\./]*)/([^/]+)/(saref[^\./]*)$ /$1/$2/$3.n3 [R=302,NE] - - -# examples - -# redirects core/bbb/example to core/bbb/example.ttl -RewriteRule ^core/([^/]+)/example$ /core/$1/example.ttl [R=302,NE] - - -# redirects sarefaaa/bbb/example to sarefaaa/bbb/example.ttl -RewriteRule ^(saref[^\./]*)/([^/]+)/example$ /$1/$2/example.ttl [R=302,NE] - - - - diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/406.html b/src/main/resources/saref-portal-generator/public/core/v3.1.1/406.html deleted file mode 100644 index 2a3157a..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/406.html +++ /dev/null @@ -1,10 +0,0 @@ - - -406 Not Acceptable - - -

Not Acceptable

-

An appropriate representation of the requested resource could not be found on this server.

- Available variants: - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/core.html b/src/main/resources/saref-portal-generator/public/core/v3.1.1/core.html deleted file mode 100644 index 3896381..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/core.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - SAREF: the Smart Applications REFerence ontology - - - - - - - - - - - -
-
-
language en
-

SAREF: the Smart Applications REFerence ontology

- - -
-
Revision:
-
3.1.1
-
Contributors:
-
http://maxime-lefrancois.info/me#
http://www.garcia-castro.com/foaf.rdf#me
https://w3id.org/people/mpoveda/
https://www.linkedin.com/in/lauradaniele
- -
Publisher:
-
https://www.etsi.org/
-
Download serialization:
JSON-LD RDF/XML N-Triples TTL
License:
https://forge.etsi.org/etsi-software-license -
Cite as:
-
SAREF: the Smart Applications REFerence ontology.Revision: 3.1.1.
-
- -Provenance of this page
-
-
-
-Ontology Specification Draft -
-
-
-
-
-
-
- -
-

Acknowledgements back to ToC

-

-The authors would like to thank Silvio Peroni for developing LODE, a Live OWL Documentation Environment, which is used for representing the Cross Referencing Section of this document and Daniel Garijo for developing Widoco, the program used to create the template used in this documentation.

-
- - - -
- - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/core.json b/src/main/resources/saref-portal-generator/public/core/v3.1.1/core.json deleted file mode 100644 index a99a6f6..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/core.json +++ /dev/null @@ -1,2865 +0,0 @@ -[ { - "@id" : "_:genid1", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasFunction" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/ActuatingFunction" - } ] -}, { - "@id" : "_:genid10", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Commodity" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isUsedFor" - } ] -}, { - "@id" : "_:genid11", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Measurement" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/makesMeasurement" - } ] -}, { - "@id" : "_:genid12", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/measuresProperty" - } ] -}, { - "@id" : "_:genid13", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Service" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/offers" - } ] -}, { - "@id" : "_:genid14", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#minQualifiedCardinality" : [ { - "@type" : "http://www.w3.org/2001/XMLSchema#nonNegativeInteger", - "@value" : "1" - } ], - "http://www.w3.org/2002/07/owl#onClass" : [ { - "@id" : "https://saref.etsi.org/core/Task" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/accomplishes" - } ] -}, { - "@id" : "_:genid15", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#minQualifiedCardinality" : [ { - "@type" : "http://www.w3.org/2001/XMLSchema#nonNegativeInteger", - "@value" : "1" - } ], - "http://www.w3.org/2002/07/owl#onClass" : [ { - "@id" : "https://saref.etsi.org/core/Function" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasFunction" - } ] -}, { - "@id" : "_:genid16", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#maxCardinality" : [ { - "@type" : "http://www.w3.org/2001/XMLSchema#nonNegativeInteger", - "@value" : "1" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasManufacturer" - } ] -}, { - "@id" : "_:genid17", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#maxCardinality" : [ { - "@type" : "http://www.w3.org/2001/XMLSchema#nonNegativeInteger", - "@value" : "1" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasModel" - } ] -}, { - "@id" : "_:genid18", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasFunction" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/OpenCloseFunction" - } ] -}, { - "@id" : "_:genid19", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasState" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/OpenCloseState" - } ] -}, { - "@id" : "_:genid2", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/actsUpon" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/OpenCloseState" - } ] -}, { - "@id" : "_:genid20", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#minQualifiedCardinality" : [ { - "@type" : "http://www.w3.org/2001/XMLSchema#nonNegativeInteger", - "@value" : "1" - } ], - "http://www.w3.org/2002/07/owl#onClass" : [ { - "@id" : "https://saref.etsi.org/core/Measurement" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasThresholdMeasurement" - } ] -}, { - "@id" : "_:genid21", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Measurement" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasMeasurement" - } ] -}, { - "@id" : "_:genid22", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasProperty" - } ] -}, { - "@id" : "_:genid23", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#minQualifiedCardinality" : [ { - "@type" : "http://www.w3.org/2001/XMLSchema#nonNegativeInteger", - "@value" : "1" - } ], - "http://www.w3.org/2002/07/owl#onClass" : [ { - "@id" : "https://saref.etsi.org/core/Command" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasCommand" - } ] -}, { - "@id" : "_:genid24", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/MeteringFunction" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isCommandOf" - } ] -}, { - "@id" : "_:genid25", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/MeteringFunction" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isCommandOf" - } ] -}, { - "@id" : "_:genid26", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/MeteringFunction" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isCommandOf" - } ] -}, { - "@id" : "_:genid27", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/SensingFunction" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isCommandOf" - } ] -}, { - "@id" : "_:genid28", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/controlsProperty" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Light" - } ] -}, { - "@id" : "_:genid29", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasFunction" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/OnOffFunction" - } ] -}, { - "@id" : "_:genid3", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/OpenCloseFunction" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isCommandOf" - } ] -}, { - "@id" : "_:genid30", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasState" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/OnOffState" - } ] -}, { - "@id" : "_:genid31", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/offers" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/SwitchOnService" - } ] -}, { - "@id" : "_:genid32", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/UnitOfMeasure" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isMeasuredIn" - } ] -}, { - "@id" : "_:genid33", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/FeatureOfInterest" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isMeasurementOf" - } ] -}, { - "@id" : "_:genid34", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/relatesToProperty" - } ] -}, { - "@id" : "_:genid35", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onClass" : [ { - "@id" : "https://saref.etsi.org/core/UnitOfMeasure" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isMeasuredIn" - } ], - "http://www.w3.org/2002/07/owl#qualifiedCardinality" : [ { - "@type" : "http://www.w3.org/2001/XMLSchema#nonNegativeInteger", - "@value" : "1" - } ] -}, { - "@id" : "_:genid36", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onClass" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/relatesToProperty" - } ], - "http://www.w3.org/2002/07/owl#qualifiedCardinality" : [ { - "@type" : "http://www.w3.org/2001/XMLSchema#nonNegativeInteger", - "@value" : "1" - } ] -}, { - "@id" : "_:genid37", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "http://www.w3.org/2001/XMLSchema#dateTime" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasTimestamp" - } ] -}, { - "@id" : "_:genid38", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#cardinality" : [ { - "@type" : "http://www.w3.org/2001/XMLSchema#nonNegativeInteger", - "@value" : "1" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasValue" - } ] -}, { - "@id" : "_:genid39", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasFunction" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/MeteringFunction" - } ] -}, { - "@id" : "_:genid4", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/State" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/actsUpon" - } ] -}, { - "@id" : "_:genid40", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Measurement" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasMeterReading" - } ] -}, { - "@id" : "_:genid41", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "_:genid42" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasMeterReadingType" - } ] -}, { - "@id" : "_:genid42", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2002/07/owl#unionOf" : [ { - "@list" : [ { - "@id" : "https://saref.etsi.org/core/Commodity" - }, { - "@id" : "https://saref.etsi.org/core/Property" - } ] - } ] -}, { - "@id" : "_:genid45", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/EventFunction" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isCommandOf" - } ] -}, { - "@id" : "_:genid46", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/actsUpon" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/OnOffState" - } ] -}, { - "@id" : "_:genid47", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/OnOffFunction" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isCommandOf" - } ] -}, { - "@id" : "_:genid48", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/actsUpon" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/OnOffState" - } ] -}, { - "@id" : "_:genid49", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/OnOffFunction" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isCommandOf" - } ] -}, { - "@id" : "_:genid5", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#minQualifiedCardinality" : [ { - "@type" : "http://www.w3.org/2001/XMLSchema#nonNegativeInteger", - "@value" : "1" - } ], - "http://www.w3.org/2002/07/owl#onClass" : [ { - "@id" : "https://saref.etsi.org/core/Function" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isCommandOf" - } ] -}, { - "@id" : "_:genid50", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/actsUpon" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/OpenCloseState" - } ] -}, { - "@id" : "_:genid51", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/OpenCloseFunction" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isCommandOf" - } ] -}, { - "@id" : "_:genid52", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Profile" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/consistsOf" - } ] -}, { - "@id" : "_:genid53", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Price" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasPrice" - } ] -}, { - "@id" : "_:genid54", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Time" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasTime" - } ] -}, { - "@id" : "_:genid55", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "_:genid56" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isAbout" - } ] -}, { - "@id" : "_:genid56", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2002/07/owl#unionOf" : [ { - "@list" : [ { - "@id" : "https://saref.etsi.org/core/Commodity" - }, { - "@id" : "https://saref.etsi.org/core/Property" - } ] - } ] -}, { - "@id" : "_:genid59", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Device" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isControlledByDevice" - } ] -}, { - "@id" : "_:genid6", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Device" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/consistsOf" - } ] -}, { - "@id" : "_:genid60", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Device" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isMeasuredByDevice" - } ] -}, { - "@id" : "_:genid61", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/FeatureOfInterest" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isPropertyOf" - } ] -}, { - "@id" : "_:genid62", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Measurement" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/relatesToMeasurement" - } ] -}, { - "@id" : "_:genid63", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasSensingRange" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Measurement" - } ] -}, { - "@id" : "_:genid64", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasSensorType" - } ] -}, { - "@id" : "_:genid65", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasFunction" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/SensingFunction" - } ] -}, { - "@id" : "_:genid66", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#minQualifiedCardinality" : [ { - "@type" : "http://www.w3.org/2001/XMLSchema#nonNegativeInteger", - "@value" : "1" - } ], - "http://www.w3.org/2002/07/owl#onClass" : [ { - "@id" : "https://saref.etsi.org/core/Device" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isOfferedBy" - } ] -}, { - "@id" : "_:genid67", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#minQualifiedCardinality" : [ { - "@type" : "http://www.w3.org/2001/XMLSchema#nonNegativeInteger", - "@value" : "1" - } ], - "http://www.w3.org/2002/07/owl#onClass" : [ { - "@id" : "https://saref.etsi.org/core/Function" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/represents" - } ] -}, { - "@id" : "_:genid68", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/actsUpon" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/MultiLevelState" - } ] -}, { - "@id" : "_:genid69", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/LevelControlFunction" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isCommandOf" - } ] -}, { - "@id" : "_:genid7", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/controlsProperty" - } ] -}, { - "@id" : "_:genid70", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasFunction" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/EventFunction" - } ] -}, { - "@id" : "_:genid71", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasFunction" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/SensingFunction" - } ] -}, { - "@id" : "_:genid72", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/measuresProperty" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Smoke" - } ] -}, { - "@id" : "_:genid73", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/actsUpon" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/StartStopState" - } ] -}, { - "@id" : "_:genid74", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/StartStopFunction" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isCommandOf" - } ] -}, { - "@id" : "_:genid75", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/actsUpon" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/MultiLevelState" - } ] -}, { - "@id" : "_:genid76", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/LevelControlFunction" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isCommandOf" - } ] -}, { - "@id" : "_:genid77", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/actsUpon" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/MultiLevelState" - } ] -}, { - "@id" : "_:genid78", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/LevelControlFunction" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isCommandOf" - } ] -}, { - "@id" : "_:genid79", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/actsUpon" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/StartStopState" - } ] -}, { - "@id" : "_:genid8", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Profile" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasProfile" - } ] -}, { - "@id" : "_:genid80", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/StartStopFunction" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isCommandOf" - } ] -}, { - "@id" : "_:genid81", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isOfferedBy" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/LightSwitch" - } ] -}, { - "@id" : "_:genid82", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/represents" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/OnOffFunction" - } ] -}, { - "@id" : "_:genid83", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasFunction" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/SensingFunction" - } ] -}, { - "@id" : "_:genid84", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/measuresProperty" - } ], - "http://www.w3.org/2002/07/owl#someValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/Temperature" - } ] -}, { - "@id" : "_:genid85", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/OnOffFunction" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/isCommandOf" - } ] -}, { - "@id" : "_:genid9", - "@type" : [ "http://www.w3.org/2002/07/owl#Restriction" ], - "http://www.w3.org/2002/07/owl#allValuesFrom" : [ { - "@id" : "https://saref.etsi.org/core/State" - } ], - "http://www.w3.org/2002/07/owl#onProperty" : [ { - "@id" : "https://saref.etsi.org/core/hasState" - } ] -}, { - "@id" : "http://purl.org/dc/terms/contributor", - "@type" : [ "http://www.w3.org/2002/07/owl#AnnotationProperty" ] -}, { - "@id" : "http://purl.org/dc/terms/description", - "@type" : [ "http://www.w3.org/2002/07/owl#AnnotationProperty" ] -}, { - "@id" : "http://purl.org/dc/terms/issued", - "@type" : [ "http://www.w3.org/2002/07/owl#AnnotationProperty" ] -}, { - "@id" : "http://purl.org/dc/terms/license", - "@type" : [ "http://www.w3.org/2002/07/owl#AnnotationProperty" ] -}, { - "@id" : "http://purl.org/dc/terms/publisher", - "@type" : [ "http://www.w3.org/2002/07/owl#AnnotationProperty" ] -}, { - "@id" : "http://purl.org/dc/terms/title", - "@type" : [ "http://www.w3.org/2002/07/owl#AnnotationProperty" ] -}, { - "@id" : "http://purl.org/vocab/vann/preferredNamespacePrefix", - "@type" : [ "http://www.w3.org/2002/07/owl#AnnotationProperty" ] -}, { - "@id" : "http://purl.org/vocab/vann/preferredNamespaceUri", - "@type" : [ "http://www.w3.org/2002/07/owl#AnnotationProperty" ] -}, { - "@id" : "https://saref.etsi.org/core/", - "@type" : [ "http://www.w3.org/2002/07/owl#Ontology" ], - "http://purl.org/dc/terms/contributor" : [ { - "@id" : "http://maxime-lefrancois.info/me#" - }, { - "@id" : "http://www.garcia-castro.com/foaf.rdf#me" - }, { - "@id" : "https://w3id.org/people/mpoveda/" - }, { - "@id" : "https://www.linkedin.com/in/lauradaniele" - } ], - "http://purl.org/dc/terms/description" : [ { - "@language" : "en", - "@value" : "The Smart Applications REFerence ontology (SAREF) is intended to enable interoperability between solutions from different providers and among various activity sectors in the Internet of Things (IoT), thus contributing to the development of the global digital market." - } ], - "http://purl.org/dc/terms/issued" : [ { - "@type" : "http://www.w3.org/2001/XMLSchema#date", - "@value" : "2020-02-11" - } ], - "http://purl.org/dc/terms/license" : [ { - "@id" : "https://forge.etsi.org/etsi-software-license" - } ], - "http://purl.org/dc/terms/publisher" : [ { - "@id" : "https://www.etsi.org/" - } ], - "http://purl.org/dc/terms/title" : [ { - "@language" : "en", - "@value" : "SAREF: the Smart Applications REFerence ontology" - } ], - "http://purl.org/vocab/vann/preferredNamespacePrefix" : [ { - "@value" : "saref" - } ], - "http://purl.org/vocab/vann/preferredNamespaceUri" : [ { - "@type" : "http://www.w3.org/2001/XMLSchema#anyURI", - "@value" : "https://saref.etsi.org/core/" - } ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@value" : "Information about changes compared to version 1.1.1:\n - The classes and properties related to how to represent devices in building spaces (such as the saref:BuildingSpace class, saref:BuildingObject class and saref:isLocatedIn property) have been removed from SAREF and incorporated into the SAREF4BLDG extension related to buildings, including the reuse of the W3C� WGS84 geo positioning vocabulary.\n - The saref:DeviceCategory and saref:FunctionCategory classes have been removed. Instead, the hierarchy of device categories has been implemented directly as subclasses of the saref:Device class.\n - The information specific for energy efficiency has been moved to the SAREF4ENER extension. For example, the saref:Profile class has been redefined to accommodate only the properties that are general enough for any type of profile, not only for energy and power. Details on how to specifically model a power profile can be found in the SAREF4ENER extension. \n - The subclasses of the saref:Energy class have been removed (i.e., Average Energy, Maximum Energy, Minimum Energy, Total Energy, HVAC Energy, Hot Water Energy and Lighting Energy).\n - The saref:Property class has been split into two classes (saref:Property and saref:Measurement), as it is done in the SAREF4ENVI extension, in order to properly accommodate the distinction between the concept of property (an observable quality of something) and the concept of measurement (a concrete value observed for a property).\n - Too restrictive cardinality restrictions have been revised, sometimes making them optional rather than mandatory (better to make properties mandatory in the extensions that specialize SAREF for a specific purpose, rather than restricting SAREF, whose purpose is more general). For example, definitions of units of measurement using an enumeration (owl:oneOf) were too restrictive because they did not allow using other units than those enumerated. Therefore, the individuals of each class are still there, but the owl:oneOf enumeration has been removed.\n - The saref:UnitOfMeasure subclasses use individuals from the OM ontology for unit of measures, but this is not the only solution. It has been clarified in the comments that the OM ontology is an example, but other ontologies can be used.\n - The global restrictions (rdfs:domain and rdfs:range) in object properties have been completely removed not to hinder interoperability. Object properties are now only restricted locally in the classes. \n - The subclasses of saref:Task have been transormed in individuals.\n - The saref:hasTask property has been removed from the saref:Profile class to resolve an ambiguity with the saref:Task class." - }, { - "@value" : "Information about changes compared to version 2.1.1: \n - Added the saref:FeatureOfInterest class and the properties used to relate it to saref:Measurement (saref:hasMeasurement and saref:isMeasurementOf) and to saref:Property (saref:hasProperty and saref:isPropertyOf).\n - Added the saref:measurementMadeBy property as inverse of saref:makesMeasurement.\n - The saref:relatesToProperty and saref:relatesToMeasurement properties are now inverse of each other.\n - The range of saref:hasValue, which was defined as xsd:float, has been removed to support other datatypes for measurements.\n - The range of datatype properties, which was defined as xsd:string, has been removed in order to support strings with language tags (rdf:langString). This affects saref:hasDescription, saref:hasManufacturer, saref:hasModel and saref:hasName, which now have implicitly a range of rdfs:Literal.\n - The saref:hasName property has been removed and the use of rdfs:label is recommended. \n - The saref:hasDescription property has been deprecated and the use of rdfs:comment is recommended. \n - Too restrictive restrictions have been removed and in some cases the ontology documentation has been updated to reflect this: a saref:Command having at most one saref:hasDescription; a saref:Task being accomplished by at least one saref:Device; a saref:Device having a typical consumption of only energy or power; a saref:Commodity being measured in units of measure; restrictions on the values of saref:accomplishes that only covered specific use cases; universal restrictions on the saref:actsUpon property have been changed to existential ones; restrictions on the commands that a saref:Function may have, since there could be others not included in the defined enumerations; restrictive documentation of saref:EventFunction and saref:SmokeSensor.\n - Bugs have been fixed: some devices (saref:DoorSwitch, saref:EnergyMeter, saref:LigthSwitch, saref:SmokeSensor, and saref:TemperatureSensor) were defined as subclass of a device and at the same time as consisting of such device; a saref:LightSwitch controls light and does not measure light, since it is an actuator; incorrect documentation of saref:OnState and saref:OffState.\n - The saref:BuildingRelated, saref:EnergyRelated and saref:FunctionRelated classes have been removed, since the different extensions already classify the device types.\n - The instances of the subclasses of saref:Command have been removed, since they represent examples.\n - The instances of saref:UnitOfMeasure have been moved to examples.\n - The classes related to the SAREF4ENER extension have been removed: saref:Generator, saref:Storage, saref:Load and saref:EnergyMeter.\n - Some instances of saref:Device have been moved to examples: saref:WashingMachine, saref:LightingDevice, saref:MicroRenewable, saref:Multimedia, and saref:Network.\n - Added domain and range axioms wherever the definition of a property unambiguously identifies the domain or the range of the property.\n - The OWL Time ontology is not imported anymore.\n - The documentation of some ontology terms has been updated for clarification.\n - Language tags have been added to all labels and comments.\n" - } ], - "http://www.w3.org/2002/07/owl#versionInfo" : [ { - "@value" : "3.1.1" - } ] -}, { - "@id" : "https://saref.etsi.org/core/ActuatingFunction", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A function that allows to transmit data to actuators, such as level settings (e.g., temperature) or binary switching (e.g., open/close, on/off)" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Actuating function" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Function" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Actuator", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A device responsible for moving or controlling a mechanism or system by performing an actuating function" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Actuator" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Device" - }, { - "@id" : "_:genid1" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Appliance", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "An electrical/mechanical machine that accomplish some household functions, such as cleaning or cooking" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Appliance" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Device" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Cleaning", - "@type" : [ "http://www.w3.org/2002/07/owl#NamedIndividual", "https://saref.etsi.org/core/Task" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of task for which a device is designed" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Cleaning" - } ] -}, { - "@id" : "https://saref.etsi.org/core/CloseCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Close command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Command" - }, { - "@id" : "_:genid2" - }, { - "@id" : "_:genid3" - } ], - "http://www.w3.org/2002/07/owl#disjointWith" : [ { - "@id" : "https://saref.etsi.org/core/OpenCommand" - } ] -}, { - "@id" : "https://saref.etsi.org/core/CloseState", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "The state of a device that is CLOSE" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Close state" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/OpenCloseState" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Coal", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of commodity" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Coal" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Commodity" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Comfort", - "@type" : [ "http://www.w3.org/2002/07/owl#NamedIndividual", "https://saref.etsi.org/core/Task" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of task for which a device is designed" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Comfort" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Command", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "_:genid4" - }, { - "@id" : "_:genid5" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Commodity", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A marketable item for which there is demand, but which is supplied without qualitative differentiation across a market. SAREF refers to energy commodities such as electricity, gas, coal and oil. " - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Commodity" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Currency", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "The class of units of measure for price" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Currency" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/UnitOfMeasure" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Device", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A tangible object designed to accomplish a particular task. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Device" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "_:genid6" - }, { - "@id" : "_:genid7" - }, { - "@id" : "_:genid8" - }, { - "@id" : "_:genid9" - }, { - "@id" : "_:genid10" - }, { - "@id" : "_:genid11" - }, { - "@id" : "_:genid12" - }, { - "@id" : "_:genid13" - }, { - "@id" : "_:genid14" - }, { - "@id" : "_:genid15" - }, { - "@id" : "_:genid16" - }, { - "@id" : "_:genid17" - } ] -}, { - "@id" : "https://saref.etsi.org/core/DoorSwitch", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A switch that performs the saref:OpenCloseFunction, is used for controlling a door, and can be found in the state saref:OpenCloseState. A saref:DoorSwitch is typically used to accomplish saref:Safety." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Door switch" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Switch" - }, { - "@id" : "_:genid18" - }, { - "@id" : "_:genid19" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Drying", - "@type" : [ "http://www.w3.org/2002/07/owl#NamedIndividual", "https://saref.etsi.org/core/Task" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of task for which a device is designed" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Drying" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Electricity", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of commodity" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Electricity" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Commodity" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Energy", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A saref:Property related to some measurements that are characterized by a certain value measured in an energy unit (such as Kilowatt_Hour or Watt_hour). Furter specializations of the saref:Energy class can be found in the SAREF4ENER extension, where classes such as EnergyMax, EnergyMin and EnergyExpected are defined. " - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Energy" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ] -}, { - "@id" : "https://saref.etsi.org/core/EnergyEfficiency", - "@type" : [ "http://www.w3.org/2002/07/owl#NamedIndividual", "https://saref.etsi.org/core/Task" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of task for which a device is designed" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "EnergyEfficiency" - } ] -}, { - "@id" : "https://saref.etsi.org/core/EnergyUnit", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "The unit of measure for energy" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Energy unit" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/UnitOfMeasure" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Entertainment", - "@type" : [ "http://www.w3.org/2002/07/owl#NamedIndividual", "https://saref.etsi.org/core/Task" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of task for which a device is designed" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Entertainment" - } ] -}, { - "@id" : "https://saref.etsi.org/core/EventFunction", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A function that allows to notify about some relevant activity; e.g., that a certain threshold value has been exceeded or that some object has moved." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Event function" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Function" - }, { - "@id" : "_:genid20" - } ] -}, { - "@id" : "https://saref.etsi.org/core/FeatureOfInterest", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A feature of interest represents any real world entity from which a property is measured." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Feature of interest" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "_:genid21" - }, { - "@id" : "_:genid22" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Function", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "The functionality necessary to accomplish the task for which a device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. " - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Function" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "_:genid23" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Gas", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of commodity" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Gas" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Commodity" - } ] -}, { - "@id" : "https://saref.etsi.org/core/GetCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Get command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Command" - } ] -}, { - "@id" : "https://saref.etsi.org/core/GetCurrentMeterValueCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of get command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Get current meter value command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/GetCommand" - }, { - "@id" : "_:genid24" - } ] -}, { - "@id" : "https://saref.etsi.org/core/GetMeterDataCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of get command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Get meter data command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/GetCommand" - }, { - "@id" : "_:genid25" - } ] -}, { - "@id" : "https://saref.etsi.org/core/GetMeterHistoryCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of get command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Get meter history command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/GetCommand" - }, { - "@id" : "_:genid26" - } ] -}, { - "@id" : "https://saref.etsi.org/core/GetSensingDataCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of get command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Get sensing data command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/GetCommand" - }, { - "@id" : "_:genid27" - } ] -}, { - "@id" : "https://saref.etsi.org/core/HVAC", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "Heating, Ventilation and Air Conditioning (HVAC) device that provides indoor environmental comfort. A saref:HVAC is typically used to accomplish saref:Comfort." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "HVAC" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Device" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Humidity", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Humidity" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ] -}, { - "@id" : "https://saref.etsi.org/core/IlluminanceUnit", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "The unit of measure for light" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Illuminance unit" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/UnitOfMeasure" - } ] -}, { - "@id" : "https://saref.etsi.org/core/LevelControlFunction", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "An actuating function that allows to do level adjustments of a property in a certain range (e.g., 0%-100%), such as dimming a light in a room or setting the speed of an electric motor. " - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Level control function" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/ActuatingFunction" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Light", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A saref:Property related to some measurements that are characterized by a certain value that is measured in a illuminance unit (lux)" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Light" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ] -}, { - "@id" : "https://saref.etsi.org/core/LightSwitch", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A switch that performs the saref:OnOffFunction, controls the property saref:Light, and can be found in the state saref:OnOffState. It can offer a switch on service. A saref:LightSwitch is typically used to accomplish saref:Lighting." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Light switch" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Switch" - }, { - "@id" : "_:genid28" - }, { - "@id" : "_:genid29" - }, { - "@id" : "_:genid30" - }, { - "@id" : "_:genid31" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Lighting", - "@type" : [ "http://www.w3.org/2002/07/owl#NamedIndividual", "https://saref.etsi.org/core/Task" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of task for which a device is designed" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Lighting" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Measurement", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Measurement" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "_:genid32" - }, { - "@id" : "_:genid33" - }, { - "@id" : "_:genid34" - }, { - "@id" : "_:genid35" - }, { - "@id" : "_:genid36" - }, { - "@id" : "_:genid37" - }, { - "@id" : "_:genid38" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Meter", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A device built to accurately detect and display a quantity in a form readable by a human being. Further, a device of category saref:Meter that performs a saref:MeteringFunction." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Meter" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Device" - }, { - "@id" : "_:genid39" - } ] -}, { - "@id" : "https://saref.etsi.org/core/MeterReading", - "@type" : [ "http://www.w3.org/2002/07/owl#NamedIndividual", "https://saref.etsi.org/core/Task" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of task for which a device is designed" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Meter reading" - } ] -}, { - "@id" : "https://saref.etsi.org/core/MeteringFunction", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A function that allows to get data from a meter, such as current meter reading or instantaneous demand" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Metering function" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Function" - }, { - "@id" : "_:genid40" - }, { - "@id" : "_:genid41" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Motion", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for motion" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Motion" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ] -}, { - "@id" : "https://saref.etsi.org/core/MultiLevelState", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of state" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Multi level state" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/State" - } ] -}, { - "@id" : "https://saref.etsi.org/core/NotifyCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Notify command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Command" - }, { - "@id" : "_:genid45" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Occupancy", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A saref:Property related to some measurements that are characterized by a certain value (saref:hasValue property) that is measured in a unit of measure for occupancy" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Occupancy" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ] -}, { - "@id" : "https://saref.etsi.org/core/OffCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Off command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Command" - }, { - "@id" : "_:genid46" - }, { - "@id" : "_:genid47" - } ], - "http://www.w3.org/2002/07/owl#disjointWith" : [ { - "@id" : "https://saref.etsi.org/core/OnCommand" - } ] -}, { - "@id" : "https://saref.etsi.org/core/OffState", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "The state of a device that is Off" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Off state" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/OnOffState" - } ] -}, { - "@id" : "https://saref.etsi.org/core/OnCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "On command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Command" - }, { - "@id" : "_:genid48" - }, { - "@id" : "_:genid49" - } ] -}, { - "@id" : "https://saref.etsi.org/core/OnOffFunction", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "An actuating function that allows to switch on and off an actuator" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "On off function" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/ActuatingFunction" - } ] -}, { - "@id" : "https://saref.etsi.org/core/OnOffState", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of state" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "On off state" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/State" - } ] -}, { - "@id" : "https://saref.etsi.org/core/OnState", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "The state of a device that is On" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "On state" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/OnOffState" - } ] -}, { - "@id" : "https://saref.etsi.org/core/OpenCloseFunction", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "An actuating function that allows to open and close a device" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Open close function" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/ActuatingFunction" - } ] -}, { - "@id" : "https://saref.etsi.org/core/OpenCloseState", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of state" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Open close state" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/State" - } ] -}, { - "@id" : "https://saref.etsi.org/core/OpenCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Open command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Command" - }, { - "@id" : "_:genid50" - }, { - "@id" : "_:genid51" - } ] -}, { - "@id" : "https://saref.etsi.org/core/OpenState", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "The state of a device that is OPEN " - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Open state" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/OpenCloseState" - } ] -}, { - "@id" : "https://saref.etsi.org/core/PauseCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Pause command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Command" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Power", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A saref:Property related to some measurements that are characterized by a certain value that is measured in a power unit (such as watt or kilowatt). Further specializations of the saref:Power class can be found in the SAREF4ENER extension, where classes such as PowerMax, PowerMin and PowerExpected are defined." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Power" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ] -}, { - "@id" : "https://saref.etsi.org/core/PowerUnit", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "The unit of measure for power" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Power unit" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/UnitOfMeasure" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Pressure", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A saref:Property related to some measurements that are characterized by a certain value that is measured in a pressure unit (bar or pascal)" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Pressure" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ] -}, { - "@id" : "https://saref.etsi.org/core/PressureUnit", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "The unit of measure for pressure" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Pressure unit" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/UnitOfMeasure" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Price", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A saref:Property crelated to some measurements that are characterized by a certain value that is measured using saref:Currency" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Price" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Profile", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A specification associated to a device to collect information about a certain Property (e.g., Energy) for optimizing its usage in the home, office or building in which the device is located. This specification is about a certain Property (saref:isAbout), can be calculated over a time span (saref:hasTime) and can be associated to some costs (saref:hasPrice). An example is the Power Profile defined in the SAREF4ENER extension that can be associated to a device for optimizing the Energy efficiency in the home, office or building in which the device is located." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Profile" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "_:genid52" - }, { - "@id" : "_:genid53" - }, { - "@id" : "_:genid54" - }, { - "@id" : "_:genid55" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Property", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A quality of a feature of interest that can be measured; an aspect of a feature of interest that is intrinsic to and cannot exist without the feature" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Property" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "_:genid59" - }, { - "@id" : "_:genid60" - }, { - "@id" : "_:genid61" - }, { - "@id" : "_:genid62" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Safety", - "@type" : [ "http://www.w3.org/2002/07/owl#NamedIndividual", "https://saref.etsi.org/core/Task" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of task for which a device is designed" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Safety" - } ] -}, { - "@id" : "https://saref.etsi.org/core/SensingFunction", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A function that allows to transmit data from sensors, such as measurement values (e.g., temperature) or sensing data (e.g., occupancy)" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Sensing function" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Function" - }, { - "@id" : "_:genid63" - }, { - "@id" : "_:genid64" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Sensor", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. Further, a device of category saref:Sensor that performs a saref:SensingFunction." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Sensor" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Device" - }, { - "@id" : "_:genid65" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Service", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service and the function(s) to be represented." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Service" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "_:genid66" - }, { - "@id" : "_:genid67" - } ] -}, { - "@id" : "https://saref.etsi.org/core/SetAbsoluteLevelCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of set level command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Set absolute level command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/SetLevelCommand" - } ] -}, { - "@id" : "https://saref.etsi.org/core/SetLevelCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Set level command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Command" - }, { - "@id" : "_:genid68" - }, { - "@id" : "_:genid69" - } ] -}, { - "@id" : "https://saref.etsi.org/core/SetRelativeLevelCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of set level command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Set relative level command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/SetLevelCommand" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Smoke", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for smoke" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Smoke" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ] -}, { - "@id" : "https://saref.etsi.org/core/SmokeSensor", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A sensor that performs the saref:SensingFunction and the saref:EventFunction, and is used for the purpose of sensing a property of type saref:Smoke. A saref:SmokeSensor is typically used to saref:accomplish saref:Safety." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Smoke sensor" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Sensor" - }, { - "@id" : "_:genid70" - }, { - "@id" : "_:genid71" - }, { - "@id" : "_:genid72" - } ] -}, { - "@id" : "https://saref.etsi.org/core/StartCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Start command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Command" - }, { - "@id" : "_:genid73" - }, { - "@id" : "_:genid74" - } ], - "http://www.w3.org/2002/07/owl#disjointWith" : [ { - "@id" : "https://saref.etsi.org/core/StopCommand" - } ] -}, { - "@id" : "https://saref.etsi.org/core/StartState", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "The state of a device that is STARTED" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Start state" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/StartStopState" - } ] -}, { - "@id" : "https://saref.etsi.org/core/StartStopFunction", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "An actuating function that allows to start and stop a device" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Start stop function" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/ActuatingFunction" - } ] -}, { - "@id" : "https://saref.etsi.org/core/StartStopState", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of state" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Start stop state" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/State" - } ] -}, { - "@id" : "https://saref.etsi.org/core/State", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "State" - } ] -}, { - "@id" : "https://saref.etsi.org/core/StepDownCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Step down command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Command" - }, { - "@id" : "_:genid75" - }, { - "@id" : "_:genid76" - } ], - "http://www.w3.org/2002/07/owl#disjointWith" : [ { - "@id" : "https://saref.etsi.org/core/StepUpCommand" - } ] -}, { - "@id" : "https://saref.etsi.org/core/StepUpCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Step up command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Command" - }, { - "@id" : "_:genid77" - }, { - "@id" : "_:genid78" - } ] -}, { - "@id" : "https://saref.etsi.org/core/StopCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Stop command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Command" - }, { - "@id" : "_:genid79" - }, { - "@id" : "_:genid80" - } ] -}, { - "@id" : "https://saref.etsi.org/core/StopState", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "The state of a device that is STOPPED" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Stop state" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/StartStopState" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Switch", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A device of category saref:Actuator that performs an actuating function of type saref:OnOffFunction or saref:OpenCloseFunction" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Switch" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Actuator" - } ] -}, { - "@id" : "https://saref.etsi.org/core/SwitchOnService", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of service that represents an on/off function to the network" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Switch on service" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Service" - }, { - "@id" : "_:genid81" - }, { - "@id" : "_:genid82" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Task", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended. Tasks can be accomplished by devices (saref:isAccomplishedBy)." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Task" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Temperature", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin)" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Temperature" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ] -}, { - "@id" : "https://saref.etsi.org/core/TemperatureSensor", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A sensor that is used for the purpose of sensing a property of type saref:Temperature. A saref:TemperatureSensor is typically used to saref:accomplish saref:Comfort." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Temperature sensor" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Sensor" - }, { - "@id" : "_:genid83" - }, { - "@id" : "_:genid84" - } ] -}, { - "@id" : "https://saref.etsi.org/core/TemperatureUnit", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "The unit of measure for temperature" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Temperature unit" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/UnitOfMeasure" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Time", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A class that allows to specify the time concept." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Time" - } ] -}, { - "@id" : "https://saref.etsi.org/core/ToggleCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Toggle command" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Command" - }, { - "@id" : "_:genid85" - } ] -}, { - "@id" : "https://saref.etsi.org/core/UnitOfMeasure", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM)." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Unit of measure" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Washing", - "@type" : [ "http://www.w3.org/2002/07/owl#NamedIndividual", "https://saref.etsi.org/core/Task" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of task for which a device is designed" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Washing" - } ] -}, { - "@id" : "https://saref.etsi.org/core/Water", - "@type" : [ "http://www.w3.org/2002/07/owl#Class" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of commodity" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "Water" - } ], - "http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ { - "@id" : "https://saref.etsi.org/core/Commodity" - } ] -}, { - "@id" : "https://saref.etsi.org/core/WellBeing", - "@type" : [ "http://www.w3.org/2002/07/owl#NamedIndividual", "https://saref.etsi.org/core/Task" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A type of task for which a device is designed" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "WellBeing" - } ] -}, { - "@id" : "https://saref.etsi.org/core/accomplishes", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship between a certain entity (e.g., a device) and the task it accomplishes" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "accomplishes" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Task" - } ], - "http://www.w3.org/2002/07/owl#inverseOf" : [ { - "@id" : "https://saref.etsi.org/core/isAccomplishedBy" - } ] -}, { - "@id" : "https://saref.etsi.org/core/actsUpon", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship between a command and a state" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "acts upon" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/State" - } ] -}, { - "@id" : "https://saref.etsi.org/core/consistsOf", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship indicating a composite entity that consists of other entities (e.g., a temperature/humidity sensor that consists of a temperature sensor and a humidity sensor)" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "consists of" - } ] -}, { - "@id" : "https://saref.etsi.org/core/controlsProperty", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship specifying the property that can be controlled by a certain device" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Device" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "controls property" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasCommand", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship between a function and a command" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Function" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has command" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Command" - } ], - "http://www.w3.org/2002/07/owl#inverseOf" : [ { - "@id" : "https://saref.etsi.org/core/isCommandOf" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasDescription", - "@type" : [ "http://www.w3.org/2002/07/owl#DatatypeProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship providing a description of an entity (e.g., device). The value is expected to be a string or a string with language tag." - }, { - "@language" : "en", - "@value" : "DEPRECATED: The use of rdfs:comment is recommended instead." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has description" - } ], - "http://www.w3.org/2002/07/owl#deprecated" : [ { - "@type" : "http://www.w3.org/2001/XMLSchema#boolean", - "@value" : "true" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasFunction", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship identifying the function of a device" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Device" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has function" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Function" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasManufacturer", - "@type" : [ "http://www.w3.org/2002/07/owl#DatatypeProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship identifying the manufacturer of an entity (e.g., device). The value is expected to be a string or a string with language tag." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has manufacturer" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasMeasurement", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship between a feature of interest and a measurement about it" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/FeatureOfInterest" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has measurement" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Measurement" - } ], - "http://www.w3.org/2002/07/owl#inverseOf" : [ { - "@id" : "https://saref.etsi.org/core/isMeasurementOf" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasMeterReading", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship between a metering function and the measurement of the reading" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/MeteringFunction" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has meter reading" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Measurement" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasMeterReadingType", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship identifying the reading type of a metering function (e.g., Water, Gas, Pressure , Energy , Power, etc.)" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/MeteringFunction" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has meter reading type" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasModel", - "@type" : [ "http://www.w3.org/2002/07/owl#DatatypeProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship identifying the model of an entity (e.g., device). The value is expected to be a string or a string with language tag." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has model" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasPrice", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship indentifying the price associated to an entity" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has price" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Price" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasProfile", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship associating a profile to a certain device" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Device" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has profile" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Profile" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasProperty", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship between a feature of interest and a property of that feature" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/FeatureOfInterest" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has property" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ], - "http://www.w3.org/2002/07/owl#inverseOf" : [ { - "@id" : "https://saref.etsi.org/core/isPropertyOf" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasSensingRange", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship between a sensing function and a measurement identifying the range of a sensor detection" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/SensingFunction" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has sensing range" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Measurement" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasSensorType", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship identifying the sensing type of a sensor detection (i.e., Temperature, Occupancy, Humidity, Motion , Smoke, Pressure, etc.) " - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/SensingFunction" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has sensor type" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasState", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship identifying the type of state of a device" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Device" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has state" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/State" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasThresholdMeasurement", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship associated with an event function to notify that a certain threshold measurement has been exceeded" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/EventFunction" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has threshold measurement" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Measurement" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasTime", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship to associate time information to an entity" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has time" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Time" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasTimestamp", - "@type" : [ "http://www.w3.org/2002/07/owl#DatatypeProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship stating the timestamp of an entity (e.g. a measurement)." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has timestamp" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasTypicalConsumption", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship identifying the typical (energy or power) consumption of a device" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has typical consumption" - } ] -}, { - "@id" : "https://saref.etsi.org/core/hasValue", - "@type" : [ "http://www.w3.org/2002/07/owl#DatatypeProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship defining the value of a certain property, e.g., energy or power. Note that, even if numeric values are expected to enable reasoning, measurement values could use other datatypes." - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "has value" - } ] -}, { - "@id" : "https://saref.etsi.org/core/isAbout", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship identifying what an entity, such as a profile, is about" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "isAbout" - } ] -}, { - "@id" : "https://saref.etsi.org/core/isAccomplishedBy", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship identifying an entity (e.g., a device) that can accomplish a task." - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Task" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "is accomplished by" - } ] -}, { - "@id" : "https://saref.etsi.org/core/isCommandOf", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship between a command and a function." - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Command" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "is command of" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Function" - } ] -}, { - "@id" : "https://saref.etsi.org/core/isControlledByDevice", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship specifying the devices that can control a certain property" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "is controlled by device" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Device" - } ] -}, { - "@id" : "https://saref.etsi.org/core/isMeasuredByDevice", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship specifying the devices that can measure a certain property" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "is measured by device" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Device" - } ] -}, { - "@id" : "https://saref.etsi.org/core/isMeasuredIn", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship identifying the unit of measure used for a certain entity." - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Measurement" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "is measured in" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/UnitOfMeasure" - } ] -}, { - "@id" : "https://saref.etsi.org/core/isMeasurementOf", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship between a measurement and the feature of interest whose quality was measured" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Measurement" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "isMeasurementOf" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/FeatureOfInterest" - } ] -}, { - "@id" : "https://saref.etsi.org/core/isOfferedBy", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship between a service and a device that offers the service" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Service" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "is offered by" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Device" - } ], - "http://www.w3.org/2002/07/owl#inverseOf" : [ { - "@id" : "https://saref.etsi.org/core/offers" - } ] -}, { - "@id" : "https://saref.etsi.org/core/isPropertyOf", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship between a property and the feature of interest it belongs to" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "is property of" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/FeatureOfInterest" - } ] -}, { - "@id" : "https://saref.etsi.org/core/isUsedFor", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship specifying the commodity for which a device is used for" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "is used for" - } ] -}, { - "@id" : "https://saref.etsi.org/core/makesMeasurement", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relation between a device and the measurements it makes. Such measurement will link together the value of the measurement, its unit of measure and the property to which it relates." - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Device" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "makes measurement" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Measurement" - } ], - "http://www.w3.org/2002/07/owl#inverseOf" : [ { - "@id" : "https://saref.etsi.org/core/measurementMadeBy" - } ] -}, { - "@id" : "https://saref.etsi.org/core/measurementMadeBy", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relation between a measurement and the device that made it." - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Measurement" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "measurement made by" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Device" - } ] -}, { - "@id" : "https://saref.etsi.org/core/measuresProperty", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship specifying the property that can be measured by a certain device" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Device" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "measures property" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ] -}, { - "@id" : "https://saref.etsi.org/core/offers", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship between a device and a service" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Device" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "offers" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Service" - } ] -}, { - "@id" : "https://saref.etsi.org/core/relatesToMeasurement", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship between a property and the measurements it relates to" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "relates to measurement" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Measurement" - } ], - "http://www.w3.org/2002/07/owl#inverseOf" : [ { - "@id" : "https://saref.etsi.org/core/relatesToProperty" - } ] -}, { - "@id" : "https://saref.etsi.org/core/relatesToProperty", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship between a measurement and the property it relates to" - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Measurement" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "relates to property" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Property" - } ] -}, { - "@id" : "https://saref.etsi.org/core/represents", - "@type" : [ "http://www.w3.org/2002/07/owl#ObjectProperty" ], - "http://www.w3.org/2000/01/rdf-schema#comment" : [ { - "@language" : "en", - "@value" : "A relationship between a service and a function." - } ], - "http://www.w3.org/2000/01/rdf-schema#domain" : [ { - "@id" : "https://saref.etsi.org/core/Service" - } ], - "http://www.w3.org/2000/01/rdf-schema#label" : [ { - "@language" : "en", - "@value" : "represents" - } ], - "http://www.w3.org/2000/01/rdf-schema#range" : [ { - "@id" : "https://saref.etsi.org/core/Function" - } ] -} ] \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/core.nt b/src/main/resources/saref-portal-generator/public/core/v3.1.1/core.nt deleted file mode 100644 index c87cf12..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/core.nt +++ /dev/null @@ -1,1230 +0,0 @@ - . - . - . - . - . - "The Smart Applications REFerence ontology (SAREF) is intended to enable interoperability between solutions from different providers and among various activity sectors in the Internet of Things (IoT), thus contributing to the development of the global digital market."@en . - "2020-02-11"^^ . - . - . - "SAREF: the Smart Applications REFerence ontology"@en . - "saref" . - "https://saref.etsi.org/core/"^^ . - "Information about changes compared to version 1.1.1:\n - The classes and properties related to how to represent devices in building spaces (such as the saref:BuildingSpace class, saref:BuildingObject class and saref:isLocatedIn property) have been removed from SAREF and incorporated into the SAREF4BLDG extension related to buildings, including the reuse of the W3C� WGS84 geo positioning vocabulary.\n - The saref:DeviceCategory and saref:FunctionCategory classes have been removed. Instead, the hierarchy of device categories has been implemented directly as subclasses of the saref:Device class.\n - The information specific for energy efficiency has been moved to the SAREF4ENER extension. For example, the saref:Profile class has been redefined to accommodate only the properties that are general enough for any type of profile, not only for energy and power. Details on how to specifically model a power profile can be found in the SAREF4ENER extension. \n - The subclasses of the saref:Energy class have been removed (i.e., Average Energy, Maximum Energy, Minimum Energy, Total Energy, HVAC Energy, Hot Water Energy and Lighting Energy).\n - The saref:Property class has been split into two classes (saref:Property and saref:Measurement), as it is done in the SAREF4ENVI extension, in order to properly accommodate the distinction between the concept of property (an observable quality of something) and the concept of measurement (a concrete value observed for a property).\n - Too restrictive cardinality restrictions have been revised, sometimes making them optional rather than mandatory (better to make properties mandatory in the extensions that specialize SAREF for a specific purpose, rather than restricting SAREF, whose purpose is more general). For example, definitions of units of measurement using an enumeration (owl:oneOf) were too restrictive because they did not allow using other units than those enumerated. Therefore, the individuals of each class are still there, but the owl:oneOf enumeration has been removed.\n - The saref:UnitOfMeasure subclasses use individuals from the OM ontology for unit of measures, but this is not the only solution. It has been clarified in the comments that the OM ontology is an example, but other ontologies can be used.\n - The global restrictions (rdfs:domain and rdfs:range) in object properties have been completely removed not to hinder interoperability. Object properties are now only restricted locally in the classes. \n - The subclasses of saref:Task have been transormed in individuals.\n - The saref:hasTask property has been removed from the saref:Profile class to resolve an ambiguity with the saref:Task class." . - "Information about changes compared to version 2.1.1: \n - Added the saref:FeatureOfInterest class and the properties used to relate it to saref:Measurement (saref:hasMeasurement and saref:isMeasurementOf) and to saref:Property (saref:hasProperty and saref:isPropertyOf).\n - Added the saref:measurementMadeBy property as inverse of saref:makesMeasurement.\n - The saref:relatesToProperty and saref:relatesToMeasurement properties are now inverse of each other.\n - The range of saref:hasValue, which was defined as xsd:float, has been removed to support other datatypes for measurements.\n - The range of datatype properties, which was defined as xsd:string, has been removed in order to support strings with language tags (rdf:langString). This affects saref:hasDescription, saref:hasManufacturer, saref:hasModel and saref:hasName, which now have implicitly a range of rdfs:Literal.\n - The saref:hasName property has been removed and the use of rdfs:label is recommended. \n - The saref:hasDescription property has been deprecated and the use of rdfs:comment is recommended. \n - Too restrictive restrictions have been removed and in some cases the ontology documentation has been updated to reflect this: a saref:Command having at most one saref:hasDescription; a saref:Task being accomplished by at least one saref:Device; a saref:Device having a typical consumption of only energy or power; a saref:Commodity being measured in units of measure; restrictions on the values of saref:accomplishes that only covered specific use cases; universal restrictions on the saref:actsUpon property have been changed to existential ones; restrictions on the commands that a saref:Function may have, since there could be others not included in the defined enumerations; restrictive documentation of saref:EventFunction and saref:SmokeSensor.\n - Bugs have been fixed: some devices (saref:DoorSwitch, saref:EnergyMeter, saref:LigthSwitch, saref:SmokeSensor, and saref:TemperatureSensor) were defined as subclass of a device and at the same time as consisting of such device; a saref:LightSwitch controls light and does not measure light, since it is an actuator; incorrect documentation of saref:OnState and saref:OffState.\n - The saref:BuildingRelated, saref:EnergyRelated and saref:FunctionRelated classes have been removed, since the different extensions already classify the device types.\n - The instances of the subclasses of saref:Command have been removed, since they represent examples.\n - The instances of saref:UnitOfMeasure have been moved to examples.\n - The classes related to the SAREF4ENER extension have been removed: saref:Generator, saref:Storage, saref:Load and saref:EnergyMeter.\n - Some instances of saref:Device have been moved to examples: saref:WashingMachine, saref:LightingDevice, saref:MicroRenewable, saref:Multimedia, and saref:Network.\n - Added domain and range axioms wherever the definition of a property unambiguously identifies the domain or the range of the property.\n - The OWL Time ontology is not imported anymore.\n - The documentation of some ontology terms has been updated for clarification.\n - Language tags have been added to all labels and comments.\n" . - "3.1.1" . -# -# -# ################################################################# -# # -# # Annotation properties -# # -# ################################################################# -# -# -# http://purl.org/dc/terms/contributor - . -# -# http://purl.org/dc/terms/description - . -# -# http://purl.org/dc/terms/issued - . -# -# http://purl.org/dc/terms/license - . -# -# http://purl.org/dc/terms/publisher - . -# -# http://purl.org/dc/terms/title - . -# -# http://purl.org/vocab/vann/preferredNamespacePrefix - . -# -# http://purl.org/vocab/vann/preferredNamespaceUri - . -# -# -# -# ################################################################# -# # -# # Object Properties -# # -# ################################################################# -# -# -# https://saref.etsi.org/core/accomplishes - . - . - . - "A relationship between a certain entity (e.g., a device) and the task it accomplishes"@en . - "accomplishes"@en . -# -# https://saref.etsi.org/core/actsUpon - . - . - . - "A relationship between a command and a state"@en . - "acts upon"@en . -# -# https://saref.etsi.org/core/consistsOf - . - "A relationship indicating a composite entity that consists of other entities (e.g., a temperature/humidity sensor that consists of a temperature sensor and a humidity sensor)"@en . - "consists of"@en . -# -# https://saref.etsi.org/core/controlsProperty - . - . - . - "A relationship specifying the property that can be controlled by a certain device"@en . - "controls property"@en . -# -# https://saref.etsi.org/core/hasCommand - . - . - . - . - "A relationship between a function and a command"@en . - "has command"@en . -# -# https://saref.etsi.org/core/hasFunction - . - . - . - "A relationship identifying the function of a device"@en . - "has function"@en . -# -# https://saref.etsi.org/core/hasMeasurement - . - . - . - . - "A relationship between a feature of interest and a measurement about it"@en . - "has measurement"@en . -# -# https://saref.etsi.org/core/hasMeterReading - . - . - . - "A relationship between a metering function and the measurement of the reading"@en . - "has meter reading"@en . -# -# https://saref.etsi.org/core/hasMeterReadingType - . - . - . - "A relationship identifying the reading type of a metering function (e.g., Water, Gas, Pressure , Energy , Power, etc.)"@en . - "has meter reading type"@en . -# -# https://saref.etsi.org/core/hasPrice - . - . - "A relationship indentifying the price associated to an entity"@en . - "has price"@en . -# -# https://saref.etsi.org/core/hasProfile - . - . - . - "A relationship associating a profile to a certain device"@en . - "has profile"@en . -# -# https://saref.etsi.org/core/hasProperty - . - . - . - . - "A relationship between a feature of interest and a property of that feature"@en . - "has property"@en . -# -# https://saref.etsi.org/core/hasSensingRange - . - . - . - "A relationship between a sensing function and a measurement identifying the range of a sensor detection"@en . - "has sensing range"@en . -# -# https://saref.etsi.org/core/hasSensorType - . - . - . - "A relationship identifying the sensing type of a sensor detection (i.e., Temperature, Occupancy, Humidity, Motion , Smoke, Pressure, etc.) "@en . - "has sensor type"@en . -# -# https://saref.etsi.org/core/hasState - . - . - . - "A relationship identifying the type of state of a device"@en . - "has state"@en . -# -# https://saref.etsi.org/core/hasThresholdMeasurement - . - . - . - "A relationship associated with an event function to notify that a certain threshold measurement has been exceeded"@en . - "has threshold measurement"@en . -# -# https://saref.etsi.org/core/hasTime - . - . - "A relationship to associate time information to an entity"@en . - "has time"@en . -# -# https://saref.etsi.org/core/hasTypicalConsumption - . - "A relationship identifying the typical (energy or power) consumption of a device"@en . - "has typical consumption"@en . -# -# https://saref.etsi.org/core/isAbout - . - "A relationship identifying what an entity, such as a profile, is about"@en . - "isAbout"@en . -# -# https://saref.etsi.org/core/isAccomplishedBy - . - . - "A relationship identifying an entity (e.g., a device) that can accomplish a task."@en . - "is accomplished by"@en . -# -# https://saref.etsi.org/core/isCommandOf - . - . - . - "A relationship between a command and a function."@en . - "is command of"@en . -# -# https://saref.etsi.org/core/isControlledByDevice - . - . - . - "A relationship specifying the devices that can control a certain property"@en . - "is controlled by device"@en . -# -# https://saref.etsi.org/core/isMeasuredByDevice - . - . - . - "A relationship specifying the devices that can measure a certain property"@en . - "is measured by device"@en . -# -# https://saref.etsi.org/core/isMeasuredIn - . - . - . - "A relationship identifying the unit of measure used for a certain entity."@en . - "is measured in"@en . -# -# https://saref.etsi.org/core/isMeasurementOf - . - . - . - "A relationship between a measurement and the feature of interest whose quality was measured"@en . - "isMeasurementOf"@en . -# -# https://saref.etsi.org/core/isOfferedBy - . - . - . - . - "A relationship between a service and a device that offers the service"@en . - "is offered by"@en . -# -# https://saref.etsi.org/core/isPropertyOf - . - . - . - "A relationship between a property and the feature of interest it belongs to"@en . - "is property of"@en . -# -# https://saref.etsi.org/core/isUsedFor - . - "A relationship specifying the commodity for which a device is used for"@en . - "is used for"@en . -# -# https://saref.etsi.org/core/makesMeasurement - . - . - . - . - "A relation between a device and the measurements it makes. Such measurement will link together the value of the measurement, its unit of measure and the property to which it relates."@en . - "makes measurement"@en . -# -# https://saref.etsi.org/core/measurementMadeBy - . - . - . - "A relation between a measurement and the device that made it."@en . - "measurement made by"@en . -# -# https://saref.etsi.org/core/measuresProperty - . - . - . - "A relationship specifying the property that can be measured by a certain device"@en . - "measures property"@en . -# -# https://saref.etsi.org/core/offers - . - . - . - "A relationship between a device and a service"@en . - "offers"@en . -# -# https://saref.etsi.org/core/relatesToMeasurement - . - . - . - . - "A relationship between a property and the measurements it relates to"@en . - "relates to measurement"@en . -# -# https://saref.etsi.org/core/relatesToProperty - . - . - . - "A relationship between a measurement and the property it relates to"@en . - "relates to property"@en . -# -# https://saref.etsi.org/core/represents - . - . - . - "A relationship between a service and a function."@en . - "represents"@en . -# -# -# -# ################################################################# -# # -# # Data properties -# # -# ################################################################# -# -# -# https://saref.etsi.org/core/hasDescription - . - "A relationship providing a description of an entity (e.g., device). The value is expected to be a string or a string with language tag."@en . - "DEPRECATED: The use of rdfs:comment is recommended instead."@en . - "has description"@en . - "true"^^ . -# -# https://saref.etsi.org/core/hasManufacturer - . - "A relationship identifying the manufacturer of an entity (e.g., device). The value is expected to be a string or a string with language tag."@en . - "has manufacturer"@en . -# -# https://saref.etsi.org/core/hasModel - . - "A relationship identifying the model of an entity (e.g., device). The value is expected to be a string or a string with language tag."@en . - "has model"@en . -# -# https://saref.etsi.org/core/hasTimestamp - . - "A relationship stating the timestamp of an entity (e.g. a measurement)."@en . - "has timestamp"@en . -# -# https://saref.etsi.org/core/hasValue - . - "A relationship defining the value of a certain property, e.g., energy or power. Note that, even if numeric values are expected to enable reasoning, measurement values could use other datatypes."@en . - "has value"@en . -# -# -# -# ################################################################# -# # -# # Classes -# # -# ################################################################# -# -# -# https://saref.etsi.org/core/ActuatingFunction - . - . - "A function that allows to transmit data to actuators, such as level settings (e.g., temperature) or binary switching (e.g., open/close, on/off)"@en . - "Actuating function"@en . -# -# https://saref.etsi.org/core/Actuator - . - . - _:genid1 . -_:genid1 . -_:genid1 . -_:genid1 . - "A device responsible for moving or controlling a mechanism or system by performing an actuating function"@en . - "Actuator"@en . -# -# https://saref.etsi.org/core/Appliance - . - . - "An electrical/mechanical machine that accomplish some household functions, such as cleaning or cooking"@en . - "Appliance"@en . -# -# https://saref.etsi.org/core/CloseCommand - . - . - _:genid2 . -_:genid2 . -_:genid2 . -_:genid2 . - _:genid3 . -_:genid3 . -_:genid3 . -_:genid3 . - . - "A type of command"@en . - "Close command"@en . -# -# https://saref.etsi.org/core/CloseState - . - . - "The state of a device that is CLOSE"@en . - "Close state"@en . -# -# https://saref.etsi.org/core/Coal - . - . - "A type of commodity"@en . - "Coal"@en . -# -# https://saref.etsi.org/core/Command - . - _:genid4 . -_:genid4 . -_:genid4 . -_:genid4 . - _:genid5 . -_:genid5 . -_:genid5 . -_:genid5 "1"^^ . -_:genid5 . - "A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended."@en . - "Command"@en . -# -# https://saref.etsi.org/core/Commodity - . - "A marketable item for which there is demand, but which is supplied without qualitative differentiation across a market. SAREF refers to energy commodities such as electricity, gas, coal and oil. "@en . - "Commodity"@en . -# -# https://saref.etsi.org/core/Currency - . - . - "The class of units of measure for price"@en . - "Currency"@en . -# -# https://saref.etsi.org/core/Device - . - _:genid6 . -_:genid6 . -_:genid6 . -_:genid6 . - _:genid7 . -_:genid7 . -_:genid7 . -_:genid7 . - _:genid8 . -_:genid8 . -_:genid8 . -_:genid8 . - _:genid9 . -_:genid9 . -_:genid9 . -_:genid9 . - _:genid10 . -_:genid10 . -_:genid10 . -_:genid10 . - _:genid11 . -_:genid11 . -_:genid11 . -_:genid11 . - _:genid12 . -_:genid12 . -_:genid12 . -_:genid12 . - _:genid13 . -_:genid13 . -_:genid13 . -_:genid13 . - _:genid14 . -_:genid14 . -_:genid14 . -_:genid14 "1"^^ . -_:genid14 . - _:genid15 . -_:genid15 . -_:genid15 . -_:genid15 "1"^^ . -_:genid15 . - _:genid16 . -_:genid16 . -_:genid16 . -_:genid16 "1"^^ . - _:genid17 . -_:genid17 . -_:genid17 . -_:genid17 "1"^^ . - "A tangible object designed to accomplish a particular task. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function."@en . - "Device"@en . -# -# https://saref.etsi.org/core/DoorSwitch - . - . - _:genid18 . -_:genid18 . -_:genid18 . -_:genid18 . - _:genid19 . -_:genid19 . -_:genid19 . -_:genid19 . - "A switch that performs the saref:OpenCloseFunction, is used for controlling a door, and can be found in the state saref:OpenCloseState. A saref:DoorSwitch is typically used to accomplish saref:Safety."@en . - "Door switch"@en . -# -# https://saref.etsi.org/core/Electricity - . - . - "A type of commodity"@en . - "Electricity"@en . -# -# https://saref.etsi.org/core/Energy - . - . - "A saref:Property related to some measurements that are characterized by a certain value measured in an energy unit (such as Kilowatt_Hour or Watt_hour). Furter specializations of the saref:Energy class can be found in the SAREF4ENER extension, where classes such as EnergyMax, EnergyMin and EnergyExpected are defined. "@en . - "Energy"@en . -# -# https://saref.etsi.org/core/EnergyUnit - . - . - "The unit of measure for energy"@en . - "Energy unit"@en . -# -# https://saref.etsi.org/core/EventFunction - . - . - _:genid20 . -_:genid20 . -_:genid20 . -_:genid20 "1"^^ . -_:genid20 . - "A function that allows to notify about some relevant activity; e.g., that a certain threshold value has been exceeded or that some object has moved."@en . - "Event function"@en . -# -# https://saref.etsi.org/core/FeatureOfInterest - . - _:genid21 . -_:genid21 . -_:genid21 . -_:genid21 . - _:genid22 . -_:genid22 . -_:genid22 . -_:genid22 . - "A feature of interest represents any real world entity from which a property is measured."@en . - "Feature of interest"@en . -# -# https://saref.etsi.org/core/Function - . - _:genid23 . -_:genid23 . -_:genid23 . -_:genid23 "1"^^ . -_:genid23 . - "The functionality necessary to accomplish the task for which a device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. "@en . - "Function"@en . -# -# https://saref.etsi.org/core/Gas - . - . - "A type of commodity"@en . - "Gas"@en . -# -# https://saref.etsi.org/core/GetCommand - . - . - "A type of command"@en . - "Get command"@en . -# -# https://saref.etsi.org/core/GetCurrentMeterValueCommand - . - . - _:genid24 . -_:genid24 . -_:genid24 . -_:genid24 . - "A type of get command"@en . - "Get current meter value command"@en . -# -# https://saref.etsi.org/core/GetMeterDataCommand - . - . - _:genid25 . -_:genid25 . -_:genid25 . -_:genid25 . - "A type of get command"@en . - "Get meter data command"@en . -# -# https://saref.etsi.org/core/GetMeterHistoryCommand - . - . - _:genid26 . -_:genid26 . -_:genid26 . -_:genid26 . - "A type of get command"@en . - "Get meter history command"@en . -# -# https://saref.etsi.org/core/GetSensingDataCommand - . - . - _:genid27 . -_:genid27 . -_:genid27 . -_:genid27 . - "A type of get command"@en . - "Get sensing data command"@en . -# -# https://saref.etsi.org/core/HVAC - . - . - "Heating, Ventilation and Air Conditioning (HVAC) device that provides indoor environmental comfort. A saref:HVAC is typically used to accomplish saref:Comfort."@en . - "HVAC"@en . -# -# https://saref.etsi.org/core/Humidity - . - . - "A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit"@en . - "Humidity"@en . -# -# https://saref.etsi.org/core/IlluminanceUnit - . - . - "The unit of measure for light"@en . - "Illuminance unit"@en . -# -# https://saref.etsi.org/core/LevelControlFunction - . - . - "An actuating function that allows to do level adjustments of a property in a certain range (e.g., 0%-100%), such as dimming a light in a room or setting the speed of an electric motor. "@en . - "Level control function"@en . -# -# https://saref.etsi.org/core/Light - . - . - "A saref:Property related to some measurements that are characterized by a certain value that is measured in a illuminance unit (lux)"@en . - "Light"@en . -# -# https://saref.etsi.org/core/LightSwitch - . - . - _:genid28 . -_:genid28 . -_:genid28 . -_:genid28 . - _:genid29 . -_:genid29 . -_:genid29 . -_:genid29 . - _:genid30 . -_:genid30 . -_:genid30 . -_:genid30 . - _:genid31 . -_:genid31 . -_:genid31 . -_:genid31 . - "A switch that performs the saref:OnOffFunction, controls the property saref:Light, and can be found in the state saref:OnOffState. It can offer a switch on service. A saref:LightSwitch is typically used to accomplish saref:Lighting."@en . - "Light switch"@en . -# -# https://saref.etsi.org/core/Measurement - . - _:genid32 . -_:genid32 . -_:genid32 . -_:genid32 . - _:genid33 . -_:genid33 . -_:genid33 . -_:genid33 . - _:genid34 . -_:genid34 . -_:genid34 . -_:genid34 . - _:genid35 . -_:genid35 . -_:genid35 . -_:genid35 "1"^^ . -_:genid35 . - _:genid36 . -_:genid36 . -_:genid36 . -_:genid36 "1"^^ . -_:genid36 . - _:genid37 . -_:genid37 . -_:genid37 . -_:genid37 . - _:genid38 . -_:genid38 . -_:genid38 . -_:genid38 "1"^^ . - "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en . - "Measurement"@en . -# -# https://saref.etsi.org/core/Meter - . - . - _:genid39 . -_:genid39 . -_:genid39 . -_:genid39 . - "A device built to accurately detect and display a quantity in a form readable by a human being. Further, a device of category saref:Meter that performs a saref:MeteringFunction."@en . - "Meter"@en . -# -# https://saref.etsi.org/core/MeteringFunction - . - . - _:genid40 . -_:genid40 . -_:genid40 . -_:genid40 . - _:genid41 . -_:genid41 . -_:genid41 . -_:genid41 _:genid42 . -_:genid42 . -_:genid42 _:genid44 . -_:genid44 . -_:genid44 . -_:genid44 _:genid43 . -_:genid43 . -_:genid43 . -_:genid43 . - "A function that allows to get data from a meter, such as current meter reading or instantaneous demand"@en . - "Metering function"@en . -# -# https://saref.etsi.org/core/Motion - . - . - "A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for motion"@en . - "Motion"@en . -# -# https://saref.etsi.org/core/MultiLevelState - . - . - "A type of state"@en . - "Multi level state"@en . -# -# https://saref.etsi.org/core/NotifyCommand - . - . - _:genid45 . -_:genid45 . -_:genid45 . -_:genid45 . - "A type of command"@en . - "Notify command"@en . -# -# https://saref.etsi.org/core/Occupancy - . - . - "A saref:Property related to some measurements that are characterized by a certain value (saref:hasValue property) that is measured in a unit of measure for occupancy"@en . - "Occupancy"@en . -# -# https://saref.etsi.org/core/OffCommand - . - . - _:genid46 . -_:genid46 . -_:genid46 . -_:genid46 . - _:genid47 . -_:genid47 . -_:genid47 . -_:genid47 . - . - "A type of command"@en . - "Off command"@en . -# -# https://saref.etsi.org/core/OffState - . - . - "The state of a device that is Off"@en . - "Off state"@en . -# -# https://saref.etsi.org/core/OnCommand - . - . - _:genid48 . -_:genid48 . -_:genid48 . -_:genid48 . - _:genid49 . -_:genid49 . -_:genid49 . -_:genid49 . - "A type of command"@en . - "On command"@en . -# -# https://saref.etsi.org/core/OnOffFunction - . - . - "An actuating function that allows to switch on and off an actuator"@en . - "On off function"@en . -# -# https://saref.etsi.org/core/OnOffState - . - . - "A type of state"@en . - "On off state"@en . -# -# https://saref.etsi.org/core/OnState - . - . - "The state of a device that is On"@en . - "On state"@en . -# -# https://saref.etsi.org/core/OpenCloseFunction - . - . - "An actuating function that allows to open and close a device"@en . - "Open close function"@en . -# -# https://saref.etsi.org/core/OpenCloseState - . - . - "A type of state"@en . - "Open close state"@en . -# -# https://saref.etsi.org/core/OpenCommand - . - . - _:genid50 . -_:genid50 . -_:genid50 . -_:genid50 . - _:genid51 . -_:genid51 . -_:genid51 . -_:genid51 . - "A type of command"@en . - "Open command"@en . -# -# https://saref.etsi.org/core/OpenState - . - . - "The state of a device that is OPEN "@en . - "Open state"@en . -# -# https://saref.etsi.org/core/PauseCommand - . - . - "A type of command"@en . - "Pause command"@en . -# -# https://saref.etsi.org/core/Power - . - . - "A saref:Property related to some measurements that are characterized by a certain value that is measured in a power unit (such as watt or kilowatt). Further specializations of the saref:Power class can be found in the SAREF4ENER extension, where classes such as PowerMax, PowerMin and PowerExpected are defined."@en . - "Power"@en . -# -# https://saref.etsi.org/core/PowerUnit - . - . - "The unit of measure for power"@en . - "Power unit"@en . -# -# https://saref.etsi.org/core/Pressure - . - . - "A saref:Property related to some measurements that are characterized by a certain value that is measured in a pressure unit (bar or pascal)"@en . - "Pressure"@en . -# -# https://saref.etsi.org/core/PressureUnit - . - . - "The unit of measure for pressure"@en . - "Pressure unit"@en . -# -# https://saref.etsi.org/core/Price - . - . - "A saref:Property crelated to some measurements that are characterized by a certain value that is measured using saref:Currency"@en . - "Price"@en . -# -# https://saref.etsi.org/core/Profile - . - _:genid52 . -_:genid52 . -_:genid52 . -_:genid52 . - _:genid53 . -_:genid53 . -_:genid53 . -_:genid53 . - _:genid54 . -_:genid54 . -_:genid54 . -_:genid54 . - _:genid55 . -_:genid55 . -_:genid55 . -_:genid55 _:genid56 . -_:genid56 . -_:genid56 _:genid58 . -_:genid58 . -_:genid58 . -_:genid58 _:genid57 . -_:genid57 . -_:genid57 . -_:genid57 . - "A specification associated to a device to collect information about a certain Property (e.g., Energy) for optimizing its usage in the home, office or building in which the device is located. This specification is about a certain Property (saref:isAbout), can be calculated over a time span (saref:hasTime) and can be associated to some costs (saref:hasPrice). An example is the Power Profile defined in the SAREF4ENER extension that can be associated to a device for optimizing the Energy efficiency in the home, office or building in which the device is located."@en . - "Profile"@en . -# -# https://saref.etsi.org/core/Property - . - _:genid59 . -_:genid59 . -_:genid59 . -_:genid59 . - _:genid60 . -_:genid60 . -_:genid60 . -_:genid60 . - _:genid61 . -_:genid61 . -_:genid61 . -_:genid61 . - _:genid62 . -_:genid62 . -_:genid62 . -_:genid62 . - "A quality of a feature of interest that can be measured; an aspect of a feature of interest that is intrinsic to and cannot exist without the feature"@en . - "Property"@en . -# -# https://saref.etsi.org/core/SensingFunction - . - . - _:genid63 . -_:genid63 . -_:genid63 . -_:genid63 . - _:genid64 . -_:genid64 . -_:genid64 . -_:genid64 . - "A function that allows to transmit data from sensors, such as measurement values (e.g., temperature) or sensing data (e.g., occupancy)"@en . - "Sensing function"@en . -# -# https://saref.etsi.org/core/Sensor - . - . - _:genid65 . -_:genid65 . -_:genid65 . -_:genid65 . - "A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. Further, a device of category saref:Sensor that performs a saref:SensingFunction."@en . - "Sensor"@en . -# -# https://saref.etsi.org/core/Service - . - _:genid66 . -_:genid66 . -_:genid66 . -_:genid66 "1"^^ . -_:genid66 . - _:genid67 . -_:genid67 . -_:genid67 . -_:genid67 "1"^^ . -_:genid67 . - "A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service and the function(s) to be represented."@en . - "Service"@en . -# -# https://saref.etsi.org/core/SetAbsoluteLevelCommand - . - . - "A type of set level command"@en . - "Set absolute level command"@en . -# -# https://saref.etsi.org/core/SetLevelCommand - . - . - _:genid68 . -_:genid68 . -_:genid68 . -_:genid68 . - _:genid69 . -_:genid69 . -_:genid69 . -_:genid69 . - "A type of command"@en . - "Set level command"@en . -# -# https://saref.etsi.org/core/SetRelativeLevelCommand - . - . - "A type of set level command"@en . - "Set relative level command"@en . -# -# https://saref.etsi.org/core/Smoke - . - . - "A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for smoke"@en . - "Smoke"@en . -# -# https://saref.etsi.org/core/SmokeSensor - . - . - _:genid70 . -_:genid70 . -_:genid70 . -_:genid70 . - _:genid71 . -_:genid71 . -_:genid71 . -_:genid71 . - _:genid72 . -_:genid72 . -_:genid72 . -_:genid72 . - "A sensor that performs the saref:SensingFunction and the saref:EventFunction, and is used for the purpose of sensing a property of type saref:Smoke. A saref:SmokeSensor is typically used to saref:accomplish saref:Safety."@en . - "Smoke sensor"@en . -# -# https://saref.etsi.org/core/StartCommand - . - . - _:genid73 . -_:genid73 . -_:genid73 . -_:genid73 . - _:genid74 . -_:genid74 . -_:genid74 . -_:genid74 . - . - "A type of command"@en . - "Start command"@en . -# -# https://saref.etsi.org/core/StartState - . - . - "The state of a device that is STARTED"@en . - "Start state"@en . -# -# https://saref.etsi.org/core/StartStopFunction - . - . - "An actuating function that allows to start and stop a device"@en . - "Start stop function"@en . -# -# https://saref.etsi.org/core/StartStopState - . - . - "A type of state"@en . - "Start stop state"@en . -# -# https://saref.etsi.org/core/State - . - "The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended."@en . - "State"@en . -# -# https://saref.etsi.org/core/StepDownCommand - . - . - _:genid75 . -_:genid75 . -_:genid75 . -_:genid75 . - _:genid76 . -_:genid76 . -_:genid76 . -_:genid76 . - . - "A type of command"@en . - "Step down command"@en . -# -# https://saref.etsi.org/core/StepUpCommand - . - . - _:genid77 . -_:genid77 . -_:genid77 . -_:genid77 . - _:genid78 . -_:genid78 . -_:genid78 . -_:genid78 . - "A type of command"@en . - "Step up command"@en . -# -# https://saref.etsi.org/core/StopCommand - . - . - _:genid79 . -_:genid79 . -_:genid79 . -_:genid79 . - _:genid80 . -_:genid80 . -_:genid80 . -_:genid80 . - "A type of command"@en . - "Stop command"@en . -# -# https://saref.etsi.org/core/StopState - . - . - "The state of a device that is STOPPED"@en . - "Stop state"@en . -# -# https://saref.etsi.org/core/Switch - . - . - "A device of category saref:Actuator that performs an actuating function of type saref:OnOffFunction or saref:OpenCloseFunction"@en . - "Switch"@en . -# -# https://saref.etsi.org/core/SwitchOnService - . - . - _:genid81 . -_:genid81 . -_:genid81 . -_:genid81 . - _:genid82 . -_:genid82 . -_:genid82 . -_:genid82 . - "A type of service that represents an on/off function to the network"@en . - "Switch on service"@en . -# -# https://saref.etsi.org/core/Task - . - "The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended. Tasks can be accomplished by devices (saref:isAccomplishedBy)."@en . - "Task"@en . -# -# https://saref.etsi.org/core/Temperature - . - . - "A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin)"@en . - "Temperature"@en . -# -# https://saref.etsi.org/core/TemperatureSensor - . - . - _:genid83 . -_:genid83 . -_:genid83 . -_:genid83 . - _:genid84 . -_:genid84 . -_:genid84 . -_:genid84 . - "A sensor that is used for the purpose of sensing a property of type saref:Temperature. A saref:TemperatureSensor is typically used to saref:accomplish saref:Comfort."@en . - "Temperature sensor"@en . -# -# https://saref.etsi.org/core/TemperatureUnit - . - . - "The unit of measure for temperature"@en . - "Temperature unit"@en . -# -# https://saref.etsi.org/core/Time - . - "A class that allows to specify the time concept."@en . - "Time"@en . -# -# https://saref.etsi.org/core/ToggleCommand - . - . - _:genid85 . -_:genid85 . -_:genid85 . -_:genid85 . - "A type of command"@en . - "Toggle command"@en . -# -# https://saref.etsi.org/core/UnitOfMeasure - . - "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM)."@en . - "Unit of measure"@en . -# -# https://saref.etsi.org/core/Water - . - . - "A type of commodity"@en . - "Water"@en . -# -# -# -# ################################################################# -# # -# # Individuals -# # -# ################################################################# -# -# -# https://saref.etsi.org/core/Cleaning - . - . - "A type of task for which a device is designed"@en . - "Cleaning"@en . -# -# https://saref.etsi.org/core/Comfort - . - . - "A type of task for which a device is designed"@en . - "Comfort"@en . -# -# https://saref.etsi.org/core/Drying - . - . - "A type of task for which a device is designed"@en . - "Drying"@en . -# -# https://saref.etsi.org/core/EnergyEfficiency - . - . - "A type of task for which a device is designed"@en . - "EnergyEfficiency"@en . -# -# https://saref.etsi.org/core/Entertainment - . - . - "A type of task for which a device is designed"@en . - "Entertainment"@en . -# -# https://saref.etsi.org/core/Lighting - . - . - "A type of task for which a device is designed"@en . - "Lighting"@en . -# -# https://saref.etsi.org/core/MeterReading - . - . - "A type of task for which a device is designed"@en . - "Meter reading"@en . -# -# https://saref.etsi.org/core/Safety - . - . - "A type of task for which a device is designed"@en . - "Safety"@en . -# -# https://saref.etsi.org/core/Washing - . - . - "A type of task for which a device is designed"@en . - "Washing"@en . -# -# https://saref.etsi.org/core/WellBeing - . - . - "A type of task for which a device is designed"@en . - "WellBeing"@en . -# -# Generated by the OWL API (version 5.1.9) https://github.com/owlcs/owlapi/ diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/core.ttl b/src/main/resources/saref-portal-generator/public/core/v3.1.1/core.ttl deleted file mode 100644 index e0a0bdb..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/core.ttl +++ /dev/null @@ -1,1374 +0,0 @@ -@prefix : . -@prefix owl: . -@prefix rdf: . -@prefix xml: . -@prefix xsd: . -@prefix rdfs: . -@base . - - rdf:type owl:Ontology ; - , - , - , - ; - "The Smart Applications REFerence ontology (SAREF) is intended to enable interoperability between solutions from different providers and among various activity sectors in the Internet of Things (IoT), thus contributing to the development of the global digital market."@en ; - "2020-02-11"^^xsd:date ; - ; - ; - "SAREF: the Smart Applications REFerence ontology"@en ; - "saref" ; - "https://saref.etsi.org/core/"^^xsd:anyURI ; - rdfs:comment """Information about changes compared to version 1.1.1: - - The classes and properties related to how to represent devices in building spaces (such as the saref:BuildingSpace class, saref:BuildingObject class and saref:isLocatedIn property) have been removed from SAREF and incorporated into the SAREF4BLDG extension related to buildings, including the reuse of the W3C� WGS84 geo positioning vocabulary. - - The saref:DeviceCategory and saref:FunctionCategory classes have been removed. Instead, the hierarchy of device categories has been implemented directly as subclasses of the saref:Device class. - - The information specific for energy efficiency has been moved to the SAREF4ENER extension. For example, the saref:Profile class has been redefined to accommodate only the properties that are general enough for any type of profile, not only for energy and power. Details on how to specifically model a power profile can be found in the SAREF4ENER extension. - - The subclasses of the saref:Energy class have been removed (i.e., Average Energy, Maximum Energy, Minimum Energy, Total Energy, HVAC Energy, Hot Water Energy and Lighting Energy). - - The saref:Property class has been split into two classes (saref:Property and saref:Measurement), as it is done in the SAREF4ENVI extension, in order to properly accommodate the distinction between the concept of property (an observable quality of something) and the concept of measurement (a concrete value observed for a property). - - Too restrictive cardinality restrictions have been revised, sometimes making them optional rather than mandatory (better to make properties mandatory in the extensions that specialize SAREF for a specific purpose, rather than restricting SAREF, whose purpose is more general). For example, definitions of units of measurement using an enumeration (owl:oneOf) were too restrictive because they did not allow using other units than those enumerated. Therefore, the individuals of each class are still there, but the owl:oneOf enumeration has been removed. - - The saref:UnitOfMeasure subclasses use individuals from the OM ontology for unit of measures, but this is not the only solution. It has been clarified in the comments that the OM ontology is an example, but other ontologies can be used. - - The global restrictions (rdfs:domain and rdfs:range) in object properties have been completely removed not to hinder interoperability. Object properties are now only restricted locally in the classes. - - The subclasses of saref:Task have been transormed in individuals. - - The saref:hasTask property has been removed from the saref:Profile class to resolve an ambiguity with the saref:Task class.""" , - """Information about changes compared to version 2.1.1: - - Added the saref:FeatureOfInterest class and the properties used to relate it to saref:Measurement (saref:hasMeasurement and saref:isMeasurementOf) and to saref:Property (saref:hasProperty and saref:isPropertyOf). - - Added the saref:measurementMadeBy property as inverse of saref:makesMeasurement. - - The saref:relatesToProperty and saref:relatesToMeasurement properties are now inverse of each other. - - The range of saref:hasValue, which was defined as xsd:float, has been removed to support other datatypes for measurements. - - The range of datatype properties, which was defined as xsd:string, has been removed in order to support strings with language tags (rdf:langString). This affects saref:hasDescription, saref:hasManufacturer, saref:hasModel and saref:hasName, which now have implicitly a range of rdfs:Literal. - - The saref:hasName property has been removed and the use of rdfs:label is recommended. - - The saref:hasDescription property has been deprecated and the use of rdfs:comment is recommended. - - Too restrictive restrictions have been removed and in some cases the ontology documentation has been updated to reflect this: a saref:Command having at most one saref:hasDescription; a saref:Task being accomplished by at least one saref:Device; a saref:Device having a typical consumption of only energy or power; a saref:Commodity being measured in units of measure; restrictions on the values of saref:accomplishes that only covered specific use cases; universal restrictions on the saref:actsUpon property have been changed to existential ones; restrictions on the commands that a saref:Function may have, since there could be others not included in the defined enumerations; restrictive documentation of saref:EventFunction and saref:SmokeSensor. - - Bugs have been fixed: some devices (saref:DoorSwitch, saref:EnergyMeter, saref:LigthSwitch, saref:SmokeSensor, and saref:TemperatureSensor) were defined as subclass of a device and at the same time as consisting of such device; a saref:LightSwitch controls light and does not measure light, since it is an actuator; incorrect documentation of saref:OnState and saref:OffState. - - The saref:BuildingRelated, saref:EnergyRelated and saref:FunctionRelated classes have been removed, since the different extensions already classify the device types. - - The instances of the subclasses of saref:Command have been removed, since they represent examples. - - The instances of saref:UnitOfMeasure have been moved to examples. - - The classes related to the SAREF4ENER extension have been removed: saref:Generator, saref:Storage, saref:Load and saref:EnergyMeter. - - Some instances of saref:Device have been moved to examples: saref:WashingMachine, saref:LightingDevice, saref:MicroRenewable, saref:Multimedia, and saref:Network. - - Added domain and range axioms wherever the definition of a property unambiguously identifies the domain or the range of the property. - - The OWL Time ontology is not imported anymore. - - The documentation of some ontology terms has been updated for clarification. - - Language tags have been added to all labels and comments. -""" ; - owl:versionInfo "3.1.1" . - -################################################################# -# Annotation properties -################################################################# - -### http://purl.org/dc/terms/contributor - rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/description - rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/issued - rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/license - rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/publisher - rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/title - rdf:type owl:AnnotationProperty . - - -### http://purl.org/vocab/vann/preferredNamespacePrefix - rdf:type owl:AnnotationProperty . - - -### http://purl.org/vocab/vann/preferredNamespaceUri - rdf:type owl:AnnotationProperty . - - -################################################################# -# Object Properties -################################################################# - -### https://saref.etsi.org/core/accomplishes -:accomplishes rdf:type owl:ObjectProperty ; - owl:inverseOf :isAccomplishedBy ; - rdfs:range :Task ; - rdfs:comment "A relationship between a certain entity (e.g., a device) and the task it accomplishes"@en ; - rdfs:label "accomplishes"@en . - - -### https://saref.etsi.org/core/actsUpon -:actsUpon rdf:type owl:ObjectProperty ; - rdfs:domain :Command ; - rdfs:range :State ; - rdfs:comment "A relationship between a command and a state"@en ; - rdfs:label "acts upon"@en . - - -### https://saref.etsi.org/core/consistsOf -:consistsOf rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship indicating a composite entity that consists of other entities (e.g., a temperature/humidity sensor that consists of a temperature sensor and a humidity sensor)"@en ; - rdfs:label "consists of"@en . - - -### https://saref.etsi.org/core/controlsProperty -:controlsProperty rdf:type owl:ObjectProperty ; - rdfs:domain :Device ; - rdfs:range :Property ; - rdfs:comment "A relationship specifying the property that can be controlled by a certain device"@en ; - rdfs:label "controls property"@en . - - -### https://saref.etsi.org/core/hasCommand -:hasCommand rdf:type owl:ObjectProperty ; - owl:inverseOf :isCommandOf ; - rdfs:domain :Function ; - rdfs:range :Command ; - rdfs:comment "A relationship between a function and a command"@en ; - rdfs:label "has command"@en . - - -### https://saref.etsi.org/core/hasFunction -:hasFunction rdf:type owl:ObjectProperty ; - rdfs:domain :Device ; - rdfs:range :Function ; - rdfs:comment "A relationship identifying the function of a device"@en ; - rdfs:label "has function"@en . - - -### https://saref.etsi.org/core/hasMeasurement -:hasMeasurement rdf:type owl:ObjectProperty ; - owl:inverseOf :isMeasurementOf ; - rdfs:domain :FeatureOfInterest ; - rdfs:range :Measurement ; - rdfs:comment "A relationship between a feature of interest and a measurement about it"@en ; - rdfs:label "has measurement"@en . - - -### https://saref.etsi.org/core/hasMeterReading -:hasMeterReading rdf:type owl:ObjectProperty ; - rdfs:domain :MeteringFunction ; - rdfs:range :Measurement ; - rdfs:comment "A relationship between a metering function and the measurement of the reading"@en ; - rdfs:label "has meter reading"@en . - - -### https://saref.etsi.org/core/hasMeterReadingType -:hasMeterReadingType rdf:type owl:ObjectProperty ; - rdfs:domain :MeteringFunction ; - rdfs:range :Property ; - rdfs:comment "A relationship identifying the reading type of a metering function (e.g., Water, Gas, Pressure , Energy , Power, etc.)"@en ; - rdfs:label "has meter reading type"@en . - - -### https://saref.etsi.org/core/hasPrice -:hasPrice rdf:type owl:ObjectProperty ; - rdfs:range :Price ; - rdfs:comment "A relationship indentifying the price associated to an entity"@en ; - rdfs:label "has price"@en . - - -### https://saref.etsi.org/core/hasProfile -:hasProfile rdf:type owl:ObjectProperty ; - rdfs:domain :Device ; - rdfs:range :Profile ; - rdfs:comment "A relationship associating a profile to a certain device"@en ; - rdfs:label "has profile"@en . - - -### https://saref.etsi.org/core/hasProperty -:hasProperty rdf:type owl:ObjectProperty ; - owl:inverseOf :isPropertyOf ; - rdfs:domain :FeatureOfInterest ; - rdfs:range :Property ; - rdfs:comment "A relationship between a feature of interest and a property of that feature"@en ; - rdfs:label "has property"@en . - - -### https://saref.etsi.org/core/hasSensingRange -:hasSensingRange rdf:type owl:ObjectProperty ; - rdfs:domain :SensingFunction ; - rdfs:range :Measurement ; - rdfs:comment "A relationship between a sensing function and a measurement identifying the range of a sensor detection"@en ; - rdfs:label "has sensing range"@en . - - -### https://saref.etsi.org/core/hasSensorType -:hasSensorType rdf:type owl:ObjectProperty ; - rdfs:domain :SensingFunction ; - rdfs:range :Property ; - rdfs:comment "A relationship identifying the sensing type of a sensor detection (i.e., Temperature, Occupancy, Humidity, Motion , Smoke, Pressure, etc.) "@en ; - rdfs:label "has sensor type"@en . - - -### https://saref.etsi.org/core/hasState -:hasState rdf:type owl:ObjectProperty ; - rdfs:domain :Device ; - rdfs:range :State ; - rdfs:comment "A relationship identifying the type of state of a device"@en ; - rdfs:label "has state"@en . - - -### https://saref.etsi.org/core/hasThresholdMeasurement -:hasThresholdMeasurement rdf:type owl:ObjectProperty ; - rdfs:domain :EventFunction ; - rdfs:range :Measurement ; - rdfs:comment "A relationship associated with an event function to notify that a certain threshold measurement has been exceeded"@en ; - rdfs:label "has threshold measurement"@en . - - -### https://saref.etsi.org/core/hasTime -:hasTime rdf:type owl:ObjectProperty ; - rdfs:range :Time ; - rdfs:comment "A relationship to associate time information to an entity"@en ; - rdfs:label "has time"@en . - - -### https://saref.etsi.org/core/hasTypicalConsumption -:hasTypicalConsumption rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying the typical (energy or power) consumption of a device"@en ; - rdfs:label "has typical consumption"@en . - - -### https://saref.etsi.org/core/isAbout -:isAbout rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying what an entity, such as a profile, is about"@en ; - rdfs:label "isAbout"@en . - - -### https://saref.etsi.org/core/isAccomplishedBy -:isAccomplishedBy rdf:type owl:ObjectProperty ; - rdfs:domain :Task ; - rdfs:comment "A relationship identifying an entity (e.g., a device) that can accomplish a task."@en ; - rdfs:label "is accomplished by"@en . - - -### https://saref.etsi.org/core/isCommandOf -:isCommandOf rdf:type owl:ObjectProperty ; - rdfs:domain :Command ; - rdfs:range :Function ; - rdfs:comment "A relationship between a command and a function."@en ; - rdfs:label "is command of"@en . - - -### https://saref.etsi.org/core/isControlledByDevice -:isControlledByDevice rdf:type owl:ObjectProperty ; - rdfs:domain :Property ; - rdfs:range :Device ; - rdfs:comment "A relationship specifying the devices that can control a certain property"@en ; - rdfs:label "is controlled by device"@en . - - -### https://saref.etsi.org/core/isMeasuredByDevice -:isMeasuredByDevice rdf:type owl:ObjectProperty ; - rdfs:domain :Property ; - rdfs:range :Device ; - rdfs:comment "A relationship specifying the devices that can measure a certain property"@en ; - rdfs:label "is measured by device"@en . - - -### https://saref.etsi.org/core/isMeasuredIn -:isMeasuredIn rdf:type owl:ObjectProperty ; - rdfs:domain :Measurement ; - rdfs:range :UnitOfMeasure ; - rdfs:comment "A relationship identifying the unit of measure used for a certain entity."@en ; - rdfs:label "is measured in"@en . - - -### https://saref.etsi.org/core/isMeasurementOf -:isMeasurementOf rdf:type owl:ObjectProperty ; - rdfs:domain :Measurement ; - rdfs:range :FeatureOfInterest ; - rdfs:comment "A relationship between a measurement and the feature of interest whose quality was measured"@en ; - rdfs:label "isMeasurementOf"@en . - - -### https://saref.etsi.org/core/isOfferedBy -:isOfferedBy rdf:type owl:ObjectProperty ; - owl:inverseOf :offers ; - rdfs:domain :Service ; - rdfs:range :Device ; - rdfs:comment "A relationship between a service and a device that offers the service"@en ; - rdfs:label "is offered by"@en . - - -### https://saref.etsi.org/core/isPropertyOf -:isPropertyOf rdf:type owl:ObjectProperty ; - rdfs:domain :Property ; - rdfs:range :FeatureOfInterest ; - rdfs:comment "A relationship between a property and the feature of interest it belongs to"@en ; - rdfs:label "is property of"@en . - - -### https://saref.etsi.org/core/isUsedFor -:isUsedFor rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship specifying the commodity for which a device is used for"@en ; - rdfs:label "is used for"@en . - - -### https://saref.etsi.org/core/makesMeasurement -:makesMeasurement rdf:type owl:ObjectProperty ; - owl:inverseOf :measurementMadeBy ; - rdfs:domain :Device ; - rdfs:range :Measurement ; - rdfs:comment "A relation between a device and the measurements it makes. Such measurement will link together the value of the measurement, its unit of measure and the property to which it relates."@en ; - rdfs:label "makes measurement"@en . - - -### https://saref.etsi.org/core/measurementMadeBy -:measurementMadeBy rdf:type owl:ObjectProperty ; - rdfs:domain :Measurement ; - rdfs:range :Device ; - rdfs:comment "A relation between a measurement and the device that made it."@en ; - rdfs:label "measurement made by"@en . - - -### https://saref.etsi.org/core/measuresProperty -:measuresProperty rdf:type owl:ObjectProperty ; - rdfs:domain :Device ; - rdfs:range :Property ; - rdfs:comment "A relationship specifying the property that can be measured by a certain device"@en ; - rdfs:label "measures property"@en . - - -### https://saref.etsi.org/core/offers -:offers rdf:type owl:ObjectProperty ; - rdfs:domain :Device ; - rdfs:range :Service ; - rdfs:comment "A relationship between a device and a service"@en ; - rdfs:label "offers"@en . - - -### https://saref.etsi.org/core/relatesToMeasurement -:relatesToMeasurement rdf:type owl:ObjectProperty ; - owl:inverseOf :relatesToProperty ; - rdfs:domain :Property ; - rdfs:range :Measurement ; - rdfs:comment "A relationship between a property and the measurements it relates to"@en ; - rdfs:label "relates to measurement"@en . - - -### https://saref.etsi.org/core/relatesToProperty -:relatesToProperty rdf:type owl:ObjectProperty ; - rdfs:domain :Measurement ; - rdfs:range :Property ; - rdfs:comment "A relationship between a measurement and the property it relates to"@en ; - rdfs:label "relates to property"@en . - - -### https://saref.etsi.org/core/represents -:represents rdf:type owl:ObjectProperty ; - rdfs:domain :Service ; - rdfs:range :Function ; - rdfs:comment "A relationship between a service and a function."@en ; - rdfs:label "represents"@en . - - -################################################################# -# Data properties -################################################################# - -### https://saref.etsi.org/core/hasDescription -:hasDescription rdf:type owl:DatatypeProperty ; - rdfs:comment "A relationship providing a description of an entity (e.g., device). The value is expected to be a string or a string with language tag."@en , - "DEPRECATED: The use of rdfs:comment is recommended instead."@en ; - rdfs:label "has description"@en ; - owl:deprecated "true"^^xsd:boolean . - - -### https://saref.etsi.org/core/hasManufacturer -:hasManufacturer rdf:type owl:DatatypeProperty ; - rdfs:comment "A relationship identifying the manufacturer of an entity (e.g., device). The value is expected to be a string or a string with language tag."@en ; - rdfs:label "has manufacturer"@en . - - -### https://saref.etsi.org/core/hasModel -:hasModel rdf:type owl:DatatypeProperty ; - rdfs:comment "A relationship identifying the model of an entity (e.g., device). The value is expected to be a string or a string with language tag."@en ; - rdfs:label "has model"@en . - - -### https://saref.etsi.org/core/hasTimestamp -:hasTimestamp rdf:type owl:DatatypeProperty ; - rdfs:comment "A relationship stating the timestamp of an entity (e.g. a measurement)."@en ; - rdfs:label "has timestamp"@en . - - -### https://saref.etsi.org/core/hasValue -:hasValue rdf:type owl:DatatypeProperty ; - rdfs:comment "A relationship defining the value of a certain property, e.g., energy or power. Note that, even if numeric values are expected to enable reasoning, measurement values could use other datatypes."@en ; - rdfs:label "has value"@en . - - -################################################################# -# Classes -################################################################# - -### https://saref.etsi.org/core/ActuatingFunction -:ActuatingFunction rdf:type owl:Class ; - rdfs:subClassOf :Function ; - rdfs:comment "A function that allows to transmit data to actuators, such as level settings (e.g., temperature) or binary switching (e.g., open/close, on/off)"@en ; - rdfs:label "Actuating function"@en . - - -### https://saref.etsi.org/core/Actuator -:Actuator rdf:type owl:Class ; - rdfs:subClassOf :Device , - [ rdf:type owl:Restriction ; - owl:onProperty :hasFunction ; - owl:someValuesFrom :ActuatingFunction - ] ; - rdfs:comment "A device responsible for moving or controlling a mechanism or system by performing an actuating function"@en ; - rdfs:label "Actuator"@en . - - -### https://saref.etsi.org/core/Appliance -:Appliance rdf:type owl:Class ; - rdfs:subClassOf :Device ; - rdfs:comment "An electrical/mechanical machine that accomplish some household functions, such as cleaning or cooking"@en ; - rdfs:label "Appliance"@en . - - -### https://saref.etsi.org/core/CloseCommand -:CloseCommand rdf:type owl:Class ; - rdfs:subClassOf :Command , - [ rdf:type owl:Restriction ; - owl:onProperty :actsUpon ; - owl:someValuesFrom :OpenCloseState - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :isCommandOf ; - owl:allValuesFrom :OpenCloseFunction - ] ; - owl:disjointWith :OpenCommand ; - rdfs:comment "A type of command"@en ; - rdfs:label "Close command"@en . - - -### https://saref.etsi.org/core/CloseState -:CloseState rdf:type owl:Class ; - rdfs:subClassOf :OpenCloseState ; - rdfs:comment "The state of a device that is CLOSE"@en ; - rdfs:label "Close state"@en . - - -### https://saref.etsi.org/core/Coal -:Coal rdf:type owl:Class ; - rdfs:subClassOf :Commodity ; - rdfs:comment "A type of commodity"@en ; - rdfs:label "Coal"@en . - - -### https://saref.etsi.org/core/Command -:Command rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty :actsUpon ; - owl:allValuesFrom :State - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :isCommandOf ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass :Function - ] ; - rdfs:comment "A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended."@en ; - rdfs:label "Command"@en . - - -### https://saref.etsi.org/core/Commodity -:Commodity rdf:type owl:Class ; - rdfs:comment "A marketable item for which there is demand, but which is supplied without qualitative differentiation across a market. SAREF refers to energy commodities such as electricity, gas, coal and oil. "@en ; - rdfs:label "Commodity"@en . - - -### https://saref.etsi.org/core/Currency -:Currency rdf:type owl:Class ; - rdfs:subClassOf :UnitOfMeasure ; - rdfs:comment "The class of units of measure for price"@en ; - rdfs:label "Currency"@en . - - -### https://saref.etsi.org/core/Device -:Device rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty :consistsOf ; - owl:allValuesFrom :Device - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :controlsProperty ; - owl:allValuesFrom :Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasProfile ; - owl:allValuesFrom :Profile - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasState ; - owl:allValuesFrom :State - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :isUsedFor ; - owl:allValuesFrom :Commodity - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :makesMeasurement ; - owl:allValuesFrom :Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :measuresProperty ; - owl:allValuesFrom :Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :offers ; - owl:allValuesFrom :Service - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :accomplishes ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass :Task - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasFunction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass :Function - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasManufacturer ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasModel ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:comment "A tangible object designed to accomplish a particular task. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function."@en ; - rdfs:label "Device"@en . - - -### https://saref.etsi.org/core/DoorSwitch -:DoorSwitch rdf:type owl:Class ; - rdfs:subClassOf :Switch , - [ rdf:type owl:Restriction ; - owl:onProperty :hasFunction ; - owl:someValuesFrom :OpenCloseFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasState ; - owl:someValuesFrom :OpenCloseState - ] ; - rdfs:comment "A switch that performs the saref:OpenCloseFunction, is used for controlling a door, and can be found in the state saref:OpenCloseState. A saref:DoorSwitch is typically used to accomplish saref:Safety."@en ; - rdfs:label "Door switch"@en . - - -### https://saref.etsi.org/core/Electricity -:Electricity rdf:type owl:Class ; - rdfs:subClassOf :Commodity ; - rdfs:comment "A type of commodity"@en ; - rdfs:label "Electricity"@en . - - -### https://saref.etsi.org/core/Energy -:Energy rdf:type owl:Class ; - rdfs:subClassOf :Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value measured in an energy unit (such as Kilowatt_Hour or Watt_hour). Furter specializations of the saref:Energy class can be found in the SAREF4ENER extension, where classes such as EnergyMax, EnergyMin and EnergyExpected are defined. "@en ; - rdfs:label "Energy"@en . - - -### https://saref.etsi.org/core/EnergyUnit -:EnergyUnit rdf:type owl:Class ; - rdfs:subClassOf :UnitOfMeasure ; - rdfs:comment "The unit of measure for energy"@en ; - rdfs:label "Energy unit"@en . - - -### https://saref.etsi.org/core/EventFunction -:EventFunction rdf:type owl:Class ; - rdfs:subClassOf :Function , - [ rdf:type owl:Restriction ; - owl:onProperty :hasThresholdMeasurement ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass :Measurement - ] ; - rdfs:comment "A function that allows to notify about some relevant activity; e.g., that a certain threshold value has been exceeded or that some object has moved."@en ; - rdfs:label "Event function"@en . - - -### https://saref.etsi.org/core/FeatureOfInterest -:FeatureOfInterest rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty :hasMeasurement ; - owl:allValuesFrom :Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasProperty ; - owl:allValuesFrom :Property - ] ; - rdfs:comment "A feature of interest represents any real world entity from which a property is measured."@en ; - rdfs:label "Feature of interest"@en . - - -### https://saref.etsi.org/core/Function -:Function rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty :hasCommand ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass :Command - ] ; - rdfs:comment "The functionality necessary to accomplish the task for which a device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. "@en ; - rdfs:label "Function"@en . - - -### https://saref.etsi.org/core/Gas -:Gas rdf:type owl:Class ; - rdfs:subClassOf :Commodity ; - rdfs:comment "A type of commodity"@en ; - rdfs:label "Gas"@en . - - -### https://saref.etsi.org/core/GetCommand -:GetCommand rdf:type owl:Class ; - rdfs:subClassOf :Command ; - rdfs:comment "A type of command"@en ; - rdfs:label "Get command"@en . - - -### https://saref.etsi.org/core/GetCurrentMeterValueCommand -:GetCurrentMeterValueCommand rdf:type owl:Class ; - rdfs:subClassOf :GetCommand , - [ rdf:type owl:Restriction ; - owl:onProperty :isCommandOf ; - owl:allValuesFrom :MeteringFunction - ] ; - rdfs:comment "A type of get command"@en ; - rdfs:label "Get current meter value command"@en . - - -### https://saref.etsi.org/core/GetMeterDataCommand -:GetMeterDataCommand rdf:type owl:Class ; - rdfs:subClassOf :GetCommand , - [ rdf:type owl:Restriction ; - owl:onProperty :isCommandOf ; - owl:allValuesFrom :MeteringFunction - ] ; - rdfs:comment "A type of get command"@en ; - rdfs:label "Get meter data command"@en . - - -### https://saref.etsi.org/core/GetMeterHistoryCommand -:GetMeterHistoryCommand rdf:type owl:Class ; - rdfs:subClassOf :GetCommand , - [ rdf:type owl:Restriction ; - owl:onProperty :isCommandOf ; - owl:allValuesFrom :MeteringFunction - ] ; - rdfs:comment "A type of get command"@en ; - rdfs:label "Get meter history command"@en . - - -### https://saref.etsi.org/core/GetSensingDataCommand -:GetSensingDataCommand rdf:type owl:Class ; - rdfs:subClassOf :GetCommand , - [ rdf:type owl:Restriction ; - owl:onProperty :isCommandOf ; - owl:allValuesFrom :SensingFunction - ] ; - rdfs:comment "A type of get command"@en ; - rdfs:label "Get sensing data command"@en . - - -### https://saref.etsi.org/core/HVAC -:HVAC rdf:type owl:Class ; - rdfs:subClassOf :Device ; - rdfs:comment "Heating, Ventilation and Air Conditioning (HVAC) device that provides indoor environmental comfort. A saref:HVAC is typically used to accomplish saref:Comfort."@en ; - rdfs:label "HVAC"@en . - - -### https://saref.etsi.org/core/Humidity -:Humidity rdf:type owl:Class ; - rdfs:subClassOf :Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit"@en ; - rdfs:label "Humidity"@en . - - -### https://saref.etsi.org/core/IlluminanceUnit -:IlluminanceUnit rdf:type owl:Class ; - rdfs:subClassOf :UnitOfMeasure ; - rdfs:comment "The unit of measure for light"@en ; - rdfs:label "Illuminance unit"@en . - - -### https://saref.etsi.org/core/LevelControlFunction -:LevelControlFunction rdf:type owl:Class ; - rdfs:subClassOf :ActuatingFunction ; - rdfs:comment "An actuating function that allows to do level adjustments of a property in a certain range (e.g., 0%-100%), such as dimming a light in a room or setting the speed of an electric motor. "@en ; - rdfs:label "Level control function"@en . - - -### https://saref.etsi.org/core/Light -:Light rdf:type owl:Class ; - rdfs:subClassOf :Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a illuminance unit (lux)"@en ; - rdfs:label "Light"@en . - - -### https://saref.etsi.org/core/LightSwitch -:LightSwitch rdf:type owl:Class ; - rdfs:subClassOf :Switch , - [ rdf:type owl:Restriction ; - owl:onProperty :controlsProperty ; - owl:someValuesFrom :Light - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasFunction ; - owl:someValuesFrom :OnOffFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasState ; - owl:someValuesFrom :OnOffState - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :offers ; - owl:someValuesFrom :SwitchOnService - ] ; - rdfs:comment "A switch that performs the saref:OnOffFunction, controls the property saref:Light, and can be found in the state saref:OnOffState. It can offer a switch on service. A saref:LightSwitch is typically used to accomplish saref:Lighting."@en ; - rdfs:label "Light switch"@en . - - -### https://saref.etsi.org/core/Measurement -:Measurement rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty :isMeasuredIn ; - owl:allValuesFrom :UnitOfMeasure - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :isMeasurementOf ; - owl:allValuesFrom :FeatureOfInterest - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :relatesToProperty ; - owl:allValuesFrom :Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass :UnitOfMeasure - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass :Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasTimestamp ; - owl:allValuesFrom xsd:dateTime - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasValue ; - owl:cardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Measurement"@en . - - -### https://saref.etsi.org/core/Meter -:Meter rdf:type owl:Class ; - rdfs:subClassOf :Device , - [ rdf:type owl:Restriction ; - owl:onProperty :hasFunction ; - owl:someValuesFrom :MeteringFunction - ] ; - rdfs:comment "A device built to accurately detect and display a quantity in a form readable by a human being. Further, a device of category saref:Meter that performs a saref:MeteringFunction."@en ; - rdfs:label "Meter"@en . - - -### https://saref.etsi.org/core/MeteringFunction -:MeteringFunction rdf:type owl:Class ; - rdfs:subClassOf :Function , - [ rdf:type owl:Restriction ; - owl:onProperty :hasMeterReading ; - owl:allValuesFrom :Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasMeterReadingType ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( :Commodity - :Property - ) - ] - ] ; - rdfs:comment "A function that allows to get data from a meter, such as current meter reading or instantaneous demand"@en ; - rdfs:label "Metering function"@en . - - -### https://saref.etsi.org/core/Motion -:Motion rdf:type owl:Class ; - rdfs:subClassOf :Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for motion"@en ; - rdfs:label "Motion"@en . - - -### https://saref.etsi.org/core/MultiLevelState -:MultiLevelState rdf:type owl:Class ; - rdfs:subClassOf :State ; - rdfs:comment "A type of state"@en ; - rdfs:label "Multi level state"@en . - - -### https://saref.etsi.org/core/NotifyCommand -:NotifyCommand rdf:type owl:Class ; - rdfs:subClassOf :Command , - [ rdf:type owl:Restriction ; - owl:onProperty :isCommandOf ; - owl:allValuesFrom :EventFunction - ] ; - rdfs:comment "A type of command"@en ; - rdfs:label "Notify command"@en . - - -### https://saref.etsi.org/core/Occupancy -:Occupancy rdf:type owl:Class ; - rdfs:subClassOf :Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value (saref:hasValue property) that is measured in a unit of measure for occupancy"@en ; - rdfs:label "Occupancy"@en . - - -### https://saref.etsi.org/core/OffCommand -:OffCommand rdf:type owl:Class ; - rdfs:subClassOf :Command , - [ rdf:type owl:Restriction ; - owl:onProperty :actsUpon ; - owl:someValuesFrom :OnOffState - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :isCommandOf ; - owl:allValuesFrom :OnOffFunction - ] ; - owl:disjointWith :OnCommand ; - rdfs:comment "A type of command"@en ; - rdfs:label "Off command"@en . - - -### https://saref.etsi.org/core/OffState -:OffState rdf:type owl:Class ; - rdfs:subClassOf :OnOffState ; - rdfs:comment "The state of a device that is Off"@en ; - rdfs:label "Off state"@en . - - -### https://saref.etsi.org/core/OnCommand -:OnCommand rdf:type owl:Class ; - rdfs:subClassOf :Command , - [ rdf:type owl:Restriction ; - owl:onProperty :actsUpon ; - owl:someValuesFrom :OnOffState - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :isCommandOf ; - owl:allValuesFrom :OnOffFunction - ] ; - rdfs:comment "A type of command"@en ; - rdfs:label "On command"@en . - - -### https://saref.etsi.org/core/OnOffFunction -:OnOffFunction rdf:type owl:Class ; - rdfs:subClassOf :ActuatingFunction ; - rdfs:comment "An actuating function that allows to switch on and off an actuator"@en ; - rdfs:label "On off function"@en . - - -### https://saref.etsi.org/core/OnOffState -:OnOffState rdf:type owl:Class ; - rdfs:subClassOf :State ; - rdfs:comment "A type of state"@en ; - rdfs:label "On off state"@en . - - -### https://saref.etsi.org/core/OnState -:OnState rdf:type owl:Class ; - rdfs:subClassOf :OnOffState ; - rdfs:comment "The state of a device that is On"@en ; - rdfs:label "On state"@en . - - -### https://saref.etsi.org/core/OpenCloseFunction -:OpenCloseFunction rdf:type owl:Class ; - rdfs:subClassOf :ActuatingFunction ; - rdfs:comment "An actuating function that allows to open and close a device"@en ; - rdfs:label "Open close function"@en . - - -### https://saref.etsi.org/core/OpenCloseState -:OpenCloseState rdf:type owl:Class ; - rdfs:subClassOf :State ; - rdfs:comment "A type of state"@en ; - rdfs:label "Open close state"@en . - - -### https://saref.etsi.org/core/OpenCommand -:OpenCommand rdf:type owl:Class ; - rdfs:subClassOf :Command , - [ rdf:type owl:Restriction ; - owl:onProperty :actsUpon ; - owl:someValuesFrom :OpenCloseState - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :isCommandOf ; - owl:allValuesFrom :OpenCloseFunction - ] ; - rdfs:comment "A type of command"@en ; - rdfs:label "Open command"@en . - - -### https://saref.etsi.org/core/OpenState -:OpenState rdf:type owl:Class ; - rdfs:subClassOf :OpenCloseState ; - rdfs:comment "The state of a device that is OPEN "@en ; - rdfs:label "Open state"@en . - - -### https://saref.etsi.org/core/PauseCommand -:PauseCommand rdf:type owl:Class ; - rdfs:subClassOf :Command ; - rdfs:comment "A type of command"@en ; - rdfs:label "Pause command"@en . - - -### https://saref.etsi.org/core/Power -:Power rdf:type owl:Class ; - rdfs:subClassOf :Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a power unit (such as watt or kilowatt). Further specializations of the saref:Power class can be found in the SAREF4ENER extension, where classes such as PowerMax, PowerMin and PowerExpected are defined."@en ; - rdfs:label "Power"@en . - - -### https://saref.etsi.org/core/PowerUnit -:PowerUnit rdf:type owl:Class ; - rdfs:subClassOf :UnitOfMeasure ; - rdfs:comment "The unit of measure for power"@en ; - rdfs:label "Power unit"@en . - - -### https://saref.etsi.org/core/Pressure -:Pressure rdf:type owl:Class ; - rdfs:subClassOf :Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a pressure unit (bar or pascal)"@en ; - rdfs:label "Pressure"@en . - - -### https://saref.etsi.org/core/PressureUnit -:PressureUnit rdf:type owl:Class ; - rdfs:subClassOf :UnitOfMeasure ; - rdfs:comment "The unit of measure for pressure"@en ; - rdfs:label "Pressure unit"@en . - - -### https://saref.etsi.org/core/Price -:Price rdf:type owl:Class ; - rdfs:subClassOf :Property ; - rdfs:comment "A saref:Property crelated to some measurements that are characterized by a certain value that is measured using saref:Currency"@en ; - rdfs:label "Price"@en . - - -### https://saref.etsi.org/core/Profile -:Profile rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty :consistsOf ; - owl:allValuesFrom :Profile - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasPrice ; - owl:allValuesFrom :Price - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasTime ; - owl:allValuesFrom :Time - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :isAbout ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( :Commodity - :Property - ) - ] - ] ; - rdfs:comment "A specification associated to a device to collect information about a certain Property (e.g., Energy) for optimizing its usage in the home, office or building in which the device is located. This specification is about a certain Property (saref:isAbout), can be calculated over a time span (saref:hasTime) and can be associated to some costs (saref:hasPrice). An example is the Power Profile defined in the SAREF4ENER extension that can be associated to a device for optimizing the Energy efficiency in the home, office or building in which the device is located."@en ; - rdfs:label "Profile"@en . - - -### https://saref.etsi.org/core/Property -:Property rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty :isControlledByDevice ; - owl:allValuesFrom :Device - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :isMeasuredByDevice ; - owl:allValuesFrom :Device - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :isPropertyOf ; - owl:allValuesFrom :FeatureOfInterest - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :relatesToMeasurement ; - owl:allValuesFrom :Measurement - ] ; - rdfs:comment "A quality of a feature of interest that can be measured; an aspect of a feature of interest that is intrinsic to and cannot exist without the feature"@en ; - rdfs:label "Property"@en . - - -### https://saref.etsi.org/core/SensingFunction -:SensingFunction rdf:type owl:Class ; - rdfs:subClassOf :Function , - [ rdf:type owl:Restriction ; - owl:onProperty :hasSensingRange ; - owl:someValuesFrom :Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasSensorType ; - owl:allValuesFrom :Property - ] ; - rdfs:comment "A function that allows to transmit data from sensors, such as measurement values (e.g., temperature) or sensing data (e.g., occupancy)"@en ; - rdfs:label "Sensing function"@en . - - -### https://saref.etsi.org/core/Sensor -:Sensor rdf:type owl:Class ; - rdfs:subClassOf :Device , - [ rdf:type owl:Restriction ; - owl:onProperty :hasFunction ; - owl:someValuesFrom :SensingFunction - ] ; - rdfs:comment "A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. Further, a device of category saref:Sensor that performs a saref:SensingFunction."@en ; - rdfs:label "Sensor"@en . - - -### https://saref.etsi.org/core/Service -:Service rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty :isOfferedBy ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass :Device - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :represents ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass :Function - ] ; - rdfs:comment "A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service and the function(s) to be represented."@en ; - rdfs:label "Service"@en . - - -### https://saref.etsi.org/core/SetAbsoluteLevelCommand -:SetAbsoluteLevelCommand rdf:type owl:Class ; - rdfs:subClassOf :SetLevelCommand ; - rdfs:comment "A type of set level command"@en ; - rdfs:label "Set absolute level command"@en . - - -### https://saref.etsi.org/core/SetLevelCommand -:SetLevelCommand rdf:type owl:Class ; - rdfs:subClassOf :Command , - [ rdf:type owl:Restriction ; - owl:onProperty :actsUpon ; - owl:someValuesFrom :MultiLevelState - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :isCommandOf ; - owl:allValuesFrom :LevelControlFunction - ] ; - rdfs:comment "A type of command"@en ; - rdfs:label "Set level command"@en . - - -### https://saref.etsi.org/core/SetRelativeLevelCommand -:SetRelativeLevelCommand rdf:type owl:Class ; - rdfs:subClassOf :SetLevelCommand ; - rdfs:comment "A type of set level command"@en ; - rdfs:label "Set relative level command"@en . - - -### https://saref.etsi.org/core/Smoke -:Smoke rdf:type owl:Class ; - rdfs:subClassOf :Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for smoke"@en ; - rdfs:label "Smoke"@en . - - -### https://saref.etsi.org/core/SmokeSensor -:SmokeSensor rdf:type owl:Class ; - rdfs:subClassOf :Sensor , - [ rdf:type owl:Restriction ; - owl:onProperty :hasFunction ; - owl:someValuesFrom :EventFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :hasFunction ; - owl:someValuesFrom :SensingFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :measuresProperty ; - owl:someValuesFrom :Smoke - ] ; - rdfs:comment "A sensor that performs the saref:SensingFunction and the saref:EventFunction, and is used for the purpose of sensing a property of type saref:Smoke. A saref:SmokeSensor is typically used to saref:accomplish saref:Safety."@en ; - rdfs:label "Smoke sensor"@en . - - -### https://saref.etsi.org/core/StartCommand -:StartCommand rdf:type owl:Class ; - rdfs:subClassOf :Command , - [ rdf:type owl:Restriction ; - owl:onProperty :actsUpon ; - owl:someValuesFrom :StartStopState - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :isCommandOf ; - owl:allValuesFrom :StartStopFunction - ] ; - owl:disjointWith :StopCommand ; - rdfs:comment "A type of command"@en ; - rdfs:label "Start command"@en . - - -### https://saref.etsi.org/core/StartState -:StartState rdf:type owl:Class ; - rdfs:subClassOf :StartStopState ; - rdfs:comment "The state of a device that is STARTED"@en ; - rdfs:label "Start state"@en . - - -### https://saref.etsi.org/core/StartStopFunction -:StartStopFunction rdf:type owl:Class ; - rdfs:subClassOf :ActuatingFunction ; - rdfs:comment "An actuating function that allows to start and stop a device"@en ; - rdfs:label "Start stop function"@en . - - -### https://saref.etsi.org/core/StartStopState -:StartStopState rdf:type owl:Class ; - rdfs:subClassOf :State ; - rdfs:comment "A type of state"@en ; - rdfs:label "Start stop state"@en . - - -### https://saref.etsi.org/core/State -:State rdf:type owl:Class ; - rdfs:comment "The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended."@en ; - rdfs:label "State"@en . - - -### https://saref.etsi.org/core/StepDownCommand -:StepDownCommand rdf:type owl:Class ; - rdfs:subClassOf :Command , - [ rdf:type owl:Restriction ; - owl:onProperty :actsUpon ; - owl:someValuesFrom :MultiLevelState - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :isCommandOf ; - owl:allValuesFrom :LevelControlFunction - ] ; - owl:disjointWith :StepUpCommand ; - rdfs:comment "A type of command"@en ; - rdfs:label "Step down command"@en . - - -### https://saref.etsi.org/core/StepUpCommand -:StepUpCommand rdf:type owl:Class ; - rdfs:subClassOf :Command , - [ rdf:type owl:Restriction ; - owl:onProperty :actsUpon ; - owl:someValuesFrom :MultiLevelState - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :isCommandOf ; - owl:allValuesFrom :LevelControlFunction - ] ; - rdfs:comment "A type of command"@en ; - rdfs:label "Step up command"@en . - - -### https://saref.etsi.org/core/StopCommand -:StopCommand rdf:type owl:Class ; - rdfs:subClassOf :Command , - [ rdf:type owl:Restriction ; - owl:onProperty :actsUpon ; - owl:someValuesFrom :StartStopState - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :isCommandOf ; - owl:allValuesFrom :StartStopFunction - ] ; - rdfs:comment "A type of command"@en ; - rdfs:label "Stop command"@en . - - -### https://saref.etsi.org/core/StopState -:StopState rdf:type owl:Class ; - rdfs:subClassOf :StartStopState ; - rdfs:comment "The state of a device that is STOPPED"@en ; - rdfs:label "Stop state"@en . - - -### https://saref.etsi.org/core/Switch -:Switch rdf:type owl:Class ; - rdfs:subClassOf :Actuator ; - rdfs:comment "A device of category saref:Actuator that performs an actuating function of type saref:OnOffFunction or saref:OpenCloseFunction"@en ; - rdfs:label "Switch"@en . - - -### https://saref.etsi.org/core/SwitchOnService -:SwitchOnService rdf:type owl:Class ; - rdfs:subClassOf :Service , - [ rdf:type owl:Restriction ; - owl:onProperty :isOfferedBy ; - owl:someValuesFrom :LightSwitch - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :represents ; - owl:someValuesFrom :OnOffFunction - ] ; - rdfs:comment "A type of service that represents an on/off function to the network"@en ; - rdfs:label "Switch on service"@en . - - -### https://saref.etsi.org/core/Task -:Task rdf:type owl:Class ; - rdfs:comment "The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended. Tasks can be accomplished by devices (saref:isAccomplishedBy)."@en ; - rdfs:label "Task"@en . - - -### https://saref.etsi.org/core/Temperature -:Temperature rdf:type owl:Class ; - rdfs:subClassOf :Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin)"@en ; - rdfs:label "Temperature"@en . - - -### https://saref.etsi.org/core/TemperatureSensor -:TemperatureSensor rdf:type owl:Class ; - rdfs:subClassOf :Sensor , - [ rdf:type owl:Restriction ; - owl:onProperty :hasFunction ; - owl:someValuesFrom :SensingFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty :measuresProperty ; - owl:someValuesFrom :Temperature - ] ; - rdfs:comment "A sensor that is used for the purpose of sensing a property of type saref:Temperature. A saref:TemperatureSensor is typically used to saref:accomplish saref:Comfort."@en ; - rdfs:label "Temperature sensor"@en . - - -### https://saref.etsi.org/core/TemperatureUnit -:TemperatureUnit rdf:type owl:Class ; - rdfs:subClassOf :UnitOfMeasure ; - rdfs:comment "The unit of measure for temperature"@en ; - rdfs:label "Temperature unit"@en . - - -### https://saref.etsi.org/core/Time -:Time rdf:type owl:Class ; - rdfs:comment "A class that allows to specify the time concept."@en ; - rdfs:label "Time"@en . - - -### https://saref.etsi.org/core/ToggleCommand -:ToggleCommand rdf:type owl:Class ; - rdfs:subClassOf :Command , - [ rdf:type owl:Restriction ; - owl:onProperty :isCommandOf ; - owl:allValuesFrom :OnOffFunction - ] ; - rdfs:comment "A type of command"@en ; - rdfs:label "Toggle command"@en . - - -### https://saref.etsi.org/core/UnitOfMeasure -:UnitOfMeasure rdf:type owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM)."@en ; - rdfs:label "Unit of measure"@en . - - -### https://saref.etsi.org/core/Water -:Water rdf:type owl:Class ; - rdfs:subClassOf :Commodity ; - rdfs:comment "A type of commodity"@en ; - rdfs:label "Water"@en . - - -################################################################# -# Individuals -################################################################# - -### https://saref.etsi.org/core/Cleaning -:Cleaning rdf:type owl:NamedIndividual , - :Task ; - rdfs:comment "A type of task for which a device is designed"@en ; - rdfs:label "Cleaning"@en . - - -### https://saref.etsi.org/core/Comfort -:Comfort rdf:type owl:NamedIndividual , - :Task ; - rdfs:comment "A type of task for which a device is designed"@en ; - rdfs:label "Comfort"@en . - - -### https://saref.etsi.org/core/Drying -:Drying rdf:type owl:NamedIndividual , - :Task ; - rdfs:comment "A type of task for which a device is designed"@en ; - rdfs:label "Drying"@en . - - -### https://saref.etsi.org/core/EnergyEfficiency -:EnergyEfficiency rdf:type owl:NamedIndividual , - :Task ; - rdfs:comment "A type of task for which a device is designed"@en ; - rdfs:label "EnergyEfficiency"@en . - - -### https://saref.etsi.org/core/Entertainment -:Entertainment rdf:type owl:NamedIndividual , - :Task ; - rdfs:comment "A type of task for which a device is designed"@en ; - rdfs:label "Entertainment"@en . - - -### https://saref.etsi.org/core/Lighting -:Lighting rdf:type owl:NamedIndividual , - :Task ; - rdfs:comment "A type of task for which a device is designed"@en ; - rdfs:label "Lighting"@en . - - -### https://saref.etsi.org/core/MeterReading -:MeterReading rdf:type owl:NamedIndividual , - :Task ; - rdfs:comment "A type of task for which a device is designed"@en ; - rdfs:label "Meter reading"@en . - - -### https://saref.etsi.org/core/Safety -:Safety rdf:type owl:NamedIndividual , - :Task ; - rdfs:comment "A type of task for which a device is designed"@en ; - rdfs:label "Safety"@en . - - -### https://saref.etsi.org/core/Washing -:Washing rdf:type owl:NamedIndividual , - :Task ; - rdfs:comment "A type of task for which a device is designed"@en ; - rdfs:label "Washing"@en . - - -### https://saref.etsi.org/core/WellBeing -:WellBeing rdf:type owl:NamedIndividual , - :Task ; - rdfs:comment "A type of task for which a device is designed"@en ; - rdfs:label "WellBeing"@en . - - -### Generated by the OWL API (version 5.1.9) https://github.com/owlcs/owlapi/ diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/core.xml b/src/main/resources/saref-portal-generator/public/core/v3.1.1/core.xml deleted file mode 100644 index 4d257b5..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/core.xml +++ /dev/null @@ -1,2134 +0,0 @@ - - - - - - - - The Smart Applications REFerence ontology (SAREF) is intended to enable interoperability between solutions from different providers and among various activity sectors in the Internet of Things (IoT), thus contributing to the development of the global digital market. - 2020-02-11 - - - SAREF: the Smart Applications REFerence ontology - saref - https://saref.etsi.org/core/ - Information about changes compared to version 1.1.1: - - The classes and properties related to how to represent devices in building spaces (such as the saref:BuildingSpace class, saref:BuildingObject class and saref:isLocatedIn property) have been removed from SAREF and incorporated into the SAREF4BLDG extension related to buildings, including the reuse of the W3C� WGS84 geo positioning vocabulary. - - The saref:DeviceCategory and saref:FunctionCategory classes have been removed. Instead, the hierarchy of device categories has been implemented directly as subclasses of the saref:Device class. - - The information specific for energy efficiency has been moved to the SAREF4ENER extension. For example, the saref:Profile class has been redefined to accommodate only the properties that are general enough for any type of profile, not only for energy and power. Details on how to specifically model a power profile can be found in the SAREF4ENER extension. - - The subclasses of the saref:Energy class have been removed (i.e., Average Energy, Maximum Energy, Minimum Energy, Total Energy, HVAC Energy, Hot Water Energy and Lighting Energy). - - The saref:Property class has been split into two classes (saref:Property and saref:Measurement), as it is done in the SAREF4ENVI extension, in order to properly accommodate the distinction between the concept of property (an observable quality of something) and the concept of measurement (a concrete value observed for a property). - - Too restrictive cardinality restrictions have been revised, sometimes making them optional rather than mandatory (better to make properties mandatory in the extensions that specialize SAREF for a specific purpose, rather than restricting SAREF, whose purpose is more general). For example, definitions of units of measurement using an enumeration (owl:oneOf) were too restrictive because they did not allow using other units than those enumerated. Therefore, the individuals of each class are still there, but the owl:oneOf enumeration has been removed. - - The saref:UnitOfMeasure subclasses use individuals from the OM ontology for unit of measures, but this is not the only solution. It has been clarified in the comments that the OM ontology is an example, but other ontologies can be used. - - The global restrictions (rdfs:domain and rdfs:range) in object properties have been completely removed not to hinder interoperability. Object properties are now only restricted locally in the classes. - - The subclasses of saref:Task have been transormed in individuals. - - The saref:hasTask property has been removed from the saref:Profile class to resolve an ambiguity with the saref:Task class. - Information about changes compared to version 2.1.1: - - Added the saref:FeatureOfInterest class and the properties used to relate it to saref:Measurement (saref:hasMeasurement and saref:isMeasurementOf) and to saref:Property (saref:hasProperty and saref:isPropertyOf). - - Added the saref:measurementMadeBy property as inverse of saref:makesMeasurement. - - The saref:relatesToProperty and saref:relatesToMeasurement properties are now inverse of each other. - - The range of saref:hasValue, which was defined as xsd:float, has been removed to support other datatypes for measurements. - - The range of datatype properties, which was defined as xsd:string, has been removed in order to support strings with language tags (rdf:langString). This affects saref:hasDescription, saref:hasManufacturer, saref:hasModel and saref:hasName, which now have implicitly a range of rdfs:Literal. - - The saref:hasName property has been removed and the use of rdfs:label is recommended. - - The saref:hasDescription property has been deprecated and the use of rdfs:comment is recommended. - - Too restrictive restrictions have been removed and in some cases the ontology documentation has been updated to reflect this: a saref:Command having at most one saref:hasDescription; a saref:Task being accomplished by at least one saref:Device; a saref:Device having a typical consumption of only energy or power; a saref:Commodity being measured in units of measure; restrictions on the values of saref:accomplishes that only covered specific use cases; universal restrictions on the saref:actsUpon property have been changed to existential ones; restrictions on the commands that a saref:Function may have, since there could be others not included in the defined enumerations; restrictive documentation of saref:EventFunction and saref:SmokeSensor. - - Bugs have been fixed: some devices (saref:DoorSwitch, saref:EnergyMeter, saref:LigthSwitch, saref:SmokeSensor, and saref:TemperatureSensor) were defined as subclass of a device and at the same time as consisting of such device; a saref:LightSwitch controls light and does not measure light, since it is an actuator; incorrect documentation of saref:OnState and saref:OffState. - - The saref:BuildingRelated, saref:EnergyRelated and saref:FunctionRelated classes have been removed, since the different extensions already classify the device types. - - The instances of the subclasses of saref:Command have been removed, since they represent examples. - - The instances of saref:UnitOfMeasure have been moved to examples. - - The classes related to the SAREF4ENER extension have been removed: saref:Generator, saref:Storage, saref:Load and saref:EnergyMeter. - - Some instances of saref:Device have been moved to examples: saref:WashingMachine, saref:LightingDevice, saref:MicroRenewable, saref:Multimedia, and saref:Network. - - Added domain and range axioms wherever the definition of a property unambiguously identifies the domain or the range of the property. - - The OWL Time ontology is not imported anymore. - - The documentation of some ontology terms has been updated for clarification. - - Language tags have been added to all labels and comments. - - 3.1.1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A relationship between a certain entity (e.g., a device) and the task it accomplishes - accomplishes - - - - - - - - - - - A relationship between a command and a state - acts upon - - - - - - - - - A relationship indicating a composite entity that consists of other entities (e.g., a temperature/humidity sensor that consists of a temperature sensor and a humidity sensor) - consists of - - - - - - - - - - - A relationship specifying the property that can be controlled by a certain device - controls property - - - - - - - - - - - - A relationship between a function and a command - has command - - - - - - - - - - - A relationship identifying the function of a device - has function - - - - - - - - - - - - A relationship between a feature of interest and a measurement about it - has measurement - - - - - - - - - - - A relationship between a metering function and the measurement of the reading - has meter reading - - - - - - - - - - - A relationship identifying the reading type of a metering function (e.g., Water, Gas, Pressure , Energy , Power, etc.) - has meter reading type - - - - - - - - - - A relationship indentifying the price associated to an entity - has price - - - - - - - - - - - A relationship associating a profile to a certain device - has profile - - - - - - - - - - - - A relationship between a feature of interest and a property of that feature - has property - - - - - - - - - - - A relationship between a sensing function and a measurement identifying the range of a sensor detection - has sensing range - - - - - - - - - - - A relationship identifying the sensing type of a sensor detection (i.e., Temperature, Occupancy, Humidity, Motion , Smoke, Pressure, etc.) - has sensor type - - - - - - - - - - - A relationship identifying the type of state of a device - has state - - - - - - - - - - - A relationship associated with an event function to notify that a certain threshold measurement has been exceeded - has threshold measurement - - - - - - - - - - A relationship to associate time information to an entity - has time - - - - - - - - - A relationship identifying the typical (energy or power) consumption of a device - has typical consumption - - - - - - - - - A relationship identifying what an entity, such as a profile, is about - isAbout - - - - - - - - - - A relationship identifying an entity (e.g., a device) that can accomplish a task. - is accomplished by - - - - - - - - - - - A relationship between a command and a function. - is command of - - - - - - - - - - - A relationship specifying the devices that can control a certain property - is controlled by device - - - - - - - - - - - A relationship specifying the devices that can measure a certain property - is measured by device - - - - - - - - - - - A relationship identifying the unit of measure used for a certain entity. - is measured in - - - - - - - - - - - A relationship between a measurement and the feature of interest whose quality was measured - isMeasurementOf - - - - - - - - - - - - A relationship between a service and a device that offers the service - is offered by - - - - - - - - - - - A relationship between a property and the feature of interest it belongs to - is property of - - - - - - - - - A relationship specifying the commodity for which a device is used for - is used for - - - - - - - - - - - - A relation between a device and the measurements it makes. Such measurement will link together the value of the measurement, its unit of measure and the property to which it relates. - makes measurement - - - - - - - - - - - A relation between a measurement and the device that made it. - measurement made by - - - - - - - - - - - A relationship specifying the property that can be measured by a certain device - measures property - - - - - - - - - - - A relationship between a device and a service - offers - - - - - - - - - - - - A relationship between a property and the measurements it relates to - relates to measurement - - - - - - - - - - - A relationship between a measurement and the property it relates to - relates to property - - - - - - - - - - - A relationship between a service and a function. - represents - - - - - - - - - - - - - - - A relationship providing a description of an entity (e.g., device). The value is expected to be a string or a string with language tag. - DEPRECATED: The use of rdfs:comment is recommended instead. - has description - true - - - - - - - - - A relationship identifying the manufacturer of an entity (e.g., device). The value is expected to be a string or a string with language tag. - has manufacturer - - - - - - - - - A relationship identifying the model of an entity (e.g., device). The value is expected to be a string or a string with language tag. - has model - - - - - - - - - A relationship stating the timestamp of an entity (e.g. a measurement). - has timestamp - - - - - - - - - A relationship defining the value of a certain property, e.g., energy or power. Note that, even if numeric values are expected to enable reasoning, measurement values could use other datatypes. - has value - - - - - - - - - - - - - - - - A function that allows to transmit data to actuators, such as level settings (e.g., temperature) or binary switching (e.g., open/close, on/off) - Actuating function - - - - - - - - - - - - - - - - A device responsible for moving or controlling a mechanism or system by performing an actuating function - Actuator - - - - - - - - - - An electrical/mechanical machine that accomplish some household functions, such as cleaning or cooking - Appliance - - - - - - - - - - - - - - - - - - - - - - - A type of command - Close command - - - - - - - - - - The state of a device that is CLOSE - Close state - - - - - - - - - - A type of commodity - Coal - - - - - - - - - - - - - - - - - - 1 - - - - A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended. - Command - - - - - - - - - A marketable item for which there is demand, but which is supplied without qualitative differentiation across a market. SAREF refers to energy commodities such as electricity, gas, coal and oil. - Commodity - - - - - - - - - - The class of units of measure for price - Currency - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - 1 - - - - - - - 1 - - - - - - 1 - - - A tangible object designed to accomplish a particular task. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function. - Device - - - - - - - - - - - - - - - - - - - - - - A switch that performs the saref:OpenCloseFunction, is used for controlling a door, and can be found in the state saref:OpenCloseState. A saref:DoorSwitch is typically used to accomplish saref:Safety. - Door switch - - - - - - - - - - A type of commodity - Electricity - - - - - - - - - - A saref:Property related to some measurements that are characterized by a certain value measured in an energy unit (such as Kilowatt_Hour or Watt_hour). Furter specializations of the saref:Energy class can be found in the SAREF4ENER extension, where classes such as EnergyMax, EnergyMin and EnergyExpected are defined. - Energy - - - - - - - - - - The unit of measure for energy - Energy unit - - - - - - - - - - - - - 1 - - - - A function that allows to notify about some relevant activity; e.g., that a certain threshold value has been exceeded or that some object has moved. - Event function - - - - - - - - - - - - - - - - - - - - - A feature of interest represents any real world entity from which a property is measured. - Feature of interest - - - - - - - - - - - - 1 - - - - The functionality necessary to accomplish the task for which a device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. - Function - - - - - - - - - - A type of commodity - Gas - - - - - - - - - - A type of command - Get command - - - - - - - - - - - - - - - - A type of get command - Get current meter value command - - - - - - - - - - - - - - - - A type of get command - Get meter data command - - - - - - - - - - - - - - - - A type of get command - Get meter history command - - - - - - - - - - - - - - - - A type of get command - Get sensing data command - - - - - - - - - - Heating, Ventilation and Air Conditioning (HVAC) device that provides indoor environmental comfort. A saref:HVAC is typically used to accomplish saref:Comfort. - HVAC - - - - - - - - - - A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit - Humidity - - - - - - - - - - The unit of measure for light - Illuminance unit - - - - - - - - - - An actuating function that allows to do level adjustments of a property in a certain range (e.g., 0%-100%), such as dimming a light in a room or setting the speed of an electric motor. - Level control function - - - - - - - - - - A saref:Property related to some measurements that are characterized by a certain value that is measured in a illuminance unit (lux) - Light - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A switch that performs the saref:OnOffFunction, controls the property saref:Light, and can be found in the state saref:OnOffState. It can offer a switch on service. A saref:LightSwitch is typically used to accomplish saref:Lighting. - Light switch - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - 1 - - - - - - - - - - - - - 1 - - - Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. - Measurement - - - - - - - - - - - - - - - - A device built to accurately detect and display a quantity in a form readable by a human being. Further, a device of category saref:Meter that performs a saref:MeteringFunction. - Meter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A function that allows to get data from a meter, such as current meter reading or instantaneous demand - Metering function - - - - - - - - - - A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for motion - Motion - - - - - - - - - - A type of state - Multi level state - - - - - - - - - - - - - - - - A type of command - Notify command - - - - - - - - - - A saref:Property related to some measurements that are characterized by a certain value (saref:hasValue property) that is measured in a unit of measure for occupancy - Occupancy - - - - - - - - - - - - - - - - - - - - - - - A type of command - Off command - - - - - - - - - - The state of a device that is Off - Off state - - - - - - - - - - - - - - - - - - - - - - A type of command - On command - - - - - - - - - - An actuating function that allows to switch on and off an actuator - On off function - - - - - - - - - - A type of state - On off state - - - - - - - - - - The state of a device that is On - On state - - - - - - - - - - An actuating function that allows to open and close a device - Open close function - - - - - - - - - - A type of state - Open close state - - - - - - - - - - - - - - - - - - - - - - A type of command - Open command - - - - - - - - - - The state of a device that is OPEN - Open state - - - - - - - - - - A type of command - Pause command - - - - - - - - - - A saref:Property related to some measurements that are characterized by a certain value that is measured in a power unit (such as watt or kilowatt). Further specializations of the saref:Power class can be found in the SAREF4ENER extension, where classes such as PowerMax, PowerMin and PowerExpected are defined. - Power - - - - - - - - - - The unit of measure for power - Power unit - - - - - - - - - - A saref:Property related to some measurements that are characterized by a certain value that is measured in a pressure unit (bar or pascal) - Pressure - - - - - - - - - - The unit of measure for pressure - Pressure unit - - - - - - - - - - A saref:Property crelated to some measurements that are characterized by a certain value that is measured using saref:Currency - Price - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A specification associated to a device to collect information about a certain Property (e.g., Energy) for optimizing its usage in the home, office or building in which the device is located. This specification is about a certain Property (saref:isAbout), can be calculated over a time span (saref:hasTime) and can be associated to some costs (saref:hasPrice). An example is the Power Profile defined in the SAREF4ENER extension that can be associated to a device for optimizing the Energy efficiency in the home, office or building in which the device is located. - Profile - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A quality of a feature of interest that can be measured; an aspect of a feature of interest that is intrinsic to and cannot exist without the feature - Property - - - - - - - - - - - - - - - - - - - - - - A function that allows to transmit data from sensors, such as measurement values (e.g., temperature) or sensing data (e.g., occupancy) - Sensing function - - - - - - - - - - - - - - - - A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. Further, a device of category saref:Sensor that performs a saref:SensingFunction. - Sensor - - - - - - - - - - - - 1 - - - - - - - 1 - - - - A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service and the function(s) to be represented. - Service - - - - - - - - - - A type of set level command - Set absolute level command - - - - - - - - - - - - - - - - - - - - - - A type of command - Set level command - - - - - - - - - - A type of set level command - Set relative level command - - - - - - - - - - A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for smoke - Smoke - - - - - - - - - - - - - - - - - - - - - - - - - - - - A sensor that performs the saref:SensingFunction and the saref:EventFunction, and is used for the purpose of sensing a property of type saref:Smoke. A saref:SmokeSensor is typically used to saref:accomplish saref:Safety. - Smoke sensor - - - - - - - - - - - - - - - - - - - - - - - A type of command - Start command - - - - - - - - - - The state of a device that is STARTED - Start state - - - - - - - - - - An actuating function that allows to start and stop a device - Start stop function - - - - - - - - - - A type of state - Start stop state - - - - - - - - - The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended. - State - - - - - - - - - - - - - - - - - - - - - - - A type of command - Step down command - - - - - - - - - - - - - - - - - - - - - - A type of command - Step up command - - - - - - - - - - - - - - - - - - - - - - A type of command - Stop command - - - - - - - - - - The state of a device that is STOPPED - Stop state - - - - - - - - - - A device of category saref:Actuator that performs an actuating function of type saref:OnOffFunction or saref:OpenCloseFunction - Switch - - - - - - - - - - - - - - - - - - - - - - A type of service that represents an on/off function to the network - Switch on service - - - - - - - - - The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended. Tasks can be accomplished by devices (saref:isAccomplishedBy). - Task - - - - - - - - - - A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin) - Temperature - - - - - - - - - - - - - - - - - - - - - - A sensor that is used for the purpose of sensing a property of type saref:Temperature. A saref:TemperatureSensor is typically used to saref:accomplish saref:Comfort. - Temperature sensor - - - - - - - - - - The unit of measure for temperature - Temperature unit - - - - - - - - - A class that allows to specify the time concept. - Time - - - - - - - - - - - - - - - - A type of command - Toggle command - - - - - - - - - The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called "watt". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM). - Unit of measure - - - - - - - - - - A type of commodity - Water - - - - - - - - - - - - - - - - A type of task for which a device is designed - Cleaning - - - - - - - - - - A type of task for which a device is designed - Comfort - - - - - - - - - - A type of task for which a device is designed - Drying - - - - - - - - - - A type of task for which a device is designed - EnergyEfficiency - - - - - - - - - - A type of task for which a device is designed - Entertainment - - - - - - - - - - A type of task for which a device is designed - Lighting - - - - - - - - - - A type of task for which a device is designed - Meter reading - - - - - - - - - - A type of task for which a device is designed - Safety - - - - - - - - - - A type of task for which a device is designed - Washing - - - - - - - - - - A type of task for which a device is designed - WellBeing - - - - - - - - diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/provenance/provenance-en.html b/src/main/resources/saref-portal-generator/public/core/v3.1.1/provenance/provenance-en.html deleted file mode 100644 index 733eddb..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/provenance/provenance-en.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - -
-

Provenance for SAREF: the Smart Applications REFerence ontology Documentation (/home/ahmad/repos/mpovedavillalon@gmail.com/OnToology/saefv3.owl/documentation)

-
    -
  • Ontology contributed to by: : - http://maxime-lefrancois.info/me# (null), http://www.garcia-castro.com/foaf.rdf#me (null), https://w3id.org/people/mpoveda/ (null), https://www.linkedin.com/in/lauradaniele (null),
  • -
  • The ontology documentation was the result of using the Widoco tool (which itself uses LODE for generating the crossreference section).
  • -
-
-

back to documentation. TTL format

- - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/provenance/provenance-en.ttl b/src/main/resources/saref-portal-generator/public/core/v3.1.1/provenance/provenance-en.ttl deleted file mode 100644 index f85b3ff..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/provenance/provenance-en.ttl +++ /dev/null @@ -1,15 +0,0 @@ -@prefix prov: . -@prefix dc: . -@prefix foaf: . -<..\index-en.html> a prov:Entity; - dc:title "SAREF: the Smart Applications REFerence ontology"; - prov:wasAttributedTo ; - dc:contributor ; - prov:wasAttributedTo ; - dc:contributor ; - prov:wasAttributedTo ; - dc:contributor ; - prov:wasAttributedTo ; - dc:contributor ; - prov:wasAttributedTo ,; -. diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/readme.md b/src/main/resources/saref-portal-generator/public/core/v3.1.1/readme.md deleted file mode 100644 index 55c60f0..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/readme.md +++ /dev/null @@ -1,34 +0,0 @@ -About Widoco output -=================== -The purpose of Widoco is to reuse and integrate existing tools for documentation, plus the set of features listed below: -* Separation of the sections of your html page so you can write them independently and replace only those needed. -* Automatic annotation in RDF-a of the html produced. -* Association of a provenance page which includes the history of your vocabulary (W3C PROV-O compliant). -* Metadata extraction from the ontology plus the means to complete it on the fly when generating your ontology. -* Guidelines on the main sections that your document should have and how to complete them. - -Widoco will create 3 different folders: -| -|-provenance (a folder including an html and RDF serialization of how the documentation page was created) -|-resources (folder with the different resources) -|-sections (folder with the different sections of the documentation, separated for easy editing. Just edit one and the main page will be updated) - -Completing ontology metadata. -=================== -Widoco uses the ontology metadata to update a configuration file. If you complete that configuration file (ended up widoco.conf), the tool will enhance your html with additional details, such as how to cite the document, previous revisions, icons with the licence, etc. - -Browser issues -========== -The result of executing Widoco is an html file. We have tested it in Mozilla, IE and Chrome, and when the page is stored in a server all the browsers work correctly. If you view the file locally, we recommend you to use Mozilla Firefox (or Internet Explorer, if you must). Google Chrome will not show the contents correctly, as it doesn't allow XMLHttpRequest without HTTP. If you want to view the page locally with Google Chrome you have two possibilities: - -a) Place the file in a server and access it via its URL (for example, put it in dropbox and access through its public url). - -b) Execute Chrome with the following commands : - -(WIN) chrome.exe --allow-file-access-from-files, - -(OSX) open /Applications/Google\ Chrome.app/ --args --allow-file-access-from-files - -(UNX) /usr/bin/google-chrome --allow-file-access-from-files - -Do you have a problem? open an issue at https://github.com/dgarijo/Widoco \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/images/SAREF figures-Overview.jpg b/src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/images/SAREF figures-Overview.jpg deleted file mode 100644 index e69de29..0000000 diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/jquery.js b/src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/jquery.js deleted file mode 100644 index e67db74..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/jquery.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * jQuery JavaScript Library v1.6.2 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Thu Jun 30 14:16:56 2011 -0400 - */ -(function(a,b){function cv(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cs(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"":"")+""),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cr(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cq(){cn=b}function cp(){setTimeout(cq,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bx(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bm(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(be,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bl(a){f.nodeName(a,"input")?bk(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bk)}function bk(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bj(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bi(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bh(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function E(){return!0}function D(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z])/ig,x=function(a,b){return b.toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!A){A=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||D.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0},m&&f.extend(p,{position:"absolute",left:-1e3,top:-1e3});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]||i[c]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=w:v&&c!=="className"&&(f.nodeName(a,"form")||u.test(c))&&(i=v)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}},value:{get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return f.prop(a,c)?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.attrHooks.title=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=/\.(.*)$/,y=/^(?:textarea|input|select)$/i,z=/\./g,A=/ /g,B=/[^\w\s.|`]/g,C=function(a){return a.replace(B,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=D;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=D);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),C).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i. -shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},J=function(c){var d=c.target,e,g;if(!!y.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=I(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:J,beforedeactivate:J,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&J.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&J.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",I(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in H)f.event.add(this,c+".specialChange",H[c]);return y.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return y.test(this.nodeName)}},H=f.event.special.change.filters,H.focus=H.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var X=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,Z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,$=/<([\w:]+)/,_=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};bf.optgroup=bf.option,bf.tbody=bf.tfoot=bf.colgroup=bf.caption=bf.thead,bf.th=bf.td,f.support.htmlSerialize||(bf._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!bf[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j -)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bi(a,d),e=bj(a),g=bj(d);for(h=0;e[h];++h)bi(e[h],g[h])}if(b){bh(a,d);if(c){e=bj(a),g=bj(d);for(h=0;e[h];++h)bh(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!ba.test(k))k=b.createTextNode(k);else{k=k.replace(Z,"<$1>");var l=($.exec(k)||["",""])[1].toLowerCase(),m=bf[l]||bf._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=_.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Y.test(k)&&o.insertBefore(b.createTextNode(Y.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bo.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bn.test(g)?g.replace(bn,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bB=/%20/g,bC=/\[\]$/,bD=/\r?\n/g,bE=/#.*$/,bF=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bG=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bH=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bI=/^(?:GET|HEAD)$/,bJ=/^\/\//,bK=/\?/,bL=/)<[^<]*)*<\/script>/gi,bM=/^(?:select|textarea)/i,bN=/\s+/,bO=/([?&])_=[^&]*/,bP=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bQ=f.fn.load,bR={},bS={},bT,bU;try{bT=e.href}catch(bV){bT=c.createElement("a"),bT.href="",bT=bT.href}bU=bP.exec(bT.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bQ)return bQ.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bL,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bM.test(this.nodeName)||bG.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bD,"\r\n")}}):{name:b.name,value:c.replace(bD,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bT,isLocal:bH.test(bU[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bW(bR),ajaxTransport:bW(bS),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?bZ(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b$(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bF.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bE,"").replace(bJ,bU[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bN),d.crossDomain==null&&(r=bP.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bU[1]&&r[2]==bU[2]&&(r[3]||(r[1]==="http:"?80:443))==(bU[3]||(bU[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bX(bR,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bI.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bK.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bO,"$1_="+x);d.url=y+(y===d.url?(bK.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bX(bS,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bB,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn,co=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cr("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b
";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cu.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cu.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cv(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cv(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/marked.min.js b/src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/marked.min.js deleted file mode 100644 index 281f657..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/marked.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * marked - a markdown parser - * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed) - * https://github.com/chjj/marked - */ -(function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,"gm")(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+block.def.source+")")();block.blockquote=replace(block.blockquote)("def",block.def)();block._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b";block.html=replace(block.html)("comment",//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/])*?>/)(/tag/g,block._tag)();block.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","<"+block._tag)("def",block.def)();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/});block.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1","\\2")+"|"+block.list.source.replace("\\1","\\3")+"|")();block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function Lexer(options){this.tokens=[];this.tokens.links={};this.options=options||marked.defaults;this.rules=block.normal;if(this.options.gfm){if(this.options.tables){this.rules=block.tables}else{this.rules=block.gfm}}}Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src)};Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");return this.token(src,true)};Lexer.prototype.token=function(src,top,bq){var src=src.replace(/^ +$/gm,""),next,loose,cap,bull,b,item,space,i,l;while(src){if(cap=this.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1){this.tokens.push({type:"space"})}}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,"");this.tokens.push({type:"code",text:!this.options.pedantic?cap.replace(/\n+$/,""):cap});continue}if(cap=this.rules.fences.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"code",lang:cap[2],text:cap[3]});continue}if(cap=this.rules.heading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});continue}if(top&&(cap=this.rules.nptable.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/\n$/,"").split("\n")};for(i=0;i ?/gm,"");this.token(cap,top,true);this.tokens.push({type:"blockquote_end"});continue}if(cap=this.rules.list.exec(src)){src=src.substring(cap[0].length);bull=cap[2];this.tokens.push({type:"list_start",ordered:bull.length>1});cap=cap[0].match(this.rules.item);next=false;l=cap.length;i=0;for(;i1&&b.length>1)){src=cap.slice(i+1).join("\n")+src;i=l-1}}loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item.charAt(item.length-1)==="\n";if(!loose)loose=next}this.tokens.push({type:loose?"loose_item_start":"list_item_start"});this.token(item,false,bq);this.tokens.push({type:"list_item_end"})}this.tokens.push({type:"list_end"});continue}if(cap=this.rules.html.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:cap[1]==="pre"||cap[1]==="script"||cap[1]==="style",text:cap[0]});continue}if(!bq&&top&&(cap=this.rules.def.exec(src))){src=src.substring(cap[0].length);this.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};continue}if(top&&(cap=this.rules.table.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,"").split("\n")};for(i=0;i])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/;inline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)();inline.reflink=replace(inline.reflink)("inside",inline._inside)();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)("]|","~]|")("|","|https?://|")()});inline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal;this.renderer=this.options.renderer||new Renderer;this.renderer.options=this.options;if(!this.links){throw new Error("Tokens array requires a `links` property.")}if(this.options.gfm){if(this.options.breaks){this.rules=inline.breaks}else{this.rules=inline.gfm}}else if(this.options.pedantic){this.rules=inline.pedantic}}InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src)};InlineLexer.prototype.output=function(src){var out="",link,text,href,cap;while(src){if(cap=this.rules.escape.exec(src)){src=src.substring(cap[0].length);out+=cap[1];continue}if(cap=this.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==="@"){text=cap[1].charAt(6)===":"?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);href=this.mangle("mailto:")+text}else{text=escape(cap[1]);href=text}out+=this.renderer.link(href,null,text);continue}if(!this.inLink&&(cap=this.rules.url.exec(src))){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+=this.renderer.link(href,null,text);continue}if(cap=this.rules.tag.exec(src)){if(!this.inLink&&/^/i.test(cap[0])){this.inLink=false}src=src.substring(cap[0].length);out+=this.options.sanitize?escape(cap[0]):cap[0];continue}if(cap=this.rules.link.exec(src)){src=src.substring(cap[0].length);this.inLink=true;out+=this.outputLink(cap,{href:cap[2],title:cap[3]});this.inLink=false;continue}if((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g," ");link=this.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0].charAt(0);src=cap[0].substring(1)+src;continue}this.inLink=true;out+=this.outputLink(cap,link);this.inLink=false;continue}if(cap=this.rules.strong.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.strong(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.em.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.em(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.codespan(escape(cap[2],true));continue}if(cap=this.rules.br.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.br();continue}if(cap=this.rules.del.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.del(this.output(cap[1]));continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);out+=escape(this.smartypants(cap[0]));continue}if(src){throw new Error("Infinite loop on byte: "+src.charCodeAt(0))}}return out};InlineLexer.prototype.outputLink=function(cap,link){var href=escape(link.href),title=link.title?escape(link.title):null;return cap[0].charAt(0)!=="!"?this.renderer.link(href,title,this.output(cap[1])):this.renderer.image(href,title,escape(cap[1]))};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants)return text;return text.replace(/--/g,"—").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")};InlineLexer.prototype.mangle=function(text){var out="",l=text.length,i=0,ch;for(;i.5){ch="x"+ch.toString(16)}out+="&#"+ch+";"}return out};function Renderer(options){this.options=options||{}}Renderer.prototype.code=function(code,lang,escaped){if(this.options.highlight){var out=this.options.highlight(code,lang);if(out!=null&&out!==code){escaped=true;code=out}}if(!lang){return"
"+(escaped?code:escape(code,true))+"\n
"}return'
'+(escaped?code:escape(code,true))+"\n
\n"};Renderer.prototype.blockquote=function(quote){return"
\n"+quote+"
\n"};Renderer.prototype.html=function(html){return html};Renderer.prototype.heading=function(text,level,raw){return"'+text+"\n"};Renderer.prototype.hr=function(){return this.options.xhtml?"
\n":"
\n"};Renderer.prototype.list=function(body,ordered){var type=ordered?"ol":"ul";return"<"+type+">\n"+body+"\n"};Renderer.prototype.listitem=function(text){return"
  • "+text+"
  • \n"};Renderer.prototype.paragraph=function(text){return"

    "+text+"

    \n"};Renderer.prototype.table=function(header,body){return"\n"+"\n"+header+"\n"+"\n"+body+"\n"+"
    \n"};Renderer.prototype.tablerow=function(content){return"\n"+content+"\n"};Renderer.prototype.tablecell=function(content,flags){var type=flags.header?"th":"td";var tag=flags.align?"<"+type+' style="text-align:'+flags.align+'">':"<"+type+">";return tag+content+"\n"};Renderer.prototype.strong=function(text){return""+text+""};Renderer.prototype.em=function(text){return""+text+""};Renderer.prototype.codespan=function(text){return""+text+""};Renderer.prototype.br=function(){return this.options.xhtml?"
    ":"
    "};Renderer.prototype.del=function(text){return""+text+""};Renderer.prototype.link=function(href,title,text){if(this.options.sanitize){try{var prot=decodeURIComponent(unescape(href)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(prot.indexOf("javascript:")===0){return""}}var out='
    ";return out};Renderer.prototype.image=function(href,title,text){var out=''+text+'":">";return out};function Parser(options){this.tokens=[];this.token=null;this.options=options||marked.defaults;this.options.renderer=this.options.renderer||new Renderer;this.renderer=this.options.renderer;this.renderer.options=this.options}Parser.parse=function(src,options,renderer){var parser=new Parser(options,renderer);return parser.parse(src)};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options,this.renderer);this.tokens=src.reverse();var out="";while(this.next()){out+=this.tok()}return out};Parser.prototype.next=function(){return this.token=this.tokens.pop()};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0};Parser.prototype.parseText=function(){var body=this.token.text;while(this.peek().type==="text"){body+="\n"+this.next().text}return this.inline.output(body)};Parser.prototype.tok=function(){switch(this.token.type){case"space":{return""}case"hr":{return this.renderer.hr()}case"heading":{return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text)}case"code":{return this.renderer.code(this.token.text,this.token.lang,this.token.escaped)}case"table":{var header="",body="",i,row,cell,flags,j;cell="";for(i=0;i/g,">").replace(/"/g,""").replace(/'/g,"'")}function unescape(html){return html.replace(/&([#\w]+);/g,function(_,n){n=n.toLowerCase();if(n==="colon")return":";if(n.charAt(0)==="#"){return n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1))}return""})}function replace(regex,opt){regex=regex.source;opt=opt||"";return function self(name,val){if(!name)return new RegExp(regex,opt);val=val.source||val;val=val.replace(/(^|[^\[])\^/g,"$1");regex=regex.replace(name,val);return self}}function noop(){}noop.exec=noop;function merge(obj){var i=1,target,key;for(;iAn error occured:

    "+escape(e.message+"",true)+"
    "}throw e}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,smartLists:false,silent:false,highlight:null,langPrefix:"lang-",smartypants:false,headerPrefix:"",renderer:new Renderer,xhtml:false};marked.Parser=Parser;marked.parser=Parser.parse;marked.Renderer=Renderer;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;marked.parse=marked;if(typeof module!=="undefined"&&typeof exports==="object"){module.exports=marked}else if(typeof define==="function"&&define.amd){define(function(){return marked})}else{this.marked=marked}}).call(function(){return this||(typeof window!=="undefined"?window:global)}()); \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/rec.css b/src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/rec.css deleted file mode 100644 index 55d481d..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/rec.css +++ /dev/null @@ -1,88 +0,0 @@ -/* Style for a "Recommendation" */ - -/* - Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. - The following software licensing rules apply: - http://www.w3.org/Consortium/Legal/copyright-software */ - -/* $Id: base.css,v 1.25 2006/04/18 08:42:53 bbos Exp $ */ - -body { - padding: 2em 1em 2em 70px; - margin: 0; - font-family: sans-serif; - color: black; - background: white; - background-position: top left; - background-attachment: fixed; - background-repeat: no-repeat; - counter-reset:section; -} -:link { color: #00C; background: transparent } -:visited { color: #609; background: transparent } -a:active { color: #C00; background: transparent } - -a:link img, a:visited img { border-style: none } /* no border on img links */ - -a img { color: white; } /* trick to hide the border in Netscape 4 */ -@media all { /* hide the next rule from Netscape 4 */ - a img { color: inherit; } /* undo the color change above */ -} - -th, td { /* ns 4 */ - font-family: sans-serif; -} - -h1, h2, h3, h4, h5, h6 { text-align: left } -h2.list{counter-reset:subsection } -h2.list:before{counter-increment:section;content: counter(section) ". ";} -h3.list:before{counter-increment:subsection;content: counter(section) "." counter(subsection) ". "; - } -h3.list{margin-top: 20px; - border-bottom: 0px; } -/* background should be transparent, but WebTV has a bug */ -h1, h2, h3 { color: #005A9C; background: white } -h1 { font: 170% sans-serif } -h2 { font: 140% sans-serif } -h3 { font: 120% sans-serif } -h4 { font: bold 100% sans-serif } -h5 { font: italic 100% sans-serif } -h6 { font: small-caps 100% sans-serif } - -.hide { display: none } - -div.head { margin-bottom: 1em } -div.head h1 { margin-top: 2em; clear: both } -div.head table { margin-left: 2em; margin-top: 2em } - -p.copyright { font-size: small } -p.copyright small { font-size: small } - -@media screen { /* hide from IE3 */ -a[href]:hover { background: #ffa } -} - -pre { margin-left: 2em } -/* -p { - margin-top: 0.6em; - margin-bottom: 0.6em; -} -*/ -dt, dd { margin-top: 0; margin-bottom: 0 } /* opera 3.50 */ -dt { font-weight: bold } - -pre, code { font-family: monospace } /* navigator 4 requires this */ - -ul.toc, ol.toc { - list-style: disc; /* Mac NS has problem with 'none' */ - list-style: none; -} - -@media aural { - h1, h2, h3 { stress: 20; richness: 90 } - .hide { speak: none } - p.copyright { volume: x-soft; speech-rate: x-fast } - dt { pause-before: 20% } - pre { speak-punctuation: code } -} diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/abstract-en.html b/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/abstract-en.html deleted file mode 100644 index b484346..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/abstract-en.html +++ /dev/null @@ -1,4 +0,0 @@ - -

    Abstract

    -The Smart Applications REFerence ontology (SAREF) is intended to enable interoperability between solutions from different providers and among various activity sectors in the Internet of Things (IoT), thus contributing to the development of the global digital market. - diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/crossref-en.html b/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/crossref-en.html deleted file mode 100644 index 2c9da37..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/crossref-en.html +++ /dev/null @@ -1,3298 +0,0 @@ -

    Cross reference for SAREF: the Smart Applications REFerence ontology classes, properties and dataproperties back to ToC

    -This section provides details for each class and property defined by SAREF: the Smart Applications REFerence ontology. -
    -

    Classes

    - -
    -

    Actuating functionc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/ActuatingFunction

    -
    - A function that allows to transmit data to actuators, such as level settings (e.g., temperature) or binary switching (e.g., open/close, on/off) -
    -
    -
    has super-classes
    -
    - Function - c -
    -
    has sub-classes
    -
    - Level control function - c, On off function - c, Open close function - c, Start stop function - c -
    -
    -
    -
    -

    Actuatorc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Actuator

    -
    - A device responsible for moving or controlling a mechanism or system by performing an actuating function -
    -
    -
    has super-classes
    -
    - Device - c -
    -
    has sub-classes
    -
    - Switch - c -
    -
    -
    -
    -

    Appliancec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Appliance

    -
    - An electrical/mechanical machine that accomplish some household functions, such as cleaning or cooking -
    -
    -
    has super-classes
    -
    - Device - c -
    -
    -
    -
    -

    Close commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/CloseCommand

    -
    - A type of command -
    -
    -
    has super-classes
    -
    - Command - c -
    -
    is disjoint with
    -
    - Open command - c -
    -
    -
    -
    -

    Close statec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/CloseState

    -
    - The state of a device that is CLOSE -
    -
    -
    has super-classes
    -
    - Open close state - c -
    -
    -
    -
    -

    Coalc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Coal

    -
    - A type of commodity -
    -
    -
    has super-classes
    -
    - Commodity - c -
    -
    -
    -
    -

    Commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Command

    -
    - A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended. -
    -
    -
    has super-classes
    -
    -
    has sub-classes
    -
    - Close command - c, Get command - c, Notify command - c, Off command - c, On command - c, Open command - c, Pause command - c, Set level command - c, Start command - c, Step down command - c, Step up command - c, Stop command - c, Toggle command - c -
    -
    is in domain of
    -
    - acts upon - op, is command of - op -
    -
    is in range of
    -
    - has command - op -
    -
    -
    -
    -

    Commodityc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Commodity

    -
    - A marketable item for which there is demand, but which is supplied without qualitative differentiation across a market. SAREF refers to energy commodities such as electricity, gas, coal and oil. -
    -
    -
    has sub-classes
    -
    - Coal - c, Electricity - c, Gas - c, Water - c -
    -
    -
    -
    -

    Currencyc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Currency

    -
    - The class of units of measure for price -
    -
    -
    has super-classes
    -
    - Unit of measure - c -
    -
    -
    -
    -

    Devicec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Device

    -
    - A tangible object designed to accomplish a particular task. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function. -
    -
    -
    has super-classes
    -
    -
    has sub-classes
    -
    - Actuator - c, Appliance - c, HVAC - c, Meter - c, Sensor - c -
    -
    is in domain of
    -
    - controls property - op, has function - op, has profile - op, has state - op, makes measurement - op, measures property - op, offers - op -
    -
    is in range of
    -
    - is controlled by device - op, is measured by device - op, is offered by - op, measurement made by - op -
    -
    -
    -
    -

    Door switchc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/DoorSwitch

    -
    - A switch that performs the saref:OpenCloseFunction, is used for controlling a door, and can be found in the state saref:OpenCloseState. A saref:DoorSwitch is typically used to accomplish saref:Safety. -
    -
    -
    has super-classes
    -
    - Switch - c -
    -
    -
    -
    -

    Electricityc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Electricity

    -
    - A type of commodity -
    -
    -
    has super-classes
    -
    - Commodity - c -
    -
    -
    -
    -

    Energyc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Energy

    -
    - A saref:Property related to some measurements that are characterized by a certain value measured in an energy unit (such as Kilowatt_Hour or Watt_hour). Furter specializations of the saref:Energy class can be found in the SAREF4ENER extension, where classes such as EnergyMax, EnergyMin and EnergyExpected are defined. -
    -
    -
    has super-classes
    -
    - Property - c -
    -
    -
    -
    -

    Energy unitc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/EnergyUnit

    -
    - The unit of measure for energy -
    -
    -
    has super-classes
    -
    - Unit of measure - c -
    -
    -
    -
    -

    Event functionc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/EventFunction

    -
    - A function that allows to notify about some relevant activity; e.g., that a certain threshold value has been exceeded or that some object has moved. -
    -
    -
    has super-classes
    -
    - Function - c -
    -
    is in domain of
    -
    - has threshold measurement - op -
    -
    -
    -
    -

    Feature of interestc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/FeatureOfInterest

    -
    - A feature of interest represents any real world entity from which a property is measured. -
    -
    -
    has super-classes
    -
    -
    is in domain of
    -
    - has measurement - op, has property - op -
    -
    is in range of
    -
    - is property of - op, isMeasurementOf - op -
    -
    -
    -
    -

    Functionc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Function

    -
    - The functionality necessary to accomplish the task for which a device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. -
    -
    -
    has super-classes
    -
    -
    has sub-classes
    -
    - Actuating function - c, Event function - c, Metering function - c, Sensing function - c -
    -
    is in domain of
    -
    - has command - op -
    -
    is in range of
    -
    - has function - op, is command of - op, represents - op -
    -
    -
    -
    -

    Gasc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Gas

    -
    - A type of commodity -
    -
    -
    has super-classes
    -
    - Commodity - c -
    -
    -
    -
    -

    Get commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/GetCommand

    -
    - A type of command -
    -
    -
    has super-classes
    -
    - Command - c -
    -
    has sub-classes
    -
    - Get current meter value command - c, Get meter data command - c, Get meter history command - c, Get sensing data command - c -
    -
    -
    -
    -

    Get current meter value commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/GetCurrentMeterValueCommand

    -
    - A type of get command -
    -
    -
    has super-classes
    -
    - Get command - c -
    -
    -
    -
    -

    Get meter data commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/GetMeterDataCommand

    -
    - A type of get command -
    -
    -
    has super-classes
    -
    - Get command - c -
    -
    -
    -
    -

    Get meter history commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/GetMeterHistoryCommand

    -
    - A type of get command -
    -
    -
    has super-classes
    -
    - Get command - c -
    -
    -
    -
    -

    Get sensing data commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/GetSensingDataCommand

    -
    - A type of get command -
    -
    -
    has super-classes
    -
    - Get command - c -
    -
    -
    -
    -

    Humidityc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Humidity

    -
    - A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit -
    -
    -
    has super-classes
    -
    - Property - c -
    -
    -
    -
    -

    HVACc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/HVAC

    -
    - Heating, Ventilation and Air Conditioning (HVAC) device that provides indoor environmental comfort. A saref:HVAC is typically used to accomplish saref:Comfort. -
    -
    -
    has super-classes
    -
    - Device - c -
    -
    -
    -
    -

    Illuminance unitc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/IlluminanceUnit

    -
    - The unit of measure for light -
    -
    -
    has super-classes
    -
    - Unit of measure - c -
    -
    -
    -
    -

    Level control functionc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/LevelControlFunction

    -
    - An actuating function that allows to do level adjustments of a property in a certain range (e.g., 0%-100%), such as dimming a light in a room or setting the speed of an electric motor. -
    -
    -
    has super-classes
    -
    - Actuating function - c -
    -
    -
    -
    -

    Lightc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Light

    -
    - A saref:Property related to some measurements that are characterized by a certain value that is measured in a illuminance unit (lux) -
    -
    -
    has super-classes
    -
    - Property - c -
    -
    -
    -
    -

    Light switchc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/LightSwitch

    -
    - A switch that performs the saref:OnOffFunction, controls the property saref:Light, and can be found in the state saref:OnOffState. It can offer a switch on service. A saref:LightSwitch is typically used to accomplish saref:Lighting. -
    -
    -
    has super-classes
    -
    - Switch - c -
    -
    -
    -
    -

    Measurementc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Measurement

    -
    - Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. -
    -
    -
    has super-classes
    -
    -
    is in domain of
    -
    - is measured in - op, isMeasurementOf - op, measurement made by - op, relates to property - op -
    -
    is in range of
    -
    - has measurement - op, has meter reading - op, has sensing range - op, has threshold measurement - op, makes measurement - op, relates to measurement - op -
    -
    -
    -
    -

    Meterc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Meter

    -
    - A device built to accurately detect and display a quantity in a form readable by a human being. Further, a device of category saref:Meter that performs a saref:MeteringFunction. -
    -
    -
    has super-classes
    -
    - Device - c -
    -
    -
    -
    -

    Metering functionc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/MeteringFunction

    -
    - A function that allows to get data from a meter, such as current meter reading or instantaneous demand -
    -
    -
    has super-classes
    -
    - Function - c -
    -
    is in domain of
    -
    - has meter reading - op, has meter reading type - op -
    -
    -
    -
    -

    Motionc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Motion

    -
    - A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for motion -
    -
    -
    has super-classes
    -
    - Property - c -
    -
    -
    -
    -

    Multi level statec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/MultiLevelState

    -
    - A type of state -
    -
    -
    has super-classes
    -
    - State - c -
    -
    -
    -
    -

    Notify commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/NotifyCommand

    -
    - A type of command -
    -
    -
    has super-classes
    -
    - Command - c -
    -
    -
    -
    -

    Occupancyc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Occupancy

    -
    - A saref:Property related to some measurements that are characterized by a certain value (saref:hasValue property) that is measured in a unit of measure for occupancy -
    -
    -
    has super-classes
    -
    - Property - c -
    -
    -
    -
    -

    Off commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/OffCommand

    -
    - A type of command -
    -
    -
    has super-classes
    -
    - Command - c -
    -
    is disjoint with
    -
    - On command - c -
    -
    -
    -
    -

    Off statec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/OffState

    -
    - The state of a device that is Off -
    -
    -
    has super-classes
    -
    - On off state - c -
    -
    -
    -
    -

    On commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/OnCommand

    -
    - A type of command -
    -
    -
    has super-classes
    -
    - Command - c -
    -
    is disjoint with
    -
    - Off command - c -
    -
    -
    -
    -

    On off functionc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/OnOffFunction

    -
    - An actuating function that allows to switch on and off an actuator -
    -
    -
    has super-classes
    -
    - Actuating function - c -
    -
    -
    -
    -

    On off statec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/OnOffState

    -
    - A type of state -
    -
    -
    has super-classes
    -
    - State - c -
    -
    has sub-classes
    -
    - Off state - c, On state - c -
    -
    -
    -
    -

    On statec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/OnState

    -
    - The state of a device that is On -
    -
    -
    has super-classes
    -
    - On off state - c -
    -
    -
    -
    -

    Open close functionc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/OpenCloseFunction

    -
    - An actuating function that allows to open and close a device -
    -
    -
    has super-classes
    -
    - Actuating function - c -
    -
    -
    -
    -

    Open close statec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/OpenCloseState

    -
    - A type of state -
    -
    -
    has super-classes
    -
    - State - c -
    -
    has sub-classes
    -
    - Close state - c, Open state - c -
    -
    -
    -
    -

    Open commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/OpenCommand

    -
    - A type of command -
    -
    -
    has super-classes
    -
    - Command - c -
    -
    is disjoint with
    -
    - Close command - c -
    -
    -
    -
    -

    Open statec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/OpenState

    -
    - The state of a device that is OPEN -
    -
    -
    has super-classes
    -
    - Open close state - c -
    -
    -
    -
    -

    Pause commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/PauseCommand

    -
    - A type of command -
    -
    -
    has super-classes
    -
    - Command - c -
    -
    -
    -
    -

    Powerc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Power

    -
    - A saref:Property related to some measurements that are characterized by a certain value that is measured in a power unit (such as watt or kilowatt). Further specializations of the saref:Power class can be found in the SAREF4ENER extension, where classes such as PowerMax, PowerMin and PowerExpected are defined. -
    -
    -
    has super-classes
    -
    - Property - c -
    -
    -
    -
    -

    Power unitc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/PowerUnit

    -
    - The unit of measure for power -
    -
    -
    has super-classes
    -
    - Unit of measure - c -
    -
    -
    -
    -

    Pressurec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Pressure

    -
    - A saref:Property related to some measurements that are characterized by a certain value that is measured in a pressure unit (bar or pascal) -
    -
    -
    has super-classes
    -
    - Property - c -
    -
    -
    -
    -

    Pressure unitc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/PressureUnit

    -
    - The unit of measure for pressure -
    -
    -
    has super-classes
    -
    - Unit of measure - c -
    -
    -
    -
    -

    Pricec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Price

    -
    - A saref:Property crelated to some measurements that are characterized by a certain value that is measured using saref:Currency -
    -
    -
    has super-classes
    -
    - Property - c -
    -
    is in range of
    -
    - has price - op -
    -
    -
    -
    -

    Profilec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Profile

    -
    - A specification associated to a device to collect information about a certain Property (e.g., Energy) for optimizing its usage in the home, office or building in which the device is located. This specification is about a certain Property (saref:isAbout), can be calculated over a time span (saref:hasTime) and can be associated to some costs (saref:hasPrice). An example is the Power Profile defined in the SAREF4ENER extension that can be associated to a device for optimizing the Energy efficiency in the home, office or building in which the device is located. -
    -
    -
    has super-classes
    -
    -
    is in range of
    -
    - has profile - op -
    -
    -
    -
    -

    Propertyc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Property

    -
    - A quality of a feature of interest that can be measured; an aspect of a feature of interest that is intrinsic to and cannot exist without the feature -
    -
    -
    has super-classes
    -
    -
    has sub-classes
    -
    - Energy - c, Humidity - c, Light - c, Motion - c, Occupancy - c, Power - c, Pressure - c, Price - c, Smoke - c, Temperature - c -
    -
    is in domain of
    -
    - is controlled by device - op, is measured by device - op, is property of - op, relates to measurement - op -
    -
    is in range of
    -
    - controls property - op, has meter reading type - op, has property - op, has sensor type - op, measures property - op, relates to property - op -
    -
    -
    -
    -

    Sensing functionc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/SensingFunction

    -
    - A function that allows to transmit data from sensors, such as measurement values (e.g., temperature) or sensing data (e.g., occupancy) -
    -
    -
    has super-classes
    -
    - Function - c -
    -
    is in domain of
    -
    - has sensing range - op, has sensor type - op -
    -
    -
    -
    -

    Sensorc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Sensor

    -
    - A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. Further, a device of category saref:Sensor that performs a saref:SensingFunction. -
    -
    -
    has super-classes
    -
    - Device - c -
    -
    has sub-classes
    -
    - Smoke sensor - c, Temperature sensor - c -
    -
    -
    -
    -

    Servicec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Service

    -
    - A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service and the function(s) to be represented. -
    -
    -
    has super-classes
    -
    -
    has sub-classes
    -
    - Switch on service - c -
    -
    is in domain of
    -
    - is offered by - op, represents - op -
    -
    is in range of
    -
    - offers - op -
    -
    -
    -
    -

    Set absolute level commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/SetAbsoluteLevelCommand

    -
    - A type of set level command -
    -
    -
    has super-classes
    -
    - Set level command - c -
    -
    -
    -
    -

    Set level commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/SetLevelCommand

    -
    - A type of command -
    -
    -
    has super-classes
    -
    - Command - c -
    -
    has sub-classes
    -
    - Set absolute level command - c, Set relative level command - c -
    -
    -
    -
    -

    Set relative level commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/SetRelativeLevelCommand

    -
    - A type of set level command -
    -
    -
    has super-classes
    -
    - Set level command - c -
    -
    -
    -
    -

    Smokec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Smoke

    -
    - A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for smoke -
    -
    -
    has super-classes
    -
    - Property - c -
    -
    -
    -
    -

    Smoke sensorc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/SmokeSensor

    -
    - A sensor that performs the saref:SensingFunction and the saref:EventFunction, and is used for the purpose of sensing a property of type saref:Smoke. A saref:SmokeSensor is typically used to saref:accomplish saref:Safety. -
    -
    -
    has super-classes
    -
    - Sensor - c -
    -
    -
    -
    -

    Start commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/StartCommand

    -
    - A type of command -
    -
    -
    has super-classes
    -
    - Command - c -
    -
    is disjoint with
    -
    - Stop command - c -
    -
    -
    -
    -

    Start statec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/StartState

    -
    - The state of a device that is STARTED -
    -
    -
    has super-classes
    -
    - Start stop state - c -
    -
    -
    -
    -

    Start stop functionc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/StartStopFunction

    -
    - An actuating function that allows to start and stop a device -
    -
    -
    has super-classes
    -
    - Actuating function - c -
    -
    -
    -
    -

    Start stop statec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/StartStopState

    -
    - A type of state -
    -
    -
    has super-classes
    -
    - State - c -
    -
    has sub-classes
    -
    - Start state - c, Stop state - c -
    -
    -
    -
    -

    Statec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/State

    -
    - The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended. -
    -
    -
    has sub-classes
    -
    - Multi level state - c, On off state - c, Open close state - c, Start stop state - c -
    -
    is in range of
    -
    - acts upon - op, has state - op -
    -
    -
    -
    -

    Step down commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/StepDownCommand

    -
    - A type of command -
    -
    -
    has super-classes
    -
    - Command - c -
    -
    is disjoint with
    -
    - Step up command - c -
    -
    -
    -
    -

    Step up commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/StepUpCommand

    -
    - A type of command -
    -
    -
    has super-classes
    -
    - Command - c -
    -
    is disjoint with
    -
    - Step down command - c -
    -
    -
    -
    -

    Stop commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/StopCommand

    -
    - A type of command -
    -
    -
    has super-classes
    -
    - Command - c -
    -
    is disjoint with
    -
    - Start command - c -
    -
    -
    -
    -

    Stop statec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/StopState

    -
    - The state of a device that is STOPPED -
    -
    -
    has super-classes
    -
    - Start stop state - c -
    -
    -
    -
    -

    Switchc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Switch

    -
    - A device of category saref:Actuator that performs an actuating function of type saref:OnOffFunction or saref:OpenCloseFunction -
    -
    -
    has super-classes
    -
    - Actuator - c -
    -
    has sub-classes
    -
    - Door switch - c, Light switch - c -
    -
    -
    -
    -

    Switch on servicec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/SwitchOnService

    -
    - A type of service that represents an on/off function to the network -
    -
    -
    has super-classes
    -
    - Service - c -
    -
    -
    -
    -

    Taskc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Task

    -
    - The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended. Tasks can be accomplished by devices (saref:isAccomplishedBy). -
    -
    -
    is in domain of
    -
    - is accomplished by - op -
    -
    is in range of
    -
    - accomplishes - op -
    -
    has members
    -
    - Cleaning - ni, Comfort - ni, Drying - ni, EnergyEfficiency - ni, Entertainment - ni, Lighting - ni, Meter reading - ni, Safety - ni, Washing - ni, WellBeing - ni -
    -
    -
    -
    -

    Temperaturec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Temperature

    -
    - A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin) -
    -
    -
    has super-classes
    -
    - Property - c -
    -
    -
    -
    -

    Temperature sensorc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/TemperatureSensor

    -
    - A sensor that is used for the purpose of sensing a property of type saref:Temperature. A saref:TemperatureSensor is typically used to saref:accomplish saref:Comfort. -
    -
    -
    has super-classes
    -
    - Sensor - c -
    -
    -
    -
    -

    Temperature unitc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/TemperatureUnit

    -
    - The unit of measure for temperature -
    -
    -
    has super-classes
    -
    - Unit of measure - c -
    -
    -
    -
    -

    Timec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Time

    -
    - A class that allows to specify the time concept. -
    -
    -
    is in range of
    -
    - has time - op -
    -
    -
    -
    -

    Toggle commandc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/ToggleCommand

    -
    - A type of command -
    -
    -
    has super-classes
    -
    - Command - c -
    -
    -
    -
    -

    Unit of measurec - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/UnitOfMeasure

    -
    - The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called "watt". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM). -
    -
    -
    has sub-classes
    -
    - Currency - c, Energy unit - c, Illuminance unit - c, Power unit - c, Pressure unit - c, Temperature unit - c -
    -
    is in range of
    -
    - is measured in - op -
    -
    -
    -
    -

    Waterc - back to ToC or Class ToC - -

    -

    - IRI: https://saref.etsi.org/core/Water

    -
    - A type of commodity -
    -
    -
    has super-classes
    -
    - Commodity - c -
    -
    -
    -
    -

    Object Properties

    - -
    -

    accomplishesop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/accomplishes

    -
    - A relationship between a certain entity (e.g., a device) and the task it accomplishes -
    -
    -
    -
    has range
    -
    - Task - c -
    -
    is inverse of
    -
    - is accomplished by - op -
    -
    -
    -
    -
    -

    acts uponop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/actsUpon

    -
    - A relationship between a command and a state -
    -
    -
    -
    has domain
    -
    - Command - c -
    -
    has range
    -
    - State - c -
    -
    -
    -
    -
    -

    consists ofop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/consistsOf

    -
    - A relationship indicating a composite entity that consists of other entities (e.g., a temperature/humidity sensor that consists of a temperature sensor and a humidity sensor) -
    -
    -
    -

    controls propertyop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/controlsProperty

    -
    - A relationship specifying the property that can be controlled by a certain device -
    -
    -
    -
    has domain
    -
    - Device - c -
    -
    has range
    -
    - Property - c -
    -
    -
    -
    -
    -

    has commandop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasCommand

    -
    - A relationship between a function and a command -
    -
    -
    -
    has domain
    -
    - Function - c -
    -
    has range
    -
    - Command - c -
    -
    is inverse of
    -
    - is command of - op -
    -
    -
    -
    -
    -

    has functionop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasFunction

    -
    - A relationship identifying the function of a device -
    -
    -
    -
    has domain
    -
    - Device - c -
    -
    has range
    -
    - Function - c -
    -
    -
    -
    -
    -

    has measurementop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasMeasurement

    -
    - A relationship between a feature of interest and a measurement about it -
    -
    -
    -
    has domain
    -
    - Feature of interest - c -
    -
    has range
    -
    - Measurement - c -
    -
    is inverse of
    -
    - isMeasurementOf - op -
    -
    -
    -
    -
    -

    has meter readingop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasMeterReading

    -
    - A relationship between a metering function and the measurement of the reading -
    -
    -
    -
    has domain
    -
    - Metering function - c -
    -
    has range
    -
    - Measurement - c -
    -
    -
    -
    -
    -

    has meter reading typeop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasMeterReadingType

    -
    - A relationship identifying the reading type of a metering function (e.g., Water, Gas, Pressure , Energy , Power, etc.) -
    -
    -
    -
    has domain
    -
    - Metering function - c -
    -
    has range
    -
    - Property - c -
    -
    -
    -
    -
    -

    has priceop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasPrice

    -
    - A relationship indentifying the price associated to an entity -
    -
    -
    -
    has range
    -
    - Price - c -
    -
    -
    -
    -
    -

    has profileop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasProfile

    -
    - A relationship associating a profile to a certain device -
    -
    -
    -
    has domain
    -
    - Device - c -
    -
    has range
    -
    - Profile - c -
    -
    -
    -
    -
    -

    has propertyop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasProperty

    -
    - A relationship between a feature of interest and a property of that feature -
    -
    -
    -
    has domain
    -
    - Feature of interest - c -
    -
    has range
    -
    - Property - c -
    -
    is inverse of
    -
    - is property of - op -
    -
    -
    -
    -
    -

    has sensing rangeop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasSensingRange

    -
    - A relationship between a sensing function and a measurement identifying the range of a sensor detection -
    -
    -
    -
    has domain
    -
    - Sensing function - c -
    -
    has range
    -
    - Measurement - c -
    -
    -
    -
    -
    -

    has sensor typeop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasSensorType

    -
    - A relationship identifying the sensing type of a sensor detection (i.e., Temperature, Occupancy, Humidity, Motion , Smoke, Pressure, etc.) -
    -
    -
    -
    has domain
    -
    - Sensing function - c -
    -
    has range
    -
    - Property - c -
    -
    -
    -
    -
    -

    has stateop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasState

    -
    - A relationship identifying the type of state of a device -
    -
    -
    -
    has domain
    -
    - Device - c -
    -
    has range
    -
    - State - c -
    -
    -
    -
    -
    -

    has threshold measurementop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasThresholdMeasurement

    -
    - A relationship associated with an event function to notify that a certain threshold measurement has been exceeded -
    -
    -
    -
    has domain
    -
    - Event function - c -
    -
    has range
    -
    - Measurement - c -
    -
    -
    -
    -
    -

    has timeop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasTime

    -
    - A relationship to associate time information to an entity -
    -
    -
    -
    has range
    -
    - Time - c -
    -
    -
    -
    -
    -

    has typical consumptionop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasTypicalConsumption

    -
    - A relationship identifying the typical (energy or power) consumption of a device -
    -
    -
    -

    is accomplished byop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/isAccomplishedBy

    -
    - A relationship identifying an entity (e.g., a device) that can accomplish a task. -
    -
    -
    -
    has domain
    -
    - Task - c -
    -
    is inverse of
    -
    - accomplishes - op -
    -
    -
    -
    -
    -

    is command ofop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/isCommandOf

    -
    - A relationship between a command and a function. -
    -
    -
    -
    has domain
    -
    - Command - c -
    -
    has range
    -
    - Function - c -
    -
    is inverse of
    -
    - has command - op -
    -
    -
    -
    -
    -

    is controlled by deviceop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/isControlledByDevice

    -
    - A relationship specifying the devices that can control a certain property -
    -
    -
    -
    has domain
    -
    - Property - c -
    -
    has range
    -
    - Device - c -
    -
    -
    -
    -
    -

    is measured by deviceop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/isMeasuredByDevice

    -
    - A relationship specifying the devices that can measure a certain property -
    -
    -
    -
    has domain
    -
    - Property - c -
    -
    has range
    -
    - Device - c -
    -
    -
    -
    -
    -

    is measured inop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/isMeasuredIn

    -
    - A relationship identifying the unit of measure used for a certain entity. -
    -
    -
    -
    has domain
    -
    - Measurement - c -
    -
    has range
    -
    - Unit of measure - c -
    -
    -
    -
    -
    -

    is offered byop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/isOfferedBy

    -
    - A relationship between a service and a device that offers the service -
    -
    -
    -
    has domain
    -
    - Service - c -
    -
    has range
    -
    - Device - c -
    -
    is inverse of
    -
    - offers - op -
    -
    -
    -
    -
    -

    is property ofop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/isPropertyOf

    -
    - A relationship between a property and the feature of interest it belongs to -
    -
    -
    -
    has domain
    -
    - Property - c -
    -
    has range
    -
    - Feature of interest - c -
    -
    is inverse of
    -
    - has property - op -
    -
    -
    -
    -
    -

    is used forop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/isUsedFor

    -
    - A relationship specifying the commodity for which a device is used for -
    -
    -
    -

    isAboutop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/isAbout

    -
    - A relationship identifying what an entity, such as a profile, is about -
    -
    -
    -

    isMeasurementOfop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/isMeasurementOf

    -
    - A relationship between a measurement and the feature of interest whose quality was measured -
    -
    -
    -
    has domain
    -
    - Measurement - c -
    -
    has range
    -
    - Feature of interest - c -
    -
    is inverse of
    -
    - has measurement - op -
    -
    -
    -
    -
    -

    makes measurementop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/makesMeasurement

    -
    - A relation between a device and the measurements it makes. Such measurement will link together the value of the measurement, its unit of measure and the property to which it relates. -
    -
    -
    -
    has domain
    -
    - Device - c -
    -
    has range
    -
    - Measurement - c -
    -
    is inverse of
    -
    - measurement made by - op -
    -
    -
    -
    -
    -

    measurement made byop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/measurementMadeBy

    -
    - A relation between a measurement and the device that made it. -
    -
    -
    -
    has domain
    -
    - Measurement - c -
    -
    has range
    -
    - Device - c -
    -
    is inverse of
    -
    - makes measurement - op -
    -
    -
    -
    -
    -

    measures propertyop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/measuresProperty

    -
    - A relationship specifying the property that can be measured by a certain device -
    -
    -
    -
    has domain
    -
    - Device - c -
    -
    has range
    -
    - Property - c -
    -
    -
    -
    -
    -

    offersop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/offers

    -
    - A relationship between a device and a service -
    -
    -
    -
    has domain
    -
    - Device - c -
    -
    has range
    -
    - Service - c -
    -
    is inverse of
    -
    - is offered by - op -
    -
    -
    -
    -
    -

    relates to measurementop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/relatesToMeasurement

    -
    - A relationship between a property and the measurements it relates to -
    -
    -
    -
    has domain
    -
    - Property - c -
    -
    has range
    -
    - Measurement - c -
    -
    is inverse of
    -
    - relates to property - op -
    -
    -
    -
    -
    -

    relates to propertyop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/relatesToProperty

    -
    - A relationship between a measurement and the property it relates to -
    -
    -
    -
    has domain
    -
    - Measurement - c -
    -
    has range
    -
    - Property - c -
    -
    is inverse of
    -
    - relates to measurement - op -
    -
    -
    -
    -
    -

    representsop - back to ToC or Object Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/represents

    -
    - A relationship between a service and a function. -
    -
    -
    -
    has domain
    -
    - Service - c -
    -
    has range
    -
    - Function - c -
    -
    -
    -
    -
    -

    Data Properties

    - -
    -

    has descriptiondp - back to ToC or Data Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasDescription

    -
    - A relationship providing a description of an entity (e.g., device). The value is expected to be a string or a string with language tag. -
    -
    -
    Is deprecated
    -
    true
    -
    -
    -
    -

    has manufacturerdp - back to ToC or Data Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasManufacturer

    -
    - A relationship identifying the manufacturer of an entity (e.g., device). The value is expected to be a string or a string with language tag. -
    -
    -
    -

    has modeldp - back to ToC or Data Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasModel

    -
    - A relationship identifying the model of an entity (e.g., device). The value is expected to be a string or a string with language tag. -
    -
    -
    -

    has timestampdp - back to ToC or Data Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasTimestamp

    -
    - A relationship stating the timestamp of an entity (e.g. a measurement). -
    -
    -
    -

    has valuedp - back to ToC or Data Property ToC - -

    -

    - IRI: https://saref.etsi.org/core/hasValue

    -
    - A relationship defining the value of a certain property, e.g., energy or power. Note that, even if numeric values are expected to enable reasoning, measurement values could use other datatypes. -
    -
    -
    -

    Named Individuals

    - -
    -

    Cleaningni - back to ToC or Named Individual ToC - -

    -

    - IRI: https://saref.etsi.org/core/Cleaning

    -
    - A type of task for which a device is designed -
    -
    -
    belongs to
    -
    - Task - c -
    -
    -
    -
    -

    Comfortni - back to ToC or Named Individual ToC - -

    -

    - IRI: https://saref.etsi.org/core/Comfort

    -
    - A type of task for which a device is designed -
    -
    -
    belongs to
    -
    - Task - c -
    -
    -
    -
    -

    Dryingni - back to ToC or Named Individual ToC - -

    -

    - IRI: https://saref.etsi.org/core/Drying

    -
    - A type of task for which a device is designed -
    -
    -
    belongs to
    -
    - Task - c -
    -
    -
    -
    -

    EnergyEfficiencyni - back to ToC or Named Individual ToC - -

    -

    - IRI: https://saref.etsi.org/core/EnergyEfficiency

    -
    - A type of task for which a device is designed -
    -
    -
    belongs to
    -
    - Task - c -
    -
    -
    -
    -

    Entertainmentni - back to ToC or Named Individual ToC - -

    -

    - IRI: https://saref.etsi.org/core/Entertainment

    -
    - A type of task for which a device is designed -
    -
    -
    belongs to
    -
    - Task - c -
    -
    -
    -
    -

    Lightingni - back to ToC or Named Individual ToC - -

    -

    - IRI: https://saref.etsi.org/core/Lighting

    -
    - A type of task for which a device is designed -
    -
    -
    belongs to
    -
    - Task - c -
    -
    -
    -
    -

    Meter readingni - back to ToC or Named Individual ToC - -

    -

    - IRI: https://saref.etsi.org/core/MeterReading

    -
    - A type of task for which a device is designed -
    -
    -
    belongs to
    -
    - Task - c -
    -
    -
    -
    -

    Safetyni - back to ToC or Named Individual ToC - -

    -

    - IRI: https://saref.etsi.org/core/Safety

    -
    - A type of task for which a device is designed -
    -
    -
    belongs to
    -
    - Task - c -
    -
    -
    -
    -

    Washingni - back to ToC or Named Individual ToC - -

    -

    - IRI: https://saref.etsi.org/core/Washing

    -
    - A type of task for which a device is designed -
    -
    -
    belongs to
    -
    - Task - c -
    -
    -
    -
    -

    WellBeingni - back to ToC or Named Individual ToC - -

    -

    - IRI: https://saref.etsi.org/core/WellBeing

    -
    - A type of task for which a device is designed -
    -
    -
    belongs to
    -
    - Task - c -
    -
    -
    -
    -

    Legend back to ToC

    -
    -c: Classes
    -op: Object Properties
    -dp: Data Properties
    -ni: Named Individuals -
    -
    - diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/description-en.html b/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/description-en.html deleted file mode 100644 index 32b4322..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/description-en.html +++ /dev/null @@ -1,11 +0,0 @@ - -

    SAREF: the Smart Applications REFerence ontology: Description back to ToC

    - - -Figure 1 shows an overview of the main classes of SAREF and their relationships. - - -
    SAREF ontology graphical overview.
    Figure 1. - SAREF overview.
    - - - diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/introduction-en.html b/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/introduction-en.html deleted file mode 100644 index 3e8e1bd..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/introduction-en.html +++ /dev/null @@ -1,22 +0,0 @@ -

    Introduction back to ToC

    - -
    -

    Namespace declarations

    -
    - - - - - - - - - - - - -
    Table 1: Namespaces used in the document
    saref<https://saref.etsi.org/core/>
    forge-etsi-org<https://forge.etsi.org>
    owl<http://www.w3.org/2002/07/owl>
    rdf<http://www.w3.org/1999/02/22-rdf-syntax-ns>
    terms<http://purl.org/dc/terms>
    xsd<http://www.w3.org/2001/XMLSchema>
    rdfs<http://www.w3.org/2000/01/rdf-schema>
    vann<http://purl.org/vocab/vann>
    -
    -
    - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/overview-en.html b/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/overview-en.html deleted file mode 100644 index 015556c..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/overview-en.html +++ /dev/null @@ -1,410 +0,0 @@ -

    SAREF: the Smart Applications REFerence ontology: Overview back to ToC

    - -This ontology has the following classes and properties. -

    Classes

    -

    Object Properties

    Data Properties

    Named Individuals

    diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/references-en.html b/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/references-en.html deleted file mode 100644 index 5501c97..0000000 --- a/src/main/resources/saref-portal-generator/public/core/v3.1.1/sections/references-en.html +++ /dev/null @@ -1,6 +0,0 @@ - -

    References back to ToC

    - -Add your references here. It is recommended to have them as a list. - - diff --git a/src/main/resources/saref-portal-generator/public/index (copy).html b/src/main/resources/saref-portal-generator/public/index (copy).html deleted file mode 100644 index 10e33ff..0000000 --- a/src/main/resources/saref-portal-generator/public/index (copy).html +++ /dev/null @@ -1,473 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - Smart Applications REFerence Ontology, and extensions

    -

    Official ETSI portal for SAREF
    This page contains pointers to the SAREF ontologies and SAREF-related work items

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    - - -
    - -
    - -
    -
    -

    Filter by title or domain:

    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    OntologySerializationLicenseAuthorsLanguageDomainDescription
    - SAREF: the Smart Appliances REFerence ontology - - html - turtle - xml - xml - Laura Daniele - María Poveda-Villalón - Raúl García-Castro - en - smart appliances IoT - -

    - The Smart Appliances REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing assets in the smart appliances domain. -

    - -
    - SAREF extension for environment - - html - turtle - xml - xml - María Poveda-Villalón - Raúl García-Castro - - en - environment - light pollution - photometer - SAREF - -

    - This ontology extends the SAREF ontology for the environment domain, specifically for the light pollution domain, including concepts like photometers, light, etc. -

    - -
    - SAREF extension for building devices - - html - turtle - xml - xml - María Poveda-Villalón - Raúl García-Castro - - en - building - building device - device - IFC - SAREF - -

    - This ontology extends the SAREF ontology for the building domain by defining building devices and how they are located in a building. -

    - -
    - SAREF extension for energy - - html - turtle - xml - xml - Laura Daniele - en - smart appliances energy - -

    - SAREF4ENER is an extension of SAREF for the Energy domain -

    - -
    SAREF extension for the Smart Agriculture and Food Chain Domains - html - turtle - xml - xml - Laura Daniele - enComing soonDescription coming soon
    SAREF extension for the Industry and Manufacturing Domains - html - turtle - xml - xml - Laura Daniele - María Poveda-Villalón - Raúl García-Castro - Mike de Roode - Matthijs Punter - Alba Fernandez Izquierdo, UPM - enComing soonDescription coming soon
    SAREF extension for the Smart City Domain - html - turtle - xml - xml - Raúl García-Castro - María Poveda-Villalón - Paola Patricia Espinoza Arias - enComing soonDescription coming soon
    SAREF Systems: typology of systems and their inter-connections - html - turtle - xml - xml - Maxime Lefrançois - enComing soonDescription coming soon
    -
    -
    -
    - - - - - diff --git a/src/main/resources/saref-portal-generator/public/index-maria.html b/src/main/resources/saref-portal-generator/public/index-maria.html deleted file mode 100644 index dc865df..0000000 --- a/src/main/resources/saref-portal-generator/public/index-maria.html +++ /dev/null @@ -1,1188 +0,0 @@ - - - - - - - - - - - { ?title } - - - - - - - - - - - - - - - - - - - - - - - SAREF Portal - index - - - -
    - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -

    - Smart Applications REFerence Ontology, and extensions

    -

    Official ETSI portal for SAREF
    This page contains pointers to the SAREF ontologies and SAREF-related work items

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -
    -

    Filter by title or domain:

    -
    -
    - Remove filter -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    OntologySerializationLicenseAuthorsLanguageDomainDescription
    - SAREF: the Smart Appliances REFerence ontology - - html - turtle - xml - CC-by4.0 - Laura Daniele - María Poveda-Villalón - Raúl García-Castro - en - smart appliances IoT - -

    - The Smart Appliances REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing ... See more -

    - -
    - SAREF extension for environment - - html - turtle - xml - CC-by4.0 - María Poveda-Villalón - Raúl García-Castro - - en - environment - light pollution - photometer - SAREF - -

    - This ontology extends the SAREF ontology for the environment domain, specifically for the light pollution domain, including ... See more -

    - -
    - SAREF extension for building devices - - html - turtle - xml - CC-by4.0 - María Poveda-Villalón - Raúl García-Castro - - en - building - building device - device - IFC - SAREF - -

    - This ontology extends the SAREF ontology for the building domain by defining building devices and how they are located in ... See more -

    - -
    - SAREF extension for energy - - html - turtle - xml - CC-by4.0 - Laura Daniele - en - smart appliances energy - -

    - SAREF4ENER is an extension of SAREF for the Energy domain that was created in collaboration with Energy@Home ... See more -

    - -
    SAREF extension for the Smart Agriculture and Food Chain Domains - html - turtle - xml - CC-by4.0 - Laura Daniele - enComing soonDescription coming soon
    SAREF extension for the Industry and Manufacturing Domains - html - turtle - xml - CC-by4.0 - Laura Daniele - María Poveda-Villalón - Raúl García-Castro - Mike de Roode - Matthijs Punter - Alba Fernandez Izquierdo, UPM - enComing soonDescription coming soon
    SAREF extension for the Smart City Domain - html - turtle - xml - CC-by4.0 - Raúl García-Castro - María Poveda-Villalón - Paola Patricia Espinoza Arias - enComing soonDescription coming soon
    SAREF Systems - html - turtle - xml - CC-by4.0 - Maxime Lefrançois - enComing soonDescription coming soon
    -
    - - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/index-online.html b/src/main/resources/saref-portal-generator/public/index-online.html deleted file mode 100644 index 7373b0d..0000000 --- a/src/main/resources/saref-portal-generator/public/index-online.html +++ /dev/null @@ -1,412 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - Smart Applications REFerence Ontology, and extensions

    -

    Official ETSI portal for SAREF
    This page contains pointers to the SAREF ontologies and SAREF-related work items

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    Filter by title or domain:

    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    OntologySerializationLicenseAuthorsLanguageDomainDescription
    - SAREF: the Smart Appliances REFerence ontology - - html - turtle - xml - xml - Laura Daniele - María Poveda-Villalón - Raúl García-Castro - en - smart appliances IoT - -

    - The Smart Appliances REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing assets in the smart appliances domain. -

    - -
    - SAREF extension for environment - - html - turtle - xml - xml - María Poveda-Villalón - Raúl García-Castro - - en - environment - light pollution - photometer - SAREF - -

    - This ontology extends the SAREF ontology for the environment domain, specifically for the light pollution domain, including concepts like photometers, light, etc. -

    - -
    - SAREF extension for building devices - - html - turtle - xml - xml - María Poveda-Villalón - Raúl García-Castro - - en - building - building device - device - IFC - SAREF - -

    - This ontology extends the SAREF ontology for the building domain by defining building devices and how they are located in a building. -

    - -
    - SAREF extension for energy - - html - turtle - xml - xml - Laura Daniele - en - smart appliances energy - -

    - SAREF4ENER is an extension of SAREF for the Energy domain -

    - -
    SAREF extension for the Smart Agriculture and Food Chain Domains - html - turtle - xml - xml - Laura Daniele - enComing soonDescription coming soon
    SAREF extension for the Industry and Manufacturing Domains - html - turtle - xml - xml - Laura Daniele - María Poveda-Villalón - Raúl García-Castro - Mike de Roode - Matthijs Punter - Alba Fernandez Izquierdo, UPM - enComing soonDescription coming soon
    SAREF extension for the Smart City Domain - html - turtle - xml - xml - Raúl García-Castro - María Poveda-Villalón - Paola Patricia Espinoza Arias - enComing soonDescription coming soon
    SAREF Systems: typology of systems and their inter-connections - html - turtle - xml - xml - Maxime Lefrançois - enComing soonDescription coming soon
    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/index.html b/src/main/resources/saref-portal-generator/public/index.html deleted file mode 100644 index 8ef786c..0000000 --- a/src/main/resources/saref-portal-generator/public/index.html +++ /dev/null @@ -1,252 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - Smart Applications REFerence Ontology, and extensions

    -

    Official ETSI portal for SAREF
    This page contains pointers to the SAREF ontologies and SAREF-related work items

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required - to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    - - -
    - -
    -
    -

    - - What is SAREF? -

    - - -

    The Smart Appliances REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing assets in the smart appliances domain.

    -

    SAREF provides building blocks that allow separation and recombination of different parts of the ontology depending on specific needs.

    -
    - -
    -

    - - Why SAREF? -

    -

    SAREF explicitly specifies recurring core concepts in the smart appliances domain, the main relationships between these concepts, and axioms to constrain the usage of these concepts and relationships. SAREF has been - created based on the following fundamental principles:
    - -

      -
    • Reuse and alignment of concepts and relationships that are defined in existing assets
    • -
    • Modularity to allow separation and recombination of different parts of the ontology depending on specific needs
    • -
    • Extensibility to allow further growth of the ontology
    • -
    • Maintainability to facilitate the process of identifying and correcting defects, accommodate new - requirements, and cope with changes in (parts of) SAREF
    • - - -
    -

    -
    - - - -
    - center -
    - -
    - - - -
    - -
    - - - diff --git a/src/main/resources/saref-portal-generator/public/lode/extra.css b/src/main/resources/saref-portal-generator/public/lode/extra.css deleted file mode 100644 index 38e86dc..0000000 --- a/src/main/resources/saref-portal-generator/public/lode/extra.css +++ /dev/null @@ -1,124 +0,0 @@ -body { - text-align: justify; -} - -h1 { - line-height: 110%; -} - -.hlist { - border: 1px solid navy; - padding:5px; - background-color: #F4FFFF; -} - -.hlist li { - display: inline; - display: inline-table; - list-style-type: none; - padding-right: 20px; - -} - -.entity { - border: 1px solid navy; - margin:5px 0px 5px 0px; - padding: 5px; -} - -.type-c { - cursor:help; - color:orange; -} - -.type-op { - cursor:help; - color:navy; -} - -.type-dp { - cursor:help; - color:green; -} - -.type-ap { - cursor:help; - color:maroon; -} - -.type-ni { - cursor:help; - color:brown; -} - -.logic { - color:purple; - font-weight:bold; -} - -h3 { - margin-top: 3px; - padding-bottom: 5px; - border-bottom: 1px solid navy; -} - -h2 { - margin-top:40px; -} - -.dotted { - border-bottom: 1px dotted gray; -} - -dt { - margin-top:5px; -} - -.description { - border-top: 1px dashed gray; - border-bottom: 1px dashed gray; - background-color: rgb(242, 243, 244); - margin-top:5px; - padding-bottom:5px; -} - -.description dl { - background-color: rgb(242, 243, 244); -} - -.description ul { - padding-left: 12px; - margin-top: 0px; -} - -.backlink { - font-size:10pt; - text-align:right; - float:right; - color:black; - padding: 2px; - border: 1px dotted navy; - background-color: #F4FFFF; -} - -.imageblock { - text-align: center; -} - -.imageblock img { - border:1px solid gray; -} - -.endnote { - margin-top: 40px; - border-top: 1px solid gray; - padding-top: 10px; - text-align: center; - color:gray; - font-size:70%; -} - -.literal { - color:green; - font-style:italic; -} \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/lode/owl.css b/src/main/resources/saref-portal-generator/public/lode/owl.css deleted file mode 100644 index 9e80a25..0000000 --- a/src/main/resources/saref-portal-generator/public/lode/owl.css +++ /dev/null @@ -1,248 +0,0 @@ -.RFC2119 { - text-transform: lowercase; - font-style: italic; -} -.nonterminal { - font-weight: bold; - font-family: sans-serif; - font-size: 95%; -} -#abstract br { - /* doesn't work right SOMETIMES - margin-bottom: 1em; */ -} -.name { - font-family: monospace; -} -.buttonpanel { - margin-top: 1ex; - margin-bottom: 1ex; - padding-left: 1ex; - padding-right: 1ex; - padding-top: 1ex; - padding-bottom: 0.6ex; - border: 1px dotted black; -} -.grammar { - margin-top: 1ex; - margin-bottom: 1ex; - padding-left: 1ex; - padding-right: 1ex; - padding-top: 1ex; - padding-bottom: 0.6ex; - border: 1px dashed #2f6fab; - font-family: monospace; -} -.image { - text-align: center; -} -.centered { - text-align: center; - padding-top: 4ex; - padding-bottom: 4ex; -} -.centered table { - margin: 0 auto; - text-align: left; -} -.caption { - font-weight: bold; -} -.indent { - margin-left: 20px; -} -.atrisknote { - padding: 5px; - margin-top: 10px; - margin-bottom: 10px; - border: solid 2px blue; - background-color: #FFA; -} -.atrisknotehead { - font-style: italic; -} - -/* Stying the examples. */ - -.anexample:before { - content: "Example:"; - font-family: sans-serif; - font-size: 1.6ex; - font-weight: bold; -} -.anexample { - margin-top: 1ex; - margin-bottom: 1ex; - padding-left: 1ex; - padding-right: 1ex; - padding-top: 1ex; - padding-bottom: 0.6ex; - border: 1px dashed #2f6fab; - background-color: #f9f9f9; -} -.anexample table { - background-color: #f9f9f9; -} - -/* Styling the parts in the functional-style syntax. */ - -div.fss { - margin-top: 10px; - margin-bottom: 10px; - margin-left: 20px; - margin-right: 20px; - font-family: monospace; -} -table.fss { - margin: 0px 0px 0px 0px; - padding: 0px 0px 0px 0px; - width: 100%; -} -table.fss caption.fss { - font-size: 1.5ex; - font-weight: bold; - text-align: left; - padding-left: 10px; -} -table.fss td:first-child { - font-family: monospace; - padding-left: 20px; - padding-right: 20px; - width: 60%; -} -table{ - background-color: #f4ffff; - border: 1px solid navy; - margin: 20px; - vertical-align: middle; -} -table td { - padding: 5px 15px; - text-align: left; -} - -/* Styling the parts in the RDF syntax. */ - -div.rdf{ - margin-top: 10px; - margin-bottom: 10px; - margin-left: 20px; - margin-right: 20px; - font-family: monospace; -} -table.rdf { - margin: 0px 0px 0px 0px; - padding: 0px 0px 0px 0px; - width: 100%; -} -table.rdf caption.rdf { - font-size: 1.5ex; - font-weight: bold; - text-align: left; - padding-left: 10px; -} -table.rdf td:first-child { - font-family: monospace; - padding-left: 20px; - padding-right: 20px; - width: 60%; -} - -/* Styling the XML syntax. */ - -div.xmlsyn { - margin-top: 10px; - margin-bottom: 10px; - margin-left: 20px; - margin-right: 20px; - font-family: monospace; -} -div.axioms { - margin-top: 10px; - margin-bottom: 10px; - margin-left: 20px; - margin-right: 20px; -} - -/* Other styles. */ - -table.complexity td { - text-align: center; -} -table.allname td { - font-family: monospace; -} -table.canonicalparsing { - margin-left: 20px; - border-style: none; -} -table.canonicalparsing td { - vertical-align: top; - padding: 2px 2px 2px 2px; -} -table.canonicalparsing td.two { - padding-left: 30px; -} - -/* The following are classes for templates used in the editing process. */ - -.review { - padding: 5px; - border: solid 1px black; - margin-left: 10%; - margin-top: 10px; - margin-bottom: 10px; - background-color: #FFA; - font-size: smaller; -} -.reviewauthor { - font-size: smaller; - font-style: italic; -} -.ednote { - padding: 5px; - border: solid 1px black; - margin-top: 10px; - margin-bottom: 10px; -} -.ednotehead { - font-weight: bold; -} - -/* override mediawiki's beautiful DL styling... */ -dl { - background: white; - width: 100%; - border: none; - margin-top: 0; - margin-bottom: 0; - padding-top: 0; - padding-bottom: 0; -} - -div { - margin-top: 0; - margin-bottom: 0; -} -#fulltitle { - font-size: 140%; - font-weight: bold; -} - -.xml { - color: red -} - -.rdbms{ -color: red -} - -/* just copying from wiki, so it stays through TR. Currently - affects Primer, at least */ -pre { - background-color:#F9F9F9; - border:1px dashed #2F6FAB; - color:black; - line-height:1.1em; - padding:1em; -} \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/lode/primer.css b/src/main/resources/saref-portal-generator/public/lode/primer.css deleted file mode 100644 index fc28be7..0000000 --- a/src/main/resources/saref-portal-generator/public/lode/primer.css +++ /dev/null @@ -1,103 +0,0 @@ -/* define a class "noprint" for sections which don't get printed */ -.noprint { display: none; } - -/* our syntax menu for switching */ -div.syntaxmenu { - border: 1px dotted black; - padding:0.5em; - margin: 1em; -} - -.container { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} - -@media print { - div.syntaxmenu { display:none; } -} - -/* use tab-like headers for syntax examples */ -div.exampleheader { - font-size: 90%; - float: left; - background: #F9F9F9; - color: #2F6FAB; - border: 1px dashed #2F6FAB; - border-bottom: 0px; - padding-top: 2px; -} - -div.exampleheader span.exampleheader { - background: #F9F9F9; - padding-top: 0px; - padding-right: 10px; - padding-left: 10px; - padding-bottom: 3px; - padding-top: 0px; -} - -/* Also copy MediaWiki style here, so it will not look different when exported */ -div.fssyntax pre, div.rdfxml pre, div.owlxml pre, div.turtle pre, div.manchester pre { - background-color: #F9F9F9; - border: 1px dashed #2F6FAB; - color: black; - line-height: 1.1em; - padding: 1em; - clear: both; - margin-left: 0em; -} -/* Expansion to add the status*/ -.status { - position: fixed; - left: 0em; - top: 0em; - text-align: right; - vertical-align: middle; - /* Square version of the inside span. Slightly larger */ - width: 26em; - height: 26em; - z-index: -1; - opacity: 0.8; - - /** From http://stackoverflow.com/questions/1080792/how-to-draw-vertical-text-with-css-cross-browser */ - - -webkit-transform: rotate(-90deg); - -moz-transform: rotate(-90deg); - -ms-transform: rotate(-90deg); - -o-transform: rotate(-90deg); - transform: rotate(-90deg); - /* also accepts left, right, top, bottom coordinates; not - * required, but a good idea for styling */ - -webkit-transform-origin: 50% 50%; - -moz-transform-origin: 50% 50%; - -ms-transform-origin: 50% 50%; - -o-transform-origin: 50% 50%; - transform-origin: 50% 50%; - - /* Should be unset in IE9+ I think. */ - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); -} - -/* The actual status box */ - .status div { - display: block; - background: rgb(0, 90, 156); - color: white; - width: 24em; - padding-top: 0.3em; - padding-left: 0em; - padding-right: 5em; - padding-bottom: 0.3em; - /* Enable for debugging - border: red thin solid; - */ -} - -/* And text inside, don't confuse fonts as it breaks em above */ -.status div span { - font-family: "Tauri"; - font-size: larger; -} \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/resources.html b/src/main/resources/saref-portal-generator/public/resources.html deleted file mode 100644 index 407fe52..0000000 --- a/src/main/resources/saref-portal-generator/public/resources.html +++ /dev/null @@ -1,450 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - Smart Applications REFerence Ontology, and extensions

    -

    Official ETSI portal for SAREF
    This page contains pointers to the SAREF ontologies and SAREF-related work items

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    - - -
    -
    -

    Filter by title or domain:

    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    OntologySerializationLicenseAuthorsLanguageDomainDescriptionVisualizeImpactStatistics
    - SAREF: the Smart Appliances REFerence ontology - - html - turtle - xml - xml - Laura Daniele - María Poveda-Villalón - Raúl García-Castro - en - smart appliances IoT - -

    - The Smart Appliances REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing assets in the smart appliances domain. -

    - -
    - SAREF extension for environment - - html - turtle - xml - xml - María Poveda-Villalón - Raúl García-Castro - - en - environment - light pollution - photometer - SAREF - -

    - This ontology extends the SAREF ontology for the environment domain, specifically for the light pollution domain, including concepts like photometers, light, etc. -

    - -
    - SAREF extension for building devices - - html - turtle - xml - xml - María Poveda-Villalón - Raúl García-Castro - - en - building - building device - device - IFC - SAREF - -

    - This ontology extends the SAREF ontology for the building domain by defining building devices and how they are located in a building. -

    - -
    - SAREF extension for energy - - html - turtle - xml - xml - Laura Daniele - en - smart appliances energy - -

    - SAREF4ENER is an extension of SAREF for the Energy domain -

    - -
    SAREF extension for the Smart Agriculture and Food Chain Domains - html - turtle - xml - xml - Laura Daniele - enComing soonDescription coming soon
    SAREF extension for the Industry and Manufacturing Domains - html - turtle - xml - xml - Laura Daniele - María Poveda-Villalón - Raúl García-Castro - Mike de Roode - Matthijs Punter - Alba Fernandez Izquierdo, UPM - enComing soonDescription coming soon
    SAREF extension for the Smart City Domain - html - turtle - xml - xml - Raúl García-Castro - María Poveda-Villalón - Paola Patricia Espinoza Arias - enComing soonDescription coming soon
    SAREF Systems: typology of systems and their inter-connections - html - turtle - xml - xml - Maxime Lefrançois - enComing soonDescription coming soon
    -
    -
    -
    - - - - - diff --git a/src/main/resources/saref-portal-generator/public/saref/latest/saref.html b/src/main/resources/saref-portal-generator/public/saref/latest/saref.html deleted file mode 100644 index 0a96975..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/latest/saref.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - SAREF: the Smart Applications REFerence ontology

    -

    Official ETSI documentation for SAREF v2.1.1
    This page will soon contain the documentation of the SAREF ontology v2.1.1

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    The documentation of SAREF v2.1.1 will be available here soon. The source of the ontology are available as Turtle or RDF/XML Visualize it with VOWL

    -
    -
    -
    -
    -

    The Smart Appliances REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing assets (standards/protocols/datamodels/etc.) in the smart appliances domain. The SAREF ontology provides building blocks that allow separation and recombination of different parts of the ontology depending on specific needs. The starting point of SAREF is the concept of device (e.g., a switch). Devices are tangible objects designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function. The SAREF ontology offers a lists of basic functions that can be eventually combined in order to have more complex functions in a single device. For example, a switch offers an actuating function of type 'switching on/off'. Each function has some associated commands, which can also be picked up as building blocks from a list. For example, the 'switching on/off' is associated with the commands 'switch on', 'switch off' and 'toggle'. Depending on the function(s) it accomplishes, a device can be found in some corresponding states that are also listed as building blocks. When connected to a network, a device offers a service, which is a representation of a function to a network that makes the function discoverable, registerable and remotely controllable by other devices in the network. A service can represent one or more functions. A service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A service must specify the device that is offering the service and the function(s) to be represented. A device in the SAREF ontology is also characterized by a profile that can be used to optimize some property, such as Energy, in a home or office that are part of a building.

    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref/latest/saref.n3 b/src/main/resources/saref-portal-generator/public/saref/latest/saref.n3 deleted file mode 100644 index ac28315..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/latest/saref.n3 +++ /dev/null @@ -1,1231 +0,0 @@ -@prefix rdf: . -@prefix owl: . -@prefix xml: . -@prefix saref: . -@prefix xsd: . -@prefix dcterms: . -@prefix rdfs: . -@prefix time: . -@prefix vann: . -@prefix foaf: . -@prefix om: . - -saref:controlsProperty - a owl:ObjectProperty ; - rdfs:comment "A relationship specifying the Property that can be controlled by a certain Device"@en ; - rdfs:label "controls property"@en . - -saref:On a saref:OnState , saref:OnCommand , owl:NamedIndividual ; - rdfs:comment "The value ON. It is used to instantiate different classes such as the OnCommand class and OnState class. " ; - rdfs:label "On" . - -saref:hasTimestamp a owl:DatatypeProperty ; - rdfs:comment "A relationship stating the timestamp of an entity (e.g. a measurement)."@en ; - rdfs:label "has timestamp"@en . - -saref:HVAC a owl:Class ; - rdfs:comment "Heating, Ventilation and Air Conditioning (HVAC) device that provides indoor environmental comfort" ; - rdfs:label "HVAC" ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:Comfort ; - owl:onProperty saref:accomplishes - ] . - -saref:OnCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "On command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:OnOffState ; - owl:onProperty saref:actsUpon - ] . - -saref:GetSensingData a saref:GetSensingDataCommand , owl:NamedIndividual ; - rdfs:comment "The command GET SENSING DATA. It is used to instantiate the GetSensingDataCommand class. " ; - rdfs:label "Get sensing data" . - -om:lux a saref:IlluminanceUnit , owl:NamedIndividual ; - rdfs:comment "The lux is a unit of illuminance defined as lumen divided by square metre = candela times steradian divided by square metre."@en ; - rdfs:label "lux" . - -saref:StopCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Stop command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:StartStopState ; - owl:onProperty saref:actsUpon - ] . - -saref:GetSensingDataCommand - a owl:Class ; - rdfs:comment "A type of get command" ; - rdfs:label "Get sensing data command" ; - rdfs:subClassOf saref:GetCommand . - -saref:NotifyCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Notify command" ; - rdfs:subClassOf saref:Command . - -saref:GetCurrentMeterValue - a saref:GetCurrentMeterValueCommand , owl:NamedIndividual ; - rdfs:comment "The command GET CURRENT METER VALUE. It is used to instantiate the GetCurrentMeterValueCommand class. " ; - rdfs:label "Get current meter value" . - -saref:SetRelativeLevelCommand - a owl:Class ; - rdfs:comment "A type of set level command" ; - rdfs:label "Set relative level command" ; - rdfs:subClassOf saref:SetLevelCommand . - -saref:StartStopState a owl:Class ; - rdfs:comment "A type of state" ; - rdfs:label "Start stop state" ; - rdfs:subClassOf saref:State . - -saref:isUsedFor a owl:ObjectProperty ; - rdfs:comment "A relationship specifying the purpose for which a device is used for (e.g., controlling a Commodity)" ; - rdfs:label "is used for" . - -saref:isAbout a owl:ObjectProperty ; - rdfs:comment "A relationship identifying what an entity, such as a Profile, is about"@en ; - rdfs:label "isAbout"@en . - -saref:FunctionRelated - a owl:Class ; - rdfs:comment "A category that considers devices, sensors and their specification in terms of functions, states and services" ; - rdfs:label "Function related" ; - rdfs:subClassOf saref:Device . - -saref:Stop a saref:StopState , saref:StopCommand , owl:NamedIndividual ; - rdfs:comment "The value STOP. It is used to instantiate different classes such as the StopCommand class and StopState class. " ; - rdfs:label "Stop" . - -saref:SetRelativeLevel - a saref:SetRelativeLevelCommand , owl:NamedIndividual ; - rdfs:comment "The value SET RELATIVE LEVEL. It is used to instantiate classes such as the SetRelativeLevelCommand class. " ; - rdfs:label "Set relative level" . - -saref:LevelControlFunction - a owl:Class ; - rdfs:comment "An actuating function that allows to do level adjustments of an actuator in a certain range (e.g., 0%-100%), such as dimming a light or set the speed of an electric motor. " ; - rdfs:label "Level control function" ; - rdfs:subClassOf saref:ActuatingFunction ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( saref:SetAbsoluteLevelCommand saref:SetRelativeLevelCommand saref:StepDownCommand saref:StepUpCommand ) - ] ; - owl:onProperty saref:hasCommand - ] . - -saref:GetMeterData a saref:GetMeterDataCommand , owl:NamedIndividual ; - rdfs:comment "The command GET METER DATA. It is used to instantiate the GetMeterDataCommand class. " ; - rdfs:label "Get meter data" . - -saref:State a owl:Class ; - rdfs:comment "The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "State" . - -saref:Meter a owl:Class ; - rdfs:comment "A device built to accurately detect and display a quantity in a form readable by a human being. Further, a device of category saref:Meter that performs a saref:MeteringFunction." ; - rdfs:label "Meter" ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:MeteringFunction - ] . - -saref:GetCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Get command" ; - rdfs:subClassOf saref:Command . - -saref:PressureUnit a owl:Class ; - rdfs:comment "The unit of measure for pressure" ; - rdfs:label "Pressure unit" ; - rdfs:subClassOf saref:UnitOfMeasure . - -saref:GetCurrentMeterValueCommand - a owl:Class ; - rdfs:comment "A type of get command" ; - rdfs:label "Get current meter value command" ; - rdfs:subClassOf saref:GetCommand . - -saref:OnOffState a owl:Class ; - rdfs:comment "A type of state" ; - rdfs:label "On off state" ; - rdfs:subClassOf saref:State . - -saref:Power a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a power unit (such as watt or kilowatt). Further specializations of the saref:Power class can be found in the SAREF4ENER extension, where classes such as PowerMax, PowerMin and PowerExpected are defined." ; - rdfs:label "Power" ; - rdfs:subClassOf saref:Property . - -saref:hasModel a owl:DatatypeProperty ; - rdfs:comment "A relationship identifying the model of an entity (e.g., device)" ; - rdfs:label "has model" ; - rdfs:range xsd:string . - -saref:EnergyMeter a owl:Class ; - rdfs:comment "An energy meter is a device of category saref:Meter that consists of a meter, accomplishes the tasks saref:MeterReading and saref:EnergyEfficiency, performs the saref:MeteringFunction and is used for the purpose of measuring the saref:Energy property" ; - rdfs:label "Energy meter" ; - rdfs:subClassOf saref:Meter ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:MeterReading ; - owl:onProperty saref:accomplishes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:EnergyEfficiency ; - owl:onProperty saref:accomplishes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom saref:Energy - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Meter - ] . - -saref:Start a saref:StartState , saref:StartCommand , owl:NamedIndividual ; - rdfs:comment "The value START. It is used to instantiate different classes such as the StartCommand class and StartState class. " ; - rdfs:label "Start" . - -saref:Temperature a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin)" ; - rdfs:label "Temperature" ; - rdfs:subClassOf saref:Property . - -saref:OnOffFunction a owl:Class ; - rdfs:comment "An actuating function that allows to switch on and off an actuator" ; - rdfs:label "On off function" ; - rdfs:subClassOf saref:ActuatingFunction ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( saref:OffCommand saref:OnCommand saref:ToggleCommand ) - ] ; - owl:onProperty saref:hasCommand - ] . - -saref:relatesToProperty - a owl:ObjectProperty ; - rdfs:comment "A relationship between a measurement and the property it relates to" ; - rdfs:label "relates to property"@en . - -saref:MicroRenewable a owl:Class ; - rdfs:comment "A device that generates renewable energy from natural resources such as teh sun, wind and water" ; - rdfs:label "Micro renewable" ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:EnergyEfficiency ; - owl:onProperty saref:accomplishes - ] . - -om:kilowatt a saref:PowerUnit , owl:NamedIndividual ; - rdfs:label "kilowatt" . - -saref:isControlledByDevice - a owl:ObjectProperty ; - rdfs:comment "A relationship specifying the devices that can control a certain property"@en ; - rdfs:label "is controlled by device" . - -saref:UnitOfMeasure a owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM)." ; - rdfs:isDefinedBy ; - rdfs:label "Unit of measure" . - -saref:Pressure a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a pressure unit (bar or pascal)" ; - rdfs:label "Pressure" ; - rdfs:subClassOf saref:Property . - -saref:Price a owl:Class ; - rdfs:comment "A saref:Property crelated to some measurements that are characterized by a certain value that is measured using saref:Currency" ; - rdfs:label "Price" ; - rdfs:subClassOf saref:Property . - -saref:ActuatingFunction - a owl:Class ; - rdfs:comment "A function that allows to transmit data to actuators, such as level settings (e.g., temperature) or binary switching (e.g., open/close, on/off)" ; - rdfs:label "Actuating function" ; - rdfs:subClassOf saref:Function . - -saref:hasState a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the type of state of a device" ; - rdfs:label "has state" . - -saref:CloseState a owl:Class ; - rdfs:comment "The state of a device that is CLOSE" ; - rdfs:label "Close state" ; - rdfs:subClassOf saref:OpenCloseState . - -saref:OffState a owl:Class ; - rdfs:comment "The state of a device that is ON" ; - rdfs:label "Off state" ; - rdfs:subClassOf saref:OnOffState . - -saref:Close a saref:CloseState , saref:CloseCommand , owl:NamedIndividual ; - rdfs:comment "The value CLOSE. It is used to instantiate different classes such as the CloseCommand class and CloseState class, for example. " ; - rdfs:label "Close" . - -saref:WellBeing a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "WellBeing" . - -saref:MeterReading a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "Meter reading" . - -saref:hasName a owl:DatatypeProperty ; - rdfs:comment "A relationship providing the name of an entity (e.g., device)" ; - rdfs:label "has name" ; - rdfs:range xsd:string . - -saref:Occupancy a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value (saref:hasValue property) that is measured in a unit of measure for occupancy" ; - rdfs:label "Occupancy" ; - rdfs:subClassOf saref:Property . - -saref:OpenCloseState a owl:Class ; - rdfs:comment "A type of state" ; - rdfs:label "Open close state" ; - rdfs:subClassOf saref:State . - -saref:Service a owl:Class ; - rdfs:comment "A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service and the function(s) to be represented." ; - rdfs:label "Service" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Function ; - owl:onProperty saref:represents - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Device ; - owl:onProperty saref:isOfferedBy - ] . - -saref:isOfferedBy a owl:ObjectProperty ; - rdfs:comment "A relationship between a service and a device that offers the service" ; - rdfs:label "is offered by" ; - owl:inverseOf saref:offers . - -saref:hasMeterReading - a owl:ObjectProperty ; - rdfs:comment "A relationship between a metering function and the measurement of the reading" ; - rdfs:label "has meter reading" . - -saref:SetAbsoluteLevelCommand - a owl:Class ; - rdfs:comment "A type of set level command" ; - rdfs:label "Set absolute level command" ; - rdfs:subClassOf saref:SetLevelCommand . - -saref:OpenCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Open command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:OpenCloseState ; - owl:onProperty saref:actsUpon - ] . - -saref:watt_hour a saref:EnergyUnit , owl:NamedIndividual ; - rdfs:comment "The Watt Hor is a unit of energy equivalent to one watt (1 W) of power expended for one hour (1 h) of time. An energy expenditure of 1 Wh represents 3600 joules " ; - rdfs:label "watt hour" . - -saref:StepDownCommand - a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Step down command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:MultiLevelState ; - owl:onProperty saref:actsUpon - ] ; - owl:disjointWith saref:StepUpCommand . - -saref:OpenCloseFunction - a owl:Class ; - rdfs:comment "An actuating function that allows to open and close a device" ; - rdfs:label "Open close function" ; - rdfs:subClassOf saref:ActuatingFunction ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( saref:CloseCommand saref:OpenCommand ) - ] ; - owl:onProperty saref:hasCommand - ] . - -saref:Energy a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value measured in an energy unit (such as Kilowatt_Hour or Watt_hour). Furter specializations of the saref:Energy class can be found in the SAREF4ENER extension, where classes such as EnergyMax, EnergyMin and EnergyExpected are defined. " ; - rdfs:label "Energy" ; - rdfs:subClassOf saref:Property . - -saref:isMeasuredByDevice - a owl:ObjectProperty ; - rdfs:comment "A relationship specifying the devices that can measure a certain property"@en ; - rdfs:label "is measured by device" . - -saref:StepUpCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Step up command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:MultiLevelState ; - owl:onProperty saref:actsUpon - ] . - -saref:StopState a owl:Class ; - rdfs:comment "The state of a device that is STOPPED" ; - rdfs:label "Stop state" ; - rdfs:subClassOf saref:StartStopState . - -saref:hasTime a owl:ObjectProperty ; - rdfs:comment "A relationship to associate time information to an entity" ; - rdfs:label "has time" . - -saref:ToggleCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Toggle command" ; - rdfs:subClassOf saref:Command . - -saref:PowerUnit a owl:Class ; - rdfs:comment "The unit of measure for power" ; - rdfs:label "Power unit" ; - rdfs:subClassOf saref:UnitOfMeasure . - -om:bar a saref:PressureUnit , owl:NamedIndividual ; - rdfs:comment "The bar is a unit of pressure defined as 100 000 pascal."@en ; - rdfs:label "bar" . - -saref:Gas a owl:Class ; - rdfs:comment "A type of commodity" ; - rdfs:label "Gas" ; - rdfs:subClassOf saref:Commodity . - -saref:TemperatureUnit - a owl:Class ; - rdfs:comment "The unit of measure for temperature" ; - rdfs:label "Temperature unit" ; - rdfs:subClassOf saref:UnitOfMeasure . - -saref:hasMeterReadingType - a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the reading type of a measurement (e.g., Water, Gas, Pressure , Energy , Power, etc.)" ; - rdfs:label "has meter reading type" . - -saref:Property a owl:Class ; - rdfs:comment "Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "Property" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:relatesToMeasurement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Device ; - owl:onProperty saref:isMeasuredByDevice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Device ; - owl:onProperty saref:isControlledByDevice - ] . - -om:pound_sterling a saref:Currency , owl:NamedIndividual ; - rdfs:label "Great Britain pound sterling" . - -saref:Storage a owl:Class ; - rdfs:comment "A type of energy-related device that stores energy" ; - rdfs:label "Storage" ; - rdfs:subClassOf saref:EnergyRelated . - -saref:StartCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Start command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:StartStopState ; - owl:onProperty saref:actsUpon - ] ; - owl:disjointWith saref:StopCommand . - -saref:TemperatureSensor - a owl:Class ; - rdfs:comment "A device that consists of a sensor, has category saref:Sensor, performs the saref:SensingFunction and is used for the purpose of sensing a property of type saref:Temperature" ; - rdfs:label "Temperature sensor" ; - rdfs:subClassOf saref:Sensor ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:Comfort ; - owl:onProperty saref:accomplishes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom saref:Temperature - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:SensingFunction - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Sensor - ] . - -saref:StartState a owl:Class ; - rdfs:comment "The state of a device that is STARTED" ; - rdfs:label "Start state" ; - rdfs:subClassOf saref:StartStopState . - -saref:hasValue a owl:DatatypeProperty ; - rdfs:comment "A relationship defining the value of a certain property, e.g., energy or power" ; - rdfs:label "has value" . - -saref:Device a owl:Class ; - rdfs:comment "A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function. Devices can be structured in categories (subclasses) that reflect the different domain in which a device is used, e.g., smart appliances domain (subclass FunctionRelated) vs. building domain (subclass BuildingRelated) vs. smart grid domain (subclass EnergyRelated). New categories can be defined,if needed, to reflect other differences, for example different points of view, such as the point of view of the device's user vs. the point of view of the device's manufacturer. We propose a list of devices that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "Device" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Profile ; - owl:onProperty saref:hasProfile - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:State ; - owl:onProperty saref:hasState - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Service ; - owl:onProperty saref:offers - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:controlsProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:makesMeasurement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:measuresProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Task ; - owl:onProperty saref:accomplishes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Device ; - owl:onProperty saref:consistsOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Function ; - owl:onProperty saref:hasFunction - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Commodity ; - owl:onProperty saref:isUsedFor - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( saref:Energy saref:Power ) - ] ; - owl:onProperty saref:hasTypicalConsumption - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasModel - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasManufacturer - ] . - -saref:SwitchOnService - a owl:Class ; - rdfs:comment "A type of service that represents an on/off function to the network" ; - rdfs:label "Switch on service" ; - rdfs:subClassOf saref:Service ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:represents ; - owl:someValuesFrom saref:OnOffFunction - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:isOfferedBy ; - owl:someValuesFrom saref:LightSwitch - ] . - -saref:GetMeterDataCommand - a owl:Class ; - rdfs:comment "A type of get command" ; - rdfs:label "Get meter data command" ; - rdfs:subClassOf saref:GetCommand . - -saref:Washing a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "Washing" . - -saref:DoorSwitch a owl:Class ; - rdfs:comment "A device of category saref:Actuator that consists of a switch, accomplishes the task saref:Safety, performs the saref:OpenCloseFunction, is used for controlling a door, and can be found in the state saref:OpenCloseState." ; - rdfs:label "Door switch" ; - rdfs:subClassOf saref:Switch ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:Safety ; - owl:onProperty saref:accomplishes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasState ; - owl:someValuesFrom saref:OpenCloseState - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:OpenCloseFunction - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Switch - ] . - -saref:CloseCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Close command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:OpenCloseState ; - owl:onProperty saref:actsUpon - ] ; - owl:disjointWith saref:OpenCommand . - -saref:Cleaning a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "Cleaning" . - -om:kelvin a saref:TemperatureUnit , owl:NamedIndividual ; - rdfs:comment "The kelvin is a unit of temperature defined as 1/273.16 of the thermodynamic temperature of the triple point of water."@en ; - rdfs:label "kelvin" . - -saref:EnergyEfficiency - a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "EnergyEfficiency" . - -saref:Entertainment a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "Entertainment" . - -saref:hasSensorType a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the sensing type of a sensor detection (i.e., Temperature, Occupancy, Humidity, Motion , Smoke, Pressure, etc.) " ; - rdfs:label "has sensor type" . - -saref:hasProfile a owl:ObjectProperty ; - rdfs:comment "A relationship associating a profile to a certain entity (e.g., a device)" ; - rdfs:label "has profile" . - -saref:hasDescription a owl:DatatypeProperty ; - rdfs:comment "A relationship providing a description of an entity (e.g., device)" ; - rdfs:label "has description" ; - rdfs:range xsd:string . - -saref:hasManufacturer - a owl:DatatypeProperty ; - rdfs:comment "A relationship identifying the manufacturer of an entity (e.g., device)" ; - rdfs:label "has manufacturer" ; - rdfs:range xsd:string . - -time:TemporalUnit rdfs:comment "The unit of measure for time" ; - rdfs:subClassOf saref:UnitOfMeasure . - -saref:Load a owl:Class ; - rdfs:comment "A type of energy-related device that consumes energy" ; - rdfs:label "Load" ; - rdfs:subClassOf saref:EnergyRelated . - -saref:Open a saref:OpenState , saref:OpenCommand , owl:NamedIndividual ; - rdfs:comment "The value OPEN. It is used to instantiate different classes such as the OpenCommand class and OpenState class. " ; - rdfs:label "Open" . - -saref:Lighting a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "Lighting" . - -saref:IlluminanceUnit - a owl:Class ; - rdfs:comment "The unit of measure for light" ; - rdfs:label "Illuminance unit" ; - rdfs:subClassOf saref:UnitOfMeasure . - -saref:Smoke a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for smoke" ; - rdfs:label "Smoke" ; - rdfs:subClassOf saref:Property . - -om:euro a saref:Currency , owl:NamedIndividual ; - rdfs:label "euro"@en . - -saref:Drying a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "Drying" . - -saref:hasTypicalConsumption - a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the typical (energy or power) consumption of a device" ; - rdfs:label "has typical consumption" . - -saref:EnergyUnit a owl:Class ; - rdfs:comment "The unit of measure for energy" ; - rdfs:label "Energy unit" ; - rdfs:subClassOf saref:UnitOfMeasure . - -saref:Profile a owl:Class ; - rdfs:comment "A specification associated to a device to collect information about a certain Property (e.g., Energy) or Commodity (e.g.Water) for optimizing its usage in the home, office or building in which the device is located. This specification is about a certain Property or Commodity (saref:isAbout), can be calculated over a time span (saref:hasTime ) and can be associated to some costs (saref:hasPrice). An example is the Power Profile defined in the SAREF4ENER extension that can be associated to a device for optimizing the Energy efficiency in the home, office or building in which the device is located."@en ; - rdfs:label "Profile"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( saref:Commodity saref:Property ) - ] ; - owl:onProperty saref:isAbout - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Time ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Price ; - owl:onProperty saref:hasPrice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Profile ; - owl:onProperty saref:consistsOf - ] . - -saref:isMeasuredIn a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the unit of measure used for a certain entity." ; - rdfs:label "is measured in" . - -saref:SmokeSensor a owl:Class ; - rdfs:comment "A device that consists of a sensor, has category saref:Sensor, performs the saref:SensingFunction and saref:EventFunction (which notifies that a certain threshold has been exceeded), and is used for the purpose of sensing a property of type saref:Smoke." ; - rdfs:label "Smoke sensor" ; - rdfs:subClassOf saref:Sensor ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:Safety ; - owl:onProperty saref:accomplishes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom saref:Smoke - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:SensingFunction - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:EventFunction - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Sensor - ] . - -saref:Toggle a saref:ToggleCommand , owl:NamedIndividual ; - rdfs:comment "The value TOGGLE. It is used to instantiate the the ToggleCommand class" ; - rdfs:label "Toggle" . - -saref:Water a owl:Class ; - rdfs:comment "A type of commodity" ; - rdfs:label "Water" ; - rdfs:subClassOf saref:Commodity . - -saref:relatesToMeasurement - a owl:ObjectProperty ; - rdfs:comment "A relationship between a property and the measurements it relates to" ; - rdfs:label "relates to measurement"@en . - -om:kilowatt_hour a saref:EnergyUnit , owl:NamedIndividual ; - rdfs:comment "The kilowatt hour is a unit of energy equal to 1,000 watt-hours, or 3.6 megajoules." ; - rdfs:label "kilowatt hour" . - -saref:Off a saref:OffState , saref:OffCommand , owl:NamedIndividual ; - rdfs:comment "The value OFF. It is used to instantiate different classes such as the OffCommand class and OffState class. " ; - rdfs:label "Off " . - -saref:WashingMachine a owl:Class ; - rdfs:comment "A device of category saref:Appliance and saref:Load that accomplishes the task saref:Washing, performs an actuating function of type saref:StartStopFunction, can be found in the state saref:StartStopState, and can have a saref:Profile that characterizes its energy consumption. " ; - rdfs:label "Washing machine" ; - rdfs:subClassOf saref:Load , saref:Appliance ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:Washing ; - owl:onProperty saref:accomplishes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasState ; - owl:someValuesFrom saref:StartStopState - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasProfile ; - owl:someValuesFrom saref:Profile - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:StartStopFunction - ] . - -saref:Network a owl:Class ; - rdfs:comment "A device used to connect other devices in a network, such as hub, switch or router in a Local Area Network (LAN). " ; - rdfs:label "Network" ; - rdfs:subClassOf saref:FunctionRelated . - -saref:Task a owl:Class ; - rdfs:comment "The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "Task" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Device ; - owl:onProperty saref:isAccomplishedBy - ] . - -saref:isAccomplishedBy - a owl:ObjectProperty ; - rdfs:comment "A relationship indentifying the task accomplished by a certain entity (e.g., a device)" ; - rdfs:label "is accomplished by" . - -saref:represents a owl:ObjectProperty ; - rdfs:comment "A relationship between a service and a function." ; - rdfs:label "represents" . - -om:degree_Celsius a saref:TemperatureUnit , owl:NamedIndividual ; - rdfs:comment "The degree Celsius is a unit of temperature defined as 1 kelvin."@en ; - rdfs:label "degree Celsius" . - -saref:OpenState a owl:Class ; - rdfs:comment "The state of a device that is OPEN " ; - rdfs:label "Open state" ; - rdfs:subClassOf saref:OpenCloseState . - -saref:OnState a owl:Class ; - rdfs:comment "The state of a device that is OFF " ; - rdfs:label "On state" ; - rdfs:subClassOf saref:OnOffState . - -saref:Humidity a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit" ; - rdfs:label "Humidity" ; - rdfs:subClassOf saref:Property . - -saref:Sensor a owl:Class ; - rdfs:comment "A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. Further, a device of category saref:Sensor that performs a saref:SensingFunction." ; - rdfs:label "Sensor" ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:SensingFunction - ] . - -saref:OffCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Off command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:OnOffState ; - owl:onProperty saref:actsUpon - ] ; - owl:disjointWith saref:OnCommand . - -saref:Electricity a owl:Class ; - rdfs:comment "A type of commodity" ; - rdfs:label "Electricity" ; - rdfs:subClassOf saref:Commodity . - -saref:Generator a owl:Class ; - rdfs:comment "A type of energy-related device that generates energy" ; - rdfs:label "Generator" ; - rdfs:subClassOf saref:EnergyRelated . - -om:United_States_dollar - a saref:Currency , owl:NamedIndividual ; - rdfs:label "United States dollar"@en . - -saref:Currency a owl:Class ; - rdfs:comment "The unit of measure for price" ; - rdfs:label "Currency" ; - rdfs:subClassOf saref:UnitOfMeasure . - -saref:Time a owl:Class ; - rdfs:comment "A saref:Property that allows to specify the time concept in terms of instants or intervals according to the imported W3C Time ontology." ; - rdfs:label "Time" ; - rdfs:subClassOf saref:Property ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom time:TemporalEntity - ] . - -saref:hasThresholdMeasurement - a owl:ObjectProperty ; - rdfs:comment "A relationship associated with an event function to notify that a certain threshold measurement has been exceeded" ; - rdfs:label "has threshold measurement" . - -saref:GetMeterHistoryCommand - a owl:Class ; - rdfs:comment "A type of get command" ; - rdfs:label "Get meter history command" ; - rdfs:subClassOf saref:GetCommand . - -saref:Coal a owl:Class ; - rdfs:comment "A type of commodity" ; - rdfs:label "Coal" ; - rdfs:subClassOf saref:Commodity . - -saref:BuildingRelated - a owl:Class ; - rdfs:comment "A category that includes devices as described by building related data models, such as IFC and FIEMSER " ; - rdfs:label "Building related" ; - rdfs:subClassOf saref:Device . - -saref:hasCommand a owl:ObjectProperty ; - rdfs:comment "A relationship between an entity (such as a function) and a command" ; - rdfs:label "has command" ; - owl:inverseOf saref:isCommandOf . - -saref:SetAbsoluteLevel - a saref:SetAbsoluteLevelCommand , owl:NamedIndividual ; - rdfs:comment "The value SET ABSOLUTE LEVEL. It is used to instantiate classes such as the SetAbsoluteLevelCommand class. " ; - rdfs:label "Set absolute level" . - -saref:Safety a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "Safety" . - -om:degree_Fahrenheit a saref:TemperatureUnit , owl:NamedIndividual ; - rdfs:comment "The degree Fahrenheit is a unit of temperature defined as 5.555556e-1 kelvin."@en ; - rdfs:label "degree Fahrenheit" . - -saref:PauseCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Pause command" ; - rdfs:subClassOf saref:Command . - -saref:SetLevelCommand - a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Set level command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:MultiLevelState ; - owl:onProperty saref:actsUpon - ] . - -saref:MultiLevelState - a owl:Class ; - rdfs:comment "A type of state" ; - rdfs:label "Multi level state" ; - rdfs:subClassOf saref:State . - -saref:Function a owl:Class ; - rdfs:comment "The functionality necessary to accomplish the task for which a Device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. " ; - rdfs:label "Function" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Command ; - owl:onProperty saref:hasCommand - ] . - -saref:Command a owl:Class ; - rdfs:comment "A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "Command" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Function ; - owl:onProperty saref:isCommandOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:State ; - owl:onProperty saref:actsUpon - ] . - -saref:LightSwitch a owl:Class ; - rdfs:comment "A device of category saref:Actuator that consists of a switch, accomplishes the task saref:Lighting, performs the saref:OnOffFunction, measures the property saref:Light, and can be found in the state saref:OnOffState. It can offer a switch on service." ; - rdfs:label "Light switch" ; - rdfs:subClassOf saref:Switch ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:Lighting ; - owl:onProperty saref:accomplishes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:offers ; - owl:someValuesFrom saref:SwitchOnService - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Switch - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasState ; - owl:someValuesFrom saref:OnOffState - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom saref:Light - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:OnOffFunction - ] . - -saref:GetMeterHistory - a saref:GetMeterHistoryCommand , owl:NamedIndividual ; - rdfs:comment "The command GET METER HISTORY. It is used to instantiate the GetMeterHistoryCommand class. " ; - rdfs:label "Get meter history" . - -saref:isCommandOf a owl:ObjectProperty ; - rdfs:comment "A relationship between a command and a function." ; - rdfs:label "is command of" . - -saref: a owl:Ontology ; - rdfs:comment "Information about changes compared to version 1.1.1: (1)The classes and properties related to how to represent devices in building spaces (such as the saref:BuildingSpace class, saref:BuildingObject class and saref:isLocatedIn property) have been removed from SAREF and incorporated into the SAREF4BLDG extension related to buildings (https://w3id.org/def/saref4bldg), including the reuse of the W3C® WGS84 geo positioning vocabulary; (2)The saref:DeviceCategory and saref:FunctionCategory classes have been removed. Instead, the hierarchy of device categories has been implemented directly as subclasses of the saref:Device class; (3)The information specific for energy efficiency has been moved to the SAREF4ENER extension (https://w3id.org/saref4ener). For example, the saref:Profile class has been redefined to accommodate only the properties that are general enough for any type of profile, not only for energy and power. Details on how to specifically model a power profile can be found in the SAREF4ENER extension (https://w3id.org/saref4ener); (4) The subclasses of the saref:Energy class have been removed (i.e., Average Energy, Maximum Energy, Minimum Energy, Total Energy, HVAC Energy, Hot Water Energy and Lighting Energy); (5)The saref:Property class has been split into two classes (saref:Property and saref:Measurement), as it is done in the SAREF4ENVI extension (https://w3id.org/def/saref4envi), in order to properly accommodate the distinction between the concept of property (an observable quality of something) and the concept of measurement (a concrete value observed for a property); (6)Too restrictive cardinality restrictions have been revised, sometimes making them optional rather than mandatory (better to make properties mandatory in the extensions that specialize SAREF for a specific purpose, rather than restricting SAREF, whose purpose is more general). For example, definitions of units of measurement using an enumeration (owl:oneOf) were too restrictive because they did not allow using other units than those enumerated. Therefore, the individuals of each class are still there, but the owl:oneOf enumeration has been removed; (7)The saref:UnitOfMeasure subclassesre use individuals from the OM ontology for unit of measures (http://www.wurvoc.org/vocabularies/om-1.6/), but this is not the only solution. It has been clarified in the comments that the OM ontology is an example, but other ontologies can be used; (8)The global restrictions (rdfs:domain and rdfs:range) in object properties have been completely removed not to hinder interoperability. Object properties are now only restricted locally in the classes; (9)The subclasses of saref:Task have been transormed in individuals; (10)The saref:hasTask property has been removed from the saref:Profile class to resolve an ambiguity with the saref:Task class." , "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:contributor , , , ; - dcterms:created "2015-02-10"^^xsd:date ; - dcterms:description "The Smart Appliances REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing assets (standards/protocols/datamodels/etc.) in the smart appliances domain. The SAREF ontology provides building blocks that allow separation and recombination of different parts of the ontology depending on specific needs. The starting point of SAREF is the concept of device (e.g., a switch). Devices are tangible objects designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function. The SAREF ontology offers a lists of basic functions that can be eventually combined in order to have more complex functions in a single device. For example, a switch offers an actuating function of type 'switching on/off'. Each function has some associated commands, which can also be picked up as building blocks from a list. For example, the 'switching on/off' is associated with the commands 'switch on', 'switch off' and 'toggle'. Depending on the function(s) it accomplishes, a device can be found in some corresponding states that are also listed as building blocks. When connected to a network, a device offers a service, which is a representation of a function to a network that makes the function discoverable, registerable and remotely controllable by other devices in the network. A service can represent one or more functions. A service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A service must specify the device that is offering the service and the function(s) to be represented. A device in the SAREF ontology is also characterized by a profile that can be used to optimize some property, such as Energy, in a home or office that are part of a building." ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:modified "2018-05-02"^^xsd:date ; - dcterms:publisher ; - dcterms:source , ; - dcterms:title "SAREF: the Smart Applications REFerence ontology" ; - vann:preferredNamespacePrefix "saref" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref#" ; - owl:versionIRI ; - owl:versionInfo "2.1.1" . - -om:pascal a saref:PressureUnit , owl:NamedIndividual ; - rdfs:comment "The pascal is a unit of pressure and stress defined as newton divided by square metre = joule divided by cubic metre = kilogram divided by metre second squared."@en ; - rdfs:label "pascal" . - -saref:hasFunction a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the type of function of a device" ; - rdfs:label "has function" . - -saref:Notify a saref:NotifyCommand , owl:NamedIndividual ; - rdfs:comment "The value NOTIFY. It is used to instantiate the NotifyCommand." ; - rdfs:label "Notify" . - -saref:Comfort a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "Comfort" . - -saref:makesMeasurement - a owl:ObjectProperty ; - rdfs:comment "A relation between a device and the measurements it makes. Such measurement will link together the value of the measurement, its unit of measure and the property to which it relates."@en ; - rdfs:label "makes measurement"@en . - -saref:actsUpon a owl:ObjectProperty ; - rdfs:comment "A relationship between a command and a state" ; - rdfs:label "acts upon" . - -saref:offers a owl:ObjectProperty ; - rdfs:comment "A relationship between a device and a service" ; - rdfs:label "offers" . - -saref:Commodity a owl:Class ; - rdfs:comment "A marketable item for which there is demand, but which is supplied without qualitative differentiation across a market. SAREF refers to energy commodities such as electricity, gas, coal and oil. " ; - rdfs:label "Commodity" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn - ] . - -saref:consistsOf a owl:ObjectProperty ; - rdfs:comment "A relationship indicating a composite entity that consists of other entities (e.g., a temperature/humidity sensor that consists of a temperature sensor and a humidity sensor)" ; - rdfs:label "consists of" . - -saref:accomplishes a owl:ObjectProperty ; - rdfs:comment "A relationship between a certain entity (e.g., a device) and the task it accomplishes" ; - rdfs:label "accomplishes" ; - owl:inverseOf saref:isAccomplishedBy . - -saref:Pause a saref:PauseCommand , owl:NamedIndividual ; - rdfs:comment "The value PAUSE. It is used to instantiate classes such as the PauseCommand class." ; - rdfs:label "Pause" . - -saref:Switch a owl:Class ; - rdfs:comment "A device of category saref:Actuator that performs an actuating function of type saref:OnOffFunction or saref:OpenCloseFunction" ; - rdfs:label "Switch" ; - rdfs:subClassOf saref:Actuator . - -om:watt a saref:PowerUnit , owl:NamedIndividual ; - rdfs:comment "The watt is a unit of power defined as joule divided by second = newton times metre divided by second = volt times ampere = kilogram times square metre divided by second to the power 3."@en ; - rdfs:label "watt" . - -saref:Motion a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for motion" ; - rdfs:label "Motion" ; - rdfs:subClassOf saref:Property . - -saref:Measurement a owl:Class ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Measurement"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onDataRange xsd:float ; - owl:onProperty saref:hasValue ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:Property ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:relatesToProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn - ] . - -saref:EventFunction a owl:Class ; - rdfs:comment "A function that allows to notify another device that a certain threshold value has been exceeded." ; - rdfs:label "Event function" ; - rdfs:subClassOf saref:Function ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Measurement ; - owl:onProperty saref:hasThresholdMeasurement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:NotifyCommand ; - owl:onProperty saref:hasCommand - ] . - -saref:StepDown a saref:StepDownCommand , owl:NamedIndividual ; - rdfs:comment "The value STEP DOWN. It is used to instantiate the StepDownCommand class. " ; - rdfs:label "Step down" . - -saref:Actuator a owl:Class ; - rdfs:comment "A device responsible for moving or controlling a mechanism or system by performing an actuating function" ; - rdfs:label "Actuator" ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:ActuatingFunction - ] . - -saref:SensingFunction - a owl:Class ; - rdfs:comment "A function that allows to transmit data from sensors, such as measurement values (e.g., temperature) or sensing data (e.g., occupancy)" ; - rdfs:label "Sensing function" ; - rdfs:subClassOf saref:Function ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:hasSensorType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:GetSensingDataCommand ; - owl:onProperty saref:hasCommand - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasSensingRange ; - owl:someValuesFrom saref:Measurement - ] . - -saref:Multimedia a owl:Class ; - rdfs:comment "A device designed to display, store, record or play multimedia content such as audio, images, animation, video " ; - rdfs:label "Multimedia" ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:Entertainment ; - owl:onProperty saref:accomplishes - ] . - -saref:measuresProperty - a owl:ObjectProperty ; - rdfs:comment "A relationship specifying the Property that can be measured by a certain Device"@en ; - rdfs:label "measures property"@en . - -saref:StepUp a saref:StepUpCommand , owl:NamedIndividual ; - rdfs:comment "The value STEP UP. It is used to instantiate the StepUpCommand class. " ; - rdfs:label "Step up" . - -saref:Appliance a owl:Class ; - rdfs:comment "An electrical/mechanical machine that accomplish some household functions, such as cleaning or cooking" ; - rdfs:label "Appliance" ; - rdfs:subClassOf saref:FunctionRelated . - -saref:LightingDevice a owl:Class ; - rdfs:comment "A device used for illumination, irradiation, signaling, or projection" ; - rdfs:label "Lighting device" ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:Comfort ; - owl:onProperty saref:accomplishes - ] . - -saref:hasSensingRange - a owl:ObjectProperty ; - rdfs:comment "A relationship between a sensing function and a measurement identifying the range of a sensor detection" ; - rdfs:label "has sensing range " . - -saref:Light a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a illuminance unit (lux)" ; - rdfs:label "Light" ; - rdfs:subClassOf saref:Property . - -saref:StartStopFunction - a owl:Class ; - rdfs:comment "An actuating function that allows to start and stop a device" ; - rdfs:label "Start stop function" ; - rdfs:subClassOf saref:ActuatingFunction ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( saref:StartCommand saref:StopCommand ) - ] ; - owl:onProperty saref:hasCommand - ] . - -saref:MeteringFunction - a owl:Class ; - rdfs:comment "A function that allows to get data from a meter, such as current meter reading or instantaneous demand" ; - rdfs:label "Metering function" ; - rdfs:subClassOf saref:Function ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( saref:Commodity saref:Property ) - ] ; - owl:onProperty saref:hasMeterReadingType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:hasMeterReading - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( saref:GetCurrentMeterValueCommand saref:GetMeterDataCommand saref:GetMeterHistoryCommand ) - ] ; - owl:onProperty saref:hasCommand - ] . - -saref:EnergyRelated a owl:Class ; - rdfs:comment "A category that considers devices based on energy consumption information and profiles to optimize energy efficiency." ; - rdfs:label "Energy related" ; - rdfs:subClassOf saref:Device . - -saref:hasPrice a owl:ObjectProperty ; - rdfs:comment "A relationships indentifying the price associated to an entity" ; - rdfs:label "has price" . diff --git a/src/main/resources/saref-portal-generator/public/saref/latest/saref.rdf b/src/main/resources/saref-portal-generator/public/saref/latest/saref.rdf deleted file mode 100644 index bc9cb2a..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/latest/saref.rdf +++ /dev/null @@ -1,1857 +0,0 @@ - - - - saref - - Information about changes compared to version 1.1.1: (1)The classes and properties related to how to represent devices in building spaces (such as the saref:BuildingSpace class, saref:BuildingObject class and saref:isLocatedIn property) have been removed from SAREF and incorporated into the SAREF4BLDG extension related to buildings (https://w3id.org/def/saref4bldg), including the reuse of the W3C® WGS84 geo positioning vocabulary; (2)The saref:DeviceCategory and saref:FunctionCategory classes have been removed. Instead, the hierarchy of device categories has been implemented directly as subclasses of the saref:Device class; (3)The information specific for energy efficiency has been moved to the SAREF4ENER extension (https://w3id.org/saref4ener). For example, the saref:Profile class has been redefined to accommodate only the properties that are general enough for any type of profile, not only for energy and power. Details on how to specifically model a power profile can be found in the SAREF4ENER extension (https://w3id.org/saref4ener); (4) The subclasses of the saref:Energy class have been removed (i.e., Average Energy, Maximum Energy, Minimum Energy, Total Energy, HVAC Energy, Hot Water Energy and Lighting Energy); (5)The saref:Property class has been split into two classes (saref:Property and saref:Measurement), as it is done in the SAREF4ENVI extension (https://w3id.org/def/saref4envi), in order to properly accommodate the distinction between the concept of property (an observable quality of something) and the concept of measurement (a concrete value observed for a property); (6)Too restrictive cardinality restrictions have been revised, sometimes making them optional rather than mandatory (better to make properties mandatory in the extensions that specialize SAREF for a specific purpose, rather than restricting SAREF, whose purpose is more general). For example, definitions of units of measurement using an enumeration (owl:oneOf) were too restrictive because they did not allow using other units than those enumerated. Therefore, the individuals of each class are still there, but the owl:oneOf enumeration has been removed; (7)The saref:UnitOfMeasure subclassesre use individuals from the OM ontology for unit of measures (http://www.wurvoc.org/vocabularies/om-1.6/), but this is not the only solution. It has been clarified in the comments that the OM ontology is an example, but other ontologies can be used; (8)The global restrictions (rdfs:domain and rdfs:range) in object properties have been completely removed not to hinder interoperability. Object properties are now only restricted locally in the classes; (9)The subclasses of saref:Task have been transormed in individuals; (10)The saref:hasTask property has been removed from the saref:Profile class to resolve an ambiguity with the saref:Task class. - 2.1.1 - https://saref.etsi.org/saref# - - The Smart Appliances REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing assets (standards/protocols/datamodels/etc.) in the smart appliances domain. The SAREF ontology provides building blocks that allow separation and recombination of different parts of the ontology depending on specific needs. The starting point of SAREF is the concept of device (e.g., a switch). Devices are tangible objects designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function. The SAREF ontology offers a lists of basic functions that can be eventually combined in order to have more complex functions in a single device. For example, a switch offers an actuating function of type 'switching on/off'. Each function has some associated commands, which can also be picked up as building blocks from a list. For example, the 'switching on/off' is associated with the commands 'switch on', 'switch off' and 'toggle'. Depending on the function(s) it accomplishes, a device can be found in some corresponding states that are also listed as building blocks. When connected to a network, a device offers a service, which is a representation of a function to a network that makes the function discoverable, registerable and remotely controllable by other devices in the network. A service can represent one or more functions. A service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A service must specify the device that is offering the service and the function(s) to be represented. A device in the SAREF ontology is also characterized by a profile that can be used to optimize some property, such as Energy, in a home or office that are part of a building. - 2015-02-10 - This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge. - - SAREF: the Smart Applications REFerence ontology - 2018-05-02 - - - 2019-06-11 - - - - - - On command - A type of command - - - - - - - - - - - - - - - - Coal - A type of commodity - - - - - - On off state - A type of state - - - - - - Get sensing data command - A type of get command - - - - - - Start command - A type of command - - - - - - - - - - - - - - - - - - - Get meter data command - A type of get command - - - - - - Electricity - A type of commodity - - - - - - Light - A saref:Property related to some measurements that are characterized by a certain value that is measured in a illuminance unit (lux) - - - - - - Energy unit - The unit of measure for energy - - - - - - Metering function - A function that allows to get data from a meter, such as current meter reading or instantaneous demand - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Start state - The state of a device that is STARTED - - - - - - Energy related - A category that considers devices based on energy consumption information and profiles to optimize energy efficiency. - - - - - - Toggle command - A type of command - - - - - - Appliance - An electrical/mechanical machine that accomplish some household functions, such as cleaning or cooking - - - - - - Profile - A specification associated to a device to collect information about a certain Property (e.g., Energy) or Commodity (e.g.Water) for optimizing its usage in the home, office or building in which the device is located. This specification is about a certain Property or Commodity (saref:isAbout), can be calculated over a time span (saref:hasTime ) and can be associated to some costs (saref:hasPrice). An example is the Power Profile defined in the SAREF4ENER extension that can be associated to a device for optimizing the Energy efficiency in the home, office or building in which the device is located. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Start stop function - An actuating function that allows to start and stop a device - - - - - - - - - - - - - - - - - - - - - Close command - A type of command - - - - - - - - - - - - - - - - - - - Task - The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended. - - - - - - 1 - - - - - - - - Measurement - Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. - - - - 1 - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - Gas - A type of commodity - - - - - - Switch - A device of category saref:Actuator that performs an actuating function of type saref:OnOffFunction or saref:OpenCloseFunction - - - - - - Energy meter - An energy meter is a device of category saref:Meter that consists of a meter, accomplishes the tasks saref:MeterReading and saref:EnergyEfficiency, performs the saref:MeteringFunction and is used for the purpose of measuring the saref:Energy property - - - - - Meter reading - A type of task for which a device is designed - - - - - - - - - - - - - EnergyEfficiency - A type of task for which a device is designed - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Commodity - A marketable item for which there is demand, but which is supplied without qualitative differentiation across a market. SAREF refers to energy commodities such as electricity, gas, coal and oil. - - - - - - - - - - - - - Generator - A type of energy-related device that generates energy - - - - Energy - A saref:Property related to some measurements that are characterized by a certain value measured in an energy unit (such as Kilowatt_Hour or Watt_hour). Furter specializations of the saref:Energy class can be found in the SAREF4ENER extension, where classes such as EnergyMax, EnergyMin and EnergyExpected are defined. - - - - - - Time - A saref:Property that allows to specify the time concept in terms of instants or intervals according to the imported W3C Time ontology. - - - - - - - - - - - - - - On off function - An actuating function that allows to switch on and off an actuator - - - - - - - - - - - - - - - - - - - - - - Switch on service - A type of service that represents an on/off function to the network - - - - - - - - - - - - - - - - - - - - - - - - Network - A device used to connect other devices in a network, such as hub, switch or router in a Local Area Network (LAN). - - - - - - Unit of measure - - The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called "watt". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM). - - - Humidity - A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit - - - - - - Power unit - The unit of measure for power - - - - Smoke sensor - A device that consists of a sensor, has category saref:Sensor, performs the saref:SensingFunction and saref:EventFunction (which notifies that a certain threshold has been exceeded), and is used for the purpose of sensing a property of type saref:Smoke. - - - - - Safety - A type of task for which a device is designed - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Occupancy - A saref:Property related to some measurements that are characterized by a certain value (saref:hasValue property) that is measured in a unit of measure for occupancy - - - - - - Pressure - A saref:Property related to some measurements that are characterized by a certain value that is measured in a pressure unit (bar or pascal) - - - - - - Off state - The state of a device that is ON - - - - Actuator - A device responsible for moving or controlling a mechanism or system by performing an actuating function - - - - - - - - - - - - - - - - Open state - The state of a device that is OPEN - - - - - - Actuating function - A function that allows to transmit data to actuators, such as level settings (e.g., temperature) or binary switching (e.g., open/close, on/off) - - - - - - Micro renewable - A device that generates renewable energy from natural resources such as teh sun, wind and water - - - - - - - - - - - - - - Property - Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Open close state - A type of state - - - - - - Washing machine - A device of category saref:Appliance and saref:Load that accomplishes the task saref:Washing, performs an actuating function of type saref:StartStopFunction, can be found in the state saref:StartStopState, and can have a saref:Profile that characterizes its energy consumption. - - - - - Washing - A type of task for which a device is designed - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Step up command - A type of command - - - - - - - - - - - - - - - - Set relative level command - A type of set level command - - - - - - Set level command - A type of command - - - - - - - - - - - - - - - - Function - The functionality necessary to accomplish the task for which a Device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. - - - - - - 1 - - - - - - - - Temperature unit - The unit of measure for temperature - - - - Currency - The unit of measure for price - - - - HVAC - Heating, Ventilation and Air Conditioning (HVAC) device that provides indoor environmental comfort - - - - - Comfort - A type of task for which a device is designed - - - - - - - - - - - - - - Off command - A type of command - - - - - - - - - - - - - - - Motion - A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for motion - - - - Pressure unit - The unit of measure for pressure - - - - - - - - Lighting - A type of task for which a device is designed - - - - - - - - - - - - - - - - - - - - - - - - - - Light switch - A device of category saref:Actuator that consists of a switch, accomplishes the task saref:Lighting, performs the saref:OnOffFunction, measures the property saref:Light, and can be found in the state saref:OnOffState. It can offer a switch on service. - - - - - - - - - - - - - - - - - - - - - - - - - - - Stop state - The state of a device that is STOPPED - - - - - - Water - A type of commodity - - - - Power - A saref:Property related to some measurements that are characterized by a certain value that is measured in a power unit (such as watt or kilowatt). Further specializations of the saref:Power class can be found in the SAREF4ENER extension, where classes such as PowerMax, PowerMin and PowerExpected are defined. - - - - Illuminance unit - The unit of measure for light - - - - Price - A saref:Property crelated to some measurements that are characterized by a certain value that is measured using saref:Currency - - - - Multimedia - A device designed to display, store, record or play multimedia content such as audio, images, animation, video - - - - - Entertainment - A type of task for which a device is designed - - - - - - - - - - - - - - Open close function - An actuating function that allows to open and close a device - - - - - - - - - - - - - - - - - - - Get meter history command - A type of get command - - - - - - Stop command - A type of command - - - - - - - - - - - - - - - - Door switch - A device of category saref:Actuator that consists of a switch, accomplishes the task saref:Safety, performs the saref:OpenCloseFunction, is used for controlling a door, and can be found in the state saref:OpenCloseState. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Function related - A category that considers devices, sensors and their specification in terms of functions, states and services - - - - - - Start stop state - A type of state - - - - - - Event function - A function that allows to notify another device that a certain threshold value has been exceeded. - - - - 1 - - - - - - - - - - - - - - - - - - - Sensor - A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. Further, a device of category saref:Sensor that performs a saref:SensingFunction. - - - - - - - - - - - - - - Step down command - A type of command - - - - - - - - - - - - - - - - - Set absolute level command - A type of set level command - - - - Open command - A type of command - - - - - - - - - - - - - - Meter - A device built to accurately detect and display a quantity in a form readable by a human being. Further, a device of category saref:Meter that performs a saref:MeteringFunction. - - - - - - - - - - - - Storage - A type of energy-related device that stores energy - - - - Lighting device - A device used for illumination, irradiation, signaling, or projection - - - - - - - - - - - - Get command - A type of command - - - - - - On state - The state of a device that is OFF - - - - Temperature sensor - A device that consists of a sensor, has category saref:Sensor, performs the saref:SensingFunction and is used for the purpose of sensing a property of type saref:Temperature - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Load - A type of energy-related device that consumes energy - - - - Temperature - A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin) - - - - Service - A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service and the function(s) to be represented. - - - - 1 - - - - - - - - - - - 1 - - - - - - - - State - The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended. - - - Sensing function - A function that allows to transmit data from sensors, such as measurement values (e.g., temperature) or sensing data (e.g., occupancy) - - - - - - - - - - - - - - - - - - - - - - - - - - - - Notify command - A type of command - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - 1 - - - - - - Device - A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function. Devices can be structured in categories (subclasses) that reflect the different domain in which a device is used, e.g., smart appliances domain (subclass FunctionRelated) vs. building domain (subclass BuildingRelated) vs. smart grid domain (subclass EnergyRelated). New categories can be defined,if needed, to reflect other differences, for example different points of view, such as the point of view of the device's user vs. the point of view of the device's manufacturer. We propose a list of devices that are relevant for the purpose of SAREF, but this list can be extended. - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - Smoke - A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for smoke - - - - Pause command - A type of command - - - - - - Get current meter value command - A type of get command - - - - Command - A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended. - - - 1 - - - - - - - - - 1 - - - - - - - - - - - - - - - - Level control function - An actuating function that allows to do level adjustments of an actuator in a certain range (e.g., 0%-100%), such as dimming a light or set the speed of an electric motor. - - - - - - - - - - - - - - - - - - - - - Building related - A category that includes devices as described by building related data models, such as IFC and FIEMSER - - - - Multi level state - A type of state - - - - Close state - The state of a device that is CLOSE - - - - has typical consumption - A relationship identifying the typical (energy or power) consumption of a device - - - is measured in - A relationship identifying the unit of measure used for a certain entity. - - - represents - A relationship between a service and a function. - - - consists of - A relationship indicating a composite entity that consists of other entities (e.g., a temperature/humidity sensor that consists of a temperature sensor and a humidity sensor) - - - has sensing range - A relationship between a sensing function and a measurement identifying the range of a sensor detection - - - has sensor type - A relationship identifying the sensing type of a sensor detection (i.e., Temperature, Occupancy, Humidity, Motion , Smoke, Pressure, etc.) - - - is used for - A relationship specifying the purpose for which a device is used for (e.g., controlling a Commodity) - - - measures property - A relationship specifying the Property that can be measured by a certain Device - - - has threshold measurement - A relationship associated with an event function to notify that a certain threshold measurement has been exceeded - - - has function - A relationship identifying the type of function of a device - - - makes measurement - A relation between a device and the measurements it makes. Such measurement will link together the value of the measurement, its unit of measure and the property to which it relates. - - - has meter reading type - A relationship identifying the reading type of a measurement (e.g., Water, Gas, Pressure , Energy , Power, etc.) - - - relates to measurement - A relationship between a property and the measurements it relates to - - - controls property - A relationship specifying the Property that can be controlled by a certain Device - - - is controlled by device - A relationship specifying the devices that can control a certain property - - - is measured by device - A relationship specifying the devices that can measure a certain property - - - isAbout - A relationship identifying what an entity, such as a Profile, is about - - - has state - A relationship identifying the type of state of a device - - - offers - A relationship between a device and a service - - - is accomplished by - A relationship indentifying the task accomplished by a certain entity (e.g., a device) - - - relates to property - A relationship between a measurement and the property it relates to - - - has profile - A relationship associating a profile to a certain entity (e.g., a device) - - - acts upon - A relationship between a command and a state - - - has meter reading - A relationship between a metering function and the measurement of the reading - - - has time - A relationship to associate time information to an entity - - - accomplishes - A relationship between a certain entity (e.g., a device) and the task it accomplishes - - - - is offered by - A relationship between a service and a device that offers the service - - - - has price - A relationships indentifying the price associated to an entity - - - has command - A relationship between an entity (such as a function) and a command - - - - - - is command of - A relationship between a command and a function. - - - has manufacturer - A relationship identifying the manufacturer of an entity (e.g., device) - - - - has value - A relationship defining the value of a certain property, e.g., energy or power - - - has name - A relationship providing the name of an entity (e.g., device) - - - - has model - A relationship identifying the model of an entity (e.g., device) - - - - has description - A relationship providing a description of an entity (e.g., device) - - - - has timestamp - A relationship stating the timestamp of an entity (e.g. a measurement). - - - Great Britain pound sterling - - - - Open - The value OPEN. It is used to instantiate different classes such as the OpenCommand class and OpenState class. - - - - - Notify - The value NOTIFY. It is used to instantiate the NotifyCommand. - - - - Get meter data - The command GET METER DATA. It is used to instantiate the GetMeterDataCommand class. - - - - watt hour - The Watt Hor is a unit of energy equivalent to one watt (1 W) of power expended for one hour (1 h) of time. An energy expenditure of 1 Wh represents 3600 joules - - - - kilowatt - - - - Set absolute level - The value SET ABSOLUTE LEVEL. It is used to instantiate classes such as the SetAbsoluteLevelCommand class. - - - - Close - The value CLOSE. It is used to instantiate different classes such as the CloseCommand class and CloseState class, for example. - - - - - bar - The bar is a unit of pressure defined as 100 000 pascal. - - - - United States dollar - - - - Drying - A type of task for which a device is designed - - - - pascal - The pascal is a unit of pressure and stress defined as newton divided by square metre = joule divided by cubic metre = kilogram divided by metre second squared. - - - - Cleaning - A type of task for which a device is designed - - - - Get current meter value - The command GET CURRENT METER VALUE. It is used to instantiate the GetCurrentMeterValueCommand class. - - - - Get meter history - The command GET METER HISTORY. It is used to instantiate the GetMeterHistoryCommand class. - - - - Get sensing data - The command GET SENSING DATA. It is used to instantiate the GetSensingDataCommand class. - - - - kilowatt hour - The kilowatt hour is a unit of energy equal to 1,000 watt-hours, or 3.6 megajoules. - - - - degree Fahrenheit - The degree Fahrenheit is a unit of temperature defined as 5.555556e-1 kelvin. - - - - Step up - The value STEP UP. It is used to instantiate the StepUpCommand class. - - - - Stop - The value STOP. It is used to instantiate different classes such as the StopCommand class and StopState class. - - - - - Toggle - The value TOGGLE. It is used to instantiate the the ToggleCommand class - - - - Step down - The value STEP DOWN. It is used to instantiate the StepDownCommand class. - - - - Pause - The value PAUSE. It is used to instantiate classes such as the PauseCommand class. - - - - euro - - - - Off - The value OFF. It is used to instantiate different classes such as the OffCommand class and OffState class. - - - - - lux - The lux is a unit of illuminance defined as lumen divided by square metre = candela times steradian divided by square metre. - - - - WellBeing - A type of task for which a device is designed - - - - degree Celsius - The degree Celsius is a unit of temperature defined as 1 kelvin. - - - - Start - The value START. It is used to instantiate different classes such as the StartCommand class and StartState class. - - - - - watt - The watt is a unit of power defined as joule divided by second = newton times metre divided by second = volt times ampere = kilogram times square metre divided by second to the power 3. - - - - Set relative level - The value SET RELATIVE LEVEL. It is used to instantiate classes such as the SetRelativeLevelCommand class. - - - - kelvin - The kelvin is a unit of temperature defined as 1/273.16 of the thermodynamic temperature of the triple point of water. - - - - On - The value ON. It is used to instantiate different classes such as the OnCommand class and OnState class. - - - - - The unit of measure for time - - - diff --git a/src/main/resources/saref-portal-generator/public/saref/latest/saref.ttl b/src/main/resources/saref-portal-generator/public/saref/latest/saref.ttl deleted file mode 100644 index a7a3c40..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/latest/saref.ttl +++ /dev/null @@ -1,1620 +0,0 @@ -@prefix om: . -@prefix owl: . -@prefix rdf: . -@prefix xml: . -@prefix xsd: . -@prefix foaf: . -@prefix rdfs: . -@prefix time: . -@prefix dcterms: . -@prefix vann: . - -@prefix saref: . -@base . - - rdf:type owl:Ontology ; - dcterms:title "SAREF: the Smart Applications REFerence ontology"^^xsd:string ; - owl:versionInfo "2.1.1" ; - owl:versionIRI ; - dcterms:created "2015-02-10"^^xsd:date ; - dcterms:modified "2018-05-02"^^xsd:date ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref#" ; - vann:preferredNamespacePrefix "saref" ; - dcterms:source ; - dcterms:source ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:description "The Smart Appliances REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing assets (standards/protocols/datamodels/etc.) in the smart appliances domain. The SAREF ontology provides building blocks that allow separation and recombination of different parts of the ontology depending on specific needs. The starting point of SAREF is the concept of device (e.g., a switch). Devices are tangible objects designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function. The SAREF ontology offers a lists of basic functions that can be eventually combined in order to have more complex functions in a single device. For example, a switch offers an actuating function of type 'switching on/off'. Each function has some associated commands, which can also be picked up as building blocks from a list. For example, the 'switching on/off' is associated with the commands 'switch on', 'switch off' and 'toggle'. Depending on the function(s) it accomplishes, a device can be found in some corresponding states that are also listed as building blocks. When connected to a network, a device offers a service, which is a representation of a function to a network that makes the function discoverable, registerable and remotely controllable by other devices in the network. A service can represent one or more functions. A service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A service must specify the device that is offering the service and the function(s) to be represented. A device in the SAREF ontology is also characterized by a profile that can be used to optimize some property, such as Energy, in a home or office that are part of a building."^^xsd:string ; - rdfs:comment "Information about changes compared to version 1.1.1: (1)The classes and properties related to how to represent devices in building spaces (such as the saref:BuildingSpace class, saref:BuildingObject class and saref:isLocatedIn property) have been removed from SAREF and incorporated into the SAREF4BLDG extension related to buildings (https://w3id.org/def/saref4bldg), including the reuse of the W3C® WGS84 geo positioning vocabulary; (2)The saref:DeviceCategory and saref:FunctionCategory classes have been removed. Instead, the hierarchy of device categories has been implemented directly as subclasses of the saref:Device class; (3)The information specific for energy efficiency has been moved to the SAREF4ENER extension (https://w3id.org/saref4ener). For example, the saref:Profile class has been redefined to accommodate only the properties that are general enough for any type of profile, not only for energy and power. Details on how to specifically model a power profile can be found in the SAREF4ENER extension (https://w3id.org/saref4ener); (4) The subclasses of the saref:Energy class have been removed (i.e., Average Energy, Maximum Energy, Minimum Energy, Total Energy, HVAC Energy, Hot Water Energy and Lighting Energy); (5)The saref:Property class has been split into two classes (saref:Property and saref:Measurement), as it is done in the SAREF4ENVI extension (https://w3id.org/def/saref4envi), in order to properly accommodate the distinction between the concept of property (an observable quality of something) and the concept of measurement (a concrete value observed for a property); (6)Too restrictive cardinality restrictions have been revised, sometimes making them optional rather than mandatory (better to make properties mandatory in the extensions that specialize SAREF for a specific purpose, rather than restricting SAREF, whose purpose is more general). For example, definitions of units of measurement using an enumeration (owl:oneOf) were too restrictive because they did not allow using other units than those enumerated. Therefore, the individuals of each class are still there, but the owl:oneOf enumeration has been removed; (7)The saref:UnitOfMeasure subclassesre use individuals from the OM ontology for unit of measures (http://www.wurvoc.org/vocabularies/om-1.6/), but this is not the only solution. It has been clarified in the comments that the OM ontology is an example, but other ontologies can be used; (8)The global restrictions (rdfs:domain and rdfs:range) in object properties have been completely removed not to hinder interoperability. Object properties are now only restricted locally in the classes; (9)The subclasses of saref:Task have been transormed in individuals; (10)The saref:hasTask property has been removed from the saref:Profile class to resolve an ambiguity with the saref:Task class." ; - dcterms:publisher . - -################################################################# -# Object Properties -################################################################# - -### https://w3id.org/saref#accomplishes -saref:accomplishes rdf:type owl:ObjectProperty ; - owl:inverseOf saref:isAccomplishedBy ; - rdfs:comment "A relationship between a certain entity (e.g., a device) and the task it accomplishes"^^xsd:string ; - rdfs:label "accomplishes"^^xsd:string . - - -### https://w3id.org/saref#actsUpon -saref:actsUpon rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a command and a state"^^xsd:string ; - rdfs:label "acts upon"^^xsd:string . - - -### https://w3id.org/saref#consistsOf -saref:consistsOf rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship indicating a composite entity that consists of other entities (e.g., a temperature/humidity sensor that consists of a temperature sensor and a humidity sensor)"^^xsd:string ; - rdfs:label "consists of"^^xsd:string . - - -### https://w3id.org/saref#controlsProperty -saref:controlsProperty rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship specifying the Property that can be controlled by a certain Device"@en ; - rdfs:label "controls property"@en . - - -### https://w3id.org/saref#hasCommand -saref:hasCommand rdf:type owl:ObjectProperty ; - owl:inverseOf saref:isCommandOf ; - rdfs:comment "A relationship between an entity (such as a function) and a command"^^xsd:string ; - rdfs:label "has command"^^xsd:string . - - -### https://w3id.org/saref#hasFunction -saref:hasFunction rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying the type of function of a device"^^xsd:string ; - rdfs:label "has function"^^xsd:string . - - -### https://w3id.org/saref#hasMeterReading -saref:hasMeterReading rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a metering function and the measurement of the reading"^^xsd:string ; - rdfs:label "has meter reading"^^xsd:string . - - -### https://w3id.org/saref#hasMeterReadingType -saref:hasMeterReadingType rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying the reading type of a measurement (e.g., Water, Gas, Pressure , Energy , Power, etc.)"^^xsd:string ; - rdfs:label "has meter reading type"^^xsd:string . - - -### https://w3id.org/saref#hasPrice -saref:hasPrice rdf:type owl:ObjectProperty ; - rdfs:comment "A relationships indentifying the price associated to an entity"^^xsd:string ; - rdfs:label "has price"^^xsd:string . - - -### https://w3id.org/saref#hasProfile -saref:hasProfile rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship associating a profile to a certain entity (e.g., a device)"^^xsd:string ; - rdfs:label "has profile"^^xsd:string . - - -### https://w3id.org/saref#hasSensingRange -saref:hasSensingRange rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a sensing function and a measurement identifying the range of a sensor detection"^^xsd:string ; - rdfs:label "has sensing range "^^xsd:string . - - -### https://w3id.org/saref#hasSensorType -saref:hasSensorType rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying the sensing type of a sensor detection (i.e., Temperature, Occupancy, Humidity, Motion , Smoke, Pressure, etc.) "^^xsd:string ; - rdfs:label "has sensor type"^^xsd:string . - - -### https://w3id.org/saref#hasState -saref:hasState rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying the type of state of a device"^^xsd:string ; - rdfs:label "has state"^^xsd:string . - - -### https://w3id.org/saref#hasThresholdMeasurement -saref:hasThresholdMeasurement rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship associated with an event function to notify that a certain threshold measurement has been exceeded"^^xsd:string ; - rdfs:label "has threshold measurement"^^xsd:string . - - -### https://w3id.org/saref#hasTime -saref:hasTime rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship to associate time information to an entity"^^xsd:string ; - rdfs:label "has time"^^xsd:string . - - -### https://w3id.org/saref#hasTypicalConsumption -saref:hasTypicalConsumption rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying the typical (energy or power) consumption of a device"^^xsd:string ; - rdfs:label "has typical consumption"^^xsd:string . - - -### https://w3id.org/saref#isAbout -saref:isAbout rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying what an entity, such as a Profile, is about"@en ; - rdfs:label "isAbout"@en . - - -### https://w3id.org/saref#isAccomplishedBy -saref:isAccomplishedBy rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship indentifying the task accomplished by a certain entity (e.g., a device)"^^xsd:string ; - rdfs:label "is accomplished by"^^xsd:string . - - -### https://w3id.org/saref#isCommandOf -saref:isCommandOf rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a command and a function."^^xsd:string ; - rdfs:label "is command of"^^xsd:string . - - -### https://w3id.org/saref#isControlledByDevice -saref:isControlledByDevice rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship specifying the devices that can control a certain property"@en ; - rdfs:label "is controlled by device"^^xsd:string . - - -### https://w3id.org/saref#isMeasuredByDevice -saref:isMeasuredByDevice rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship specifying the devices that can measure a certain property"@en ; - rdfs:label "is measured by device"^^xsd:string . - - -### https://w3id.org/saref#isMeasuredIn -saref:isMeasuredIn rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying the unit of measure used for a certain entity."^^xsd:string ; - rdfs:label "is measured in"^^xsd:string . - - -### https://w3id.org/saref#isOfferedBy -saref:isOfferedBy rdf:type owl:ObjectProperty ; - owl:inverseOf saref:offers ; - rdfs:comment "A relationship between a service and a device that offers the service"^^xsd:string ; - rdfs:label "is offered by"^^xsd:string . - - -### https://w3id.org/saref#isUsedFor -saref:isUsedFor rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship specifying the purpose for which a device is used for (e.g., controlling a Commodity)"^^xsd:string ; - rdfs:label "is used for"^^xsd:string . - - -### https://w3id.org/saref#makesMeasurement -saref:makesMeasurement rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a device and the measurements it makes. Such measurement will link together the value of the measurement, its unit of measure and the property to which it relates."@en ; - rdfs:label "makes measurement"@en . - - -### https://w3id.org/saref#measuresProperty -saref:measuresProperty rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship specifying the Property that can be measured by a certain Device"@en ; - rdfs:label "measures property"@en . - - -### https://w3id.org/saref#offers -saref:offers rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a device and a service"^^xsd:string ; - rdfs:label "offers"^^xsd:string . - - -### https://w3id.org/saref#relatesToMeasurement -saref:relatesToMeasurement rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a property and the measurements it relates to"^^xsd:string ; - rdfs:label "relates to measurement"@en . - - -### https://w3id.org/saref#relatesToProperty -saref:relatesToProperty rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a measurement and the property it relates to"^^xsd:string ; - rdfs:label "relates to property"@en . - - -### https://w3id.org/saref#represents -saref:represents rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a service and a function."^^xsd:string ; - rdfs:label "represents"^^xsd:string . - - -################################################################# -# Data properties -################################################################# - -### https://w3id.org/saref#hasDescription -saref:hasDescription rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship providing a description of an entity (e.g., device)"^^xsd:string ; - rdfs:label "has description"^^xsd:string . - - -### https://w3id.org/saref#hasManufacturer -saref:hasManufacturer rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship identifying the manufacturer of an entity (e.g., device)"^^xsd:string ; - rdfs:label "has manufacturer"^^xsd:string . - - -### https://w3id.org/saref#hasModel -saref:hasModel rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship identifying the model of an entity (e.g., device)"^^xsd:string ; - rdfs:label "has model"^^xsd:string . - - -### https://w3id.org/saref#hasName -saref:hasName rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship providing the name of an entity (e.g., device)"^^xsd:string ; - rdfs:label "has name"^^xsd:string . - - -### https://w3id.org/saref#hasTimestamp -saref:hasTimestamp rdf:type owl:DatatypeProperty ; - rdfs:comment "A relationship stating the timestamp of an entity (e.g. a measurement)."@en ; - rdfs:label "has timestamp"@en . - - -### https://w3id.org/saref#hasValue -saref:hasValue rdf:type owl:DatatypeProperty ; - rdfs:comment "A relationship defining the value of a certain property, e.g., energy or power"^^xsd:string ; - rdfs:label "has value"^^xsd:string . - - -################################################################# -# Classes -################################################################# - -### http://www.w3.org/2006/time#TemporalUnit -time:TemporalUnit rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "The unit of measure for time"^^xsd:string . - - -### https://w3id.org/saref#ActuatingFunction -saref:ActuatingFunction rdf:type owl:Class ; - rdfs:subClassOf saref:Function ; - rdfs:comment "A function that allows to transmit data to actuators, such as level settings (e.g., temperature) or binary switching (e.g., open/close, on/off)"^^xsd:string ; - rdfs:label "Actuating function"^^xsd:string . - - -### https://w3id.org/saref#Actuator -saref:Actuator rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:ActuatingFunction - ] ; - rdfs:comment "A device responsible for moving or controlling a mechanism or system by performing an actuating function"^^xsd:string ; - rdfs:label "Actuator"^^xsd:string . - - -### https://w3id.org/saref#Appliance -saref:Appliance rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:comment "An electrical/mechanical machine that accomplish some household functions, such as cleaning or cooking"^^xsd:string ; - rdfs:label "Appliance"^^xsd:string . - - -### https://w3id.org/saref#BuildingRelated -saref:BuildingRelated rdf:type owl:Class ; - rdfs:subClassOf saref:Device ; - rdfs:comment "A category that includes devices as described by building related data models, such as IFC and FIEMSER "^^xsd:string ; - rdfs:label "Building related"^^xsd:string . - - -### https://w3id.org/saref#CloseCommand -saref:CloseCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:OpenCloseState - ] ; - owl:disjointWith saref:OpenCommand ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Close command"^^xsd:string . - - -### https://w3id.org/saref#CloseState -saref:CloseState rdf:type owl:Class ; - rdfs:subClassOf saref:OpenCloseState ; - rdfs:comment "The state of a device that is CLOSE"^^xsd:string ; - rdfs:label "Close state"^^xsd:string . - - -### https://w3id.org/saref#Coal -saref:Coal rdf:type owl:Class ; - rdfs:subClassOf saref:Commodity ; - rdfs:comment "A type of commodity"^^xsd:string ; - rdfs:label "Coal"^^xsd:string . - - -### https://w3id.org/saref#Command -saref:Command rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:State - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isCommandOf ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Function - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:comment "A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "Command"^^xsd:string . - - -### https://w3id.org/saref#Commodity -saref:Commodity rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:allValuesFrom saref:UnitOfMeasure - ] ; - rdfs:comment "A marketable item for which there is demand, but which is supplied without qualitative differentiation across a market. SAREF refers to energy commodities such as electricity, gas, coal and oil. "^^xsd:string ; - rdfs:label "Commodity"^^xsd:string . - - -### https://w3id.org/saref#Currency -saref:Currency rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "The unit of measure for price"^^xsd:string ; - rdfs:label "Currency"^^xsd:string . - - -### https://w3id.org/saref#Device -saref:Device rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:allValuesFrom saref:Device - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:controlsProperty ; - owl:allValuesFrom saref:Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasProfile ; - owl:allValuesFrom saref:Profile - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasState ; - owl:allValuesFrom saref:State - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasTypicalConsumption ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( saref:Energy - saref:Power - ) - ] - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isUsedFor ; - owl:allValuesFrom saref:Commodity - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:makesMeasurement ; - owl:allValuesFrom saref:Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:allValuesFrom saref:Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:offers ; - owl:allValuesFrom saref:Service - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Task - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Function - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasManufacturer ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasModel ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:comment "A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function. Devices can be structured in categories (subclasses) that reflect the different domain in which a device is used, e.g., smart appliances domain (subclass FunctionRelated) vs. building domain (subclass BuildingRelated) vs. smart grid domain (subclass EnergyRelated). New categories can be defined,if needed, to reflect other differences, for example different points of view, such as the point of view of the device's user vs. the point of view of the device's manufacturer. We propose a list of devices that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "Device"^^xsd:string . - - -### https://w3id.org/saref#DoorSwitch -saref:DoorSwitch rdf:type owl:Class ; - rdfs:subClassOf saref:Switch , - [ rdf:type owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Switch - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:OpenCloseFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasState ; - owl:someValuesFrom saref:OpenCloseState - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:Safety - ] ; - rdfs:comment "A device of category saref:Actuator that consists of a switch, accomplishes the task saref:Safety, performs the saref:OpenCloseFunction, is used for controlling a door, and can be found in the state saref:OpenCloseState."^^xsd:string ; - rdfs:label "Door switch"^^xsd:string . - - -### https://w3id.org/saref#Electricity -saref:Electricity rdf:type owl:Class ; - rdfs:subClassOf saref:Commodity ; - rdfs:comment "A type of commodity"^^xsd:string ; - rdfs:label "Electricity"^^xsd:string . - - -### https://w3id.org/saref#Energy -saref:Energy rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value measured in an energy unit (such as Kilowatt_Hour or Watt_hour). Furter specializations of the saref:Energy class can be found in the SAREF4ENER extension, where classes such as EnergyMax, EnergyMin and EnergyExpected are defined. "^^xsd:string ; - rdfs:label "Energy"^^xsd:string . - - -### https://w3id.org/saref#EnergyMeter -saref:EnergyMeter rdf:type owl:Class ; - rdfs:subClassOf saref:Meter , - [ rdf:type owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Meter - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom saref:Energy - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:EnergyEfficiency - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:MeterReading - ] ; - rdfs:comment "An energy meter is a device of category saref:Meter that consists of a meter, accomplishes the tasks saref:MeterReading and saref:EnergyEfficiency, performs the saref:MeteringFunction and is used for the purpose of measuring the saref:Energy property"^^xsd:string ; - rdfs:label "Energy meter"^^xsd:string . - - -### https://w3id.org/saref#EnergyRelated -saref:EnergyRelated rdf:type owl:Class ; - rdfs:subClassOf saref:Device ; - rdfs:comment "A category that considers devices based on energy consumption information and profiles to optimize energy efficiency."^^xsd:string ; - rdfs:label "Energy related"^^xsd:string . - - -### https://w3id.org/saref#EnergyUnit -saref:EnergyUnit rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "The unit of measure for energy"^^xsd:string ; - rdfs:label "Energy unit"^^xsd:string . - - -### https://w3id.org/saref#EventFunction -saref:EventFunction rdf:type owl:Class ; - rdfs:subClassOf saref:Function , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:allValuesFrom saref:NotifyCommand - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasThresholdMeasurement ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Measurement - ] ; - rdfs:comment "A function that allows to notify another device that a certain threshold value has been exceeded."^^xsd:string ; - rdfs:label "Event function"^^xsd:string . - - -### https://w3id.org/saref#Function -saref:Function rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Command - ] ; - rdfs:comment "The functionality necessary to accomplish the task for which a Device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. "^^xsd:string ; - rdfs:label "Function"^^xsd:string . - - -### https://w3id.org/saref#FunctionRelated -saref:FunctionRelated rdf:type owl:Class ; - rdfs:subClassOf saref:Device ; - rdfs:comment "A category that considers devices, sensors and their specification in terms of functions, states and services"^^xsd:string ; - rdfs:label "Function related"^^xsd:string . - - -### https://w3id.org/saref#Gas -saref:Gas rdf:type owl:Class ; - rdfs:subClassOf saref:Commodity ; - rdfs:comment "A type of commodity"^^xsd:string ; - rdfs:label "Gas"^^xsd:string . - - -### https://w3id.org/saref#Generator -saref:Generator rdf:type owl:Class ; - rdfs:subClassOf saref:EnergyRelated ; - rdfs:comment "A type of energy-related device that generates energy"^^xsd:string ; - rdfs:label "Generator"^^xsd:string . - - -### https://w3id.org/saref#GetCommand -saref:GetCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Get command"^^xsd:string . - - -### https://w3id.org/saref#GetCurrentMeterValueCommand -saref:GetCurrentMeterValueCommand rdf:type owl:Class ; - rdfs:subClassOf saref:GetCommand ; - rdfs:comment "A type of get command"^^xsd:string ; - rdfs:label "Get current meter value command"^^xsd:string . - - -### https://w3id.org/saref#GetMeterDataCommand -saref:GetMeterDataCommand rdf:type owl:Class ; - rdfs:subClassOf saref:GetCommand ; - rdfs:comment "A type of get command"^^xsd:string ; - rdfs:label "Get meter data command"^^xsd:string . - - -### https://w3id.org/saref#GetMeterHistoryCommand -saref:GetMeterHistoryCommand rdf:type owl:Class ; - rdfs:subClassOf saref:GetCommand ; - rdfs:comment "A type of get command"^^xsd:string ; - rdfs:label "Get meter history command"^^xsd:string . - - -### https://w3id.org/saref#GetSensingDataCommand -saref:GetSensingDataCommand rdf:type owl:Class ; - rdfs:subClassOf saref:GetCommand ; - rdfs:comment "A type of get command"^^xsd:string ; - rdfs:label "Get sensing data command"^^xsd:string . - - -### https://w3id.org/saref#HVAC -saref:HVAC rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:Comfort - ] ; - rdfs:comment "Heating, Ventilation and Air Conditioning (HVAC) device that provides indoor environmental comfort"^^xsd:string ; - rdfs:label "HVAC"^^xsd:string . - - -### https://w3id.org/saref#Humidity -saref:Humidity rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit"^^xsd:string ; - rdfs:label "Humidity"^^xsd:string . - - -### https://w3id.org/saref#IlluminanceUnit -saref:IlluminanceUnit rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "The unit of measure for light"^^xsd:string ; - rdfs:label "Illuminance unit"^^xsd:string . - - -### https://w3id.org/saref#LevelControlFunction -saref:LevelControlFunction rdf:type owl:Class ; - rdfs:subClassOf saref:ActuatingFunction , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( saref:SetAbsoluteLevelCommand - saref:SetRelativeLevelCommand - saref:StepDownCommand - saref:StepUpCommand - ) - ] - ] ; - rdfs:comment "An actuating function that allows to do level adjustments of an actuator in a certain range (e.g., 0%-100%), such as dimming a light or set the speed of an electric motor. "^^xsd:string ; - rdfs:label "Level control function"^^xsd:string . - - -### https://w3id.org/saref#Light -saref:Light rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a illuminance unit (lux)"^^xsd:string ; - rdfs:label "Light"^^xsd:string . - - -### https://w3id.org/saref#LightSwitch -saref:LightSwitch rdf:type owl:Class ; - rdfs:subClassOf saref:Switch , - [ rdf:type owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Switch - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:OnOffFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasState ; - owl:someValuesFrom saref:OnOffState - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom saref:Light - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:offers ; - owl:someValuesFrom saref:SwitchOnService - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:Lighting - ] ; - rdfs:comment "A device of category saref:Actuator that consists of a switch, accomplishes the task saref:Lighting, performs the saref:OnOffFunction, measures the property saref:Light, and can be found in the state saref:OnOffState. It can offer a switch on service."^^xsd:string ; - rdfs:label "Light switch"^^xsd:string . - - -### https://w3id.org/saref#LightingDevice -saref:LightingDevice rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:Comfort - ] ; - rdfs:comment "A device used for illumination, irradiation, signaling, or projection"^^xsd:string ; - rdfs:label "Lighting device"^^xsd:string . - - -### https://w3id.org/saref#Load -saref:Load rdf:type owl:Class ; - rdfs:subClassOf saref:EnergyRelated ; - rdfs:comment "A type of energy-related device that consumes energy"^^xsd:string ; - rdfs:label "Load"^^xsd:string . - - -### https://w3id.org/saref#Measurement -saref:Measurement rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:allValuesFrom saref:UnitOfMeasure - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:allValuesFrom saref:Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:UnitOfMeasure - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasTimestamp ; - owl:allValuesFrom xsd:dateTime - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasValue ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:float - ] ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Measurement"@en . - - -### https://w3id.org/saref#Meter -saref:Meter rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:MeteringFunction - ] ; - rdfs:comment "A device built to accurately detect and display a quantity in a form readable by a human being. Further, a device of category saref:Meter that performs a saref:MeteringFunction."^^xsd:string ; - rdfs:label "Meter"^^xsd:string . - - -### https://w3id.org/saref#MeteringFunction -saref:MeteringFunction rdf:type owl:Class ; - rdfs:subClassOf saref:Function , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( saref:GetCurrentMeterValueCommand - saref:GetMeterDataCommand - saref:GetMeterHistoryCommand - ) - ] - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasMeterReading ; - owl:allValuesFrom saref:Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasMeterReadingType ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( saref:Commodity - saref:Property - ) - ] - ] ; - rdfs:comment "A function that allows to get data from a meter, such as current meter reading or instantaneous demand"^^xsd:string ; - rdfs:label "Metering function"^^xsd:string . - - -### https://w3id.org/saref#MicroRenewable -saref:MicroRenewable rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:EnergyEfficiency - ] ; - rdfs:comment "A device that generates renewable energy from natural resources such as teh sun, wind and water"^^xsd:string ; - rdfs:label "Micro renewable"^^xsd:string . - - -### https://w3id.org/saref#Motion -saref:Motion rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for motion"^^xsd:string ; - rdfs:label "Motion"^^xsd:string . - - -### https://w3id.org/saref#MultiLevelState -saref:MultiLevelState rdf:type owl:Class ; - rdfs:subClassOf saref:State ; - rdfs:comment "A type of state"^^xsd:string ; - rdfs:label "Multi level state"^^xsd:string . - - -### https://w3id.org/saref#Multimedia -saref:Multimedia rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:Entertainment - ] ; - rdfs:comment "A device designed to display, store, record or play multimedia content such as audio, images, animation, video "^^xsd:string ; - rdfs:label "Multimedia"^^xsd:string . - - -### https://w3id.org/saref#Network -saref:Network rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:comment "A device used to connect other devices in a network, such as hub, switch or router in a Local Area Network (LAN). "^^xsd:string ; - rdfs:label "Network"^^xsd:string . - - -### https://w3id.org/saref#NotifyCommand -saref:NotifyCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Notify command"^^xsd:string . - - -### https://w3id.org/saref#Occupancy -saref:Occupancy rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value (saref:hasValue property) that is measured in a unit of measure for occupancy"^^xsd:string ; - rdfs:label "Occupancy"^^xsd:string . - - -### https://w3id.org/saref#OffCommand -saref:OffCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:OnOffState - ] ; - owl:disjointWith saref:OnCommand ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Off command"^^xsd:string . - - -### https://w3id.org/saref#OffState -saref:OffState rdf:type owl:Class ; - rdfs:subClassOf saref:OnOffState ; - rdfs:comment "The state of a device that is ON"^^xsd:string ; - rdfs:label "Off state"^^xsd:string . - - -### https://w3id.org/saref#OnCommand -saref:OnCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:OnOffState - ] ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "On command"^^xsd:string . - - -### https://w3id.org/saref#OnOffFunction -saref:OnOffFunction rdf:type owl:Class ; - rdfs:subClassOf saref:ActuatingFunction , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( saref:OffCommand - saref:OnCommand - saref:ToggleCommand - ) - ] - ] ; - rdfs:comment "An actuating function that allows to switch on and off an actuator"^^xsd:string ; - rdfs:label "On off function"^^xsd:string . - - -### https://w3id.org/saref#OnOffState -saref:OnOffState rdf:type owl:Class ; - rdfs:subClassOf saref:State ; - rdfs:comment "A type of state"^^xsd:string ; - rdfs:label "On off state"^^xsd:string . - - -### https://w3id.org/saref#OnState -saref:OnState rdf:type owl:Class ; - rdfs:subClassOf saref:OnOffState ; - rdfs:comment "The state of a device that is OFF "^^xsd:string ; - rdfs:label "On state"^^xsd:string . - - -### https://w3id.org/saref#OpenCloseFunction -saref:OpenCloseFunction rdf:type owl:Class ; - rdfs:subClassOf saref:ActuatingFunction , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( saref:CloseCommand - saref:OpenCommand - ) - ] - ] ; - rdfs:comment "An actuating function that allows to open and close a device"^^xsd:string ; - rdfs:label "Open close function"^^xsd:string . - - -### https://w3id.org/saref#OpenCloseState -saref:OpenCloseState rdf:type owl:Class ; - rdfs:subClassOf saref:State ; - rdfs:comment "A type of state"^^xsd:string ; - rdfs:label "Open close state"^^xsd:string . - - -### https://w3id.org/saref#OpenCommand -saref:OpenCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:OpenCloseState - ] ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Open command"^^xsd:string . - - -### https://w3id.org/saref#OpenState -saref:OpenState rdf:type owl:Class ; - rdfs:subClassOf saref:OpenCloseState ; - rdfs:comment "The state of a device that is OPEN "^^xsd:string ; - rdfs:label "Open state"^^xsd:string . - - -### https://w3id.org/saref#PauseCommand -saref:PauseCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Pause command"^^xsd:string . - - -### https://w3id.org/saref#Power -saref:Power rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a power unit (such as watt or kilowatt). Further specializations of the saref:Power class can be found in the SAREF4ENER extension, where classes such as PowerMax, PowerMin and PowerExpected are defined."^^xsd:string ; - rdfs:label "Power"^^xsd:string . - - -### https://w3id.org/saref#PowerUnit -saref:PowerUnit rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "The unit of measure for power"^^xsd:string ; - rdfs:label "Power unit"^^xsd:string . - - -### https://w3id.org/saref#Pressure -saref:Pressure rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a pressure unit (bar or pascal)"^^xsd:string ; - rdfs:label "Pressure"^^xsd:string . - - -### https://w3id.org/saref#PressureUnit -saref:PressureUnit rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "The unit of measure for pressure"^^xsd:string ; - rdfs:label "Pressure unit"^^xsd:string . - - -### https://w3id.org/saref#Price -saref:Price rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property crelated to some measurements that are characterized by a certain value that is measured using saref:Currency"^^xsd:string ; - rdfs:label "Price"^^xsd:string . - - -### https://w3id.org/saref#Profile -saref:Profile rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:allValuesFrom saref:Profile - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasPrice ; - owl:allValuesFrom saref:Price - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasTime ; - owl:allValuesFrom saref:Time - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isAbout ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( saref:Commodity - saref:Property - ) - ] - ] ; - rdfs:comment "A specification associated to a device to collect information about a certain Property (e.g., Energy) or Commodity (e.g.Water) for optimizing its usage in the home, office or building in which the device is located. This specification is about a certain Property or Commodity (saref:isAbout), can be calculated over a time span (saref:hasTime ) and can be associated to some costs (saref:hasPrice). An example is the Power Profile defined in the SAREF4ENER extension that can be associated to a device for optimizing the Energy efficiency in the home, office or building in which the device is located."@en ; - rdfs:label "Profile"@en . - - -### https://w3id.org/saref#Property -saref:Property rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:isControlledByDevice ; - owl:allValuesFrom saref:Device - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredByDevice ; - owl:allValuesFrom saref:Device - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:relatesToMeasurement ; - owl:allValuesFrom saref:Measurement - ] ; - rdfs:comment "Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "Property"^^xsd:string . - - -### https://w3id.org/saref#SensingFunction -saref:SensingFunction rdf:type owl:Class ; - rdfs:subClassOf saref:Function , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasSensingRange ; - owl:someValuesFrom saref:Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:allValuesFrom saref:GetSensingDataCommand - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasSensorType ; - owl:allValuesFrom saref:Property - ] ; - rdfs:comment "A function that allows to transmit data from sensors, such as measurement values (e.g., temperature) or sensing data (e.g., occupancy)"^^xsd:string ; - rdfs:label "Sensing function"^^xsd:string . - - -### https://w3id.org/saref#Sensor -saref:Sensor rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:SensingFunction - ] ; - rdfs:comment "A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. Further, a device of category saref:Sensor that performs a saref:SensingFunction."^^xsd:string ; - rdfs:label "Sensor"^^xsd:string . - - -### https://w3id.org/saref#Service -saref:Service rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:isOfferedBy ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Device - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:represents ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Function - ] ; - rdfs:comment "A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service and the function(s) to be represented."^^xsd:string ; - rdfs:label "Service"^^xsd:string . - - -### https://w3id.org/saref#SetAbsoluteLevelCommand -saref:SetAbsoluteLevelCommand rdf:type owl:Class ; - rdfs:subClassOf saref:SetLevelCommand ; - rdfs:comment "A type of set level command"^^xsd:string ; - rdfs:label "Set absolute level command"^^xsd:string . - - -### https://w3id.org/saref#SetLevelCommand -saref:SetLevelCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:MultiLevelState - ] ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Set level command"^^xsd:string . - - -### https://w3id.org/saref#SetRelativeLevelCommand -saref:SetRelativeLevelCommand rdf:type owl:Class ; - rdfs:subClassOf saref:SetLevelCommand ; - rdfs:comment "A type of set level command"^^xsd:string ; - rdfs:label "Set relative level command"^^xsd:string . - - -### https://w3id.org/saref#Smoke -saref:Smoke rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for smoke"^^xsd:string ; - rdfs:label "Smoke"^^xsd:string . - - -### https://w3id.org/saref#SmokeSensor -saref:SmokeSensor rdf:type owl:Class ; - rdfs:subClassOf saref:Sensor , - [ rdf:type owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Sensor - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:EventFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:SensingFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom saref:Smoke - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:Safety - ] ; - rdfs:comment "A device that consists of a sensor, has category saref:Sensor, performs the saref:SensingFunction and saref:EventFunction (which notifies that a certain threshold has been exceeded), and is used for the purpose of sensing a property of type saref:Smoke."^^xsd:string ; - rdfs:label "Smoke sensor"^^xsd:string . - - -### https://w3id.org/saref#StartCommand -saref:StartCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:StartStopState - ] ; - owl:disjointWith saref:StopCommand ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Start command"^^xsd:string . - - -### https://w3id.org/saref#StartState -saref:StartState rdf:type owl:Class ; - rdfs:subClassOf saref:StartStopState ; - rdfs:comment "The state of a device that is STARTED"^^xsd:string ; - rdfs:label "Start state"^^xsd:string . - - -### https://w3id.org/saref#StartStopFunction -saref:StartStopFunction rdf:type owl:Class ; - rdfs:subClassOf saref:ActuatingFunction , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( saref:StartCommand - saref:StopCommand - ) - ] - ] ; - rdfs:comment "An actuating function that allows to start and stop a device"^^xsd:string ; - rdfs:label "Start stop function"^^xsd:string . - - -### https://w3id.org/saref#StartStopState -saref:StartStopState rdf:type owl:Class ; - rdfs:subClassOf saref:State ; - rdfs:comment "A type of state"^^xsd:string ; - rdfs:label "Start stop state"^^xsd:string . - - -### https://w3id.org/saref#State -saref:State rdf:type owl:Class ; - rdfs:comment "The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "State"^^xsd:string . - - -### https://w3id.org/saref#StepDownCommand -saref:StepDownCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:MultiLevelState - ] ; - owl:disjointWith saref:StepUpCommand ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Step down command"^^xsd:string . - - -### https://w3id.org/saref#StepUpCommand -saref:StepUpCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:MultiLevelState - ] ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Step up command"^^xsd:string . - - -### https://w3id.org/saref#StopCommand -saref:StopCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:StartStopState - ] ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Stop command"^^xsd:string . - - -### https://w3id.org/saref#StopState -saref:StopState rdf:type owl:Class ; - rdfs:subClassOf saref:StartStopState ; - rdfs:comment "The state of a device that is STOPPED"^^xsd:string ; - rdfs:label "Stop state"^^xsd:string . - - -### https://w3id.org/saref#Storage -saref:Storage rdf:type owl:Class ; - rdfs:subClassOf saref:EnergyRelated ; - rdfs:comment "A type of energy-related device that stores energy"^^xsd:string ; - rdfs:label "Storage"^^xsd:string . - - -### https://w3id.org/saref#Switch -saref:Switch rdf:type owl:Class ; - rdfs:subClassOf saref:Actuator ; - rdfs:comment "A device of category saref:Actuator that performs an actuating function of type saref:OnOffFunction or saref:OpenCloseFunction"^^xsd:string ; - rdfs:label "Switch"^^xsd:string . - - -### https://w3id.org/saref#SwitchOnService -saref:SwitchOnService rdf:type owl:Class ; - rdfs:subClassOf saref:Service , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isOfferedBy ; - owl:someValuesFrom saref:LightSwitch - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:represents ; - owl:someValuesFrom saref:OnOffFunction - ] ; - rdfs:comment "A type of service that represents an on/off function to the network"^^xsd:string ; - rdfs:label "Switch on service"^^xsd:string . - - -### https://w3id.org/saref#Task -saref:Task rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:isAccomplishedBy ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Device - ] ; - rdfs:comment "The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "Task"^^xsd:string . - - -### https://w3id.org/saref#Temperature -saref:Temperature rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin)"^^xsd:string ; - rdfs:label "Temperature"^^xsd:string . - - -### https://w3id.org/saref#TemperatureSensor -saref:TemperatureSensor rdf:type owl:Class ; - rdfs:subClassOf saref:Sensor , - [ rdf:type owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Sensor - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:SensingFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom saref:Temperature - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:Comfort - ] ; - rdfs:comment "A device that consists of a sensor, has category saref:Sensor, performs the saref:SensingFunction and is used for the purpose of sensing a property of type saref:Temperature"^^xsd:string ; - rdfs:label "Temperature sensor"^^xsd:string . - - -### https://w3id.org/saref#TemperatureUnit -saref:TemperatureUnit rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "The unit of measure for temperature"^^xsd:string ; - rdfs:label "Temperature unit"^^xsd:string . - - -### https://w3id.org/saref#Time -saref:Time rdf:type owl:Class ; - rdfs:subClassOf saref:Property , - [ rdf:type owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom time:TemporalEntity - ] ; - rdfs:comment "A saref:Property that allows to specify the time concept in terms of instants or intervals according to the imported W3C Time ontology."^^xsd:string ; - rdfs:label "Time"^^xsd:string . - - -### https://w3id.org/saref#ToggleCommand -saref:ToggleCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Toggle command"^^xsd:string . - - -### https://w3id.org/saref#UnitOfMeasure -saref:UnitOfMeasure rdf:type owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM)."^^xsd:string ; - rdfs:isDefinedBy ; - rdfs:label "Unit of measure"^^xsd:string . - - -### https://w3id.org/saref#WashingMachine -saref:WashingMachine rdf:type owl:Class ; - rdfs:subClassOf saref:Appliance , - saref:Load , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:StartStopFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasProfile ; - owl:someValuesFrom saref:Profile - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasState ; - owl:someValuesFrom saref:StartStopState - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:Washing - ] ; - rdfs:comment "A device of category saref:Appliance and saref:Load that accomplishes the task saref:Washing, performs an actuating function of type saref:StartStopFunction, can be found in the state saref:StartStopState, and can have a saref:Profile that characterizes its energy consumption. "^^xsd:string ; - rdfs:label "Washing machine"^^xsd:string . - - -### https://w3id.org/saref#Water -saref:Water rdf:type owl:Class ; - rdfs:subClassOf saref:Commodity ; - rdfs:comment "A type of commodity"^^xsd:string ; - rdfs:label "Water"^^xsd:string . - - -################################################################# -# Individuals -################################################################# - -### http://www.wurvoc.org/vocabularies/om-1.8/United_States_dollar -om:United_States_dollar rdf:type owl:NamedIndividual , - saref:Currency ; - rdfs:label "United States dollar"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/bar -om:bar rdf:type owl:NamedIndividual , - saref:PressureUnit ; - rdfs:comment "The bar is a unit of pressure defined as 100 000 pascal."@en ; - rdfs:label "bar"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/degree_Celsius -om:degree_Celsius rdf:type owl:NamedIndividual , - saref:TemperatureUnit ; - rdfs:comment "The degree Celsius is a unit of temperature defined as 1 kelvin."@en ; - rdfs:label "degree Celsius"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/degree_Fahrenheit -om:degree_Fahrenheit rdf:type owl:NamedIndividual , - saref:TemperatureUnit ; - rdfs:comment "The degree Fahrenheit is a unit of temperature defined as 5.555556e-1 kelvin."@en ; - rdfs:label "degree Fahrenheit"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/euro -om:euro rdf:type owl:NamedIndividual , - saref:Currency ; - rdfs:label "euro"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/kelvin -om:kelvin rdf:type owl:NamedIndividual , - saref:TemperatureUnit ; - rdfs:comment "The kelvin is a unit of temperature defined as 1/273.16 of the thermodynamic temperature of the triple point of water."@en ; - rdfs:label "kelvin"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/kilowatt -om:kilowatt rdf:type owl:NamedIndividual , - saref:PowerUnit ; - rdfs:label "kilowatt"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/kilowatt_hour -om:kilowatt_hour rdf:type owl:NamedIndividual , - saref:EnergyUnit ; - rdfs:comment "The kilowatt hour is a unit of energy equal to 1,000 watt-hours, or 3.6 megajoules."^^xsd:string ; - rdfs:label "kilowatt hour"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/lux -om:lux rdf:type owl:NamedIndividual , - saref:IlluminanceUnit ; - rdfs:comment "The lux is a unit of illuminance defined as lumen divided by square metre = candela times steradian divided by square metre."@en ; - rdfs:label "lux"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/pascal -om:pascal rdf:type owl:NamedIndividual , - saref:PressureUnit ; - rdfs:comment "The pascal is a unit of pressure and stress defined as newton divided by square metre = joule divided by cubic metre = kilogram divided by metre second squared."@en ; - rdfs:label "pascal"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/pound_sterling -om:pound_sterling rdf:type owl:NamedIndividual , - saref:Currency ; - rdfs:label "Great Britain pound sterling"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/watt -om:watt rdf:type owl:NamedIndividual , - saref:PowerUnit ; - rdfs:comment "The watt is a unit of power defined as joule divided by second = newton times metre divided by second = volt times ampere = kilogram times square metre divided by second to the power 3."@en ; - rdfs:label "watt"^^xsd:string . - - -### https://w3id.org/saref#Cleaning -saref:Cleaning rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "Cleaning"^^xsd:string . - - -### https://w3id.org/saref#Close -saref:Close rdf:type owl:NamedIndividual , - saref:CloseCommand , - saref:CloseState ; - rdfs:comment "The value CLOSE. It is used to instantiate different classes such as the CloseCommand class and CloseState class, for example. "^^xsd:string ; - rdfs:label "Close"^^xsd:string . - - -### https://w3id.org/saref#Comfort -saref:Comfort rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "Comfort"^^xsd:string . - - -### https://w3id.org/saref#Drying -saref:Drying rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "Drying"^^xsd:string . - - -### https://w3id.org/saref#EnergyEfficiency -saref:EnergyEfficiency rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "EnergyEfficiency"^^xsd:string . - - -### https://w3id.org/saref#Entertainment -saref:Entertainment rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "Entertainment"^^xsd:string . - - -### https://w3id.org/saref#GetCurrentMeterValue -saref:GetCurrentMeterValue rdf:type owl:NamedIndividual , - saref:GetCurrentMeterValueCommand ; - rdfs:comment "The command GET CURRENT METER VALUE. It is used to instantiate the GetCurrentMeterValueCommand class. "^^xsd:string ; - rdfs:label "Get current meter value"^^xsd:string . - - -### https://w3id.org/saref#GetMeterData -saref:GetMeterData rdf:type owl:NamedIndividual , - saref:GetMeterDataCommand ; - rdfs:comment "The command GET METER DATA. It is used to instantiate the GetMeterDataCommand class. "^^xsd:string ; - rdfs:label "Get meter data"^^xsd:string . - - -### https://w3id.org/saref#GetMeterHistory -saref:GetMeterHistory rdf:type owl:NamedIndividual , - saref:GetMeterHistoryCommand ; - rdfs:comment "The command GET METER HISTORY. It is used to instantiate the GetMeterHistoryCommand class. "^^xsd:string ; - rdfs:label "Get meter history"^^xsd:string . - - -### https://w3id.org/saref#GetSensingData -saref:GetSensingData rdf:type owl:NamedIndividual , - saref:GetSensingDataCommand ; - rdfs:comment "The command GET SENSING DATA. It is used to instantiate the GetSensingDataCommand class. "^^xsd:string ; - rdfs:label "Get sensing data"^^xsd:string . - - -### https://w3id.org/saref#Lighting -saref:Lighting rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "Lighting"^^xsd:string . - - -### https://w3id.org/saref#MeterReading -saref:MeterReading rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "Meter reading"^^xsd:string . - - -### https://w3id.org/saref#Notify -saref:Notify rdf:type owl:NamedIndividual , - saref:NotifyCommand ; - rdfs:comment "The value NOTIFY. It is used to instantiate the NotifyCommand."^^xsd:string ; - rdfs:label "Notify"^^xsd:string . - - -### https://w3id.org/saref#Off -saref:Off rdf:type owl:NamedIndividual , - saref:OffCommand , - saref:OffState ; - rdfs:comment "The value OFF. It is used to instantiate different classes such as the OffCommand class and OffState class. "^^xsd:string ; - rdfs:label "Off "^^xsd:string . - - -### https://w3id.org/saref#On -saref:On rdf:type owl:NamedIndividual , - saref:OnCommand , - saref:OnState ; - rdfs:comment "The value ON. It is used to instantiate different classes such as the OnCommand class and OnState class. "^^xsd:string ; - rdfs:label "On"^^xsd:string . - - -### https://w3id.org/saref#Open -saref:Open rdf:type owl:NamedIndividual , - saref:OpenCommand , - saref:OpenState ; - rdfs:comment "The value OPEN. It is used to instantiate different classes such as the OpenCommand class and OpenState class. "^^xsd:string ; - rdfs:label "Open"^^xsd:string . - - -### https://w3id.org/saref#Pause -saref:Pause rdf:type owl:NamedIndividual , - saref:PauseCommand ; - rdfs:comment "The value PAUSE. It is used to instantiate classes such as the PauseCommand class."^^xsd:string ; - rdfs:label "Pause"^^xsd:string . - - -### https://w3id.org/saref#Safety -saref:Safety rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "Safety"^^xsd:string . - - -### https://w3id.org/saref#SetAbsoluteLevel -saref:SetAbsoluteLevel rdf:type owl:NamedIndividual , - saref:SetAbsoluteLevelCommand ; - rdfs:comment "The value SET ABSOLUTE LEVEL. It is used to instantiate classes such as the SetAbsoluteLevelCommand class. "^^xsd:string ; - rdfs:label "Set absolute level"^^xsd:string . - - -### https://w3id.org/saref#SetRelativeLevel -saref:SetRelativeLevel rdf:type owl:NamedIndividual , - saref:SetRelativeLevelCommand ; - rdfs:comment "The value SET RELATIVE LEVEL. It is used to instantiate classes such as the SetRelativeLevelCommand class. "^^xsd:string ; - rdfs:label "Set relative level"^^xsd:string . - - -### https://w3id.org/saref#Start -saref:Start rdf:type owl:NamedIndividual , - saref:StartCommand , - saref:StartState ; - rdfs:comment "The value START. It is used to instantiate different classes such as the StartCommand class and StartState class. "^^xsd:string ; - rdfs:label "Start"^^xsd:string . - - -### https://w3id.org/saref#StepDown -saref:StepDown rdf:type owl:NamedIndividual , - saref:StepDownCommand ; - rdfs:comment "The value STEP DOWN. It is used to instantiate the StepDownCommand class. "^^xsd:string ; - rdfs:label "Step down"^^xsd:string . - - -### https://w3id.org/saref#StepUp -saref:StepUp rdf:type owl:NamedIndividual , - saref:StepUpCommand ; - rdfs:comment "The value STEP UP. It is used to instantiate the StepUpCommand class. "^^xsd:string ; - rdfs:label "Step up"^^xsd:string . - - -### https://w3id.org/saref#Stop -saref:Stop rdf:type owl:NamedIndividual , - saref:StopCommand , - saref:StopState ; - rdfs:comment "The value STOP. It is used to instantiate different classes such as the StopCommand class and StopState class. "^^xsd:string ; - rdfs:label "Stop"^^xsd:string . - - -### https://w3id.org/saref#Toggle -saref:Toggle rdf:type owl:NamedIndividual , - saref:ToggleCommand ; - rdfs:comment "The value TOGGLE. It is used to instantiate the the ToggleCommand class"^^xsd:string ; - rdfs:label "Toggle"^^xsd:string . - - -### https://w3id.org/saref#Washing -saref:Washing rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "Washing"^^xsd:string . - - -### https://w3id.org/saref#WellBeing -saref:WellBeing rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "WellBeing"^^xsd:string . - - -### https://w3id.org/saref#watt_hour -saref:watt_hour rdf:type owl:NamedIndividual , - saref:EnergyUnit ; - rdfs:comment "The Watt Hor is a unit of energy equivalent to one watt (1 W) of power expended for one hour (1 h) of time. An energy expenditure of 1 Wh represents 3600 joules "^^xsd:string ; - rdfs:label "watt hour"^^xsd:string . - - -### Generated by the OWL API (version 4.2.6.20160910-2108) https://github.com/owlcs/owlapi diff --git a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/catalog-v001.xml b/src/main/resources/saref-portal-generator/public/saref/v2.1.1/catalog-v001.xml deleted file mode 100644 index 25cd0e8..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/catalog-v001.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/doorswitch.ttl b/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/doorswitch.ttl deleted file mode 100644 index 5332cc9..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/doorswitch.ttl +++ /dev/null @@ -1,80 +0,0 @@ -# baseURI: http://ontology.tno.nl/saref/doorswitch -# imports: https://w3id.org/saref - -@prefix geo: . -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix saref: . -@prefix saref-ds: . -@prefix time: . -@prefix xsd: . - - - rdf:type owl:Ontology ; - owl:imports ; -. -saref-ds:BuildingObject_MainDoor - rdf:type saref:Door ; - rdfs:label "Building object Main door"^^xsd:string ; -. -saref-ds:BuildingSpace_OfficeHall - rdf:type saref:BuildingSpace ; - rdfs:label "Office Hall"^^xsd:string ; - geo:lat "52.0821"^^xsd:string ; - geo:long "4.3251"^^xsd:string ; - saref:contains saref-ds:BuildingObject_MainDoor ; - saref:hasSpaceType "Office hall"^^xsd:string ; -. -saref-ds:CloseCommand - rdf:type saref:CloseCommand ; - rdfs:label "CLOSE command "^^xsd:string ; - saref:actsUpon saref-ds:OpenState ; -. -saref-ds:CloseDoorService - rdf:type saref:Service ; - rdfs:label "CLOSE Door service "^^xsd:string ; - saref:hasInputParameter saref-ds:OpenState ; - saref:hasOutputParameter saref-ds:CloseState ; - saref:isOfferedBy saref-ds:DoorSwitch_DS3001 ; - saref:represents saref-ds:OpenCloseFunction ; -. -saref-ds:CloseState - rdf:type saref:CloseState ; - rdfs:label "CLOSE state"^^xsd:string ; -. -saref-ds:Comfort - rdf:type saref:Task ; - rdfs:label "Comfort"^^xsd:string ; -. -saref-ds:DoorSwitch_DS001 - rdf:type saref:DoorSwitch ; - rdfs:label "Door switch DS3001"^^xsd:string ; - saref:IsUsedFor saref-ds:BuildingObject_MainDoor ; - saref:accomplishes saref-ds:Comfort ; - saref:consistsOf saref:Switch ; - saref:hasCategory saref:Actuator ; - saref:hasDescription "Door switch DS3001 is an example of how to instantiate a door switch using SAREF"^^xsd:string ; - saref:hasFunction saref-ds:OpenCloseFunction ; - saref:hasManufacturer "manufacturer-mno"^^xsd:string ; - saref:hasModel "mno-DS3001-16"^^xsd:string ; - saref:hasState saref-ds:CloseState ; - saref:hasState saref-ds:OpenState ; - saref:isLocatedIn saref-ds:BuildingSpace_OfficeHall ; - saref:offers saref-ds:CloseDoorService ; -. -saref-ds:OpenCloseFunction - rdf:type saref:OpenCloseFunction ; - rdfs:label "OPEN CLOSE function "^^xsd:string ; - saref:hasCommand saref-ds:CloseCommand ; - saref:hasCommand saref-ds:OpenCommand ; -. -saref-ds:OpenCommand - rdf:type saref:OpenCommand ; - rdfs:label "OPEN command"^^xsd:string ; - saref:actsUpon saref-ds:CloseState ; -. -saref-ds:OpenState - rdf:type saref:OpenState ; - rdfs:label "Open state"^^xsd:string ; -. diff --git a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/energymeter.ttl b/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/energymeter.ttl deleted file mode 100644 index 51512aa..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/energymeter.ttl +++ /dev/null @@ -1,73 +0,0 @@ -# baseURI: http://ontology.tno.nl/saref/energymeter -# imports: https://w3id.org/saref - -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix saref: . -@prefix saref-em: . -@prefix time: . -@prefix xsd: . - - - rdf:type owl:Ontology ; - owl:imports ; -. -saref-em:Efficiency - rdf:type saref:Task ; - rdfs:label "Efficiency"^^xsd:string ; -. -saref-em:Energy - rdf:type saref:Energy ; - rdfs:label "Energy "^^xsd:string ; - saref:hasValue "not applicable"^^xsd:string ; - saref:isMeasuredIn ; -. -saref-em:EnergyMeter_EM5004 - rdf:type saref:EnergyMeter ; - rdfs:label "Energy meter EM5004"^^xsd:string ; - saref:IsUsedFor saref-em:Energy ; - saref:accomplishes saref-em:Efficiency ; - saref:hasCategory saref:Meter ; - saref:hasDescription "Energy meter EM5004 is an example of how to instantiate an energy meter using SAREF"^^xsd:string ; - saref:hasFunction saref-em:MeteringFunction ; - saref:hasManufacturer "manufacturer_stv"^^xsd:string ; - saref:hasModel "EM5004-stv-16"^^xsd:string ; - saref:offers saref-em:MeasureEnergyService ; -. -saref-em:Energy_value1 - rdf:type saref:Energy ; - rdfs:label "Energy value1"^^xsd:string ; - saref:hasValue "1"^^xsd:string ; - saref:isMeasuredIn ; -. -saref-em:GetCurrentMeterValueCommand - rdf:type saref:GetCurrentMeterValueCommand ; - rdfs:label "Get current meter value command"^^xsd:string ; - saref:isCommandOf saref-em:MeteringFunction ; -. -saref-em:Instant_1 - rdf:type time:Instant ; - rdfs:label "Instant 1"^^xsd:string ; - time:inXSDDateTime "2015-03-17T11:10:50.53"^^xsd:dateTime ; -. -saref-em:MeasureEnergyService - rdf:type saref:Service ; - rdfs:label "Measure energy service"^^xsd:string ; - saref:hasOutputParameter saref-em:Energy ; - saref:isOfferedBy saref-em:EnergyMeter_EM5004 ; - saref:represents saref-em:MeteringFunction ; -. -saref-em:MeteringFunction - rdf:type saref:MeteringFunction ; - rdfs:label "Metering function "^^xsd:string ; - saref:hasCommand saref-em:GetCurrentMeterValueCommand ; - saref:hasMeterReadingTime saref-em:Time_value1 ; - saref:hasMeterReadingType "Energy"^^xsd:string ; - saref:hasMeterReadingValue saref-em:Energy_value1 ; -. -saref-em:Time_value1 - rdf:type saref:Time ; - rdfs:label "Time value 1"^^xsd:string ; - saref:consistsOf saref-em:Instant_1 ; -. diff --git a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/lightswitch.ttl b/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/lightswitch.ttl deleted file mode 100644 index 1091c05..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/lightswitch.ttl +++ /dev/null @@ -1,82 +0,0 @@ -# baseURI: http://ontology.tno.nl/saref/lightswitch -# imports: https://w3id.org/saref - -@prefix geo: . -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix saref: . -@prefix saref-ls: . -@prefix time: . -@prefix xsd: . - - - rdf:type owl:Ontology ; - owl:imports ; -. -saref-ls:BuildingSpace_OfficeHall - rdf:type saref:BuildingSpace ; - rdfs:label "Office Hall"^^xsd:string ; - geo:lat "52.0821"^^xsd:string ; - geo:long "4.3251"^^xsd:string ; - saref:hasSpaceType "Office hall"^^xsd:string ; -. -saref-ls:Light - rdf:type saref:Light ; - rdfs:label "Light "^^xsd:string ; - saref:hasValue "not applicable"^^xsd:string ; - saref:isMeasuredIn ; -. -saref-ls:LightSwitch_LS1001 - rdf:type saref:LightSwitch ; - rdfs:label "Light switch LS1001"^^xsd:string ; - saref:IsUsedFor saref-ls:Light ; - saref:accomplishes saref-ls:Lighting ; - saref:consistsOf saref:Switch ; - saref:hasCategory saref:Actuator ; - saref:hasDescription "Light switch LS1001 is an example of how to instantiate a light switch using SAREF"^^xsd:string ; - saref:hasFunction saref-ls:OnOffFunction ; - saref:hasManufacturer "manufacturer-abc"^^xsd:string ; - saref:hasModel "890-09w"^^xsd:string ; - saref:hasState saref-ls:OffState ; - saref:hasState saref-ls:OnState ; - saref:isLocatedIn saref-ls:BuildingSpace_OfficeHall ; - saref:offers saref-ls:SwitchOnService ; -. -saref-ls:Lighting - rdf:type saref:Task ; - rdfs:label "Lighting"^^xsd:string ; - saref:isAccomplishedBy saref-ls:LightSwitch_LS1001 ; -. -saref-ls:OffCommand - rdf:type saref:OffCommand ; - rdfs:label "OFF command "^^xsd:string ; - saref:actsUpon saref-ls:OnState ; -. -saref-ls:OffState - rdf:type saref:OffState ; - rdfs:label "OFF state"^^xsd:string ; -. -saref-ls:OnCommand - rdf:type saref:OnCommand ; - rdfs:label "ON command"^^xsd:string ; - saref:actsUpon saref-ls:OffState ; -. -saref-ls:OnOffFunction - rdf:type saref:OnOffFunction ; - rdfs:label "ON OFF function "^^xsd:string ; - saref:hasCommand saref-ls:OffCommand ; - saref:hasCommand saref-ls:OnCommand ; -. -saref-ls:OnState - rdf:type saref:OnState ; - rdfs:label "ON state"^^xsd:string ; -. -saref-ls:SwitchOnService - rdf:type saref:SwitchOnService ; - rdfs:label "Switch ON service "^^xsd:string ; - saref:hasInputParameter saref-ls:OffState ; - saref:hasOutputParameter saref-ls:OnState ; - saref:isOfferedBy saref-ls:LightSwitch_LS1001 ; - saref:represents saref-ls:OnOffFunction ; -. diff --git a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/smokesensor.ttl b/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/smokesensor.ttl deleted file mode 100644 index 110401b..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/smokesensor.ttl +++ /dev/null @@ -1,121 +0,0 @@ -# baseURI: http://ontology.tno.nl/saref/smokesensor -# imports: https://w3id.org/saref - -@prefix geo: . -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix saref: . -@prefix saref-ss: . -@prefix time: . -@prefix xsd: . - - - rdf:type owl:Ontology ; - owl:imports ; -. -saref-ss:Audio - rdf:type saref:Property ; - rdfs:label "Audio"^^xsd:string ; - saref:hasValue "70"^^xsd:string ; - saref:isMeasuredIn ; -. -saref-ss:BuildingObject_Window - rdf:type saref:Window ; - rdfs:label "Window"^^xsd:string ; -. -saref-ss:BuildingSpace_HotelRoom - rdf:type saref:BuildingSpace ; - rdfs:label "Hotel room"^^xsd:string ; - geo:lat "52.0705"^^xsd:string ; - geo:long "4.30070"^^xsd:string ; - saref:contains ; - saref:hasSpaceType "Hotel room"^^xsd:string ; -. -saref-ss:Comfort - rdf:type saref:Task ; - rdfs:label "Comfort"^^xsd:string ; -. -saref-ss:EventFunction - rdf:type saref:EventFunction ; - rdfs:label "Event function"^^xsd:string ; - saref:hasCommand saref-ss:NotifyCommand ; - saref:hasThreshold saref-ss:Smoke_threshold_value ; -. -saref-ss:GetSensingDataCommand - rdf:type saref:GetCommand ; - rdfs:comment "The GetSensingDataCommand does not act upon any state, since it only gives a directive to retrieve a certain value."^^xsd:string ; - rdfs:label "Get sensing data command"^^xsd:string ; - saref:isCommandOf saref-ss:SensingFunction ; -. -saref-ss:NotifyCommand - rdf:type saref:NotifyCommand ; - rdfs:label "Notify command"^^xsd:string ; - saref:isCommandOf saref-ss:EventFunction ; -. -saref-ss:OffState - rdf:type saref:OffState ; - rdfs:label "OFF state"^^xsd:string ; -. -saref-ss:OnState - rdf:type saref:OnState ; - rdfs:label "ON state"^^xsd:string ; -. -saref-ss:SenseSmoke - rdf:type saref:Service ; - rdfs:label "Sense smoke"^^xsd:string ; - saref:hasInputParameter saref-ss:Smoke ; - saref:hasOutputParameter saref-ss:Smoke ; - saref:isOfferedBy saref-ss:SmokeSensor_SS4001 ; - saref:represents saref-ss:SensingFunction ; -. -saref-ss:SensingFunction - rdf:type saref:SensingFunction ; - rdfs:label "Sensing function"^^xsd:string ; - saref:hasCommand saref-ss:GetSensingDataCommand ; - saref:hasSensorType "Smoke"^^xsd:string ; -. -saref-ss:Smoke - rdf:type saref:Smoke ; - rdfs:label "Smoke"^^xsd:string ; -. -saref-ss:SmokeAlarm - rdf:type saref:Service ; - rdfs:label "Smoke alarm"^^xsd:string ; - saref:hasInputParameter saref-ss:Smoke ; - saref:hasOutputParameter saref-ss:Audio ; - saref:isOfferedBy saref-ss:SmokeSensor_SS4001 ; - saref:represents saref-ss:EventFunction ; -. -saref-ss:SmokeSensor_SS4001 - rdf:type saref:SmokeSensor ; - rdfs:label "Smoke sensor SS4001"^^xsd:string ; - saref:IsUsedFor saref-ss:Smoke ; - saref:accomplishes saref:Safety ; - saref:hasCategory saref:Sensor ; - saref:hasDescription "Temperature sensor TS2001 is an example of how to instantiate a temperature sensor using SAREF"^^xsd:string ; - saref:hasFunction saref-ss:EventFunction ; - saref:hasFunction saref-ss:SensingFunction ; - saref:hasManufacturer "manufacturer-ccsd"^^xsd:string ; - saref:hasModel "SS-4001-ccsd-15"^^xsd:string ; - saref:hasState saref-ss:OffState ; - saref:hasState saref-ss:OnState ; - saref:isLocatedIn saref-ss:BuildingSpace_HotelRoom ; - saref:offers saref-ss:SenseSmoke ; - saref:offers saref-ss:SmokeAlarm ; -. -saref-ss:SmokeUnit - rdf:type saref:UnitOfMeasure ; - rdfs:label "Smoke unit"^^xsd:string ; -. -saref-ss:Smoke_threshold_value - rdf:type saref:Smoke ; - rdfs:label "Smoke threshold value"^^xsd:string ; - saref:hasValue "00000"^^xsd:string ; - saref:isMeasuredIn saref-ss:SmokeUnit ; -. -saref-ss:Temperature - rdf:type saref:Temperature ; - rdfs:label "Temperature"^^xsd:string ; - saref:hasValue "not applicable"^^xsd:string ; -. diff --git a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/temperaturesensor.ttl b/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/temperaturesensor.ttl deleted file mode 100644 index 5a10ba5..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/temperaturesensor.ttl +++ /dev/null @@ -1,80 +0,0 @@ -# baseURI: http://ontology.tno.nl/saref/tempsensor -# imports: https://w3id.org/saref - -@prefix geo: . -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix saref: . -@prefix saref-ts: . -@prefix time: . -@prefix xsd: . - - - rdf:type owl:Ontology ; - owl:imports ; -. -saref-ts:BuildingObject_Window - rdf:type saref:Window ; - rdfs:label "Window"^^xsd:string ; -. -saref-ts:BuildingSpace_HotelRoom - rdf:type saref:BuildingSpace ; - rdfs:label "Hotel room"^^xsd:string ; - geo:lat "52.0705"^^xsd:string ; - geo:long "4.30070"^^xsd:string ; - saref:contains saref-ts:BuildingObject_window ; - saref:hasSpaceType "Hotel room"^^xsd:string ; -. -saref-ts:Comfort - rdf:type saref:Task ; - rdfs:label "Comfort"^^xsd:string ; -. -saref-ts:GetSensingDataCommand - rdf:type saref:GetCommand ; - rdfs:comment "The GetSensingDataCommand does not act upon any state, since it only gives a directive to retrieve a certain value."^^xsd:string ; - rdfs:label "Get sensing data command"^^xsd:string ; - saref:isCommandOf saref-ts:SensingFunction ; -. -saref-ts:OffState - rdf:type saref:OffState ; - rdfs:label "OFF state"^^xsd:string ; -. -saref-ts:OnState - rdf:type saref:OnState ; - rdfs:label "ON state"^^xsd:string ; -. -saref-ts:SenseTemperature - rdf:type saref:Service ; - rdfs:label "Sense temperature"^^xsd:string ; - saref:hasInputParameter saref-ts:Temperature ; - saref:hasOutputParameter saref-ts:Temperature ; - saref:isOfferedBy saref-ts:TemperatureSensor_TS2001 ; - saref:represents saref-ts:SensingFunction ; -. -saref-ts:SensingFunction - rdf:type saref:SensingFunction ; - rdfs:label "Sensing function"^^xsd:string ; - saref:hasCommand saref-ts:GetSensingDataCommand ; - saref:hasSensorType "Temperature"^^xsd:string ; -. -saref-ts:Temperature - rdf:type saref:Temperature ; - rdfs:label "Temperature"^^xsd:string ; - saref:hasValue "not applicable"^^xsd:string ; -. -saref-ts:TemperatureSensor_TS2001 - rdf:type saref:TemperatureSensor ; - rdfs:label "Temperature sensor TS2001"^^xsd:string ; - saref:IsUsedFor saref-ts:Temperature ; - saref:accomplishes saref-ts:Comfort ; - saref:hasCategory saref:Sensor ; - saref:hasDescription "Temperature sensor TS2001 is an example of how to instantiate a temperature sensor using SAREF"^^xsd:string ; - saref:hasFunction saref-ts:SensingFunction ; - saref:hasManufacturer "manufacturer-efg"^^xsd:string ; - saref:hasModel "153899L"^^xsd:string ; - saref:hasState saref-ts:OffState ; - saref:hasState saref-ts:OnState ; - saref:isLocatedIn saref-ts:BuildingSpace_HotelRoom ; - saref:offers saref-ts:SenseTemperature ; -. diff --git a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/time.ttl b/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/time.ttl deleted file mode 100644 index 9f33471..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/time.ttl +++ /dev/null @@ -1,15 +0,0 @@ -@prefix rdfs: . -@prefix saref: . -@prefix time: . -@prefix xsd: . -@prefix owl: . -@prefix rdf: . - - - rdf:type owl:Ontology ; - owl:imports . - -### http://www.w3.org/2006/time#TemporalUnit -time:TemporalUnit rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "The unit of measure for time"^^xsd:string . - diff --git a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/washingmachine.ttl b/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/washingmachine.ttl deleted file mode 100644 index a6cb511..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/example/washingmachine.ttl +++ /dev/null @@ -1,118 +0,0 @@ -# baseURI: http://ontology.tno.nl/saref/washingmachine -# imports: https://w3id.org/saref - -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix saref: . -@prefix saref-wm: . -@prefix time: . -@prefix xsd: . - - - rdf:type owl:Ontology ; - owl:imports ; -. -saref-wm:BuildingSpace_LaundryRoom - rdf:type saref:BuildingSpace ; - rdfs:label "Laundry room"^^xsd:string ; - saref:contains saref-wm:WashingMachine_WM802 ; - saref:hasSpaceType "Laundry room"^^xsd:string ; -. -saref-wm:Instant_1 - rdf:type time:Instant ; - rdfs:label "Instant 1"^^xsd:string ; - time:inXSDDateTime "2015-03-17T11:10:50.53"^^xsd:dateTime ; -. -saref-wm:Instant_2 - rdf:type time:Instant ; - rdfs:label "Instant 2"^^xsd:string ; - time:inXSDDateTime "2015-03-17T12:30:51.116"^^xsd:dateTime ; -. -saref-wm:Interval_1 - rdf:type time:Interval ; - rdfs:label "Interval 1"^^xsd:string ; - time:hasBeginning saref-wm:Instant_1 ; - time:hasEnd saref-wm:Instant_2 ; -. -saref-wm:OnOffFunction_1 - rdf:type saref:OnOffFunction ; - rdfs:label "On off function 1"^^xsd:string ; -. -saref-wm:Power_value1 - rdf:type saref:Power ; - rdfs:label "Power value 1"^^xsd:string ; - saref:hasValue "0.65"^^xsd:string ; - saref:isMeasuredIn ; -. -saref-wm:Power_value2 - rdf:type saref:Power ; - rdfs:label "Power value2"^^xsd:string ; - saref:hasValue "0.40"^^xsd:string ; - saref:isMeasuredIn ; -. -saref-wm:Price_value1 - rdf:type saref:Price ; - rdfs:label "Price value1"^^xsd:string ; - saref:hasValue "0.2"^^xsd:string ; - saref:isMeasuredIn ; -. -saref-wm:Profile_1 - rdf:type saref:Profile ; - rdfs:label "Profile 1"^^xsd:string ; - saref:hasConsumption saref-wm:Power_value2 ; - saref:hasPrice saref-wm:Price_value1 ; - saref:isFlexible "true"^^xsd:boolean ; - saref:isInterruptionPossible "false"^^xsd:boolean ; -. -saref-wm:StartCommand - rdf:type saref:StartCommand ; - rdfs:label "START command "^^xsd:string ; - saref:actsUpon saref-wm:StopState ; - saref:isCommandOf saref-wm:StartStopFunction ; -. -saref-wm:StartService - rdf:type saref:Service ; - rdfs:label "Start service 1"^^xsd:string ; - saref:hasInputParameter saref-wm:StopState ; - saref:hasOutputParameter saref-wm:StartState ; - saref:isOfferedBy saref-wm:WashingMachine_WM802 ; - saref:represents saref-wm:StartStopFunction ; -. -saref-wm:StartState - rdf:type saref:StartState ; - rdfs:label "Start state"^^xsd:string ; -. -saref-wm:StartStopFunction - rdf:type saref:StartStopFunction ; - rdfs:label "Start stop function "^^xsd:string ; - saref:hasCommand saref-wm:StartCommand ; - saref:hasCommand saref-wm:StopCommand ; -. -saref-wm:StopCommand - rdf:type saref:StopCommand ; - rdfs:label "STOP command "^^xsd:string ; - saref:actsUpon saref-wm:StartState ; - saref:isCommandOf saref-wm:StartStopFunction ; -. -saref-wm:StopState - rdf:type saref:StopState ; - rdfs:label "Stop state"^^xsd:string ; -. -saref-wm:WashingMachine_WM802 - rdf:type saref:WashingMachine ; - rdfs:label "Washing machine WM802"^^xsd:string ; - saref:accomplishes saref:Washing ; - saref:hasCategory saref:Appliance ; - saref:hasCategory saref:Load ; - saref:hasDescription "Washing machine WM802 is an example of how to instantiate a washing machine using SAREF"^^xsd:string ; - saref:hasFunction saref-wm:StartStopFunction ; - saref:hasManufacturer "manufacturer-hgfds"^^xsd:string ; - saref:hasModel "45609WQ"^^xsd:string ; - saref:hasProfile saref-wm:Profile_1 ; - saref:hasState saref-wm:StartState ; - saref:hasState saref-wm:StopState ; - saref:hasTypicalConsumption saref-wm:Power_value1 ; - saref:isLocatedIn saref-wm:BuildingSpace_LaundryRoom ; - saref:offers saref-wm:StartService ; -. diff --git a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/oldsaref-to-slash.ttl b/src/main/resources/saref-portal-generator/public/saref/v2.1.1/oldsaref-to-slash.ttl deleted file mode 100644 index 40250a8..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/oldsaref-to-slash.ttl +++ /dev/null @@ -1,802 +0,0 @@ -@prefix om: . -@prefix owl: . -@prefix rdf: . -@prefix xml: . -@prefix xsd: . -@prefix foaf: . -@prefix rdfs: . -@prefix time: . -@prefix dcterms: . -@prefix vann: . - -@prefix oldsaref: . -@prefix saref: . -@base . - - rdf:type owl:Ontology ; - dcterms:title "SAREF ontology with former namespace"@en ; - dcterms:contributor ; - rdfs:comment "This ontology is SAREF v2.1.1 with the former namespace https://w3id.org/saref# . You should migrate to the official ETSI SAREF namespace https://saref.etsi.org/saref/ . No backward compatibility with the former namespace will be ensured for future releases of SAREF." ; - owl:imports ; - dcterms:publisher . - -oldsaref:accomplishes a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:accomplishes . - -oldsaref:actsUpon a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:actsUpon . - -oldsaref:consistsOf a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:consistsOf . - -oldsaref:controlsProperty a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:controlsProperty . - -oldsaref:hasCommand a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasCommand . - -oldsaref:hasFunction a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasFunction . - -oldsaref:hasMeterReading a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasMeterReading . - -oldsaref:hasMeterReadingType a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasMeterReadingType . - -oldsaref:hasPrice a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasPrice . - -oldsaref:hasProfile a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasProfile . - -oldsaref:hasSensingRange a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasSensingRange . - -oldsaref:hasSensorType a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasSensorType . - -oldsaref:hasState a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasState . - -oldsaref:hasThresholdMeasurement a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasThresholdMeasurement . - -oldsaref:hasTime a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasTime . - -oldsaref:hasTypicalConsumption a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasTypicalConsumption . - -oldsaref:isAbout a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:isAbout . - -oldsaref:isAccomplishedBy a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:isAccomplishedBy . - -oldsaref:isCommandOf a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:isCommandOf . - -oldsaref:isControlledByDevice a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:isControlledByDevice . - -oldsaref:isMeasuredByDevice a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:isMeasuredByDevice . - -oldsaref:isMeasuredIn a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:isMeasuredIn . - -oldsaref:isOfferedBy a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:isOfferedBy . - -oldsaref:isUsedFor a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:isUsedFor . - -oldsaref:makesMeasurement a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:makesMeasurement . - -oldsaref:measuresProperty a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:measuresProperty . - -oldsaref:offers a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:offers . - -oldsaref:relatesToMeasurement a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:relatesToMeasurement . - -oldsaref:relatesToProperty a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:relatesToProperty . - -oldsaref:represents a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:represents . - -oldsaref:hasDescription a owl:DatatypeProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasDescription . - -oldsaref:hasManufacturer a owl:DatatypeProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasManufacturer . - -oldsaref:hasModel a owl:DatatypeProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasModel . - -oldsaref:hasName a owl:DatatypeProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasName . - -oldsaref:hasTimestamp a owl:DatatypeProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasTimestamp . - -oldsaref:hasValue a owl:DatatypeProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentProperty saref:hasValue . - -oldsaref:ActuatingFunction a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:ActuatingFunction . - -oldsaref:Actuator a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Actuator . - -oldsaref:Appliance a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Appliance . - -oldsaref:BuildingRelated a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:BuildingRelated . - -oldsaref:CloseCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:CloseCommand . - -oldsaref:CloseState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:CloseState . - -oldsaref:Coal a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Coal . - -oldsaref:Command a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Command . - -oldsaref:Commodity a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Commodity . - -oldsaref:Currency a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Currency . - -oldsaref:Device a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Device . - -oldsaref:DoorSwitch a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:DoorSwitch . - -oldsaref:Electricity a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Electricity . - -oldsaref:Energy a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Energy . - -oldsaref:EnergyMeter a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:EnergyMeter . - -oldsaref:EnergyRelated a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:EnergyRelated . - -oldsaref:EnergyUnit a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:EnergyUnit . - -oldsaref:EventFunction a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:EventFunction . - -oldsaref:Function a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Function . - -oldsaref:FunctionRelated a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:FunctionRelated . - -oldsaref:Gas a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Gas . - -oldsaref:Generator a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Generator . - -oldsaref:GetCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:GetCommand . - -oldsaref:GetCurrentMeterValueCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:GetCurrentMeterValueCommand . - -oldsaref:GetMeterDataCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:GetMeterDataCommand . - -oldsaref:GetMeterHistoryCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:GetMeterHistoryCommand . - -oldsaref:GetSensingDataCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:GetSensingDataCommand . - -oldsaref:HVAC a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:HVAC . - -oldsaref:Humidity a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Humidity . - -oldsaref:IlluminanceUnit a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:IlluminanceUnit . - -oldsaref:LevelControlFunction a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:LevelControlFunction . - -oldsaref:Light a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Light . - -oldsaref:LightSwitch a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:LightSwitch . - -oldsaref:LightingDevice a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:LightingDevice . - -oldsaref:Load a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Load . - -oldsaref:Measurement a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Measurement . - -oldsaref:Meter a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Meter . - -oldsaref:MeteringFunction a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:MeteringFunction . - -oldsaref:MicroRenewable a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:MicroRenewable . - -oldsaref:Motion a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Motion . - -oldsaref:MultiLevelState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:MultiLevelState . - -oldsaref:Multimedia a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Multimedia . - -oldsaref:Network a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Network . - -oldsaref:NotifyCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:NotifyCommand . - -oldsaref:Occupancy a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Occupancy . - -oldsaref:OffCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:OffCommand . - -oldsaref:OffState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:OffState . - -oldsaref:OnCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:OnCommand . - -oldsaref:OnOffFunction a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:OnOffFunction . - -oldsaref:OnOffState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:OnOffState . - -oldsaref:OnState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:OnState . - -oldsaref:OpenCloseFunction a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:OpenCloseFunction . - -oldsaref:OpenCloseState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:OpenCloseState . - -oldsaref:OpenCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:OpenCommand . - -oldsaref:OpenState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:OpenState . - -oldsaref:PauseCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:PauseCommand . - -oldsaref:Power a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Power . - -oldsaref:PowerUnit a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:PowerUnit . - -oldsaref:Pressure a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Pressure . - -oldsaref:PressureUnit a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:PressureUnit . - -oldsaref:Price a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Price . - -oldsaref:Profile a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Profile . - -oldsaref:Property a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Property . - -oldsaref:SensingFunction a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:SensingFunction . - -oldsaref:Sensor a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Sensor . - -oldsaref:Service a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Service . - -oldsaref:SetAbsoluteLevelCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:SetAbsoluteLevelCommand . - -oldsaref:SetLevelCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:SetLevelCommand . - -oldsaref:SetRelativeLevelCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:SetRelativeLevelCommand . - -oldsaref:Smoke a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Smoke . - -oldsaref:SmokeSensor a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:SmokeSensor . - -oldsaref:StartCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:StartCommand . - -oldsaref:StartState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:StartState . - -oldsaref:StartStopFunction a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:StartStopFunction . - -oldsaref:StartStopState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:StartStopState . - -oldsaref:State a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:State . - -oldsaref:StepDownCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:StepDownCommand . - -oldsaref:StepUpCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:StepUpCommand . - -oldsaref:StopCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:StopCommand . - -oldsaref:StopState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:StopState . - -oldsaref:Storage a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Storage . - -oldsaref:Switch a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Switch . - -oldsaref:SwitchOnService a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:SwitchOnService . - -oldsaref:Task a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Task . - -oldsaref:Temperature a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Temperature . - -oldsaref:TemperatureSensor a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:TemperatureSensor . - -oldsaref:TemperatureUnit a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:TemperatureUnit . - -oldsaref:Time a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Time . - -oldsaref:ToggleCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:ToggleCommand . - -oldsaref:UnitOfMeasure a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:UnitOfMeasure . - -oldsaref:WashingMachine a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:WashingMachine . - -oldsaref:Water a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:equivalentClass saref:Water . - -oldsaref:Cleaning a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:Cleaning . - -oldsaref:Close a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:Close . - -oldsaref:Comfort a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:Comfort . - -oldsaref:Drying a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:Drying . - -oldsaref:EnergyEfficiency a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:EnergyEfficiency . - -oldsaref:Entertainment a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:Entertainment . - -oldsaref:GetCurrentMeterValue a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:GetCurrentMeterValue . - -oldsaref:GetMeterData a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:GetMeterData . - -oldsaref:GetMeterHistory a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:GetMeterHistory . - -oldsaref:GetSensingData a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:GetSensingData . - -oldsaref:Lighting a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:Lighting . - -oldsaref:MeterReading a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:MeterReading . - -oldsaref:Notify a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:Notify . - -oldsaref:Off a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:Off . - -oldsaref:On a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:On . - -oldsaref:Open a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:Open . - -oldsaref:Pause a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:Pause . - -oldsaref:Safety a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:Safety . - -oldsaref:SetAbsoluteLevel a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:SetAbsoluteLevel . - -oldsaref:SetRelativeLevel a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:SetRelativeLevel . - -oldsaref:Start a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:Start . - -oldsaref:StepDown a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:StepDown . - -oldsaref:StepUp a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:StepUp . - -oldsaref:Stop a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:Stop . - -oldsaref:Toggle a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:Toggle . - -oldsaref:Washing a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:Washing . - -oldsaref:WellBeing a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:WellBeing . - -oldsaref:watt_hour a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref/" ; - owl:sameAs saref:watt_hour . - diff --git a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/oldsaref.ttl b/src/main/resources/saref-portal-generator/public/saref/v2.1.1/oldsaref.ttl deleted file mode 100644 index d80fd82..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/oldsaref.ttl +++ /dev/null @@ -1,802 +0,0 @@ -@prefix om: . -@prefix owl: . -@prefix rdf: . -@prefix xml: . -@prefix xsd: . -@prefix foaf: . -@prefix rdfs: . -@prefix time: . -@prefix dcterms: . -@prefix vann: . - -@prefix oldsaref: . -@prefix saref: . -@base . - - rdf:type owl:Ontology ; - dcterms:title "SAREF ontology with former namespace"@en ; - dcterms:contributor ; - rdfs:comment "This ontology is SAREF v2.1.1 with the former namespace https://w3id.org/saref# . You should migrate to the official ETSI SAREF namespace https://saref.etsi.org/saref# . No backward compatibility with the former namespace will be ensured for future releases of SAREF." ; - owl:imports ; - dcterms:publisher . - -oldsaref:accomplishes a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:accomplishes . - -oldsaref:actsUpon a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:actsUpon . - -oldsaref:consistsOf a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:consistsOf . - -oldsaref:controlsProperty a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:controlsProperty . - -oldsaref:hasCommand a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasCommand . - -oldsaref:hasFunction a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasFunction . - -oldsaref:hasMeterReading a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasMeterReading . - -oldsaref:hasMeterReadingType a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasMeterReadingType . - -oldsaref:hasPrice a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasPrice . - -oldsaref:hasProfile a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasProfile . - -oldsaref:hasSensingRange a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasSensingRange . - -oldsaref:hasSensorType a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasSensorType . - -oldsaref:hasState a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasState . - -oldsaref:hasThresholdMeasurement a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasThresholdMeasurement . - -oldsaref:hasTime a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasTime . - -oldsaref:hasTypicalConsumption a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasTypicalConsumption . - -oldsaref:isAbout a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:isAbout . - -oldsaref:isAccomplishedBy a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:isAccomplishedBy . - -oldsaref:isCommandOf a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:isCommandOf . - -oldsaref:isControlledByDevice a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:isControlledByDevice . - -oldsaref:isMeasuredByDevice a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:isMeasuredByDevice . - -oldsaref:isMeasuredIn a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:isMeasuredIn . - -oldsaref:isOfferedBy a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:isOfferedBy . - -oldsaref:isUsedFor a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:isUsedFor . - -oldsaref:makesMeasurement a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:makesMeasurement . - -oldsaref:measuresProperty a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:measuresProperty . - -oldsaref:offers a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:offers . - -oldsaref:relatesToMeasurement a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:relatesToMeasurement . - -oldsaref:relatesToProperty a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:relatesToProperty . - -oldsaref:represents a owl:ObjectProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:represents . - -oldsaref:hasDescription a owl:DatatypeProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasDescription . - -oldsaref:hasManufacturer a owl:DatatypeProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasManufacturer . - -oldsaref:hasModel a owl:DatatypeProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasModel . - -oldsaref:hasName a owl:DatatypeProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasName . - -oldsaref:hasTimestamp a owl:DatatypeProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasTimestamp . - -oldsaref:hasValue a owl:DatatypeProperty ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentProperty saref:hasValue . - -oldsaref:ActuatingFunction a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:ActuatingFunction . - -oldsaref:Actuator a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Actuator . - -oldsaref:Appliance a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Appliance . - -oldsaref:BuildingRelated a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:BuildingRelated . - -oldsaref:CloseCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:CloseCommand . - -oldsaref:CloseState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:CloseState . - -oldsaref:Coal a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Coal . - -oldsaref:Command a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Command . - -oldsaref:Commodity a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Commodity . - -oldsaref:Currency a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Currency . - -oldsaref:Device a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Device . - -oldsaref:DoorSwitch a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:DoorSwitch . - -oldsaref:Electricity a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Electricity . - -oldsaref:Energy a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Energy . - -oldsaref:EnergyMeter a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:EnergyMeter . - -oldsaref:EnergyRelated a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:EnergyRelated . - -oldsaref:EnergyUnit a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:EnergyUnit . - -oldsaref:EventFunction a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:EventFunction . - -oldsaref:Function a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Function . - -oldsaref:FunctionRelated a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:FunctionRelated . - -oldsaref:Gas a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Gas . - -oldsaref:Generator a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Generator . - -oldsaref:GetCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:GetCommand . - -oldsaref:GetCurrentMeterValueCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:GetCurrentMeterValueCommand . - -oldsaref:GetMeterDataCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:GetMeterDataCommand . - -oldsaref:GetMeterHistoryCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:GetMeterHistoryCommand . - -oldsaref:GetSensingDataCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:GetSensingDataCommand . - -oldsaref:HVAC a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:HVAC . - -oldsaref:Humidity a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Humidity . - -oldsaref:IlluminanceUnit a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:IlluminanceUnit . - -oldsaref:LevelControlFunction a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:LevelControlFunction . - -oldsaref:Light a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Light . - -oldsaref:LightSwitch a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:LightSwitch . - -oldsaref:LightingDevice a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:LightingDevice . - -oldsaref:Load a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Load . - -oldsaref:Measurement a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Measurement . - -oldsaref:Meter a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Meter . - -oldsaref:MeteringFunction a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:MeteringFunction . - -oldsaref:MicroRenewable a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:MicroRenewable . - -oldsaref:Motion a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Motion . - -oldsaref:MultiLevelState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:MultiLevelState . - -oldsaref:Multimedia a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Multimedia . - -oldsaref:Network a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Network . - -oldsaref:NotifyCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:NotifyCommand . - -oldsaref:Occupancy a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Occupancy . - -oldsaref:OffCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:OffCommand . - -oldsaref:OffState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:OffState . - -oldsaref:OnCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:OnCommand . - -oldsaref:OnOffFunction a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:OnOffFunction . - -oldsaref:OnOffState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:OnOffState . - -oldsaref:OnState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:OnState . - -oldsaref:OpenCloseFunction a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:OpenCloseFunction . - -oldsaref:OpenCloseState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:OpenCloseState . - -oldsaref:OpenCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:OpenCommand . - -oldsaref:OpenState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:OpenState . - -oldsaref:PauseCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:PauseCommand . - -oldsaref:Power a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Power . - -oldsaref:PowerUnit a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:PowerUnit . - -oldsaref:Pressure a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Pressure . - -oldsaref:PressureUnit a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:PressureUnit . - -oldsaref:Price a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Price . - -oldsaref:Profile a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Profile . - -oldsaref:Property a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Property . - -oldsaref:SensingFunction a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:SensingFunction . - -oldsaref:Sensor a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Sensor . - -oldsaref:Service a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Service . - -oldsaref:SetAbsoluteLevelCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:SetAbsoluteLevelCommand . - -oldsaref:SetLevelCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:SetLevelCommand . - -oldsaref:SetRelativeLevelCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:SetRelativeLevelCommand . - -oldsaref:Smoke a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Smoke . - -oldsaref:SmokeSensor a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:SmokeSensor . - -oldsaref:StartCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:StartCommand . - -oldsaref:StartState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:StartState . - -oldsaref:StartStopFunction a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:StartStopFunction . - -oldsaref:StartStopState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:StartStopState . - -oldsaref:State a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:State . - -oldsaref:StepDownCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:StepDownCommand . - -oldsaref:StepUpCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:StepUpCommand . - -oldsaref:StopCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:StopCommand . - -oldsaref:StopState a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:StopState . - -oldsaref:Storage a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Storage . - -oldsaref:Switch a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Switch . - -oldsaref:SwitchOnService a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:SwitchOnService . - -oldsaref:Task a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Task . - -oldsaref:Temperature a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Temperature . - -oldsaref:TemperatureSensor a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:TemperatureSensor . - -oldsaref:TemperatureUnit a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:TemperatureUnit . - -oldsaref:Time a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Time . - -oldsaref:ToggleCommand a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:ToggleCommand . - -oldsaref:UnitOfMeasure a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:UnitOfMeasure . - -oldsaref:WashingMachine a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:WashingMachine . - -oldsaref:Water a owl:Class ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:equivalentClass saref:Water . - -oldsaref:Cleaning a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:Cleaning . - -oldsaref:Close a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:Close . - -oldsaref:Comfort a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:Comfort . - -oldsaref:Drying a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:Drying . - -oldsaref:EnergyEfficiency a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:EnergyEfficiency . - -oldsaref:Entertainment a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:Entertainment . - -oldsaref:GetCurrentMeterValue a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:GetCurrentMeterValue . - -oldsaref:GetMeterData a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:GetMeterData . - -oldsaref:GetMeterHistory a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:GetMeterHistory . - -oldsaref:GetSensingData a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:GetSensingData . - -oldsaref:Lighting a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:Lighting . - -oldsaref:MeterReading a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:MeterReading . - -oldsaref:Notify a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:Notify . - -oldsaref:Off a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:Off . - -oldsaref:On a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:On . - -oldsaref:Open a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:Open . - -oldsaref:Pause a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:Pause . - -oldsaref:Safety a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:Safety . - -oldsaref:SetAbsoluteLevel a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:SetAbsoluteLevel . - -oldsaref:SetRelativeLevel a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:SetRelativeLevel . - -oldsaref:Start a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:Start . - -oldsaref:StepDown a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:StepDown . - -oldsaref:StepUp a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:StepUp . - -oldsaref:Stop a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:Stop . - -oldsaref:Toggle a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:Toggle . - -oldsaref:Washing a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:Washing . - -oldsaref:WellBeing a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:WellBeing . - -oldsaref:watt_hour a owl:NamedIndividual ; - owl:deprecated true ; - rdfs:comment "Consider using the official ETSI SAREF namespace https://saref.etsi.org/saref\#" ; - owl:sameAs saref:watt_hour . - diff --git a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/saref.html b/src/main/resources/saref-portal-generator/public/saref/v2.1.1/saref.html deleted file mode 100644 index 0a96975..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/saref.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - SAREF: the Smart Applications REFerence ontology

    -

    Official ETSI documentation for SAREF v2.1.1
    This page will soon contain the documentation of the SAREF ontology v2.1.1

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    The documentation of SAREF v2.1.1 will be available here soon. The source of the ontology are available as Turtle or RDF/XML Visualize it with VOWL

    -
    -
    -
    -
    -

    The Smart Appliances REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing assets (standards/protocols/datamodels/etc.) in the smart appliances domain. The SAREF ontology provides building blocks that allow separation and recombination of different parts of the ontology depending on specific needs. The starting point of SAREF is the concept of device (e.g., a switch). Devices are tangible objects designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function. The SAREF ontology offers a lists of basic functions that can be eventually combined in order to have more complex functions in a single device. For example, a switch offers an actuating function of type 'switching on/off'. Each function has some associated commands, which can also be picked up as building blocks from a list. For example, the 'switching on/off' is associated with the commands 'switch on', 'switch off' and 'toggle'. Depending on the function(s) it accomplishes, a device can be found in some corresponding states that are also listed as building blocks. When connected to a network, a device offers a service, which is a representation of a function to a network that makes the function discoverable, registerable and remotely controllable by other devices in the network. A service can represent one or more functions. A service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A service must specify the device that is offering the service and the function(s) to be represented. A device in the SAREF ontology is also characterized by a profile that can be used to optimize some property, such as Energy, in a home or office that are part of a building.

    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/saref.n3 b/src/main/resources/saref-portal-generator/public/saref/v2.1.1/saref.n3 deleted file mode 100644 index ac28315..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/saref.n3 +++ /dev/null @@ -1,1231 +0,0 @@ -@prefix rdf: . -@prefix owl: . -@prefix xml: . -@prefix saref: . -@prefix xsd: . -@prefix dcterms: . -@prefix rdfs: . -@prefix time: . -@prefix vann: . -@prefix foaf: . -@prefix om: . - -saref:controlsProperty - a owl:ObjectProperty ; - rdfs:comment "A relationship specifying the Property that can be controlled by a certain Device"@en ; - rdfs:label "controls property"@en . - -saref:On a saref:OnState , saref:OnCommand , owl:NamedIndividual ; - rdfs:comment "The value ON. It is used to instantiate different classes such as the OnCommand class and OnState class. " ; - rdfs:label "On" . - -saref:hasTimestamp a owl:DatatypeProperty ; - rdfs:comment "A relationship stating the timestamp of an entity (e.g. a measurement)."@en ; - rdfs:label "has timestamp"@en . - -saref:HVAC a owl:Class ; - rdfs:comment "Heating, Ventilation and Air Conditioning (HVAC) device that provides indoor environmental comfort" ; - rdfs:label "HVAC" ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:Comfort ; - owl:onProperty saref:accomplishes - ] . - -saref:OnCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "On command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:OnOffState ; - owl:onProperty saref:actsUpon - ] . - -saref:GetSensingData a saref:GetSensingDataCommand , owl:NamedIndividual ; - rdfs:comment "The command GET SENSING DATA. It is used to instantiate the GetSensingDataCommand class. " ; - rdfs:label "Get sensing data" . - -om:lux a saref:IlluminanceUnit , owl:NamedIndividual ; - rdfs:comment "The lux is a unit of illuminance defined as lumen divided by square metre = candela times steradian divided by square metre."@en ; - rdfs:label "lux" . - -saref:StopCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Stop command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:StartStopState ; - owl:onProperty saref:actsUpon - ] . - -saref:GetSensingDataCommand - a owl:Class ; - rdfs:comment "A type of get command" ; - rdfs:label "Get sensing data command" ; - rdfs:subClassOf saref:GetCommand . - -saref:NotifyCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Notify command" ; - rdfs:subClassOf saref:Command . - -saref:GetCurrentMeterValue - a saref:GetCurrentMeterValueCommand , owl:NamedIndividual ; - rdfs:comment "The command GET CURRENT METER VALUE. It is used to instantiate the GetCurrentMeterValueCommand class. " ; - rdfs:label "Get current meter value" . - -saref:SetRelativeLevelCommand - a owl:Class ; - rdfs:comment "A type of set level command" ; - rdfs:label "Set relative level command" ; - rdfs:subClassOf saref:SetLevelCommand . - -saref:StartStopState a owl:Class ; - rdfs:comment "A type of state" ; - rdfs:label "Start stop state" ; - rdfs:subClassOf saref:State . - -saref:isUsedFor a owl:ObjectProperty ; - rdfs:comment "A relationship specifying the purpose for which a device is used for (e.g., controlling a Commodity)" ; - rdfs:label "is used for" . - -saref:isAbout a owl:ObjectProperty ; - rdfs:comment "A relationship identifying what an entity, such as a Profile, is about"@en ; - rdfs:label "isAbout"@en . - -saref:FunctionRelated - a owl:Class ; - rdfs:comment "A category that considers devices, sensors and their specification in terms of functions, states and services" ; - rdfs:label "Function related" ; - rdfs:subClassOf saref:Device . - -saref:Stop a saref:StopState , saref:StopCommand , owl:NamedIndividual ; - rdfs:comment "The value STOP. It is used to instantiate different classes such as the StopCommand class and StopState class. " ; - rdfs:label "Stop" . - -saref:SetRelativeLevel - a saref:SetRelativeLevelCommand , owl:NamedIndividual ; - rdfs:comment "The value SET RELATIVE LEVEL. It is used to instantiate classes such as the SetRelativeLevelCommand class. " ; - rdfs:label "Set relative level" . - -saref:LevelControlFunction - a owl:Class ; - rdfs:comment "An actuating function that allows to do level adjustments of an actuator in a certain range (e.g., 0%-100%), such as dimming a light or set the speed of an electric motor. " ; - rdfs:label "Level control function" ; - rdfs:subClassOf saref:ActuatingFunction ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( saref:SetAbsoluteLevelCommand saref:SetRelativeLevelCommand saref:StepDownCommand saref:StepUpCommand ) - ] ; - owl:onProperty saref:hasCommand - ] . - -saref:GetMeterData a saref:GetMeterDataCommand , owl:NamedIndividual ; - rdfs:comment "The command GET METER DATA. It is used to instantiate the GetMeterDataCommand class. " ; - rdfs:label "Get meter data" . - -saref:State a owl:Class ; - rdfs:comment "The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "State" . - -saref:Meter a owl:Class ; - rdfs:comment "A device built to accurately detect and display a quantity in a form readable by a human being. Further, a device of category saref:Meter that performs a saref:MeteringFunction." ; - rdfs:label "Meter" ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:MeteringFunction - ] . - -saref:GetCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Get command" ; - rdfs:subClassOf saref:Command . - -saref:PressureUnit a owl:Class ; - rdfs:comment "The unit of measure for pressure" ; - rdfs:label "Pressure unit" ; - rdfs:subClassOf saref:UnitOfMeasure . - -saref:GetCurrentMeterValueCommand - a owl:Class ; - rdfs:comment "A type of get command" ; - rdfs:label "Get current meter value command" ; - rdfs:subClassOf saref:GetCommand . - -saref:OnOffState a owl:Class ; - rdfs:comment "A type of state" ; - rdfs:label "On off state" ; - rdfs:subClassOf saref:State . - -saref:Power a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a power unit (such as watt or kilowatt). Further specializations of the saref:Power class can be found in the SAREF4ENER extension, where classes such as PowerMax, PowerMin and PowerExpected are defined." ; - rdfs:label "Power" ; - rdfs:subClassOf saref:Property . - -saref:hasModel a owl:DatatypeProperty ; - rdfs:comment "A relationship identifying the model of an entity (e.g., device)" ; - rdfs:label "has model" ; - rdfs:range xsd:string . - -saref:EnergyMeter a owl:Class ; - rdfs:comment "An energy meter is a device of category saref:Meter that consists of a meter, accomplishes the tasks saref:MeterReading and saref:EnergyEfficiency, performs the saref:MeteringFunction and is used for the purpose of measuring the saref:Energy property" ; - rdfs:label "Energy meter" ; - rdfs:subClassOf saref:Meter ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:MeterReading ; - owl:onProperty saref:accomplishes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:EnergyEfficiency ; - owl:onProperty saref:accomplishes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom saref:Energy - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Meter - ] . - -saref:Start a saref:StartState , saref:StartCommand , owl:NamedIndividual ; - rdfs:comment "The value START. It is used to instantiate different classes such as the StartCommand class and StartState class. " ; - rdfs:label "Start" . - -saref:Temperature a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin)" ; - rdfs:label "Temperature" ; - rdfs:subClassOf saref:Property . - -saref:OnOffFunction a owl:Class ; - rdfs:comment "An actuating function that allows to switch on and off an actuator" ; - rdfs:label "On off function" ; - rdfs:subClassOf saref:ActuatingFunction ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( saref:OffCommand saref:OnCommand saref:ToggleCommand ) - ] ; - owl:onProperty saref:hasCommand - ] . - -saref:relatesToProperty - a owl:ObjectProperty ; - rdfs:comment "A relationship between a measurement and the property it relates to" ; - rdfs:label "relates to property"@en . - -saref:MicroRenewable a owl:Class ; - rdfs:comment "A device that generates renewable energy from natural resources such as teh sun, wind and water" ; - rdfs:label "Micro renewable" ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:EnergyEfficiency ; - owl:onProperty saref:accomplishes - ] . - -om:kilowatt a saref:PowerUnit , owl:NamedIndividual ; - rdfs:label "kilowatt" . - -saref:isControlledByDevice - a owl:ObjectProperty ; - rdfs:comment "A relationship specifying the devices that can control a certain property"@en ; - rdfs:label "is controlled by device" . - -saref:UnitOfMeasure a owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM)." ; - rdfs:isDefinedBy ; - rdfs:label "Unit of measure" . - -saref:Pressure a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a pressure unit (bar or pascal)" ; - rdfs:label "Pressure" ; - rdfs:subClassOf saref:Property . - -saref:Price a owl:Class ; - rdfs:comment "A saref:Property crelated to some measurements that are characterized by a certain value that is measured using saref:Currency" ; - rdfs:label "Price" ; - rdfs:subClassOf saref:Property . - -saref:ActuatingFunction - a owl:Class ; - rdfs:comment "A function that allows to transmit data to actuators, such as level settings (e.g., temperature) or binary switching (e.g., open/close, on/off)" ; - rdfs:label "Actuating function" ; - rdfs:subClassOf saref:Function . - -saref:hasState a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the type of state of a device" ; - rdfs:label "has state" . - -saref:CloseState a owl:Class ; - rdfs:comment "The state of a device that is CLOSE" ; - rdfs:label "Close state" ; - rdfs:subClassOf saref:OpenCloseState . - -saref:OffState a owl:Class ; - rdfs:comment "The state of a device that is ON" ; - rdfs:label "Off state" ; - rdfs:subClassOf saref:OnOffState . - -saref:Close a saref:CloseState , saref:CloseCommand , owl:NamedIndividual ; - rdfs:comment "The value CLOSE. It is used to instantiate different classes such as the CloseCommand class and CloseState class, for example. " ; - rdfs:label "Close" . - -saref:WellBeing a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "WellBeing" . - -saref:MeterReading a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "Meter reading" . - -saref:hasName a owl:DatatypeProperty ; - rdfs:comment "A relationship providing the name of an entity (e.g., device)" ; - rdfs:label "has name" ; - rdfs:range xsd:string . - -saref:Occupancy a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value (saref:hasValue property) that is measured in a unit of measure for occupancy" ; - rdfs:label "Occupancy" ; - rdfs:subClassOf saref:Property . - -saref:OpenCloseState a owl:Class ; - rdfs:comment "A type of state" ; - rdfs:label "Open close state" ; - rdfs:subClassOf saref:State . - -saref:Service a owl:Class ; - rdfs:comment "A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service and the function(s) to be represented." ; - rdfs:label "Service" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Function ; - owl:onProperty saref:represents - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Device ; - owl:onProperty saref:isOfferedBy - ] . - -saref:isOfferedBy a owl:ObjectProperty ; - rdfs:comment "A relationship between a service and a device that offers the service" ; - rdfs:label "is offered by" ; - owl:inverseOf saref:offers . - -saref:hasMeterReading - a owl:ObjectProperty ; - rdfs:comment "A relationship between a metering function and the measurement of the reading" ; - rdfs:label "has meter reading" . - -saref:SetAbsoluteLevelCommand - a owl:Class ; - rdfs:comment "A type of set level command" ; - rdfs:label "Set absolute level command" ; - rdfs:subClassOf saref:SetLevelCommand . - -saref:OpenCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Open command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:OpenCloseState ; - owl:onProperty saref:actsUpon - ] . - -saref:watt_hour a saref:EnergyUnit , owl:NamedIndividual ; - rdfs:comment "The Watt Hor is a unit of energy equivalent to one watt (1 W) of power expended for one hour (1 h) of time. An energy expenditure of 1 Wh represents 3600 joules " ; - rdfs:label "watt hour" . - -saref:StepDownCommand - a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Step down command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:MultiLevelState ; - owl:onProperty saref:actsUpon - ] ; - owl:disjointWith saref:StepUpCommand . - -saref:OpenCloseFunction - a owl:Class ; - rdfs:comment "An actuating function that allows to open and close a device" ; - rdfs:label "Open close function" ; - rdfs:subClassOf saref:ActuatingFunction ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( saref:CloseCommand saref:OpenCommand ) - ] ; - owl:onProperty saref:hasCommand - ] . - -saref:Energy a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value measured in an energy unit (such as Kilowatt_Hour or Watt_hour). Furter specializations of the saref:Energy class can be found in the SAREF4ENER extension, where classes such as EnergyMax, EnergyMin and EnergyExpected are defined. " ; - rdfs:label "Energy" ; - rdfs:subClassOf saref:Property . - -saref:isMeasuredByDevice - a owl:ObjectProperty ; - rdfs:comment "A relationship specifying the devices that can measure a certain property"@en ; - rdfs:label "is measured by device" . - -saref:StepUpCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Step up command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:MultiLevelState ; - owl:onProperty saref:actsUpon - ] . - -saref:StopState a owl:Class ; - rdfs:comment "The state of a device that is STOPPED" ; - rdfs:label "Stop state" ; - rdfs:subClassOf saref:StartStopState . - -saref:hasTime a owl:ObjectProperty ; - rdfs:comment "A relationship to associate time information to an entity" ; - rdfs:label "has time" . - -saref:ToggleCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Toggle command" ; - rdfs:subClassOf saref:Command . - -saref:PowerUnit a owl:Class ; - rdfs:comment "The unit of measure for power" ; - rdfs:label "Power unit" ; - rdfs:subClassOf saref:UnitOfMeasure . - -om:bar a saref:PressureUnit , owl:NamedIndividual ; - rdfs:comment "The bar is a unit of pressure defined as 100 000 pascal."@en ; - rdfs:label "bar" . - -saref:Gas a owl:Class ; - rdfs:comment "A type of commodity" ; - rdfs:label "Gas" ; - rdfs:subClassOf saref:Commodity . - -saref:TemperatureUnit - a owl:Class ; - rdfs:comment "The unit of measure for temperature" ; - rdfs:label "Temperature unit" ; - rdfs:subClassOf saref:UnitOfMeasure . - -saref:hasMeterReadingType - a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the reading type of a measurement (e.g., Water, Gas, Pressure , Energy , Power, etc.)" ; - rdfs:label "has meter reading type" . - -saref:Property a owl:Class ; - rdfs:comment "Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "Property" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:relatesToMeasurement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Device ; - owl:onProperty saref:isMeasuredByDevice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Device ; - owl:onProperty saref:isControlledByDevice - ] . - -om:pound_sterling a saref:Currency , owl:NamedIndividual ; - rdfs:label "Great Britain pound sterling" . - -saref:Storage a owl:Class ; - rdfs:comment "A type of energy-related device that stores energy" ; - rdfs:label "Storage" ; - rdfs:subClassOf saref:EnergyRelated . - -saref:StartCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Start command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:StartStopState ; - owl:onProperty saref:actsUpon - ] ; - owl:disjointWith saref:StopCommand . - -saref:TemperatureSensor - a owl:Class ; - rdfs:comment "A device that consists of a sensor, has category saref:Sensor, performs the saref:SensingFunction and is used for the purpose of sensing a property of type saref:Temperature" ; - rdfs:label "Temperature sensor" ; - rdfs:subClassOf saref:Sensor ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:Comfort ; - owl:onProperty saref:accomplishes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom saref:Temperature - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:SensingFunction - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Sensor - ] . - -saref:StartState a owl:Class ; - rdfs:comment "The state of a device that is STARTED" ; - rdfs:label "Start state" ; - rdfs:subClassOf saref:StartStopState . - -saref:hasValue a owl:DatatypeProperty ; - rdfs:comment "A relationship defining the value of a certain property, e.g., energy or power" ; - rdfs:label "has value" . - -saref:Device a owl:Class ; - rdfs:comment "A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function. Devices can be structured in categories (subclasses) that reflect the different domain in which a device is used, e.g., smart appliances domain (subclass FunctionRelated) vs. building domain (subclass BuildingRelated) vs. smart grid domain (subclass EnergyRelated). New categories can be defined,if needed, to reflect other differences, for example different points of view, such as the point of view of the device's user vs. the point of view of the device's manufacturer. We propose a list of devices that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "Device" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Profile ; - owl:onProperty saref:hasProfile - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:State ; - owl:onProperty saref:hasState - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Service ; - owl:onProperty saref:offers - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:controlsProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:makesMeasurement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:measuresProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Task ; - owl:onProperty saref:accomplishes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Device ; - owl:onProperty saref:consistsOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Function ; - owl:onProperty saref:hasFunction - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Commodity ; - owl:onProperty saref:isUsedFor - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( saref:Energy saref:Power ) - ] ; - owl:onProperty saref:hasTypicalConsumption - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasModel - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasManufacturer - ] . - -saref:SwitchOnService - a owl:Class ; - rdfs:comment "A type of service that represents an on/off function to the network" ; - rdfs:label "Switch on service" ; - rdfs:subClassOf saref:Service ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:represents ; - owl:someValuesFrom saref:OnOffFunction - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:isOfferedBy ; - owl:someValuesFrom saref:LightSwitch - ] . - -saref:GetMeterDataCommand - a owl:Class ; - rdfs:comment "A type of get command" ; - rdfs:label "Get meter data command" ; - rdfs:subClassOf saref:GetCommand . - -saref:Washing a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "Washing" . - -saref:DoorSwitch a owl:Class ; - rdfs:comment "A device of category saref:Actuator that consists of a switch, accomplishes the task saref:Safety, performs the saref:OpenCloseFunction, is used for controlling a door, and can be found in the state saref:OpenCloseState." ; - rdfs:label "Door switch" ; - rdfs:subClassOf saref:Switch ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:Safety ; - owl:onProperty saref:accomplishes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasState ; - owl:someValuesFrom saref:OpenCloseState - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:OpenCloseFunction - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Switch - ] . - -saref:CloseCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Close command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:OpenCloseState ; - owl:onProperty saref:actsUpon - ] ; - owl:disjointWith saref:OpenCommand . - -saref:Cleaning a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "Cleaning" . - -om:kelvin a saref:TemperatureUnit , owl:NamedIndividual ; - rdfs:comment "The kelvin is a unit of temperature defined as 1/273.16 of the thermodynamic temperature of the triple point of water."@en ; - rdfs:label "kelvin" . - -saref:EnergyEfficiency - a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "EnergyEfficiency" . - -saref:Entertainment a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "Entertainment" . - -saref:hasSensorType a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the sensing type of a sensor detection (i.e., Temperature, Occupancy, Humidity, Motion , Smoke, Pressure, etc.) " ; - rdfs:label "has sensor type" . - -saref:hasProfile a owl:ObjectProperty ; - rdfs:comment "A relationship associating a profile to a certain entity (e.g., a device)" ; - rdfs:label "has profile" . - -saref:hasDescription a owl:DatatypeProperty ; - rdfs:comment "A relationship providing a description of an entity (e.g., device)" ; - rdfs:label "has description" ; - rdfs:range xsd:string . - -saref:hasManufacturer - a owl:DatatypeProperty ; - rdfs:comment "A relationship identifying the manufacturer of an entity (e.g., device)" ; - rdfs:label "has manufacturer" ; - rdfs:range xsd:string . - -time:TemporalUnit rdfs:comment "The unit of measure for time" ; - rdfs:subClassOf saref:UnitOfMeasure . - -saref:Load a owl:Class ; - rdfs:comment "A type of energy-related device that consumes energy" ; - rdfs:label "Load" ; - rdfs:subClassOf saref:EnergyRelated . - -saref:Open a saref:OpenState , saref:OpenCommand , owl:NamedIndividual ; - rdfs:comment "The value OPEN. It is used to instantiate different classes such as the OpenCommand class and OpenState class. " ; - rdfs:label "Open" . - -saref:Lighting a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "Lighting" . - -saref:IlluminanceUnit - a owl:Class ; - rdfs:comment "The unit of measure for light" ; - rdfs:label "Illuminance unit" ; - rdfs:subClassOf saref:UnitOfMeasure . - -saref:Smoke a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for smoke" ; - rdfs:label "Smoke" ; - rdfs:subClassOf saref:Property . - -om:euro a saref:Currency , owl:NamedIndividual ; - rdfs:label "euro"@en . - -saref:Drying a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "Drying" . - -saref:hasTypicalConsumption - a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the typical (energy or power) consumption of a device" ; - rdfs:label "has typical consumption" . - -saref:EnergyUnit a owl:Class ; - rdfs:comment "The unit of measure for energy" ; - rdfs:label "Energy unit" ; - rdfs:subClassOf saref:UnitOfMeasure . - -saref:Profile a owl:Class ; - rdfs:comment "A specification associated to a device to collect information about a certain Property (e.g., Energy) or Commodity (e.g.Water) for optimizing its usage in the home, office or building in which the device is located. This specification is about a certain Property or Commodity (saref:isAbout), can be calculated over a time span (saref:hasTime ) and can be associated to some costs (saref:hasPrice). An example is the Power Profile defined in the SAREF4ENER extension that can be associated to a device for optimizing the Energy efficiency in the home, office or building in which the device is located."@en ; - rdfs:label "Profile"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( saref:Commodity saref:Property ) - ] ; - owl:onProperty saref:isAbout - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Time ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Price ; - owl:onProperty saref:hasPrice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Profile ; - owl:onProperty saref:consistsOf - ] . - -saref:isMeasuredIn a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the unit of measure used for a certain entity." ; - rdfs:label "is measured in" . - -saref:SmokeSensor a owl:Class ; - rdfs:comment "A device that consists of a sensor, has category saref:Sensor, performs the saref:SensingFunction and saref:EventFunction (which notifies that a certain threshold has been exceeded), and is used for the purpose of sensing a property of type saref:Smoke." ; - rdfs:label "Smoke sensor" ; - rdfs:subClassOf saref:Sensor ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:Safety ; - owl:onProperty saref:accomplishes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom saref:Smoke - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:SensingFunction - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:EventFunction - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Sensor - ] . - -saref:Toggle a saref:ToggleCommand , owl:NamedIndividual ; - rdfs:comment "The value TOGGLE. It is used to instantiate the the ToggleCommand class" ; - rdfs:label "Toggle" . - -saref:Water a owl:Class ; - rdfs:comment "A type of commodity" ; - rdfs:label "Water" ; - rdfs:subClassOf saref:Commodity . - -saref:relatesToMeasurement - a owl:ObjectProperty ; - rdfs:comment "A relationship between a property and the measurements it relates to" ; - rdfs:label "relates to measurement"@en . - -om:kilowatt_hour a saref:EnergyUnit , owl:NamedIndividual ; - rdfs:comment "The kilowatt hour is a unit of energy equal to 1,000 watt-hours, or 3.6 megajoules." ; - rdfs:label "kilowatt hour" . - -saref:Off a saref:OffState , saref:OffCommand , owl:NamedIndividual ; - rdfs:comment "The value OFF. It is used to instantiate different classes such as the OffCommand class and OffState class. " ; - rdfs:label "Off " . - -saref:WashingMachine a owl:Class ; - rdfs:comment "A device of category saref:Appliance and saref:Load that accomplishes the task saref:Washing, performs an actuating function of type saref:StartStopFunction, can be found in the state saref:StartStopState, and can have a saref:Profile that characterizes its energy consumption. " ; - rdfs:label "Washing machine" ; - rdfs:subClassOf saref:Load , saref:Appliance ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:Washing ; - owl:onProperty saref:accomplishes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasState ; - owl:someValuesFrom saref:StartStopState - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasProfile ; - owl:someValuesFrom saref:Profile - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:StartStopFunction - ] . - -saref:Network a owl:Class ; - rdfs:comment "A device used to connect other devices in a network, such as hub, switch or router in a Local Area Network (LAN). " ; - rdfs:label "Network" ; - rdfs:subClassOf saref:FunctionRelated . - -saref:Task a owl:Class ; - rdfs:comment "The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "Task" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Device ; - owl:onProperty saref:isAccomplishedBy - ] . - -saref:isAccomplishedBy - a owl:ObjectProperty ; - rdfs:comment "A relationship indentifying the task accomplished by a certain entity (e.g., a device)" ; - rdfs:label "is accomplished by" . - -saref:represents a owl:ObjectProperty ; - rdfs:comment "A relationship between a service and a function." ; - rdfs:label "represents" . - -om:degree_Celsius a saref:TemperatureUnit , owl:NamedIndividual ; - rdfs:comment "The degree Celsius is a unit of temperature defined as 1 kelvin."@en ; - rdfs:label "degree Celsius" . - -saref:OpenState a owl:Class ; - rdfs:comment "The state of a device that is OPEN " ; - rdfs:label "Open state" ; - rdfs:subClassOf saref:OpenCloseState . - -saref:OnState a owl:Class ; - rdfs:comment "The state of a device that is OFF " ; - rdfs:label "On state" ; - rdfs:subClassOf saref:OnOffState . - -saref:Humidity a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit" ; - rdfs:label "Humidity" ; - rdfs:subClassOf saref:Property . - -saref:Sensor a owl:Class ; - rdfs:comment "A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. Further, a device of category saref:Sensor that performs a saref:SensingFunction." ; - rdfs:label "Sensor" ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:SensingFunction - ] . - -saref:OffCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Off command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:OnOffState ; - owl:onProperty saref:actsUpon - ] ; - owl:disjointWith saref:OnCommand . - -saref:Electricity a owl:Class ; - rdfs:comment "A type of commodity" ; - rdfs:label "Electricity" ; - rdfs:subClassOf saref:Commodity . - -saref:Generator a owl:Class ; - rdfs:comment "A type of energy-related device that generates energy" ; - rdfs:label "Generator" ; - rdfs:subClassOf saref:EnergyRelated . - -om:United_States_dollar - a saref:Currency , owl:NamedIndividual ; - rdfs:label "United States dollar"@en . - -saref:Currency a owl:Class ; - rdfs:comment "The unit of measure for price" ; - rdfs:label "Currency" ; - rdfs:subClassOf saref:UnitOfMeasure . - -saref:Time a owl:Class ; - rdfs:comment "A saref:Property that allows to specify the time concept in terms of instants or intervals according to the imported W3C Time ontology." ; - rdfs:label "Time" ; - rdfs:subClassOf saref:Property ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom time:TemporalEntity - ] . - -saref:hasThresholdMeasurement - a owl:ObjectProperty ; - rdfs:comment "A relationship associated with an event function to notify that a certain threshold measurement has been exceeded" ; - rdfs:label "has threshold measurement" . - -saref:GetMeterHistoryCommand - a owl:Class ; - rdfs:comment "A type of get command" ; - rdfs:label "Get meter history command" ; - rdfs:subClassOf saref:GetCommand . - -saref:Coal a owl:Class ; - rdfs:comment "A type of commodity" ; - rdfs:label "Coal" ; - rdfs:subClassOf saref:Commodity . - -saref:BuildingRelated - a owl:Class ; - rdfs:comment "A category that includes devices as described by building related data models, such as IFC and FIEMSER " ; - rdfs:label "Building related" ; - rdfs:subClassOf saref:Device . - -saref:hasCommand a owl:ObjectProperty ; - rdfs:comment "A relationship between an entity (such as a function) and a command" ; - rdfs:label "has command" ; - owl:inverseOf saref:isCommandOf . - -saref:SetAbsoluteLevel - a saref:SetAbsoluteLevelCommand , owl:NamedIndividual ; - rdfs:comment "The value SET ABSOLUTE LEVEL. It is used to instantiate classes such as the SetAbsoluteLevelCommand class. " ; - rdfs:label "Set absolute level" . - -saref:Safety a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "Safety" . - -om:degree_Fahrenheit a saref:TemperatureUnit , owl:NamedIndividual ; - rdfs:comment "The degree Fahrenheit is a unit of temperature defined as 5.555556e-1 kelvin."@en ; - rdfs:label "degree Fahrenheit" . - -saref:PauseCommand a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Pause command" ; - rdfs:subClassOf saref:Command . - -saref:SetLevelCommand - a owl:Class ; - rdfs:comment "A type of command" ; - rdfs:label "Set level command" ; - rdfs:subClassOf saref:Command ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:MultiLevelState ; - owl:onProperty saref:actsUpon - ] . - -saref:MultiLevelState - a owl:Class ; - rdfs:comment "A type of state" ; - rdfs:label "Multi level state" ; - rdfs:subClassOf saref:State . - -saref:Function a owl:Class ; - rdfs:comment "The functionality necessary to accomplish the task for which a Device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. " ; - rdfs:label "Function" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Command ; - owl:onProperty saref:hasCommand - ] . - -saref:Command a owl:Class ; - rdfs:comment "A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "Command" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Function ; - owl:onProperty saref:isCommandOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:State ; - owl:onProperty saref:actsUpon - ] . - -saref:LightSwitch a owl:Class ; - rdfs:comment "A device of category saref:Actuator that consists of a switch, accomplishes the task saref:Lighting, performs the saref:OnOffFunction, measures the property saref:Light, and can be found in the state saref:OnOffState. It can offer a switch on service." ; - rdfs:label "Light switch" ; - rdfs:subClassOf saref:Switch ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:Lighting ; - owl:onProperty saref:accomplishes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:offers ; - owl:someValuesFrom saref:SwitchOnService - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Switch - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasState ; - owl:someValuesFrom saref:OnOffState - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom saref:Light - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:OnOffFunction - ] . - -saref:GetMeterHistory - a saref:GetMeterHistoryCommand , owl:NamedIndividual ; - rdfs:comment "The command GET METER HISTORY. It is used to instantiate the GetMeterHistoryCommand class. " ; - rdfs:label "Get meter history" . - -saref:isCommandOf a owl:ObjectProperty ; - rdfs:comment "A relationship between a command and a function." ; - rdfs:label "is command of" . - -saref: a owl:Ontology ; - rdfs:comment "Information about changes compared to version 1.1.1: (1)The classes and properties related to how to represent devices in building spaces (such as the saref:BuildingSpace class, saref:BuildingObject class and saref:isLocatedIn property) have been removed from SAREF and incorporated into the SAREF4BLDG extension related to buildings (https://w3id.org/def/saref4bldg), including the reuse of the W3C® WGS84 geo positioning vocabulary; (2)The saref:DeviceCategory and saref:FunctionCategory classes have been removed. Instead, the hierarchy of device categories has been implemented directly as subclasses of the saref:Device class; (3)The information specific for energy efficiency has been moved to the SAREF4ENER extension (https://w3id.org/saref4ener). For example, the saref:Profile class has been redefined to accommodate only the properties that are general enough for any type of profile, not only for energy and power. Details on how to specifically model a power profile can be found in the SAREF4ENER extension (https://w3id.org/saref4ener); (4) The subclasses of the saref:Energy class have been removed (i.e., Average Energy, Maximum Energy, Minimum Energy, Total Energy, HVAC Energy, Hot Water Energy and Lighting Energy); (5)The saref:Property class has been split into two classes (saref:Property and saref:Measurement), as it is done in the SAREF4ENVI extension (https://w3id.org/def/saref4envi), in order to properly accommodate the distinction between the concept of property (an observable quality of something) and the concept of measurement (a concrete value observed for a property); (6)Too restrictive cardinality restrictions have been revised, sometimes making them optional rather than mandatory (better to make properties mandatory in the extensions that specialize SAREF for a specific purpose, rather than restricting SAREF, whose purpose is more general). For example, definitions of units of measurement using an enumeration (owl:oneOf) were too restrictive because they did not allow using other units than those enumerated. Therefore, the individuals of each class are still there, but the owl:oneOf enumeration has been removed; (7)The saref:UnitOfMeasure subclassesre use individuals from the OM ontology for unit of measures (http://www.wurvoc.org/vocabularies/om-1.6/), but this is not the only solution. It has been clarified in the comments that the OM ontology is an example, but other ontologies can be used; (8)The global restrictions (rdfs:domain and rdfs:range) in object properties have been completely removed not to hinder interoperability. Object properties are now only restricted locally in the classes; (9)The subclasses of saref:Task have been transormed in individuals; (10)The saref:hasTask property has been removed from the saref:Profile class to resolve an ambiguity with the saref:Task class." , "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:contributor , , , ; - dcterms:created "2015-02-10"^^xsd:date ; - dcterms:description "The Smart Appliances REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing assets (standards/protocols/datamodels/etc.) in the smart appliances domain. The SAREF ontology provides building blocks that allow separation and recombination of different parts of the ontology depending on specific needs. The starting point of SAREF is the concept of device (e.g., a switch). Devices are tangible objects designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function. The SAREF ontology offers a lists of basic functions that can be eventually combined in order to have more complex functions in a single device. For example, a switch offers an actuating function of type 'switching on/off'. Each function has some associated commands, which can also be picked up as building blocks from a list. For example, the 'switching on/off' is associated with the commands 'switch on', 'switch off' and 'toggle'. Depending on the function(s) it accomplishes, a device can be found in some corresponding states that are also listed as building blocks. When connected to a network, a device offers a service, which is a representation of a function to a network that makes the function discoverable, registerable and remotely controllable by other devices in the network. A service can represent one or more functions. A service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A service must specify the device that is offering the service and the function(s) to be represented. A device in the SAREF ontology is also characterized by a profile that can be used to optimize some property, such as Energy, in a home or office that are part of a building." ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:modified "2018-05-02"^^xsd:date ; - dcterms:publisher ; - dcterms:source , ; - dcterms:title "SAREF: the Smart Applications REFerence ontology" ; - vann:preferredNamespacePrefix "saref" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref#" ; - owl:versionIRI ; - owl:versionInfo "2.1.1" . - -om:pascal a saref:PressureUnit , owl:NamedIndividual ; - rdfs:comment "The pascal is a unit of pressure and stress defined as newton divided by square metre = joule divided by cubic metre = kilogram divided by metre second squared."@en ; - rdfs:label "pascal" . - -saref:hasFunction a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the type of function of a device" ; - rdfs:label "has function" . - -saref:Notify a saref:NotifyCommand , owl:NamedIndividual ; - rdfs:comment "The value NOTIFY. It is used to instantiate the NotifyCommand." ; - rdfs:label "Notify" . - -saref:Comfort a saref:Task , owl:NamedIndividual ; - rdfs:comment "A type of task for which a device is designed" ; - rdfs:label "Comfort" . - -saref:makesMeasurement - a owl:ObjectProperty ; - rdfs:comment "A relation between a device and the measurements it makes. Such measurement will link together the value of the measurement, its unit of measure and the property to which it relates."@en ; - rdfs:label "makes measurement"@en . - -saref:actsUpon a owl:ObjectProperty ; - rdfs:comment "A relationship between a command and a state" ; - rdfs:label "acts upon" . - -saref:offers a owl:ObjectProperty ; - rdfs:comment "A relationship between a device and a service" ; - rdfs:label "offers" . - -saref:Commodity a owl:Class ; - rdfs:comment "A marketable item for which there is demand, but which is supplied without qualitative differentiation across a market. SAREF refers to energy commodities such as electricity, gas, coal and oil. " ; - rdfs:label "Commodity" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn - ] . - -saref:consistsOf a owl:ObjectProperty ; - rdfs:comment "A relationship indicating a composite entity that consists of other entities (e.g., a temperature/humidity sensor that consists of a temperature sensor and a humidity sensor)" ; - rdfs:label "consists of" . - -saref:accomplishes a owl:ObjectProperty ; - rdfs:comment "A relationship between a certain entity (e.g., a device) and the task it accomplishes" ; - rdfs:label "accomplishes" ; - owl:inverseOf saref:isAccomplishedBy . - -saref:Pause a saref:PauseCommand , owl:NamedIndividual ; - rdfs:comment "The value PAUSE. It is used to instantiate classes such as the PauseCommand class." ; - rdfs:label "Pause" . - -saref:Switch a owl:Class ; - rdfs:comment "A device of category saref:Actuator that performs an actuating function of type saref:OnOffFunction or saref:OpenCloseFunction" ; - rdfs:label "Switch" ; - rdfs:subClassOf saref:Actuator . - -om:watt a saref:PowerUnit , owl:NamedIndividual ; - rdfs:comment "The watt is a unit of power defined as joule divided by second = newton times metre divided by second = volt times ampere = kilogram times square metre divided by second to the power 3."@en ; - rdfs:label "watt" . - -saref:Motion a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for motion" ; - rdfs:label "Motion" ; - rdfs:subClassOf saref:Property . - -saref:Measurement a owl:Class ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Measurement"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onDataRange xsd:float ; - owl:onProperty saref:hasValue ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:Property ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:relatesToProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn - ] . - -saref:EventFunction a owl:Class ; - rdfs:comment "A function that allows to notify another device that a certain threshold value has been exceeded." ; - rdfs:label "Event function" ; - rdfs:subClassOf saref:Function ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Measurement ; - owl:onProperty saref:hasThresholdMeasurement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:NotifyCommand ; - owl:onProperty saref:hasCommand - ] . - -saref:StepDown a saref:StepDownCommand , owl:NamedIndividual ; - rdfs:comment "The value STEP DOWN. It is used to instantiate the StepDownCommand class. " ; - rdfs:label "Step down" . - -saref:Actuator a owl:Class ; - rdfs:comment "A device responsible for moving or controlling a mechanism or system by performing an actuating function" ; - rdfs:label "Actuator" ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:ActuatingFunction - ] . - -saref:SensingFunction - a owl:Class ; - rdfs:comment "A function that allows to transmit data from sensors, such as measurement values (e.g., temperature) or sensing data (e.g., occupancy)" ; - rdfs:label "Sensing function" ; - rdfs:subClassOf saref:Function ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:hasSensorType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:GetSensingDataCommand ; - owl:onProperty saref:hasCommand - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasSensingRange ; - owl:someValuesFrom saref:Measurement - ] . - -saref:Multimedia a owl:Class ; - rdfs:comment "A device designed to display, store, record or play multimedia content such as audio, images, animation, video " ; - rdfs:label "Multimedia" ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:Entertainment ; - owl:onProperty saref:accomplishes - ] . - -saref:measuresProperty - a owl:ObjectProperty ; - rdfs:comment "A relationship specifying the Property that can be measured by a certain Device"@en ; - rdfs:label "measures property"@en . - -saref:StepUp a saref:StepUpCommand , owl:NamedIndividual ; - rdfs:comment "The value STEP UP. It is used to instantiate the StepUpCommand class. " ; - rdfs:label "Step up" . - -saref:Appliance a owl:Class ; - rdfs:comment "An electrical/mechanical machine that accomplish some household functions, such as cleaning or cooking" ; - rdfs:label "Appliance" ; - rdfs:subClassOf saref:FunctionRelated . - -saref:LightingDevice a owl:Class ; - rdfs:comment "A device used for illumination, irradiation, signaling, or projection" ; - rdfs:label "Lighting device" ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue saref:Comfort ; - owl:onProperty saref:accomplishes - ] . - -saref:hasSensingRange - a owl:ObjectProperty ; - rdfs:comment "A relationship between a sensing function and a measurement identifying the range of a sensor detection" ; - rdfs:label "has sensing range " . - -saref:Light a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a illuminance unit (lux)" ; - rdfs:label "Light" ; - rdfs:subClassOf saref:Property . - -saref:StartStopFunction - a owl:Class ; - rdfs:comment "An actuating function that allows to start and stop a device" ; - rdfs:label "Start stop function" ; - rdfs:subClassOf saref:ActuatingFunction ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( saref:StartCommand saref:StopCommand ) - ] ; - owl:onProperty saref:hasCommand - ] . - -saref:MeteringFunction - a owl:Class ; - rdfs:comment "A function that allows to get data from a meter, such as current meter reading or instantaneous demand" ; - rdfs:label "Metering function" ; - rdfs:subClassOf saref:Function ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( saref:Commodity saref:Property ) - ] ; - owl:onProperty saref:hasMeterReadingType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:hasMeterReading - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( saref:GetCurrentMeterValueCommand saref:GetMeterDataCommand saref:GetMeterHistoryCommand ) - ] ; - owl:onProperty saref:hasCommand - ] . - -saref:EnergyRelated a owl:Class ; - rdfs:comment "A category that considers devices based on energy consumption information and profiles to optimize energy efficiency." ; - rdfs:label "Energy related" ; - rdfs:subClassOf saref:Device . - -saref:hasPrice a owl:ObjectProperty ; - rdfs:comment "A relationships indentifying the price associated to an entity" ; - rdfs:label "has price" . diff --git a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/saref.rdf b/src/main/resources/saref-portal-generator/public/saref/v2.1.1/saref.rdf deleted file mode 100644 index bc9cb2a..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/saref.rdf +++ /dev/null @@ -1,1857 +0,0 @@ - - - - saref - - Information about changes compared to version 1.1.1: (1)The classes and properties related to how to represent devices in building spaces (such as the saref:BuildingSpace class, saref:BuildingObject class and saref:isLocatedIn property) have been removed from SAREF and incorporated into the SAREF4BLDG extension related to buildings (https://w3id.org/def/saref4bldg), including the reuse of the W3C® WGS84 geo positioning vocabulary; (2)The saref:DeviceCategory and saref:FunctionCategory classes have been removed. Instead, the hierarchy of device categories has been implemented directly as subclasses of the saref:Device class; (3)The information specific for energy efficiency has been moved to the SAREF4ENER extension (https://w3id.org/saref4ener). For example, the saref:Profile class has been redefined to accommodate only the properties that are general enough for any type of profile, not only for energy and power. Details on how to specifically model a power profile can be found in the SAREF4ENER extension (https://w3id.org/saref4ener); (4) The subclasses of the saref:Energy class have been removed (i.e., Average Energy, Maximum Energy, Minimum Energy, Total Energy, HVAC Energy, Hot Water Energy and Lighting Energy); (5)The saref:Property class has been split into two classes (saref:Property and saref:Measurement), as it is done in the SAREF4ENVI extension (https://w3id.org/def/saref4envi), in order to properly accommodate the distinction between the concept of property (an observable quality of something) and the concept of measurement (a concrete value observed for a property); (6)Too restrictive cardinality restrictions have been revised, sometimes making them optional rather than mandatory (better to make properties mandatory in the extensions that specialize SAREF for a specific purpose, rather than restricting SAREF, whose purpose is more general). For example, definitions of units of measurement using an enumeration (owl:oneOf) were too restrictive because they did not allow using other units than those enumerated. Therefore, the individuals of each class are still there, but the owl:oneOf enumeration has been removed; (7)The saref:UnitOfMeasure subclassesre use individuals from the OM ontology for unit of measures (http://www.wurvoc.org/vocabularies/om-1.6/), but this is not the only solution. It has been clarified in the comments that the OM ontology is an example, but other ontologies can be used; (8)The global restrictions (rdfs:domain and rdfs:range) in object properties have been completely removed not to hinder interoperability. Object properties are now only restricted locally in the classes; (9)The subclasses of saref:Task have been transormed in individuals; (10)The saref:hasTask property has been removed from the saref:Profile class to resolve an ambiguity with the saref:Task class. - 2.1.1 - https://saref.etsi.org/saref# - - The Smart Appliances REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing assets (standards/protocols/datamodels/etc.) in the smart appliances domain. The SAREF ontology provides building blocks that allow separation and recombination of different parts of the ontology depending on specific needs. The starting point of SAREF is the concept of device (e.g., a switch). Devices are tangible objects designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function. The SAREF ontology offers a lists of basic functions that can be eventually combined in order to have more complex functions in a single device. For example, a switch offers an actuating function of type 'switching on/off'. Each function has some associated commands, which can also be picked up as building blocks from a list. For example, the 'switching on/off' is associated with the commands 'switch on', 'switch off' and 'toggle'. Depending on the function(s) it accomplishes, a device can be found in some corresponding states that are also listed as building blocks. When connected to a network, a device offers a service, which is a representation of a function to a network that makes the function discoverable, registerable and remotely controllable by other devices in the network. A service can represent one or more functions. A service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A service must specify the device that is offering the service and the function(s) to be represented. A device in the SAREF ontology is also characterized by a profile that can be used to optimize some property, such as Energy, in a home or office that are part of a building. - 2015-02-10 - This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge. - - SAREF: the Smart Applications REFerence ontology - 2018-05-02 - - - 2019-06-11 - - - - - - On command - A type of command - - - - - - - - - - - - - - - - Coal - A type of commodity - - - - - - On off state - A type of state - - - - - - Get sensing data command - A type of get command - - - - - - Start command - A type of command - - - - - - - - - - - - - - - - - - - Get meter data command - A type of get command - - - - - - Electricity - A type of commodity - - - - - - Light - A saref:Property related to some measurements that are characterized by a certain value that is measured in a illuminance unit (lux) - - - - - - Energy unit - The unit of measure for energy - - - - - - Metering function - A function that allows to get data from a meter, such as current meter reading or instantaneous demand - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Start state - The state of a device that is STARTED - - - - - - Energy related - A category that considers devices based on energy consumption information and profiles to optimize energy efficiency. - - - - - - Toggle command - A type of command - - - - - - Appliance - An electrical/mechanical machine that accomplish some household functions, such as cleaning or cooking - - - - - - Profile - A specification associated to a device to collect information about a certain Property (e.g., Energy) or Commodity (e.g.Water) for optimizing its usage in the home, office or building in which the device is located. This specification is about a certain Property or Commodity (saref:isAbout), can be calculated over a time span (saref:hasTime ) and can be associated to some costs (saref:hasPrice). An example is the Power Profile defined in the SAREF4ENER extension that can be associated to a device for optimizing the Energy efficiency in the home, office or building in which the device is located. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Start stop function - An actuating function that allows to start and stop a device - - - - - - - - - - - - - - - - - - - - - Close command - A type of command - - - - - - - - - - - - - - - - - - - Task - The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended. - - - - - - 1 - - - - - - - - Measurement - Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. - - - - 1 - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - Gas - A type of commodity - - - - - - Switch - A device of category saref:Actuator that performs an actuating function of type saref:OnOffFunction or saref:OpenCloseFunction - - - - - - Energy meter - An energy meter is a device of category saref:Meter that consists of a meter, accomplishes the tasks saref:MeterReading and saref:EnergyEfficiency, performs the saref:MeteringFunction and is used for the purpose of measuring the saref:Energy property - - - - - Meter reading - A type of task for which a device is designed - - - - - - - - - - - - - EnergyEfficiency - A type of task for which a device is designed - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Commodity - A marketable item for which there is demand, but which is supplied without qualitative differentiation across a market. SAREF refers to energy commodities such as electricity, gas, coal and oil. - - - - - - - - - - - - - Generator - A type of energy-related device that generates energy - - - - Energy - A saref:Property related to some measurements that are characterized by a certain value measured in an energy unit (such as Kilowatt_Hour or Watt_hour). Furter specializations of the saref:Energy class can be found in the SAREF4ENER extension, where classes such as EnergyMax, EnergyMin and EnergyExpected are defined. - - - - - - Time - A saref:Property that allows to specify the time concept in terms of instants or intervals according to the imported W3C Time ontology. - - - - - - - - - - - - - - On off function - An actuating function that allows to switch on and off an actuator - - - - - - - - - - - - - - - - - - - - - - Switch on service - A type of service that represents an on/off function to the network - - - - - - - - - - - - - - - - - - - - - - - - Network - A device used to connect other devices in a network, such as hub, switch or router in a Local Area Network (LAN). - - - - - - Unit of measure - - The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called "watt". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM). - - - Humidity - A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit - - - - - - Power unit - The unit of measure for power - - - - Smoke sensor - A device that consists of a sensor, has category saref:Sensor, performs the saref:SensingFunction and saref:EventFunction (which notifies that a certain threshold has been exceeded), and is used for the purpose of sensing a property of type saref:Smoke. - - - - - Safety - A type of task for which a device is designed - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Occupancy - A saref:Property related to some measurements that are characterized by a certain value (saref:hasValue property) that is measured in a unit of measure for occupancy - - - - - - Pressure - A saref:Property related to some measurements that are characterized by a certain value that is measured in a pressure unit (bar or pascal) - - - - - - Off state - The state of a device that is ON - - - - Actuator - A device responsible for moving or controlling a mechanism or system by performing an actuating function - - - - - - - - - - - - - - - - Open state - The state of a device that is OPEN - - - - - - Actuating function - A function that allows to transmit data to actuators, such as level settings (e.g., temperature) or binary switching (e.g., open/close, on/off) - - - - - - Micro renewable - A device that generates renewable energy from natural resources such as teh sun, wind and water - - - - - - - - - - - - - - Property - Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Open close state - A type of state - - - - - - Washing machine - A device of category saref:Appliance and saref:Load that accomplishes the task saref:Washing, performs an actuating function of type saref:StartStopFunction, can be found in the state saref:StartStopState, and can have a saref:Profile that characterizes its energy consumption. - - - - - Washing - A type of task for which a device is designed - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Step up command - A type of command - - - - - - - - - - - - - - - - Set relative level command - A type of set level command - - - - - - Set level command - A type of command - - - - - - - - - - - - - - - - Function - The functionality necessary to accomplish the task for which a Device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. - - - - - - 1 - - - - - - - - Temperature unit - The unit of measure for temperature - - - - Currency - The unit of measure for price - - - - HVAC - Heating, Ventilation and Air Conditioning (HVAC) device that provides indoor environmental comfort - - - - - Comfort - A type of task for which a device is designed - - - - - - - - - - - - - - Off command - A type of command - - - - - - - - - - - - - - - Motion - A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for motion - - - - Pressure unit - The unit of measure for pressure - - - - - - - - Lighting - A type of task for which a device is designed - - - - - - - - - - - - - - - - - - - - - - - - - - Light switch - A device of category saref:Actuator that consists of a switch, accomplishes the task saref:Lighting, performs the saref:OnOffFunction, measures the property saref:Light, and can be found in the state saref:OnOffState. It can offer a switch on service. - - - - - - - - - - - - - - - - - - - - - - - - - - - Stop state - The state of a device that is STOPPED - - - - - - Water - A type of commodity - - - - Power - A saref:Property related to some measurements that are characterized by a certain value that is measured in a power unit (such as watt or kilowatt). Further specializations of the saref:Power class can be found in the SAREF4ENER extension, where classes such as PowerMax, PowerMin and PowerExpected are defined. - - - - Illuminance unit - The unit of measure for light - - - - Price - A saref:Property crelated to some measurements that are characterized by a certain value that is measured using saref:Currency - - - - Multimedia - A device designed to display, store, record or play multimedia content such as audio, images, animation, video - - - - - Entertainment - A type of task for which a device is designed - - - - - - - - - - - - - - Open close function - An actuating function that allows to open and close a device - - - - - - - - - - - - - - - - - - - Get meter history command - A type of get command - - - - - - Stop command - A type of command - - - - - - - - - - - - - - - - Door switch - A device of category saref:Actuator that consists of a switch, accomplishes the task saref:Safety, performs the saref:OpenCloseFunction, is used for controlling a door, and can be found in the state saref:OpenCloseState. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Function related - A category that considers devices, sensors and their specification in terms of functions, states and services - - - - - - Start stop state - A type of state - - - - - - Event function - A function that allows to notify another device that a certain threshold value has been exceeded. - - - - 1 - - - - - - - - - - - - - - - - - - - Sensor - A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. Further, a device of category saref:Sensor that performs a saref:SensingFunction. - - - - - - - - - - - - - - Step down command - A type of command - - - - - - - - - - - - - - - - - Set absolute level command - A type of set level command - - - - Open command - A type of command - - - - - - - - - - - - - - Meter - A device built to accurately detect and display a quantity in a form readable by a human being. Further, a device of category saref:Meter that performs a saref:MeteringFunction. - - - - - - - - - - - - Storage - A type of energy-related device that stores energy - - - - Lighting device - A device used for illumination, irradiation, signaling, or projection - - - - - - - - - - - - Get command - A type of command - - - - - - On state - The state of a device that is OFF - - - - Temperature sensor - A device that consists of a sensor, has category saref:Sensor, performs the saref:SensingFunction and is used for the purpose of sensing a property of type saref:Temperature - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Load - A type of energy-related device that consumes energy - - - - Temperature - A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin) - - - - Service - A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service and the function(s) to be represented. - - - - 1 - - - - - - - - - - - 1 - - - - - - - - State - The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended. - - - Sensing function - A function that allows to transmit data from sensors, such as measurement values (e.g., temperature) or sensing data (e.g., occupancy) - - - - - - - - - - - - - - - - - - - - - - - - - - - - Notify command - A type of command - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - 1 - - - - - - Device - A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function. Devices can be structured in categories (subclasses) that reflect the different domain in which a device is used, e.g., smart appliances domain (subclass FunctionRelated) vs. building domain (subclass BuildingRelated) vs. smart grid domain (subclass EnergyRelated). New categories can be defined,if needed, to reflect other differences, for example different points of view, such as the point of view of the device's user vs. the point of view of the device's manufacturer. We propose a list of devices that are relevant for the purpose of SAREF, but this list can be extended. - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - Smoke - A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for smoke - - - - Pause command - A type of command - - - - - - Get current meter value command - A type of get command - - - - Command - A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended. - - - 1 - - - - - - - - - 1 - - - - - - - - - - - - - - - - Level control function - An actuating function that allows to do level adjustments of an actuator in a certain range (e.g., 0%-100%), such as dimming a light or set the speed of an electric motor. - - - - - - - - - - - - - - - - - - - - - Building related - A category that includes devices as described by building related data models, such as IFC and FIEMSER - - - - Multi level state - A type of state - - - - Close state - The state of a device that is CLOSE - - - - has typical consumption - A relationship identifying the typical (energy or power) consumption of a device - - - is measured in - A relationship identifying the unit of measure used for a certain entity. - - - represents - A relationship between a service and a function. - - - consists of - A relationship indicating a composite entity that consists of other entities (e.g., a temperature/humidity sensor that consists of a temperature sensor and a humidity sensor) - - - has sensing range - A relationship between a sensing function and a measurement identifying the range of a sensor detection - - - has sensor type - A relationship identifying the sensing type of a sensor detection (i.e., Temperature, Occupancy, Humidity, Motion , Smoke, Pressure, etc.) - - - is used for - A relationship specifying the purpose for which a device is used for (e.g., controlling a Commodity) - - - measures property - A relationship specifying the Property that can be measured by a certain Device - - - has threshold measurement - A relationship associated with an event function to notify that a certain threshold measurement has been exceeded - - - has function - A relationship identifying the type of function of a device - - - makes measurement - A relation between a device and the measurements it makes. Such measurement will link together the value of the measurement, its unit of measure and the property to which it relates. - - - has meter reading type - A relationship identifying the reading type of a measurement (e.g., Water, Gas, Pressure , Energy , Power, etc.) - - - relates to measurement - A relationship between a property and the measurements it relates to - - - controls property - A relationship specifying the Property that can be controlled by a certain Device - - - is controlled by device - A relationship specifying the devices that can control a certain property - - - is measured by device - A relationship specifying the devices that can measure a certain property - - - isAbout - A relationship identifying what an entity, such as a Profile, is about - - - has state - A relationship identifying the type of state of a device - - - offers - A relationship between a device and a service - - - is accomplished by - A relationship indentifying the task accomplished by a certain entity (e.g., a device) - - - relates to property - A relationship between a measurement and the property it relates to - - - has profile - A relationship associating a profile to a certain entity (e.g., a device) - - - acts upon - A relationship between a command and a state - - - has meter reading - A relationship between a metering function and the measurement of the reading - - - has time - A relationship to associate time information to an entity - - - accomplishes - A relationship between a certain entity (e.g., a device) and the task it accomplishes - - - - is offered by - A relationship between a service and a device that offers the service - - - - has price - A relationships indentifying the price associated to an entity - - - has command - A relationship between an entity (such as a function) and a command - - - - - - is command of - A relationship between a command and a function. - - - has manufacturer - A relationship identifying the manufacturer of an entity (e.g., device) - - - - has value - A relationship defining the value of a certain property, e.g., energy or power - - - has name - A relationship providing the name of an entity (e.g., device) - - - - has model - A relationship identifying the model of an entity (e.g., device) - - - - has description - A relationship providing a description of an entity (e.g., device) - - - - has timestamp - A relationship stating the timestamp of an entity (e.g. a measurement). - - - Great Britain pound sterling - - - - Open - The value OPEN. It is used to instantiate different classes such as the OpenCommand class and OpenState class. - - - - - Notify - The value NOTIFY. It is used to instantiate the NotifyCommand. - - - - Get meter data - The command GET METER DATA. It is used to instantiate the GetMeterDataCommand class. - - - - watt hour - The Watt Hor is a unit of energy equivalent to one watt (1 W) of power expended for one hour (1 h) of time. An energy expenditure of 1 Wh represents 3600 joules - - - - kilowatt - - - - Set absolute level - The value SET ABSOLUTE LEVEL. It is used to instantiate classes such as the SetAbsoluteLevelCommand class. - - - - Close - The value CLOSE. It is used to instantiate different classes such as the CloseCommand class and CloseState class, for example. - - - - - bar - The bar is a unit of pressure defined as 100 000 pascal. - - - - United States dollar - - - - Drying - A type of task for which a device is designed - - - - pascal - The pascal is a unit of pressure and stress defined as newton divided by square metre = joule divided by cubic metre = kilogram divided by metre second squared. - - - - Cleaning - A type of task for which a device is designed - - - - Get current meter value - The command GET CURRENT METER VALUE. It is used to instantiate the GetCurrentMeterValueCommand class. - - - - Get meter history - The command GET METER HISTORY. It is used to instantiate the GetMeterHistoryCommand class. - - - - Get sensing data - The command GET SENSING DATA. It is used to instantiate the GetSensingDataCommand class. - - - - kilowatt hour - The kilowatt hour is a unit of energy equal to 1,000 watt-hours, or 3.6 megajoules. - - - - degree Fahrenheit - The degree Fahrenheit is a unit of temperature defined as 5.555556e-1 kelvin. - - - - Step up - The value STEP UP. It is used to instantiate the StepUpCommand class. - - - - Stop - The value STOP. It is used to instantiate different classes such as the StopCommand class and StopState class. - - - - - Toggle - The value TOGGLE. It is used to instantiate the the ToggleCommand class - - - - Step down - The value STEP DOWN. It is used to instantiate the StepDownCommand class. - - - - Pause - The value PAUSE. It is used to instantiate classes such as the PauseCommand class. - - - - euro - - - - Off - The value OFF. It is used to instantiate different classes such as the OffCommand class and OffState class. - - - - - lux - The lux is a unit of illuminance defined as lumen divided by square metre = candela times steradian divided by square metre. - - - - WellBeing - A type of task for which a device is designed - - - - degree Celsius - The degree Celsius is a unit of temperature defined as 1 kelvin. - - - - Start - The value START. It is used to instantiate different classes such as the StartCommand class and StartState class. - - - - - watt - The watt is a unit of power defined as joule divided by second = newton times metre divided by second = volt times ampere = kilogram times square metre divided by second to the power 3. - - - - Set relative level - The value SET RELATIVE LEVEL. It is used to instantiate classes such as the SetRelativeLevelCommand class. - - - - kelvin - The kelvin is a unit of temperature defined as 1/273.16 of the thermodynamic temperature of the triple point of water. - - - - On - The value ON. It is used to instantiate different classes such as the OnCommand class and OnState class. - - - - - The unit of measure for time - - - diff --git a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/saref.ttl b/src/main/resources/saref-portal-generator/public/saref/v2.1.1/saref.ttl deleted file mode 100644 index a7a3c40..0000000 --- a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/saref.ttl +++ /dev/null @@ -1,1620 +0,0 @@ -@prefix om: . -@prefix owl: . -@prefix rdf: . -@prefix xml: . -@prefix xsd: . -@prefix foaf: . -@prefix rdfs: . -@prefix time: . -@prefix dcterms: . -@prefix vann: . - -@prefix saref: . -@base . - - rdf:type owl:Ontology ; - dcterms:title "SAREF: the Smart Applications REFerence ontology"^^xsd:string ; - owl:versionInfo "2.1.1" ; - owl:versionIRI ; - dcterms:created "2015-02-10"^^xsd:date ; - dcterms:modified "2018-05-02"^^xsd:date ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref#" ; - vann:preferredNamespacePrefix "saref" ; - dcterms:source ; - dcterms:source ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:description "The Smart Appliances REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing assets (standards/protocols/datamodels/etc.) in the smart appliances domain. The SAREF ontology provides building blocks that allow separation and recombination of different parts of the ontology depending on specific needs. The starting point of SAREF is the concept of device (e.g., a switch). Devices are tangible objects designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function. The SAREF ontology offers a lists of basic functions that can be eventually combined in order to have more complex functions in a single device. For example, a switch offers an actuating function of type 'switching on/off'. Each function has some associated commands, which can also be picked up as building blocks from a list. For example, the 'switching on/off' is associated with the commands 'switch on', 'switch off' and 'toggle'. Depending on the function(s) it accomplishes, a device can be found in some corresponding states that are also listed as building blocks. When connected to a network, a device offers a service, which is a representation of a function to a network that makes the function discoverable, registerable and remotely controllable by other devices in the network. A service can represent one or more functions. A service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A service must specify the device that is offering the service and the function(s) to be represented. A device in the SAREF ontology is also characterized by a profile that can be used to optimize some property, such as Energy, in a home or office that are part of a building."^^xsd:string ; - rdfs:comment "Information about changes compared to version 1.1.1: (1)The classes and properties related to how to represent devices in building spaces (such as the saref:BuildingSpace class, saref:BuildingObject class and saref:isLocatedIn property) have been removed from SAREF and incorporated into the SAREF4BLDG extension related to buildings (https://w3id.org/def/saref4bldg), including the reuse of the W3C® WGS84 geo positioning vocabulary; (2)The saref:DeviceCategory and saref:FunctionCategory classes have been removed. Instead, the hierarchy of device categories has been implemented directly as subclasses of the saref:Device class; (3)The information specific for energy efficiency has been moved to the SAREF4ENER extension (https://w3id.org/saref4ener). For example, the saref:Profile class has been redefined to accommodate only the properties that are general enough for any type of profile, not only for energy and power. Details on how to specifically model a power profile can be found in the SAREF4ENER extension (https://w3id.org/saref4ener); (4) The subclasses of the saref:Energy class have been removed (i.e., Average Energy, Maximum Energy, Minimum Energy, Total Energy, HVAC Energy, Hot Water Energy and Lighting Energy); (5)The saref:Property class has been split into two classes (saref:Property and saref:Measurement), as it is done in the SAREF4ENVI extension (https://w3id.org/def/saref4envi), in order to properly accommodate the distinction between the concept of property (an observable quality of something) and the concept of measurement (a concrete value observed for a property); (6)Too restrictive cardinality restrictions have been revised, sometimes making them optional rather than mandatory (better to make properties mandatory in the extensions that specialize SAREF for a specific purpose, rather than restricting SAREF, whose purpose is more general). For example, definitions of units of measurement using an enumeration (owl:oneOf) were too restrictive because they did not allow using other units than those enumerated. Therefore, the individuals of each class are still there, but the owl:oneOf enumeration has been removed; (7)The saref:UnitOfMeasure subclassesre use individuals from the OM ontology for unit of measures (http://www.wurvoc.org/vocabularies/om-1.6/), but this is not the only solution. It has been clarified in the comments that the OM ontology is an example, but other ontologies can be used; (8)The global restrictions (rdfs:domain and rdfs:range) in object properties have been completely removed not to hinder interoperability. Object properties are now only restricted locally in the classes; (9)The subclasses of saref:Task have been transormed in individuals; (10)The saref:hasTask property has been removed from the saref:Profile class to resolve an ambiguity with the saref:Task class." ; - dcterms:publisher . - -################################################################# -# Object Properties -################################################################# - -### https://w3id.org/saref#accomplishes -saref:accomplishes rdf:type owl:ObjectProperty ; - owl:inverseOf saref:isAccomplishedBy ; - rdfs:comment "A relationship between a certain entity (e.g., a device) and the task it accomplishes"^^xsd:string ; - rdfs:label "accomplishes"^^xsd:string . - - -### https://w3id.org/saref#actsUpon -saref:actsUpon rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a command and a state"^^xsd:string ; - rdfs:label "acts upon"^^xsd:string . - - -### https://w3id.org/saref#consistsOf -saref:consistsOf rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship indicating a composite entity that consists of other entities (e.g., a temperature/humidity sensor that consists of a temperature sensor and a humidity sensor)"^^xsd:string ; - rdfs:label "consists of"^^xsd:string . - - -### https://w3id.org/saref#controlsProperty -saref:controlsProperty rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship specifying the Property that can be controlled by a certain Device"@en ; - rdfs:label "controls property"@en . - - -### https://w3id.org/saref#hasCommand -saref:hasCommand rdf:type owl:ObjectProperty ; - owl:inverseOf saref:isCommandOf ; - rdfs:comment "A relationship between an entity (such as a function) and a command"^^xsd:string ; - rdfs:label "has command"^^xsd:string . - - -### https://w3id.org/saref#hasFunction -saref:hasFunction rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying the type of function of a device"^^xsd:string ; - rdfs:label "has function"^^xsd:string . - - -### https://w3id.org/saref#hasMeterReading -saref:hasMeterReading rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a metering function and the measurement of the reading"^^xsd:string ; - rdfs:label "has meter reading"^^xsd:string . - - -### https://w3id.org/saref#hasMeterReadingType -saref:hasMeterReadingType rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying the reading type of a measurement (e.g., Water, Gas, Pressure , Energy , Power, etc.)"^^xsd:string ; - rdfs:label "has meter reading type"^^xsd:string . - - -### https://w3id.org/saref#hasPrice -saref:hasPrice rdf:type owl:ObjectProperty ; - rdfs:comment "A relationships indentifying the price associated to an entity"^^xsd:string ; - rdfs:label "has price"^^xsd:string . - - -### https://w3id.org/saref#hasProfile -saref:hasProfile rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship associating a profile to a certain entity (e.g., a device)"^^xsd:string ; - rdfs:label "has profile"^^xsd:string . - - -### https://w3id.org/saref#hasSensingRange -saref:hasSensingRange rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a sensing function and a measurement identifying the range of a sensor detection"^^xsd:string ; - rdfs:label "has sensing range "^^xsd:string . - - -### https://w3id.org/saref#hasSensorType -saref:hasSensorType rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying the sensing type of a sensor detection (i.e., Temperature, Occupancy, Humidity, Motion , Smoke, Pressure, etc.) "^^xsd:string ; - rdfs:label "has sensor type"^^xsd:string . - - -### https://w3id.org/saref#hasState -saref:hasState rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying the type of state of a device"^^xsd:string ; - rdfs:label "has state"^^xsd:string . - - -### https://w3id.org/saref#hasThresholdMeasurement -saref:hasThresholdMeasurement rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship associated with an event function to notify that a certain threshold measurement has been exceeded"^^xsd:string ; - rdfs:label "has threshold measurement"^^xsd:string . - - -### https://w3id.org/saref#hasTime -saref:hasTime rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship to associate time information to an entity"^^xsd:string ; - rdfs:label "has time"^^xsd:string . - - -### https://w3id.org/saref#hasTypicalConsumption -saref:hasTypicalConsumption rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying the typical (energy or power) consumption of a device"^^xsd:string ; - rdfs:label "has typical consumption"^^xsd:string . - - -### https://w3id.org/saref#isAbout -saref:isAbout rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying what an entity, such as a Profile, is about"@en ; - rdfs:label "isAbout"@en . - - -### https://w3id.org/saref#isAccomplishedBy -saref:isAccomplishedBy rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship indentifying the task accomplished by a certain entity (e.g., a device)"^^xsd:string ; - rdfs:label "is accomplished by"^^xsd:string . - - -### https://w3id.org/saref#isCommandOf -saref:isCommandOf rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a command and a function."^^xsd:string ; - rdfs:label "is command of"^^xsd:string . - - -### https://w3id.org/saref#isControlledByDevice -saref:isControlledByDevice rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship specifying the devices that can control a certain property"@en ; - rdfs:label "is controlled by device"^^xsd:string . - - -### https://w3id.org/saref#isMeasuredByDevice -saref:isMeasuredByDevice rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship specifying the devices that can measure a certain property"@en ; - rdfs:label "is measured by device"^^xsd:string . - - -### https://w3id.org/saref#isMeasuredIn -saref:isMeasuredIn rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying the unit of measure used for a certain entity."^^xsd:string ; - rdfs:label "is measured in"^^xsd:string . - - -### https://w3id.org/saref#isOfferedBy -saref:isOfferedBy rdf:type owl:ObjectProperty ; - owl:inverseOf saref:offers ; - rdfs:comment "A relationship between a service and a device that offers the service"^^xsd:string ; - rdfs:label "is offered by"^^xsd:string . - - -### https://w3id.org/saref#isUsedFor -saref:isUsedFor rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship specifying the purpose for which a device is used for (e.g., controlling a Commodity)"^^xsd:string ; - rdfs:label "is used for"^^xsd:string . - - -### https://w3id.org/saref#makesMeasurement -saref:makesMeasurement rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a device and the measurements it makes. Such measurement will link together the value of the measurement, its unit of measure and the property to which it relates."@en ; - rdfs:label "makes measurement"@en . - - -### https://w3id.org/saref#measuresProperty -saref:measuresProperty rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship specifying the Property that can be measured by a certain Device"@en ; - rdfs:label "measures property"@en . - - -### https://w3id.org/saref#offers -saref:offers rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a device and a service"^^xsd:string ; - rdfs:label "offers"^^xsd:string . - - -### https://w3id.org/saref#relatesToMeasurement -saref:relatesToMeasurement rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a property and the measurements it relates to"^^xsd:string ; - rdfs:label "relates to measurement"@en . - - -### https://w3id.org/saref#relatesToProperty -saref:relatesToProperty rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a measurement and the property it relates to"^^xsd:string ; - rdfs:label "relates to property"@en . - - -### https://w3id.org/saref#represents -saref:represents rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a service and a function."^^xsd:string ; - rdfs:label "represents"^^xsd:string . - - -################################################################# -# Data properties -################################################################# - -### https://w3id.org/saref#hasDescription -saref:hasDescription rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship providing a description of an entity (e.g., device)"^^xsd:string ; - rdfs:label "has description"^^xsd:string . - - -### https://w3id.org/saref#hasManufacturer -saref:hasManufacturer rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship identifying the manufacturer of an entity (e.g., device)"^^xsd:string ; - rdfs:label "has manufacturer"^^xsd:string . - - -### https://w3id.org/saref#hasModel -saref:hasModel rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship identifying the model of an entity (e.g., device)"^^xsd:string ; - rdfs:label "has model"^^xsd:string . - - -### https://w3id.org/saref#hasName -saref:hasName rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship providing the name of an entity (e.g., device)"^^xsd:string ; - rdfs:label "has name"^^xsd:string . - - -### https://w3id.org/saref#hasTimestamp -saref:hasTimestamp rdf:type owl:DatatypeProperty ; - rdfs:comment "A relationship stating the timestamp of an entity (e.g. a measurement)."@en ; - rdfs:label "has timestamp"@en . - - -### https://w3id.org/saref#hasValue -saref:hasValue rdf:type owl:DatatypeProperty ; - rdfs:comment "A relationship defining the value of a certain property, e.g., energy or power"^^xsd:string ; - rdfs:label "has value"^^xsd:string . - - -################################################################# -# Classes -################################################################# - -### http://www.w3.org/2006/time#TemporalUnit -time:TemporalUnit rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "The unit of measure for time"^^xsd:string . - - -### https://w3id.org/saref#ActuatingFunction -saref:ActuatingFunction rdf:type owl:Class ; - rdfs:subClassOf saref:Function ; - rdfs:comment "A function that allows to transmit data to actuators, such as level settings (e.g., temperature) or binary switching (e.g., open/close, on/off)"^^xsd:string ; - rdfs:label "Actuating function"^^xsd:string . - - -### https://w3id.org/saref#Actuator -saref:Actuator rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:ActuatingFunction - ] ; - rdfs:comment "A device responsible for moving or controlling a mechanism or system by performing an actuating function"^^xsd:string ; - rdfs:label "Actuator"^^xsd:string . - - -### https://w3id.org/saref#Appliance -saref:Appliance rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:comment "An electrical/mechanical machine that accomplish some household functions, such as cleaning or cooking"^^xsd:string ; - rdfs:label "Appliance"^^xsd:string . - - -### https://w3id.org/saref#BuildingRelated -saref:BuildingRelated rdf:type owl:Class ; - rdfs:subClassOf saref:Device ; - rdfs:comment "A category that includes devices as described by building related data models, such as IFC and FIEMSER "^^xsd:string ; - rdfs:label "Building related"^^xsd:string . - - -### https://w3id.org/saref#CloseCommand -saref:CloseCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:OpenCloseState - ] ; - owl:disjointWith saref:OpenCommand ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Close command"^^xsd:string . - - -### https://w3id.org/saref#CloseState -saref:CloseState rdf:type owl:Class ; - rdfs:subClassOf saref:OpenCloseState ; - rdfs:comment "The state of a device that is CLOSE"^^xsd:string ; - rdfs:label "Close state"^^xsd:string . - - -### https://w3id.org/saref#Coal -saref:Coal rdf:type owl:Class ; - rdfs:subClassOf saref:Commodity ; - rdfs:comment "A type of commodity"^^xsd:string ; - rdfs:label "Coal"^^xsd:string . - - -### https://w3id.org/saref#Command -saref:Command rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:State - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isCommandOf ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Function - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:comment "A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "Command"^^xsd:string . - - -### https://w3id.org/saref#Commodity -saref:Commodity rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:allValuesFrom saref:UnitOfMeasure - ] ; - rdfs:comment "A marketable item for which there is demand, but which is supplied without qualitative differentiation across a market. SAREF refers to energy commodities such as electricity, gas, coal and oil. "^^xsd:string ; - rdfs:label "Commodity"^^xsd:string . - - -### https://w3id.org/saref#Currency -saref:Currency rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "The unit of measure for price"^^xsd:string ; - rdfs:label "Currency"^^xsd:string . - - -### https://w3id.org/saref#Device -saref:Device rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:allValuesFrom saref:Device - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:controlsProperty ; - owl:allValuesFrom saref:Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasProfile ; - owl:allValuesFrom saref:Profile - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasState ; - owl:allValuesFrom saref:State - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasTypicalConsumption ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( saref:Energy - saref:Power - ) - ] - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isUsedFor ; - owl:allValuesFrom saref:Commodity - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:makesMeasurement ; - owl:allValuesFrom saref:Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:allValuesFrom saref:Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:offers ; - owl:allValuesFrom saref:Service - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Task - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Function - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasManufacturer ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasModel ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:comment "A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function. Devices can be structured in categories (subclasses) that reflect the different domain in which a device is used, e.g., smart appliances domain (subclass FunctionRelated) vs. building domain (subclass BuildingRelated) vs. smart grid domain (subclass EnergyRelated). New categories can be defined,if needed, to reflect other differences, for example different points of view, such as the point of view of the device's user vs. the point of view of the device's manufacturer. We propose a list of devices that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "Device"^^xsd:string . - - -### https://w3id.org/saref#DoorSwitch -saref:DoorSwitch rdf:type owl:Class ; - rdfs:subClassOf saref:Switch , - [ rdf:type owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Switch - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:OpenCloseFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasState ; - owl:someValuesFrom saref:OpenCloseState - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:Safety - ] ; - rdfs:comment "A device of category saref:Actuator that consists of a switch, accomplishes the task saref:Safety, performs the saref:OpenCloseFunction, is used for controlling a door, and can be found in the state saref:OpenCloseState."^^xsd:string ; - rdfs:label "Door switch"^^xsd:string . - - -### https://w3id.org/saref#Electricity -saref:Electricity rdf:type owl:Class ; - rdfs:subClassOf saref:Commodity ; - rdfs:comment "A type of commodity"^^xsd:string ; - rdfs:label "Electricity"^^xsd:string . - - -### https://w3id.org/saref#Energy -saref:Energy rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value measured in an energy unit (such as Kilowatt_Hour or Watt_hour). Furter specializations of the saref:Energy class can be found in the SAREF4ENER extension, where classes such as EnergyMax, EnergyMin and EnergyExpected are defined. "^^xsd:string ; - rdfs:label "Energy"^^xsd:string . - - -### https://w3id.org/saref#EnergyMeter -saref:EnergyMeter rdf:type owl:Class ; - rdfs:subClassOf saref:Meter , - [ rdf:type owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Meter - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom saref:Energy - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:EnergyEfficiency - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:MeterReading - ] ; - rdfs:comment "An energy meter is a device of category saref:Meter that consists of a meter, accomplishes the tasks saref:MeterReading and saref:EnergyEfficiency, performs the saref:MeteringFunction and is used for the purpose of measuring the saref:Energy property"^^xsd:string ; - rdfs:label "Energy meter"^^xsd:string . - - -### https://w3id.org/saref#EnergyRelated -saref:EnergyRelated rdf:type owl:Class ; - rdfs:subClassOf saref:Device ; - rdfs:comment "A category that considers devices based on energy consumption information and profiles to optimize energy efficiency."^^xsd:string ; - rdfs:label "Energy related"^^xsd:string . - - -### https://w3id.org/saref#EnergyUnit -saref:EnergyUnit rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "The unit of measure for energy"^^xsd:string ; - rdfs:label "Energy unit"^^xsd:string . - - -### https://w3id.org/saref#EventFunction -saref:EventFunction rdf:type owl:Class ; - rdfs:subClassOf saref:Function , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:allValuesFrom saref:NotifyCommand - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasThresholdMeasurement ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Measurement - ] ; - rdfs:comment "A function that allows to notify another device that a certain threshold value has been exceeded."^^xsd:string ; - rdfs:label "Event function"^^xsd:string . - - -### https://w3id.org/saref#Function -saref:Function rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Command - ] ; - rdfs:comment "The functionality necessary to accomplish the task for which a Device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. "^^xsd:string ; - rdfs:label "Function"^^xsd:string . - - -### https://w3id.org/saref#FunctionRelated -saref:FunctionRelated rdf:type owl:Class ; - rdfs:subClassOf saref:Device ; - rdfs:comment "A category that considers devices, sensors and their specification in terms of functions, states and services"^^xsd:string ; - rdfs:label "Function related"^^xsd:string . - - -### https://w3id.org/saref#Gas -saref:Gas rdf:type owl:Class ; - rdfs:subClassOf saref:Commodity ; - rdfs:comment "A type of commodity"^^xsd:string ; - rdfs:label "Gas"^^xsd:string . - - -### https://w3id.org/saref#Generator -saref:Generator rdf:type owl:Class ; - rdfs:subClassOf saref:EnergyRelated ; - rdfs:comment "A type of energy-related device that generates energy"^^xsd:string ; - rdfs:label "Generator"^^xsd:string . - - -### https://w3id.org/saref#GetCommand -saref:GetCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Get command"^^xsd:string . - - -### https://w3id.org/saref#GetCurrentMeterValueCommand -saref:GetCurrentMeterValueCommand rdf:type owl:Class ; - rdfs:subClassOf saref:GetCommand ; - rdfs:comment "A type of get command"^^xsd:string ; - rdfs:label "Get current meter value command"^^xsd:string . - - -### https://w3id.org/saref#GetMeterDataCommand -saref:GetMeterDataCommand rdf:type owl:Class ; - rdfs:subClassOf saref:GetCommand ; - rdfs:comment "A type of get command"^^xsd:string ; - rdfs:label "Get meter data command"^^xsd:string . - - -### https://w3id.org/saref#GetMeterHistoryCommand -saref:GetMeterHistoryCommand rdf:type owl:Class ; - rdfs:subClassOf saref:GetCommand ; - rdfs:comment "A type of get command"^^xsd:string ; - rdfs:label "Get meter history command"^^xsd:string . - - -### https://w3id.org/saref#GetSensingDataCommand -saref:GetSensingDataCommand rdf:type owl:Class ; - rdfs:subClassOf saref:GetCommand ; - rdfs:comment "A type of get command"^^xsd:string ; - rdfs:label "Get sensing data command"^^xsd:string . - - -### https://w3id.org/saref#HVAC -saref:HVAC rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:Comfort - ] ; - rdfs:comment "Heating, Ventilation and Air Conditioning (HVAC) device that provides indoor environmental comfort"^^xsd:string ; - rdfs:label "HVAC"^^xsd:string . - - -### https://w3id.org/saref#Humidity -saref:Humidity rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit"^^xsd:string ; - rdfs:label "Humidity"^^xsd:string . - - -### https://w3id.org/saref#IlluminanceUnit -saref:IlluminanceUnit rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "The unit of measure for light"^^xsd:string ; - rdfs:label "Illuminance unit"^^xsd:string . - - -### https://w3id.org/saref#LevelControlFunction -saref:LevelControlFunction rdf:type owl:Class ; - rdfs:subClassOf saref:ActuatingFunction , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( saref:SetAbsoluteLevelCommand - saref:SetRelativeLevelCommand - saref:StepDownCommand - saref:StepUpCommand - ) - ] - ] ; - rdfs:comment "An actuating function that allows to do level adjustments of an actuator in a certain range (e.g., 0%-100%), such as dimming a light or set the speed of an electric motor. "^^xsd:string ; - rdfs:label "Level control function"^^xsd:string . - - -### https://w3id.org/saref#Light -saref:Light rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a illuminance unit (lux)"^^xsd:string ; - rdfs:label "Light"^^xsd:string . - - -### https://w3id.org/saref#LightSwitch -saref:LightSwitch rdf:type owl:Class ; - rdfs:subClassOf saref:Switch , - [ rdf:type owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Switch - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:OnOffFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasState ; - owl:someValuesFrom saref:OnOffState - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom saref:Light - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:offers ; - owl:someValuesFrom saref:SwitchOnService - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:Lighting - ] ; - rdfs:comment "A device of category saref:Actuator that consists of a switch, accomplishes the task saref:Lighting, performs the saref:OnOffFunction, measures the property saref:Light, and can be found in the state saref:OnOffState. It can offer a switch on service."^^xsd:string ; - rdfs:label "Light switch"^^xsd:string . - - -### https://w3id.org/saref#LightingDevice -saref:LightingDevice rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:Comfort - ] ; - rdfs:comment "A device used for illumination, irradiation, signaling, or projection"^^xsd:string ; - rdfs:label "Lighting device"^^xsd:string . - - -### https://w3id.org/saref#Load -saref:Load rdf:type owl:Class ; - rdfs:subClassOf saref:EnergyRelated ; - rdfs:comment "A type of energy-related device that consumes energy"^^xsd:string ; - rdfs:label "Load"^^xsd:string . - - -### https://w3id.org/saref#Measurement -saref:Measurement rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:allValuesFrom saref:UnitOfMeasure - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:allValuesFrom saref:Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:UnitOfMeasure - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasTimestamp ; - owl:allValuesFrom xsd:dateTime - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasValue ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:float - ] ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Measurement"@en . - - -### https://w3id.org/saref#Meter -saref:Meter rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:MeteringFunction - ] ; - rdfs:comment "A device built to accurately detect and display a quantity in a form readable by a human being. Further, a device of category saref:Meter that performs a saref:MeteringFunction."^^xsd:string ; - rdfs:label "Meter"^^xsd:string . - - -### https://w3id.org/saref#MeteringFunction -saref:MeteringFunction rdf:type owl:Class ; - rdfs:subClassOf saref:Function , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( saref:GetCurrentMeterValueCommand - saref:GetMeterDataCommand - saref:GetMeterHistoryCommand - ) - ] - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasMeterReading ; - owl:allValuesFrom saref:Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasMeterReadingType ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( saref:Commodity - saref:Property - ) - ] - ] ; - rdfs:comment "A function that allows to get data from a meter, such as current meter reading or instantaneous demand"^^xsd:string ; - rdfs:label "Metering function"^^xsd:string . - - -### https://w3id.org/saref#MicroRenewable -saref:MicroRenewable rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:EnergyEfficiency - ] ; - rdfs:comment "A device that generates renewable energy from natural resources such as teh sun, wind and water"^^xsd:string ; - rdfs:label "Micro renewable"^^xsd:string . - - -### https://w3id.org/saref#Motion -saref:Motion rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for motion"^^xsd:string ; - rdfs:label "Motion"^^xsd:string . - - -### https://w3id.org/saref#MultiLevelState -saref:MultiLevelState rdf:type owl:Class ; - rdfs:subClassOf saref:State ; - rdfs:comment "A type of state"^^xsd:string ; - rdfs:label "Multi level state"^^xsd:string . - - -### https://w3id.org/saref#Multimedia -saref:Multimedia rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:Entertainment - ] ; - rdfs:comment "A device designed to display, store, record or play multimedia content such as audio, images, animation, video "^^xsd:string ; - rdfs:label "Multimedia"^^xsd:string . - - -### https://w3id.org/saref#Network -saref:Network rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated ; - rdfs:comment "A device used to connect other devices in a network, such as hub, switch or router in a Local Area Network (LAN). "^^xsd:string ; - rdfs:label "Network"^^xsd:string . - - -### https://w3id.org/saref#NotifyCommand -saref:NotifyCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Notify command"^^xsd:string . - - -### https://w3id.org/saref#Occupancy -saref:Occupancy rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value (saref:hasValue property) that is measured in a unit of measure for occupancy"^^xsd:string ; - rdfs:label "Occupancy"^^xsd:string . - - -### https://w3id.org/saref#OffCommand -saref:OffCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:OnOffState - ] ; - owl:disjointWith saref:OnCommand ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Off command"^^xsd:string . - - -### https://w3id.org/saref#OffState -saref:OffState rdf:type owl:Class ; - rdfs:subClassOf saref:OnOffState ; - rdfs:comment "The state of a device that is ON"^^xsd:string ; - rdfs:label "Off state"^^xsd:string . - - -### https://w3id.org/saref#OnCommand -saref:OnCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:OnOffState - ] ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "On command"^^xsd:string . - - -### https://w3id.org/saref#OnOffFunction -saref:OnOffFunction rdf:type owl:Class ; - rdfs:subClassOf saref:ActuatingFunction , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( saref:OffCommand - saref:OnCommand - saref:ToggleCommand - ) - ] - ] ; - rdfs:comment "An actuating function that allows to switch on and off an actuator"^^xsd:string ; - rdfs:label "On off function"^^xsd:string . - - -### https://w3id.org/saref#OnOffState -saref:OnOffState rdf:type owl:Class ; - rdfs:subClassOf saref:State ; - rdfs:comment "A type of state"^^xsd:string ; - rdfs:label "On off state"^^xsd:string . - - -### https://w3id.org/saref#OnState -saref:OnState rdf:type owl:Class ; - rdfs:subClassOf saref:OnOffState ; - rdfs:comment "The state of a device that is OFF "^^xsd:string ; - rdfs:label "On state"^^xsd:string . - - -### https://w3id.org/saref#OpenCloseFunction -saref:OpenCloseFunction rdf:type owl:Class ; - rdfs:subClassOf saref:ActuatingFunction , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( saref:CloseCommand - saref:OpenCommand - ) - ] - ] ; - rdfs:comment "An actuating function that allows to open and close a device"^^xsd:string ; - rdfs:label "Open close function"^^xsd:string . - - -### https://w3id.org/saref#OpenCloseState -saref:OpenCloseState rdf:type owl:Class ; - rdfs:subClassOf saref:State ; - rdfs:comment "A type of state"^^xsd:string ; - rdfs:label "Open close state"^^xsd:string . - - -### https://w3id.org/saref#OpenCommand -saref:OpenCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:OpenCloseState - ] ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Open command"^^xsd:string . - - -### https://w3id.org/saref#OpenState -saref:OpenState rdf:type owl:Class ; - rdfs:subClassOf saref:OpenCloseState ; - rdfs:comment "The state of a device that is OPEN "^^xsd:string ; - rdfs:label "Open state"^^xsd:string . - - -### https://w3id.org/saref#PauseCommand -saref:PauseCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Pause command"^^xsd:string . - - -### https://w3id.org/saref#Power -saref:Power rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a power unit (such as watt or kilowatt). Further specializations of the saref:Power class can be found in the SAREF4ENER extension, where classes such as PowerMax, PowerMin and PowerExpected are defined."^^xsd:string ; - rdfs:label "Power"^^xsd:string . - - -### https://w3id.org/saref#PowerUnit -saref:PowerUnit rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "The unit of measure for power"^^xsd:string ; - rdfs:label "Power unit"^^xsd:string . - - -### https://w3id.org/saref#Pressure -saref:Pressure rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a pressure unit (bar or pascal)"^^xsd:string ; - rdfs:label "Pressure"^^xsd:string . - - -### https://w3id.org/saref#PressureUnit -saref:PressureUnit rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "The unit of measure for pressure"^^xsd:string ; - rdfs:label "Pressure unit"^^xsd:string . - - -### https://w3id.org/saref#Price -saref:Price rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property crelated to some measurements that are characterized by a certain value that is measured using saref:Currency"^^xsd:string ; - rdfs:label "Price"^^xsd:string . - - -### https://w3id.org/saref#Profile -saref:Profile rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:allValuesFrom saref:Profile - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasPrice ; - owl:allValuesFrom saref:Price - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasTime ; - owl:allValuesFrom saref:Time - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isAbout ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( saref:Commodity - saref:Property - ) - ] - ] ; - rdfs:comment "A specification associated to a device to collect information about a certain Property (e.g., Energy) or Commodity (e.g.Water) for optimizing its usage in the home, office or building in which the device is located. This specification is about a certain Property or Commodity (saref:isAbout), can be calculated over a time span (saref:hasTime ) and can be associated to some costs (saref:hasPrice). An example is the Power Profile defined in the SAREF4ENER extension that can be associated to a device for optimizing the Energy efficiency in the home, office or building in which the device is located."@en ; - rdfs:label "Profile"@en . - - -### https://w3id.org/saref#Property -saref:Property rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:isControlledByDevice ; - owl:allValuesFrom saref:Device - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredByDevice ; - owl:allValuesFrom saref:Device - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:relatesToMeasurement ; - owl:allValuesFrom saref:Measurement - ] ; - rdfs:comment "Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "Property"^^xsd:string . - - -### https://w3id.org/saref#SensingFunction -saref:SensingFunction rdf:type owl:Class ; - rdfs:subClassOf saref:Function , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasSensingRange ; - owl:someValuesFrom saref:Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:allValuesFrom saref:GetSensingDataCommand - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasSensorType ; - owl:allValuesFrom saref:Property - ] ; - rdfs:comment "A function that allows to transmit data from sensors, such as measurement values (e.g., temperature) or sensing data (e.g., occupancy)"^^xsd:string ; - rdfs:label "Sensing function"^^xsd:string . - - -### https://w3id.org/saref#Sensor -saref:Sensor rdf:type owl:Class ; - rdfs:subClassOf saref:FunctionRelated , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:SensingFunction - ] ; - rdfs:comment "A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. Further, a device of category saref:Sensor that performs a saref:SensingFunction."^^xsd:string ; - rdfs:label "Sensor"^^xsd:string . - - -### https://w3id.org/saref#Service -saref:Service rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:isOfferedBy ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Device - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:represents ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Function - ] ; - rdfs:comment "A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service and the function(s) to be represented."^^xsd:string ; - rdfs:label "Service"^^xsd:string . - - -### https://w3id.org/saref#SetAbsoluteLevelCommand -saref:SetAbsoluteLevelCommand rdf:type owl:Class ; - rdfs:subClassOf saref:SetLevelCommand ; - rdfs:comment "A type of set level command"^^xsd:string ; - rdfs:label "Set absolute level command"^^xsd:string . - - -### https://w3id.org/saref#SetLevelCommand -saref:SetLevelCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:MultiLevelState - ] ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Set level command"^^xsd:string . - - -### https://w3id.org/saref#SetRelativeLevelCommand -saref:SetRelativeLevelCommand rdf:type owl:Class ; - rdfs:subClassOf saref:SetLevelCommand ; - rdfs:comment "A type of set level command"^^xsd:string ; - rdfs:label "Set relative level command"^^xsd:string . - - -### https://w3id.org/saref#Smoke -saref:Smoke rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for smoke"^^xsd:string ; - rdfs:label "Smoke"^^xsd:string . - - -### https://w3id.org/saref#SmokeSensor -saref:SmokeSensor rdf:type owl:Class ; - rdfs:subClassOf saref:Sensor , - [ rdf:type owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Sensor - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:EventFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:SensingFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom saref:Smoke - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:Safety - ] ; - rdfs:comment "A device that consists of a sensor, has category saref:Sensor, performs the saref:SensingFunction and saref:EventFunction (which notifies that a certain threshold has been exceeded), and is used for the purpose of sensing a property of type saref:Smoke."^^xsd:string ; - rdfs:label "Smoke sensor"^^xsd:string . - - -### https://w3id.org/saref#StartCommand -saref:StartCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:StartStopState - ] ; - owl:disjointWith saref:StopCommand ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Start command"^^xsd:string . - - -### https://w3id.org/saref#StartState -saref:StartState rdf:type owl:Class ; - rdfs:subClassOf saref:StartStopState ; - rdfs:comment "The state of a device that is STARTED"^^xsd:string ; - rdfs:label "Start state"^^xsd:string . - - -### https://w3id.org/saref#StartStopFunction -saref:StartStopFunction rdf:type owl:Class ; - rdfs:subClassOf saref:ActuatingFunction , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( saref:StartCommand - saref:StopCommand - ) - ] - ] ; - rdfs:comment "An actuating function that allows to start and stop a device"^^xsd:string ; - rdfs:label "Start stop function"^^xsd:string . - - -### https://w3id.org/saref#StartStopState -saref:StartStopState rdf:type owl:Class ; - rdfs:subClassOf saref:State ; - rdfs:comment "A type of state"^^xsd:string ; - rdfs:label "Start stop state"^^xsd:string . - - -### https://w3id.org/saref#State -saref:State rdf:type owl:Class ; - rdfs:comment "The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "State"^^xsd:string . - - -### https://w3id.org/saref#StepDownCommand -saref:StepDownCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:MultiLevelState - ] ; - owl:disjointWith saref:StepUpCommand ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Step down command"^^xsd:string . - - -### https://w3id.org/saref#StepUpCommand -saref:StepUpCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:MultiLevelState - ] ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Step up command"^^xsd:string . - - -### https://w3id.org/saref#StopCommand -saref:StopCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command , - [ rdf:type owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:StartStopState - ] ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Stop command"^^xsd:string . - - -### https://w3id.org/saref#StopState -saref:StopState rdf:type owl:Class ; - rdfs:subClassOf saref:StartStopState ; - rdfs:comment "The state of a device that is STOPPED"^^xsd:string ; - rdfs:label "Stop state"^^xsd:string . - - -### https://w3id.org/saref#Storage -saref:Storage rdf:type owl:Class ; - rdfs:subClassOf saref:EnergyRelated ; - rdfs:comment "A type of energy-related device that stores energy"^^xsd:string ; - rdfs:label "Storage"^^xsd:string . - - -### https://w3id.org/saref#Switch -saref:Switch rdf:type owl:Class ; - rdfs:subClassOf saref:Actuator ; - rdfs:comment "A device of category saref:Actuator that performs an actuating function of type saref:OnOffFunction or saref:OpenCloseFunction"^^xsd:string ; - rdfs:label "Switch"^^xsd:string . - - -### https://w3id.org/saref#SwitchOnService -saref:SwitchOnService rdf:type owl:Class ; - rdfs:subClassOf saref:Service , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isOfferedBy ; - owl:someValuesFrom saref:LightSwitch - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:represents ; - owl:someValuesFrom saref:OnOffFunction - ] ; - rdfs:comment "A type of service that represents an on/off function to the network"^^xsd:string ; - rdfs:label "Switch on service"^^xsd:string . - - -### https://w3id.org/saref#Task -saref:Task rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:isAccomplishedBy ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Device - ] ; - rdfs:comment "The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "Task"^^xsd:string . - - -### https://w3id.org/saref#Temperature -saref:Temperature rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin)"^^xsd:string ; - rdfs:label "Temperature"^^xsd:string . - - -### https://w3id.org/saref#TemperatureSensor -saref:TemperatureSensor rdf:type owl:Class ; - rdfs:subClassOf saref:Sensor , - [ rdf:type owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom saref:Sensor - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:SensingFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom saref:Temperature - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:Comfort - ] ; - rdfs:comment "A device that consists of a sensor, has category saref:Sensor, performs the saref:SensingFunction and is used for the purpose of sensing a property of type saref:Temperature"^^xsd:string ; - rdfs:label "Temperature sensor"^^xsd:string . - - -### https://w3id.org/saref#TemperatureUnit -saref:TemperatureUnit rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "The unit of measure for temperature"^^xsd:string ; - rdfs:label "Temperature unit"^^xsd:string . - - -### https://w3id.org/saref#Time -saref:Time rdf:type owl:Class ; - rdfs:subClassOf saref:Property , - [ rdf:type owl:Restriction ; - owl:onProperty saref:consistsOf ; - owl:someValuesFrom time:TemporalEntity - ] ; - rdfs:comment "A saref:Property that allows to specify the time concept in terms of instants or intervals according to the imported W3C Time ontology."^^xsd:string ; - rdfs:label "Time"^^xsd:string . - - -### https://w3id.org/saref#ToggleCommand -saref:ToggleCommand rdf:type owl:Class ; - rdfs:subClassOf saref:Command ; - rdfs:comment "A type of command"^^xsd:string ; - rdfs:label "Toggle command"^^xsd:string . - - -### https://w3id.org/saref#UnitOfMeasure -saref:UnitOfMeasure rdf:type owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM)."^^xsd:string ; - rdfs:isDefinedBy ; - rdfs:label "Unit of measure"^^xsd:string . - - -### https://w3id.org/saref#WashingMachine -saref:WashingMachine rdf:type owl:Class ; - rdfs:subClassOf saref:Appliance , - saref:Load , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:someValuesFrom saref:StartStopFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasProfile ; - owl:someValuesFrom saref:Profile - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasState ; - owl:someValuesFrom saref:StartStopState - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:accomplishes ; - owl:hasValue saref:Washing - ] ; - rdfs:comment "A device of category saref:Appliance and saref:Load that accomplishes the task saref:Washing, performs an actuating function of type saref:StartStopFunction, can be found in the state saref:StartStopState, and can have a saref:Profile that characterizes its energy consumption. "^^xsd:string ; - rdfs:label "Washing machine"^^xsd:string . - - -### https://w3id.org/saref#Water -saref:Water rdf:type owl:Class ; - rdfs:subClassOf saref:Commodity ; - rdfs:comment "A type of commodity"^^xsd:string ; - rdfs:label "Water"^^xsd:string . - - -################################################################# -# Individuals -################################################################# - -### http://www.wurvoc.org/vocabularies/om-1.8/United_States_dollar -om:United_States_dollar rdf:type owl:NamedIndividual , - saref:Currency ; - rdfs:label "United States dollar"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/bar -om:bar rdf:type owl:NamedIndividual , - saref:PressureUnit ; - rdfs:comment "The bar is a unit of pressure defined as 100 000 pascal."@en ; - rdfs:label "bar"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/degree_Celsius -om:degree_Celsius rdf:type owl:NamedIndividual , - saref:TemperatureUnit ; - rdfs:comment "The degree Celsius is a unit of temperature defined as 1 kelvin."@en ; - rdfs:label "degree Celsius"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/degree_Fahrenheit -om:degree_Fahrenheit rdf:type owl:NamedIndividual , - saref:TemperatureUnit ; - rdfs:comment "The degree Fahrenheit is a unit of temperature defined as 5.555556e-1 kelvin."@en ; - rdfs:label "degree Fahrenheit"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/euro -om:euro rdf:type owl:NamedIndividual , - saref:Currency ; - rdfs:label "euro"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/kelvin -om:kelvin rdf:type owl:NamedIndividual , - saref:TemperatureUnit ; - rdfs:comment "The kelvin is a unit of temperature defined as 1/273.16 of the thermodynamic temperature of the triple point of water."@en ; - rdfs:label "kelvin"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/kilowatt -om:kilowatt rdf:type owl:NamedIndividual , - saref:PowerUnit ; - rdfs:label "kilowatt"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/kilowatt_hour -om:kilowatt_hour rdf:type owl:NamedIndividual , - saref:EnergyUnit ; - rdfs:comment "The kilowatt hour is a unit of energy equal to 1,000 watt-hours, or 3.6 megajoules."^^xsd:string ; - rdfs:label "kilowatt hour"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/lux -om:lux rdf:type owl:NamedIndividual , - saref:IlluminanceUnit ; - rdfs:comment "The lux is a unit of illuminance defined as lumen divided by square metre = candela times steradian divided by square metre."@en ; - rdfs:label "lux"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/pascal -om:pascal rdf:type owl:NamedIndividual , - saref:PressureUnit ; - rdfs:comment "The pascal is a unit of pressure and stress defined as newton divided by square metre = joule divided by cubic metre = kilogram divided by metre second squared."@en ; - rdfs:label "pascal"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/pound_sterling -om:pound_sterling rdf:type owl:NamedIndividual , - saref:Currency ; - rdfs:label "Great Britain pound sterling"^^xsd:string . - - -### http://www.wurvoc.org/vocabularies/om-1.8/watt -om:watt rdf:type owl:NamedIndividual , - saref:PowerUnit ; - rdfs:comment "The watt is a unit of power defined as joule divided by second = newton times metre divided by second = volt times ampere = kilogram times square metre divided by second to the power 3."@en ; - rdfs:label "watt"^^xsd:string . - - -### https://w3id.org/saref#Cleaning -saref:Cleaning rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "Cleaning"^^xsd:string . - - -### https://w3id.org/saref#Close -saref:Close rdf:type owl:NamedIndividual , - saref:CloseCommand , - saref:CloseState ; - rdfs:comment "The value CLOSE. It is used to instantiate different classes such as the CloseCommand class and CloseState class, for example. "^^xsd:string ; - rdfs:label "Close"^^xsd:string . - - -### https://w3id.org/saref#Comfort -saref:Comfort rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "Comfort"^^xsd:string . - - -### https://w3id.org/saref#Drying -saref:Drying rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "Drying"^^xsd:string . - - -### https://w3id.org/saref#EnergyEfficiency -saref:EnergyEfficiency rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "EnergyEfficiency"^^xsd:string . - - -### https://w3id.org/saref#Entertainment -saref:Entertainment rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "Entertainment"^^xsd:string . - - -### https://w3id.org/saref#GetCurrentMeterValue -saref:GetCurrentMeterValue rdf:type owl:NamedIndividual , - saref:GetCurrentMeterValueCommand ; - rdfs:comment "The command GET CURRENT METER VALUE. It is used to instantiate the GetCurrentMeterValueCommand class. "^^xsd:string ; - rdfs:label "Get current meter value"^^xsd:string . - - -### https://w3id.org/saref#GetMeterData -saref:GetMeterData rdf:type owl:NamedIndividual , - saref:GetMeterDataCommand ; - rdfs:comment "The command GET METER DATA. It is used to instantiate the GetMeterDataCommand class. "^^xsd:string ; - rdfs:label "Get meter data"^^xsd:string . - - -### https://w3id.org/saref#GetMeterHistory -saref:GetMeterHistory rdf:type owl:NamedIndividual , - saref:GetMeterHistoryCommand ; - rdfs:comment "The command GET METER HISTORY. It is used to instantiate the GetMeterHistoryCommand class. "^^xsd:string ; - rdfs:label "Get meter history"^^xsd:string . - - -### https://w3id.org/saref#GetSensingData -saref:GetSensingData rdf:type owl:NamedIndividual , - saref:GetSensingDataCommand ; - rdfs:comment "The command GET SENSING DATA. It is used to instantiate the GetSensingDataCommand class. "^^xsd:string ; - rdfs:label "Get sensing data"^^xsd:string . - - -### https://w3id.org/saref#Lighting -saref:Lighting rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "Lighting"^^xsd:string . - - -### https://w3id.org/saref#MeterReading -saref:MeterReading rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "Meter reading"^^xsd:string . - - -### https://w3id.org/saref#Notify -saref:Notify rdf:type owl:NamedIndividual , - saref:NotifyCommand ; - rdfs:comment "The value NOTIFY. It is used to instantiate the NotifyCommand."^^xsd:string ; - rdfs:label "Notify"^^xsd:string . - - -### https://w3id.org/saref#Off -saref:Off rdf:type owl:NamedIndividual , - saref:OffCommand , - saref:OffState ; - rdfs:comment "The value OFF. It is used to instantiate different classes such as the OffCommand class and OffState class. "^^xsd:string ; - rdfs:label "Off "^^xsd:string . - - -### https://w3id.org/saref#On -saref:On rdf:type owl:NamedIndividual , - saref:OnCommand , - saref:OnState ; - rdfs:comment "The value ON. It is used to instantiate different classes such as the OnCommand class and OnState class. "^^xsd:string ; - rdfs:label "On"^^xsd:string . - - -### https://w3id.org/saref#Open -saref:Open rdf:type owl:NamedIndividual , - saref:OpenCommand , - saref:OpenState ; - rdfs:comment "The value OPEN. It is used to instantiate different classes such as the OpenCommand class and OpenState class. "^^xsd:string ; - rdfs:label "Open"^^xsd:string . - - -### https://w3id.org/saref#Pause -saref:Pause rdf:type owl:NamedIndividual , - saref:PauseCommand ; - rdfs:comment "The value PAUSE. It is used to instantiate classes such as the PauseCommand class."^^xsd:string ; - rdfs:label "Pause"^^xsd:string . - - -### https://w3id.org/saref#Safety -saref:Safety rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "Safety"^^xsd:string . - - -### https://w3id.org/saref#SetAbsoluteLevel -saref:SetAbsoluteLevel rdf:type owl:NamedIndividual , - saref:SetAbsoluteLevelCommand ; - rdfs:comment "The value SET ABSOLUTE LEVEL. It is used to instantiate classes such as the SetAbsoluteLevelCommand class. "^^xsd:string ; - rdfs:label "Set absolute level"^^xsd:string . - - -### https://w3id.org/saref#SetRelativeLevel -saref:SetRelativeLevel rdf:type owl:NamedIndividual , - saref:SetRelativeLevelCommand ; - rdfs:comment "The value SET RELATIVE LEVEL. It is used to instantiate classes such as the SetRelativeLevelCommand class. "^^xsd:string ; - rdfs:label "Set relative level"^^xsd:string . - - -### https://w3id.org/saref#Start -saref:Start rdf:type owl:NamedIndividual , - saref:StartCommand , - saref:StartState ; - rdfs:comment "The value START. It is used to instantiate different classes such as the StartCommand class and StartState class. "^^xsd:string ; - rdfs:label "Start"^^xsd:string . - - -### https://w3id.org/saref#StepDown -saref:StepDown rdf:type owl:NamedIndividual , - saref:StepDownCommand ; - rdfs:comment "The value STEP DOWN. It is used to instantiate the StepDownCommand class. "^^xsd:string ; - rdfs:label "Step down"^^xsd:string . - - -### https://w3id.org/saref#StepUp -saref:StepUp rdf:type owl:NamedIndividual , - saref:StepUpCommand ; - rdfs:comment "The value STEP UP. It is used to instantiate the StepUpCommand class. "^^xsd:string ; - rdfs:label "Step up"^^xsd:string . - - -### https://w3id.org/saref#Stop -saref:Stop rdf:type owl:NamedIndividual , - saref:StopCommand , - saref:StopState ; - rdfs:comment "The value STOP. It is used to instantiate different classes such as the StopCommand class and StopState class. "^^xsd:string ; - rdfs:label "Stop"^^xsd:string . - - -### https://w3id.org/saref#Toggle -saref:Toggle rdf:type owl:NamedIndividual , - saref:ToggleCommand ; - rdfs:comment "The value TOGGLE. It is used to instantiate the the ToggleCommand class"^^xsd:string ; - rdfs:label "Toggle"^^xsd:string . - - -### https://w3id.org/saref#Washing -saref:Washing rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "Washing"^^xsd:string . - - -### https://w3id.org/saref#WellBeing -saref:WellBeing rdf:type owl:NamedIndividual , - saref:Task ; - rdfs:comment "A type of task for which a device is designed"^^xsd:string ; - rdfs:label "WellBeing"^^xsd:string . - - -### https://w3id.org/saref#watt_hour -saref:watt_hour rdf:type owl:NamedIndividual , - saref:EnergyUnit ; - rdfs:comment "The Watt Hor is a unit of energy equivalent to one watt (1 W) of power expended for one hour (1 h) of time. An energy expenditure of 1 Wh represents 3600 joules "^^xsd:string ; - rdfs:label "watt hour"^^xsd:string . - - -### Generated by the OWL API (version 4.2.6.20160910-2108) https://github.com/owlcs/owlapi diff --git a/src/main/resources/saref-portal-generator/public/saref4agri/latest/saref4agri.html b/src/main/resources/saref-portal-generator/public/saref4agri/latest/saref4agri.html deleted file mode 100644 index 45a1069..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4agri/latest/saref4agri.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - SAREF4AGRI: an extension of SAREF for the for the agriculture and food domain

    -

    Official ETSI documentation for SAREF4AGRI v1.1.1
    This page will soon contain the documentation of the SAREF4AGRI ontology v1.1.1

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    The documentation of SAREF4AGRI v1.1.1 will be available here soon. The source of the ontology are available as Turtle or RDF/XML Visualize it with VOWL

    -
    -
    -
    -
    -

    SAREF4AGRI is an extension of SAREF for the agriculture and food domain. SAREF4AGRI is specified and published by ETSI in the TS 103 410-6 associated to this ontology file. The list of use cases, standards and requirements that guided the creation of SAREF4AGRI are described in the associated ETSI TR 103 511.

    -

    This ontology extends the SAREF ontology for the Agricultural domain. This work has been developed in the context of the STF 534 (https://portal.etsi.org/STF/STFs/STFHomePages/STF534.aspx), which was established with the goal to create three SAREF extensions, one of them for the Agricultural domain.

    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4agri/latest/saref4agri.n3 b/src/main/resources/saref-portal-generator/public/saref4agri/latest/saref4agri.n3 deleted file mode 100644 index c9e23c6..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4agri/latest/saref4agri.n3 +++ /dev/null @@ -1,939 +0,0 @@ -@prefix rdf: . -@prefix owl: . -@prefix xml: . -@prefix saref: . -@prefix xsd: . -@prefix s4agri: . -@prefix dcterms: . -@prefix rdfs: . -@prefix vann: . - -s4agri:Intake a owl:Class ; - rdfs:isDefinedBy "The amount of food or other substance taken into the body of an animal or into the soil."@en ; - rdfs:label "Intake"@en ; - rdfs:subClassOf saref:Property . - -saref:controlsProperty - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "controls property"@en . - -saref:hasTimestamp a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has timestamp"@en . - - - a owl:Class ; - rdfs:comment "A temporal entity with zero extent or duration"@en ; - rdfs:isDefinedBy ; - rdfs:label "Instant"@en ; - rdfs:subClassOf . - -s4agri:Parcel a owl:Class ; - rdfs:comment "An area of land, which might be used for grazing animals or planting crops. The parcel is defined as an undividable logical area of land which contains homogeneous items."@en ; - rdfs:label "Parcel" ; - rdfs:subClassOf ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4agri:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:contains ; - owl:someValuesFrom s4agri:Crop - ] . - - - a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "has deployment"@en . - - - a owl:ObjectProperty , owl:AnnotationProperty ; - rdfs:comment "The relation between something and the point, \r\n or other geometrical thing in space, where it is. For example, the realtionship between\r\n a radio tower and a Point with a given lat and long.\r\n Or a relationship between a park and its outline as a closed arc of points, or a road and\r\n its location as a arc (a sequence of points).\r\n Clearly in practice there will be limit to the accuracy of any such statement, but one would expect\r\n an accuracy appropriate for the size of the object and uses such as mapping .\r\n " ; - rdfs:label "location"@en ; - rdfs:subPropertyOf . - -saref:isFeatureOfInterestOf - a owl:ObjectProperty ; - rdfs:comment "Relation betwwen a feature of interest and the measurments that are about it."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "is feature of interest of"@en . - -s4agri:Yield a owl:Class ; - rdfs:isDefinedBy "The produced amount of food for animals or of agricultural products."@en ; - rdfs:label "Yield"@en ; - rdfs:subClassOf saref:Property . - - - a owl:Class ; - rdfs:comment "The class spatial-object represents everything that can have a spatial representation. It is superclass of feature and geometry."@en ; - rdfs:isDefinedBy ; - rdfs:label "SpatialObject"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom ; - owl:onProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom ; - owl:onProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom ; - owl:onProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom ; - owl:onProperty - ] . - -s4agri:hasName a owl:DatatypeProperty ; - rdfs:label "has name" , "A relation to express the name of an entity (e.g.,animal)." ; - rdfs:range xsd:string . - - - a owl:Class ; - rdfs:comment "A temporal entity with an extent or duration"@en ; - rdfs:isDefinedBy ; - rdfs:label "Time interval"@en ; - rdfs:subClassOf . - -saref:State a owl:Class ; - rdfs:comment "The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "State" . - -s4agri:WeatherStation - a owl:Class ; - rdfs:comment "A sensor o system that measure weather conditions."@en ; - rdfs:label "Weather station"@en ; - rdfs:subClassOf saref:Sensor , . - -s4agri:Animal a owl:Class ; - rdfs:comment "An individual and identifiable living organism that feeds on organic matter, typically having specialized sense organs and nervous system and able to respond rapidly to stimuli."@en ; - rdfs:label "Animal" ; - rdfs:subClassOf saref:FeatureOfInterest ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4agri:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime ; - owl:onProperty s4agri:hasBirthDate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime ; - owl:onProperty s4agri:hasDeathDate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:isMemberOf ; - owl:someValuesFrom s4agri:AnimalGroup - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:isLocatedIn ; - owl:someValuesFrom - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4agri:ID ; - owl:onProperty s4agri:hasID - ] . - - - a owl:Class ; - rdfs:label "Taxon rank"@en . - -saref:FeatureOfInterest - a owl:Class ; - rdfs:comment saref: ; - rdfs:label "Feature of interest"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:isFeatureOfInterestOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:hasProperty - ] . - - - a owl:AnnotationProperty ; - rdfs:comment "The WGS84 altitude of a SpatialThing (decimal meters above the local reference ellipsoid)." ; - rdfs:domain ; - rdfs:label "altitude" . - - - a saref:UnitOfMeasure , owl:NamedIndividual ; - rdfs:label "millivolt"@en . - -s4agri:isContainedIn a owl:ObjectProperty ; - rdfs:label "is contained in"@en . - -saref:hasModel a owl:DatatypeProperty ; - rdfs:comment "A relationship identifying the model of an entity (e.g., device)" ; - rdfs:isDefinedBy saref: ; - rdfs:label "has model" ; - rdfs:range xsd:string . - -s4agri:SoilTensiometer - a owl:Class ; - rdfs:comment "A sensor that measures the soil moisture."@en ; - rdfs:label "Soil tensiometer"@en ; - rdfs:subClassOf saref:Sensor . - - - a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "has subsystem"@en . - - - a owl:AnnotationProperty . - -saref:Temperature a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin)" ; - rdfs:label "Temperature" , "Temperature"@en ; - rdfs:subClassOf saref:Property . - -s4agri:isDeployedAtSpace - a owl:ObjectProperty ; - rdfs:comment "is deployed at space"@en , "Relation to indicate the geographical componet of a deployment."@en ; - rdfs:label "is deployed at space" . - -s4agri:Soil a owl:Class ; - rdfs:comment "Upper layer of the earth in which plants grow." ; - rdfs:label "Soil" ; - rdfs:subClassOf saref:FeatureOfInterest . - -saref:relatesToProperty - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "relates to property"@en . - - - a owl:Class ; - rdfs:comment "A Platform is an entity that hosts other entities, particularly Sensors, Actuators, Samplers, and other Platforms (definition taken from http://www.w3.org/ns/sosa/Platform)"@en ; - rdfs:isDefinedBy ; - rdfs:label "Platform"@en . - -saref:isControlledByDevice - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is controlled by device"@en . - -saref:UnitOfMeasure a owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended."@en , "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM)." ; - rdfs:isDefinedBy saref: , ; - rdfs:label "Unit of measure"@en . - -saref:hasState a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has state"@en . - -saref:isPropertyOf a owl:ObjectProperty ; - rdfs:comment "Relation between a property and a feature of interest in which such property appears."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "is property of"@en . - -s4agri:WateringGun a owl:Class ; - rdfs:comment "An actuator to irrigate an space."@en ; - rdfs:label "Watering gun"@en ; - rdfs:subClassOf saref:Actuator . - - - a owl:Class ; - rdfs:label "Person"@en ; - rdfs:subClassOf . - -saref:hasName a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has name"@en . - -s4agri:Building a owl:Class ; - rdfs:comment "A building represents a structure that provides shelter for its occupants or contents and stands in one place. The building is also used to provide a basic element within the spatial structure hierarchy for the components of a building project (together with site, storey, and space)."@en ; - rdfs:label "Building" ; - rdfs:subClassOf ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4agri:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:contains ; - owl:someValuesFrom s4agri:BuildingSpace - ] . - - - a saref:UnitOfMeasure , owl:NamedIndividual ; - rdfs:label "millimetre"@en . - -s4agri:EatingActivitySensor - a owl:Class ; - rdfs:label "Eating activity sensor"@en ; - rdfs:subClassOf saref:Sensor . - -s4agri:ID a owl:Class ; - rdfs:label "ID" . - -s4agri:IrrigationWater - a saref:Property , owl:NamedIndividual , owl:Class ; - rdfs:comment "The amount of water falling in the soil by irrigation methods." ; - rdfs:label "Irrigation water"@en ; - rdfs:subClassOf saref:Property . - - - a owl:ObjectProperty ; - rdfs:comment "Relation between a platform and the deployment(s) that takes place in the platform."@en ; - rdfs:isDefinedBy ; - rdfs:label "in deployment"@en . - - - a owl:ObjectProperty ; - rdfs:label "member"@en . - -s4agri:hasReceived a owl:ObjectProperty ; - rdfs:label "has received" ; - owl:inverseOf s4agri:receives . - -s4agri:SoilTemperature - a saref:Temperature , owl:NamedIndividual , owl:Class ; - rdfs:comment "The degree or intensity of heat present in the soil." ; - rdfs:label "Soil temperature"@en ; - rdfs:subClassOf saref:Temperature . - -s4agri: a owl:Ontology ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:contributor "Jack Verhoosel, TNO" ; - dcterms:contributor , , , , ; - dcterms:created "2019-04-15"^^xsd:date ; - dcterms:description "SAREF4AGRI is an extension of SAREF for the agriculture and food domain. SAREF4AGRI is specified and published by ETSI in the TS 103 410-6 associated to this ontology file. The list of use cases, standards and requirements that guided the creation of SAREF4AGRI are described in the associated ETSI TR 103 511. " , "This ontology extends the SAREF ontology for the Agricultural domain. This work has been developed in the context of the STF 534 (https://portal.etsi.org/STF/STFs/STFHomePages/STF534.aspx), which was established with the goal to create three SAREF extensions, one of them for the Agricultural domain."@en ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:modified "2019-05-20"^^xsd:date ; - dcterms:publisher ; - dcterms:source , ; - dcterms:title "SAREF4AGRI: an extension of SAREF for the for the agriculture and food domain" ; - vann:preferredNamespacePrefix "s4agri" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4agri#" ; - owl:versionIRI ; - owl:versionInfo "1.1.1" . - -s4agri:Pluviometer a owl:Class ; - rdfs:comment "A sensor that measures the rain fall."@en ; - rdfs:label "Pluviometer"@en ; - rdfs:subClassOf saref:Sensor . - -saref:isMeasuredByDevice - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is measured by device"@en . - -s4agri:MilkingSensor a owl:Class ; - rdfs:label "Milking sensor"@en ; - rdfs:subClassOf saref:Sensor . - -saref:Property a owl:Class ; - rdfs:comment "Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended." , "An aspect of an entity that can be observable by a sensor."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Property" , "Property"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Device ; - owl:onProperty saref:isMeasuredByDevice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Device ; - owl:onProperty saref:isControlledByDevice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:FeatureOfInterest ; - owl:onProperty saref:isPropertyOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:relatesToMeasurement - ] ; - owl:disjointWith saref:UnitOfMeasure . - -s4agri:hasDeathDate a owl:DatatypeProperty ; - rdfs:comment "A relation to express the death date of an animal." ; - rdfs:label "has death date" ; - rdfs:range xsd:dateTime . - -s4agri:isLocationOf a owl:ObjectProperty ; - rdfs:label "is location of" . - -saref:Device a owl:Class ; - rdfs:isDefinedBy saref: ; - rdfs:label "Device"@en ; - rdfs:subClassOf . - -saref:hasValue a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has value"@en . - -s4agri:Deployment a owl:Class ; - rdfs:comment "The scenario, including temporal and spatial information, in which the systems and devices are installed."@en , "Deployment"@en ; - rdfs:label "Deployment"@en ; - rdfs:subClassOf ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:isDeployedAtSpace ; - owl:someValuesFrom - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:hasDeploymentPeriod ; - owl:someValuesFrom - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom - ] . - -s4agri:generates a owl:ObjectProperty ; - rdfs:comment "A relation to represent the yield generated by a Crop." ; - rdfs:label "generates"@en ; - rdfs:subPropertyOf saref:hasProperty . - -s4agri:hasDeploymentPeriod - a owl:ObjectProperty ; - rdfs:comment "has deployment period"@en , "Relation to indicate the temporal duration or period of a deployment."@en ; - rdfs:label "has deployment period" . - -s4agri:WateringValve a owl:Class ; - rdfs:label "Watering valve"@en ; - rdfs:subClassOf saref:Actuator . - - - a owl:ObjectProperty ; - rdfs:comment "A spatial representation for a given feature."@en ; - rdfs:domain ; - rdfs:isDefinedBy ; - rdfs:label "has geometry"@en ; - rdfs:range . - - - a owl:Class ; - rdfs:label "Organization"@en ; - rdfs:subClassOf . - -s4agri:hasHarvestDate - a owl:DatatypeProperty ; - rdfs:comment "A relation to express the day the crop is harvested." ; - rdfs:label "has harvest date" ; - rdfs:range xsd:dateTime ; - rdfs:subPropertyOf owl:topDataProperty . - - - a owl:AnnotationProperty ; - rdfs:comment "The WGS84 latitude of a SpatialThing (decimal degrees)." ; - rdfs:domain ; - rdfs:label "latitude" . - -saref:hasDescription a owl:DatatypeProperty ; - rdfs:comment "A relationship providing a description of an entity (e.g., device)" ; - rdfs:isDefinedBy saref: ; - rdfs:label "has description"@en ; - rdfs:range xsd:string . - -saref:hasManufacturer - a owl:DatatypeProperty ; - rdfs:comment "A relationship identifying the manufacturer of an entity (e.g., device)" ; - rdfs:isDefinedBy saref: ; - rdfs:label "has manufacturer" ; - rdfs:range xsd:string . - - - a owl:ObjectProperty ; - rdfs:comment "Relation between a deployment and the platform(s) involved in the deployment."@en ; - rdfs:isDefinedBy ; - rdfs:label "deployed on platform"@en ; - owl:inverseOf . - -s4agri:hasMember a owl:ObjectProperty ; - rdfs:comment "A relation to represent the members of an AnimalGroup." ; - rdfs:label "has member" ; - owl:inverseOf s4agri:isMemberOf . - - - a saref:UnitOfMeasure , owl:NamedIndividual ; - rdfs:label "degree Celsius"@en . - - - a saref:UnitOfMeasure , owl:NamedIndividual ; - rdfs:label "decibel-milliwatts"@en . - -s4agri:AmbientHumidity - a saref:Humidity , owl:NamedIndividual , owl:Class ; - rdfs:comment "The amount of water vapour in the air." ; - rdfs:label "Ambient humidity"@en , "Ambient huidity"@en ; - rdfs:subClassOf saref:Humidity . - -s4agri:isLocatedIn a owl:ObjectProperty ; - rdfs:comment "A relation to express the physical location of a saref4agri entity (e.g., an animal)" ; - rdfs:label "is located in" ; - owl:inverseOf s4agri:isLocationOf . - -s4agri:Platform a owl:Class ; - rdfs:label "Platform" ; - rdfs:subClassOf . - -saref:isMeasuredIn a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is measured in"@en . - -s4agri:Precipitation a saref:Property , owl:NamedIndividual , owl:Class ; - rdfs:comment "The amount of water falling in the soil by natural process (e.g. rain)." ; - rdfs:label "Precipitation"@en ; - rdfs:subClassOf saref:Property . - -s4agri:hasID a owl:ObjectProperty ; - rdfs:comment "A relation to express the unique identifier of an animal." ; - rdfs:label "has id"@en ; - rdfs:range s4agri:ID ; - rdfs:subPropertyOf owl:topObjectProperty . - -saref:relatesToMeasurement - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "relates to measurement"@en . - -s4agri:BuildingSpace a owl:Class ; - rdfs:comment "An entity used to define the physical spaces of the building. A building space contains devices or building objects."@en ; - rdfs:label "Building space"@en ; - rdfs:subClassOf . - - - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Deployment"@en . - -s4agri:Farm a owl:Class ; - rdfs:comment "A plot of land used for the scope of farming which can contain buildings and parcels."@en ; - rdfs:label "Farm" ; - rdfs:subClassOf ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4agri:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:contains ; - owl:someValuesFrom s4agri:Parcel - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:contains ; - owl:someValuesFrom s4agri:Building - ] . - - - a owl:ObjectProperty ; - rdfs:comment "Relation between a platform and the systems it hosts."@en ; - rdfs:isDefinedBy ; - rdfs:label "host"@en ; - owl:inverseOf . - -saref:isAccomplishedBy - a owl:ObjectProperty ; - rdfs:comment "A relationship indentifying the task accomplished by a certain entity (e.g., a device)" ; - rdfs:isDefinedBy saref: ; - rdfs:label "is accomplished by" . - -saref:Task a owl:Class ; - rdfs:comment "The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "Task" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Device ; - owl:onProperty saref:isAccomplishedBy - ] . - - - a owl:ObjectProperty ; - rdfs:comment "Relation between a deployment and the system deployed."@en ; - rdfs:isDefinedBy ; - rdfs:label "deployed system"@en ; - owl:inverseOf . - -saref:hasFeatureOfInterest - a owl:ObjectProperty ; - rdfs:comment "Relation between a measurement and the feature of interest being measured."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has feature of interest"@en ; - owl:inverseOf saref:isFeatureOfInterestOf . - -saref:measurementMadeBy - a owl:ObjectProperty ; - rdfs:comment "Relation between a measurement and the device that made it."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "measurement made by"@en . - - - a owl:ObjectProperty ; - rdfs:comment "Exists if the subject SpatialObject spatially contains the object SpatialObject. DE-9IM: T*****FF*"@en ; - rdfs:domain ; - rdfs:isDefinedBy , ; - rdfs:label "contains"@en ; - rdfs:range . - - - a owl:Class ; - rdfs:label "Agent"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom - ] . - -saref:Humidity a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit" ; - rdfs:label "Humidiy"@en , "Humidity" ; - rdfs:subClassOf saref:Property . - -saref:Sensor a owl:Class ; - rdfs:isDefinedBy saref: ; - rdfs:label "Sensor"@en ; - rdfs:subClassOf saref:Device . - - - a owl:AnnotationProperty . - -s4agri:isMemberOf a owl:ObjectProperty ; - rdfs:comment "A relation to express that an animal can be part of groups." ; - rdfs:label "is member of" . - -saref:Time a owl:Class ; - rdfs:comment "A saref:Property that allows to specify the time concept in terms of instants or intervals according to the imported W3C Time ontology." ; - rdfs:label "Time" ; - rdfs:subClassOf saref:Property . - - - a owl:Class ; - rdfs:comment "System is a unit of abstraction for pieces of infrastructure that implement Procedures. A System may have components, its subsystems, which are other Systems. (Definition taken from http://www.w3.org/ns/ssn/System)"@en ; - rdfs:isDefinedBy ; - rdfs:label "System"@en . - -saref:hasCommand a owl:ObjectProperty ; - rdfs:comment "A relationship between an entity (such as a function) and a command" ; - rdfs:isDefinedBy saref: ; - rdfs:label "has command" ; - owl:inverseOf saref:isCommandOf . - - - a saref:UnitOfMeasure , owl:NamedIndividual ; - rdfs:label "millibar"@en . - - - a owl:Class ; - rdfs:comment "A point, typically described using a coordinate system relative to Earth, such as WGS84." , " \r\nUniquely identified by lat/long/alt. i.e.\r\n\r\nspaciallyIntersects(P1, P2) s4agri:- lat(P1, LAT), long(P1, LONG), alt(P1, ALT),\r\n lat(P2, LAT), long(P2, LONG), alt(P2, ALT).\r\n\r\nsameThing(P1, P2) s4agri:- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2).\r\n " ; - rdfs:isDefinedBy ; - rdfs:label "Point"@en ; - rdfs:subClassOf . - -s4agri:receives a owl:ObjectProperty ; - rdfs:comment "A relation to represent the intake/consumption of certain substances in a Crop." ; - rdfs:label "receives" ; - rdfs:subPropertyOf saref:hasProperty . - -s4agri:WateringSystem - a owl:Class ; - rdfs:label "Watering system"@en ; - rdfs:subClassOf . - -s4agri:managesFarm a owl:ObjectProperty ; - rdfs:label "manages farm"@en . - - - a owl:Class ; - rdfs:comment "A temporal interval or instant."@en ; - rdfs:isDefinedBy ; - rdfs:label "Temporal entity"@en . - -s4agri:hasPlantDate a owl:DatatypeProperty ; - rdfs:comment "A relation to express the day the crop is planted." ; - rdfs:label "has plant date" ; - rdfs:range xsd:dateTime ; - rdfs:subPropertyOf owl:topDataProperty . - -s4agri:Crop a owl:Class ; - rdfs:comment "A collection of cultivated plants that is grown on a large scale commercially, especially a cereal, fruit, or vegetable."@en ; - rdfs:label "Crop" ; - rdfs:subClassOf saref:FeatureOfInterest ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:hasPlantDate ; - owl:someValuesFrom xsd:dateTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:hasHarvestDate ; - owl:someValuesFrom xsd:dateTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:receives ; - owl:someValuesFrom s4agri:Intake - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:generates ; - owl:someValuesFrom s4agri:Yield - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom - ] . - -s4agri:WeightSensor a owl:Class ; - rdfs:label "Weight sensor"@en ; - rdfs:subClassOf saref:Sensor . - - - a owl:ObjectProperty ; - rdfs:comment "Exists if the subject SpatialObject is spatially within the object SpatialObject. DE-9IM: T*F**F***"@en ; - rdfs:domain ; - rdfs:isDefinedBy , ; - rdfs:label "within"@en ; - rdfs:range . - -s4agri:AirTemperature - a saref:Temperature , owl:NamedIndividual , owl:Class ; - rdfs:comment "The degree or intensity of heat present in the air." ; - rdfs:label "Air temperature"@en ; - rdfs:subClassOf saref:Temperature . - - - a owl:AnnotationProperty . - -saref:Function a owl:Class ; - rdfs:comment "The functionality necessary to accomplish the task for which a Device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. " ; - rdfs:label "Function" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Command ; - owl:onProperty saref:hasCommand - ] . - - - a owl:AnnotationProperty . - -saref:Command a owl:Class ; - rdfs:comment "A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "Command" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Function ; - owl:onProperty saref:isCommandOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:State ; - owl:onProperty saref:actsUpon - ] . - -saref:isCommandOf a owl:ObjectProperty ; - rdfs:comment "A relationship between a command and a function." ; - rdfs:isDefinedBy saref: ; - rdfs:label "is command of" . - - - a owl:AnnotationProperty ; - rdfs:comment "The WGS84 longitude of a SpatialThing (decimal degrees)." ; - rdfs:domain ; - rdfs:label "longitude" . - -s4agri:hasBirthDate a owl:DatatypeProperty ; - rdfs:comment "A relation to express the birth date of an animal." ; - rdfs:label "has birth date" ; - rdfs:range xsd:dateTime . - -saref:hasFunction a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the type of function of a device" ; - rdfs:isDefinedBy saref: ; - rdfs:label "has function" . - -saref:makesMeasurement - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "makes measurement"@en ; - owl:inverseOf saref:measurementMadeBy . - -s4agri:contains a owl:ObjectProperty ; - rdfs:subPropertyOf ; - owl:inverseOf s4agri:isContainedIn . - -saref:actsUpon a owl:ObjectProperty ; - rdfs:comment "A relationship between a command and a state" ; - rdfs:isDefinedBy saref: ; - rdfs:label "acts upon" . - -s4agri:SoilMoisture a saref:Property , owl:NamedIndividual , owl:Class ; - rdfs:comment "The amount of water or humidity contained in the soil." ; - rdfs:label "Soil moisture"@en ; - rdfs:subClassOf saref:Property . - -saref:accomplishes a owl:ObjectProperty ; - rdfs:comment "A relationship between a certain entity (e.g., a device) and the task it accomplishes" ; - rdfs:isDefinedBy saref: ; - rdfs:label "accomplishes" ; - owl:inverseOf saref:isAccomplishedBy . - - - a owl:ObjectProperty ; - rdfs:comment "Relation between a system and its hosting platform."@en ; - rdfs:isDefinedBy ; - rdfs:label "is hosted by"@en . - -s4agri:AnimalGroup a owl:Class ; - rdfs:comment "A collection of one or multiple animals."@en ; - rdfs:label "Animal Group" ; - rdfs:subClassOf saref:FeatureOfInterest ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4agri:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:receives ; - owl:someValuesFrom s4agri:Intake - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:isLocatedIn ; - owl:someValuesFrom - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:hasMember ; - owl:someValuesFrom s4agri:Animal - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:generates ; - owl:someValuesFrom s4agri:Yield - ] . - -s4agri:MovementActivitySensor - a owl:Class ; - rdfs:label "Movement activity sensor"@en ; - rdfs:subClassOf saref:Sensor . - - - a owl:ObjectProperty ; - rdfs:label "has taxon rank"@en . - -s4agri:Thermometer a owl:Class ; - rdfs:label "Thermometer"@en ; - rdfs:subClassOf saref:Sensor . - - - a owl:Class ; - rdfs:comment "This class represents the top-level feature type. This class is equivalent to GFI_Feature defined in ISO 19156s4agri:2011, and it is superclass of all feature types."@en ; - rdfs:isDefinedBy , ; - rdfs:label "Feature"@en ; - rdfs:subClassOf ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom ; - owl:onProperty - ] ; - owl:disjointWith . - -saref:Measurement a owl:Class ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Measurement"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasValue - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:Property ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:FeatureOfInterest ; - owl:onProperty saref:hasFeatureOfInterest - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onDataRange xsd:float ; - owl:onProperty saref:hasValue ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:relatesToProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - owl:disjointWith saref:Property , saref:UnitOfMeasure . - -xsd:date a rdfs:Datatype . - -saref:hasProperty a owl:ObjectProperty ; - rdfs:comment "Relation between a feature of interest and its properties."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has property"@en ; - owl:inverseOf saref:isPropertyOf . - -saref:Actuator a owl:Class ; - rdfs:isDefinedBy saref: ; - rdfs:label "Actuator"@en ; - rdfs:subClassOf saref:Device . - -s4agri:FarmHolding a owl:Class ; - rdfs:comment "A class to decsribe a saref4agri farm holding as subcass of an org:Organization" ; - rdfs:label "Farm holding"@en ; - rdfs:subClassOf ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4agri:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:managesFarm ; - owl:someValuesFrom s4agri:Farm - ] . - -s4agri:Farmer a owl:Class ; - rdfs:comment "A class to decsribe a saref4agri farmer as subcass of a foaf:Person" ; - rdfs:label "Farmer"@en ; - rdfs:subClassOf ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4agri:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:managesFarm ; - owl:someValuesFrom s4agri:Farm - ] . - -xsd:duration a rdfs:Datatype . - -saref:measuresProperty - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "measures property"@en . - -s4agri:PlantGrowthStage - a saref:Property , owl:NamedIndividual , owl:Class ; - rdfs:comment "The level or stage of growth of the plant." ; - rdfs:label "Plant growth stage"@en ; - rdfs:subClassOf saref:Property . - - - a owl:Class ; - rdfs:comment "The class represents the top-level geometry type. This class is equivalent to the UML class GM_Object defined in ISO 19107, and it is superclass of all geometry types."@en ; - rdfs:isDefinedBy ; - rdfs:label "Geometry"@en ; - rdfs:subClassOf . diff --git a/src/main/resources/saref-portal-generator/public/saref4agri/latest/saref4agri.rdf b/src/main/resources/saref-portal-generator/public/saref4agri/latest/saref4agri.rdf deleted file mode 100644 index fb69e13..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4agri/latest/saref4agri.rdf +++ /dev/null @@ -1,1272 +0,0 @@ - - - 2019-05-20 - 2019-06-11 - 2019-04-15 - - SAREF4AGRI: an extension of SAREF for the for the agriculture and food domain - s4agri - - - - - - - SAREF4AGRI is an extension of SAREF for the agriculture and food domain. SAREF4AGRI is specified and published by ETSI in the TS 103 410-6 associated to this ontology file. The list of use cases, standards and requirements that guided the creation of SAREF4AGRI are described in the associated ETSI TR 103 511. - Jack Verhoosel, TNO - - 1.1.1 - - - This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge. - This ontology extends the SAREF ontology for the Agricultural domain. This work has been developed in the context of the STF 534 (https://portal.etsi.org/STF/STFs/STFHomePages/STF534.aspx), which was established with the goal to create three SAREF extensions, one of them for the Agricultural domain. - https://saref.etsi.org/saref4agri# - - - - - - - - 1 - - - - - - Animal - An individual and identifiable living organism that feeds on organic matter, typically having specialized sense organs and nervous system and able to respond rapidly to stimuli. - - - - - - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - Yield - The produced amount of food for animals or of agricultural products. - - - - - - Taxon rank - - - Soil - Upper layer of the earth in which plants grow. - - - - - - Intake - The amount of food or other substance taken into the body of an animal or into the soil. - - - - - - System - - System is a unit of abstraction for pieces of infrastructure that implement Procedures. A System may have components, its subsystems, which are other Systems. (Definition taken from http://www.w3.org/ns/ssn/System) - - - Temporal entity - - A temporal interval or instant. - - - Watering system - - - - SpatialObject - - The class spatial-object represents everything that can have a spatial representation. It is superclass of feature and geometry. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Task - The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended. - - - - - - 1 - - - - - - - - - - - - - 1 - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - Measurement - Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. - - - - - - - - - - - - - - 1 - - - - - - - - Time interval - - A temporal entity with an extent or duration - - - - Platform - - A Platform is an entity that hosts other entities, particularly Sensors, Actuators, Samplers, and other Platforms (definition taken from http://www.w3.org/ns/sosa/Platform) - - - Feature - - - This class represents the top-level feature type. This class is equivalent to GFI_Feature defined in ISO 19156s4agri:2011, and it is superclass of all feature types. - - - - - - - - - - - - - - - - - Milking sensor - - - - - - Farm - A plot of land used for the scope of farming which can contain buildings and parcels. - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Watering valve - - - - - - Building - A building represents a structure that provides shelter for its occupants or contents and stands in one place. The building is also used to provide a basic element within the spatial structure hierarchy for the components of a building project (together with site, storey, and space). - - - 1 - - - - - - - - - - - - - - - - - - - Time - A saref:Property that allows to specify the time concept in terms of instants or intervals according to the imported W3C Time ontology. - - - - - - Animal Group - A collection of one or multiple animals. - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Person - - - - - - Unit of measure - - - The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called "watt". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended. - The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called "watt". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM). - - - Humidiy - Humidity - A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit - - - - - - Geometry - - The class represents the top-level geometry type. This class is equivalent to the UML class GM_Object defined in ISO 19107, and it is superclass of all geometry types. - - - - Platform - - - - Actuator - - - - - - - Instant - - A temporal entity with zero extent or duration - - - - Farm holding - A class to decsribe a saref4agri farm holding as subcass of an org:Organization - - - - - - - - - - - - - - - - - - - - - - Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended. - - - - - - - - - - - - - - - - - - - - - Property - An aspect of an entity that can be observable by a sensor. - Property - - - - - - - - - - - - - - - - - - - - - - - Function - The functionality necessary to accomplish the task for which a Device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. - - - - - - 1 - - - - - - - - Weather station - A sensor o system that measure weather conditions. - - - - - - - Movement activity sensor - - - - - - Deployment - The scenario, including temporal and spatial information, in which the systems and devices are installed. - Deployment - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Weight sensor - - - - - - Parcel - An area of land, which might be used for grazing animals or planting crops. The parcel is defined as an undividable logical area of land which contains homogeneous items. - - - - 1 - - - - - - - - - - - - - - - - - - - Thermometer - - - - - - Feature of interest - - - - - - - - - - - - - - - - - - - - Sensor - - - - - - - Farmer - A class to decsribe a saref4agri farmer as subcass of a foaf:Person - - - - - - - - - - - - - - - - - - - - Soil tensiometer - A sensor that measures the soil moisture. - - - - Building space - An entity used to define the physical spaces of the building. A building space contains devices or building objects. - - - - Pluviometer - A sensor that measures the rain fall. - - - - ID - - - Deployment - - - - Temperature - Temperature - A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin) - - - - Watering gun - An actuator to irrigate an space. - - - - State - The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended. - - - Device - - - - - Crop - A collection of cultivated plants that is grown on a large scale commercially, especially a cereal, fruit, or vegetable. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Command - A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended. - - - 1 - - - - - - - - - 1 - - - - - - - - - - - - - - - - Agent - - - - - - - - - - - Organization - - - - Eating activity sensor - - - - Point - - A point, typically described using a coordinate system relative to Earth, such as WGS84. - -Uniquely identified by lat/long/alt. i.e. - -spaciallyIntersects(P1, P2) s4agri:- lat(P1, LAT), long(P1, LONG), alt(P1, ALT), - lat(P2, LAT), long(P2, LONG), alt(P2, ALT). - -sameThing(P1, P2) s4agri:- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2). - - - - - has deployment period - has deployment period - Relation to indicate the temporal duration or period of a deployment. - - - generates - A relation to represent the yield generated by a Crop. - - - - - - location - The relation between something and the point, - or other geometrical thing in space, where it is. For example, the realtionship between - a radio tower and a Point with a given lat and long. - Or a relationship between a park and its outline as a closed arc of points, or a road and - its location as a arc (a sequence of points). - Clearly in practice there will be limit to the accuracy of any such statement, but one would expect - an accuracy appropriate for the size of the object and uses such as mapping . - - - - - - - - has taxon rank - - - is measured in - - - - manages farm - - - is contained in - - - has geometry - - A spatial representation for a given feature. - - - - - has property - - Relation between a feature of interest and its properties. - - - - - - has subsystem - - - - contains - - - Exists if the subject SpatialObject spatially contains the object SpatialObject. DE-9IM: T*****FF* - - - - - deployed system - - Relation between a deployment and the system deployed. - - - - - - has deployment - - - - measures property - - - - member - - - is member of - A relation to express that an animal can be part of groups. - - - within - - - Exists if the subject SpatialObject is spatially within the object SpatialObject. DE-9IM: T*F**F*** - - - - - is located in - A relation to express the physical location of a saref4agri entity (e.g., an animal) - - - - - - - - - - has function - - A relationship identifying the type of function of a device - - - receives - A relation to represent the intake/consumption of certain substances in a Crop. - - - - is property of - - Relation between a property and a feature of interest in which such property appears. - - - relates to measurement - - - - makes measurement - - - - - - - is deployed at space - is deployed at space - Relation to indicate the geographical componet of a deployment. - - - is location of - - - is hosted by - - Relation between a system and its hosting platform. - - - controls property - - - - deployed on platform - - Relation between a deployment and the platform(s) involved in the deployment. - - - - - - is controlled by device - - - - is measured by device - - - - measurement made by - - Relation between a measurement and the device that made it. - - - has feature of interest - - Relation between a measurement and the feature of interest being measured. - - - - - - has state - - - - is accomplished by - - A relationship indentifying the task accomplished by a certain entity (e.g., a device) - - - relates to property - - - - has id - A relation to express the unique identifier of an animal. - - - - - acts upon - - A relationship between a command and a state - - - is feature of interest of - - Relation betwwen a feature of interest and the measurments that are about it. - - - has received - - - - accomplishes - - A relationship between a certain entity (e.g., a device) and the task it accomplishes - - - - in deployment - - Relation between a platform and the deployment(s) that takes place in the platform. - - - is command of - - A relationship between a command and a function. - - - has member - A relation to represent the members of an AnimalGroup. - - - - host - - Relation between a platform and the systems it hosts. - - - - has command - - A relationship between an entity (such as a function) and a command - - - - has death date - A relation to express the death date of an animal. - - - - has manufacturer - - A relationship identifying the manufacturer of an entity (e.g., device) - - - - has plant date - A relation to express the day the crop is planted. - - - - - has value - - - - has name - - - - has harvest date - A relation to express the day the crop is harvested. - - - - - has model - - A relationship identifying the model of an entity (e.g., device) - - - - has description - - A relationship providing a description of an entity (e.g., device) - - - - has birth date - A relation to express the birth date of an animal. - - - - has timestamp - - - - has name - A relation to express the name of an entity (e.g.,animal). - - - - The amount of water vapour in the air. - Ambient humidity - Ambient huidity - - - - - - Air temperature - The degree or intensity of heat present in the air. - - - - - - degree Celsius - - - - millibar - - - - - longitude - The WGS84 longitude of a SpatialThing (decimal degrees). - - - Soil temperature - The degree or intensity of heat present in the soil. - - - - - - Plant growth stage - The level or stage of growth of the plant. - - - - - - - decibel-milliwatts - - - - The amount of water or humidity contained in the soil. - Soil moisture - - - - - - millimetre - - - - - altitude - The WGS84 altitude of a SpatialThing (decimal meters above the local reference ellipsoid). - - - Irrigation water - The amount of water falling in the soil by irrigation methods. - - - - - - - Precipitation - The amount of water falling in the soil by natural process (e.g. rain). - - - - - - - millivolt - - - - - latitude - The WGS84 latitude of a SpatialThing (decimal degrees). - - diff --git a/src/main/resources/saref-portal-generator/public/saref4agri/latest/saref4agri.ttl b/src/main/resources/saref-portal-generator/public/saref4agri/latest/saref4agri.ttl deleted file mode 100644 index 69aad4a..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4agri/latest/saref4agri.ttl +++ /dev/null @@ -1,1374 +0,0 @@ -@prefix owl: . -@prefix rdf: . -@prefix xml: . -@prefix xsd: . -@prefix rdfs: . -@prefix vann: . -@prefix dcterms: . -@prefix saref: . -@prefix s4agri: . - - a owl:Ontology ; - dcterms:title "SAREF4AGRI: an extension of SAREF for the for the agriculture and food domain"^^xsd:string ; - dcterms:created "2019-04-15"^^xsd:date ; - dcterms:modified "2019-05-20"^^xsd:date ; - dcterms:issued "2019-06-11"^^xsd:date ; - owl:versionInfo "1.1.1" ; - owl:versionIRI ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor "Jack Verhoosel, TNO"^^xsd:string ; - dcterms:contributor ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4agri#" ; - vann:preferredNamespacePrefix "s4agri" ; - dcterms:source ; - dcterms:source ; - dcterms:license ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:description "SAREF4AGRI is an extension of SAREF for the agriculture and food domain. SAREF4AGRI is specified and published by ETSI in the TS 103 410-6 associated to this ontology file. The list of use cases, standards and requirements that guided the creation of SAREF4AGRI are described in the associated ETSI TR 103 511. "^^xsd:string ; - dcterms:description "This ontology extends the SAREF ontology for the Agricultural domain. This work has been developed in the context of the STF 534 (https://portal.etsi.org/STF/STFs/STFHomePages/STF534.aspx), which was established with the goal to create three SAREF extensions, one of them for the Agricultural domain."@en ; - dcterms:publisher . -# -# -# ################################################################# -# # -# # Annotation properties -# # -# ################################################################# -# -# -# http://www.w3.org/2003/01/geo/wgs84_pos#alt - - a owl:AnnotationProperty ; - rdfs:comment "The WGS84 altitude of a SpatialThing (decimal meters above the local reference ellipsoid)." ; - rdfs:label "altitude" ; - rdfs:domain . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#lat - - a owl:AnnotationProperty ; - rdfs:comment "The WGS84 latitude of a SpatialThing (decimal degrees)." ; - rdfs:label "latitude" ; - rdfs:domain . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#location - - a owl:AnnotationProperty ; - rdfs:subPropertyOf . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#long - - a owl:AnnotationProperty ; - rdfs:comment "The WGS84 longitude of a SpatialThing (decimal degrees)." ; - rdfs:label "longitude" ; - rdfs:domain . -# -# http://www.w3.org/2004/02/skos/core#definition - - a owl:AnnotationProperty . -# -# http://www.w3.org/2004/02/skos/core#prefLabel - - a owl:AnnotationProperty . -# -# http://www.w3.org/ns/prov#hadPrimarySource - - a owl:AnnotationProperty . -# -# http://xmlns.com/foaf/0.1/based_near - - a owl:AnnotationProperty . -# -# -# -# ################################################################# -# # -# # Datatypes -# # -# ################################################################# -# -# -# http://www.w3.org/2001/XMLSchema#date - -xsd:date a rdfs:Datatype . -# -# http://www.w3.org/2001/XMLSchema#duration - -xsd:duration a rdfs:Datatype . -# -# -# -# ################################################################# -# # -# # Object Properties -# # -# ################################################################# -# -# -# http://purl.obolibrary.org/obo/TAXRANK_1000000 - - a owl:ObjectProperty ; - rdfs:label "has taxon rank"@en . -# -# http://www.opengis.net/ont/geosparql#hasGeometry - - a owl:ObjectProperty ; - rdfs:domain ; - rdfs:range ; - rdfs:comment "A spatial representation for a given feature."@en ; - rdfs:isDefinedBy ; - rdfs:label "has geometry"@en . -# -# http://www.opengis.net/ont/geosparql#sfContains - - a owl:ObjectProperty ; - rdfs:domain ; - rdfs:range ; - rdfs:comment "Exists if the subject SpatialObject spatially contains the object SpatialObject. DE-9IM: T*****FF*"@en ; - rdfs:isDefinedBy , ; - rdfs:label "contains"@en . -# -# http://www.opengis.net/ont/geosparql#sfWithin - - a owl:ObjectProperty ; - rdfs:domain ; - rdfs:range ; - rdfs:comment "Exists if the subject SpatialObject is spatially within the object SpatialObject. DE-9IM: T*F**F***"@en ; - rdfs:isDefinedBy , ; - rdfs:label "within"@en . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#location - - a owl:ObjectProperty . -# -# http://www.w3.org/ns/sosa/hosts - - a owl:ObjectProperty ; - owl:inverseOf ; - rdfs:comment "Relation between a platform and the systems it hosts."@en ; - rdfs:isDefinedBy ; - rdfs:label "host"@en . -# -# http://www.w3.org/ns/sosa/isHostedBy - - a owl:ObjectProperty ; - rdfs:comment "Relation between a system and its hosting platform."@en ; - rdfs:isDefinedBy ; - rdfs:label "is hosted by"@en . -# -# http://www.w3.org/ns/ssn/deployedOnPlatform - - a owl:ObjectProperty ; - owl:inverseOf ; - rdfs:comment "Relation between a deployment and the platform(s) involved in the deployment."@en ; - rdfs:isDefinedBy ; - rdfs:label "deployed on platform"@en . -# -# http://www.w3.org/ns/ssn/deployedSystem - - a owl:ObjectProperty ; - owl:inverseOf ; - rdfs:comment "Relation between a deployment and the system deployed."@en ; - rdfs:isDefinedBy ; - rdfs:label "deployed system"@en . -# -# http://www.w3.org/ns/ssn/hasDeployment - - a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "has deployment"@en . -# -# http://www.w3.org/ns/ssn/hasSubSystem - - a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "has subsystem"@en . -# -# http://www.w3.org/ns/ssn/inDeployment - - a owl:ObjectProperty ; - rdfs:comment "Relation between a platform and the deployment(s) that takes place in the platform."@en ; - rdfs:isDefinedBy ; - rdfs:label "in deployment"@en . -# -# http://xmlns.com/foaf/0.1/member - - a owl:ObjectProperty ; - rdfs:label "member"@en . -# -# https://saref.etsi.org/saref4agri#contains - -s4agri:contains a owl:ObjectProperty ; - rdfs:subPropertyOf ; - owl:inverseOf s4agri:isContainedIn . -# -# https://saref.etsi.org/saref4agri#generates - -s4agri:generates a owl:ObjectProperty ; - rdfs:subPropertyOf saref:hasProperty ; - rdfs:comment "A relation to represent the yield generated by a Crop." ; - rdfs:label "generates"@en . -# -# https://saref.etsi.org/saref4agri#hasDeploymentPeriod - -s4agri:hasDeploymentPeriod a owl:ObjectProperty ; - rdfs:comment "Relation to indicate the temporal duration or period of a deployment."@en , "has deployment period"@en ; - rdfs:label "has deployment period"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#hasID - -s4agri:hasID a owl:ObjectProperty ; - rdfs:subPropertyOf owl:topObjectProperty ; - rdfs:range s4agri:ID ; - rdfs:comment "A relation to express the unique identifier of an animal." ; - rdfs:label "has id"@en . -# -# https://saref.etsi.org/saref4agri#hasMember - -s4agri:hasMember a owl:ObjectProperty ; - owl:inverseOf s4agri:isMemberOf ; - rdfs:comment "A relation to represent the members of an AnimalGroup." ; - rdfs:label "has member"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#hasReceived - -s4agri:hasReceived a owl:ObjectProperty ; - owl:inverseOf s4agri:receives ; - rdfs:label "has received"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#isContainedIn - -s4agri:isContainedIn a owl:ObjectProperty ; - rdfs:label "is contained in"@en . -# -# https://saref.etsi.org/saref4agri#isDeployedAtSpace - -s4agri:isDeployedAtSpace a owl:ObjectProperty ; - rdfs:comment "Relation to indicate the geographical componet of a deployment."@en , "is deployed at space"@en ; - rdfs:label "is deployed at space"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#isLocatedIn - -s4agri:isLocatedIn a owl:ObjectProperty ; - owl:inverseOf s4agri:isLocationOf ; - rdfs:comment "A relation to express the physical location of a saref4agri entity (e.g., an animal)" ; - rdfs:label "is located in"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#isLocationOf - -s4agri:isLocationOf a owl:ObjectProperty ; - rdfs:label "is location of"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#isMemberOf - -s4agri:isMemberOf a owl:ObjectProperty ; - rdfs:comment "A relation to express that an animal can be part of groups." ; - rdfs:label "is member of"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#managesFarm - -s4agri:managesFarm a owl:ObjectProperty ; - rdfs:label "manages farm"@en . -# -# https://saref.etsi.org/saref4agri#receives - -s4agri:receives a owl:ObjectProperty ; - rdfs:subPropertyOf saref:hasProperty ; - rdfs:comment "A relation to represent the intake/consumption of certain substances in a Crop." ; - rdfs:label "receives"^^xsd:string . -# -# https://w3id.org/saref#accomplishes - -saref:accomplishes a owl:ObjectProperty ; - owl:inverseOf saref:isAccomplishedBy ; - rdfs:comment "A relationship between a certain entity (e.g., a device) and the task it accomplishes"^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "accomplishes"^^xsd:string . -# -# https://w3id.org/saref#actsUpon - -saref:actsUpon a owl:ObjectProperty ; - rdfs:comment "A relationship between a command and a state"^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "acts upon"^^xsd:string . -# -# https://w3id.org/saref#controlsProperty - -saref:controlsProperty a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "controls property"@en . -# -# https://w3id.org/saref#hasCommand - -saref:hasCommand a owl:ObjectProperty ; - owl:inverseOf saref:isCommandOf ; - rdfs:comment "A relationship between an entity (such as a function) and a command"^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "has command"^^xsd:string . -# -# https://w3id.org/saref#hasFeatureOfInterest - -saref:hasFeatureOfInterest a owl:ObjectProperty ; - owl:inverseOf saref:isFeatureOfInterestOf ; - rdfs:comment "Relation between a measurement and the feature of interest being measured."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has feature of interest"@en . -# -# https://w3id.org/saref#hasFunction - -saref:hasFunction a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the type of function of a device"^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "has function"^^xsd:string . -# -# https://w3id.org/saref#hasProperty - -saref:hasProperty a owl:ObjectProperty ; - owl:inverseOf saref:isPropertyOf ; - rdfs:comment "Relation between a feature of interest and its properties."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has property"@en . -# -# https://w3id.org/saref#hasState - -saref:hasState a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has state"@en . -# -# https://w3id.org/saref#isAccomplishedBy - -saref:isAccomplishedBy a owl:ObjectProperty ; - rdfs:comment "A relationship indentifying the task accomplished by a certain entity (e.g., a device)"^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "is accomplished by"^^xsd:string . -# -# https://w3id.org/saref#isCommandOf - -saref:isCommandOf a owl:ObjectProperty ; - rdfs:comment "A relationship between a command and a function."^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "is command of"^^xsd:string . -# -# https://w3id.org/saref#isControlledByDevice - -saref:isControlledByDevice a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is controlled by device"@en . -# -# https://w3id.org/saref#isFeatureOfInterestOf - -saref:isFeatureOfInterestOf a owl:ObjectProperty ; - rdfs:comment "Relation betwwen a feature of interest and the measurments that are about it."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "is feature of interest of"@en . -# -# https://w3id.org/saref#isMeasuredByDevice - -saref:isMeasuredByDevice a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is measured by device"@en . -# -# https://w3id.org/saref#isMeasuredIn - -saref:isMeasuredIn a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is measured in"@en . -# -# https://w3id.org/saref#isPropertyOf - -saref:isPropertyOf a owl:ObjectProperty ; - rdfs:comment "Relation between a property and a feature of interest in which such property appears."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "is property of"@en . -# -# https://w3id.org/saref#makesMeasurement - -saref:makesMeasurement a owl:ObjectProperty ; - owl:inverseOf saref:measurementMadeBy ; - rdfs:isDefinedBy saref: ; - rdfs:label "makes measurement"@en . -# -# https://w3id.org/saref#measurementMadeBy - -saref:measurementMadeBy a owl:ObjectProperty ; - rdfs:comment "Relation between a measurement and the device that made it."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "measurement made by"@en . -# -# https://w3id.org/saref#measuresProperty - -saref:measuresProperty a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "measures property"@en . -# -# https://w3id.org/saref#relatesToMeasurement - -saref:relatesToMeasurement a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "relates to measurement"@en . -# -# https://w3id.org/saref#relatesToProperty - -saref:relatesToProperty a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "relates to property"@en . -# -# -# -# ################################################################# -# # -# # Data properties -# # -# ################################################################# -# -# -# https://saref.etsi.org/saref4agri#hasBirthDate - -s4agri:hasBirthDate a owl:DatatypeProperty ; - rdfs:range xsd:dateTime ; - rdfs:comment "A relation to express the birth date of an animal." ; - rdfs:label "has birth date"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#hasDeathDate - -s4agri:hasDeathDate a owl:DatatypeProperty ; - rdfs:range xsd:dateTime ; - rdfs:comment "A relation to express the death date of an animal." ; - rdfs:label "has death date"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#hasHarvestDate - -s4agri:hasHarvestDate a owl:DatatypeProperty ; - rdfs:subPropertyOf owl:topDataProperty ; - rdfs:range xsd:dateTime ; - rdfs:comment "A relation to express the day the crop is harvested." ; - rdfs:label "has harvest date" . -# -# https://saref.etsi.org/saref4agri#hasName - -s4agri:hasName a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:label "A relation to express the name of an entity (e.g.,animal)." , "has name" . -# -# https://saref.etsi.org/saref4agri#hasPlantDate - -s4agri:hasPlantDate a owl:DatatypeProperty ; - rdfs:subPropertyOf owl:topDataProperty ; - rdfs:range xsd:dateTime ; - rdfs:comment "A relation to express the day the crop is planted." ; - rdfs:label "has plant date" . -# -# https://w3id.org/saref#hasDescription - -saref:hasDescription a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship providing a description of an entity (e.g., device)"^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "has description"@en . -# -# https://w3id.org/saref#hasManufacturer - -saref:hasManufacturer a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship identifying the manufacturer of an entity (e.g., device)"^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "has manufacturer"^^xsd:string . -# -# https://w3id.org/saref#hasModel - -saref:hasModel a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship identifying the model of an entity (e.g., device)"^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "has model"^^xsd:string . -# -# https://w3id.org/saref#hasName - -saref:hasName a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has name"@en . -# -# https://w3id.org/saref#hasTimestamp - -saref:hasTimestamp a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has timestamp"@en . -# -# https://w3id.org/saref#hasValue - -saref:hasValue a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has value"@en . -# -# -# -# ################################################################# -# # -# # Classes -# # -# ################################################################# -# -# -# http://purl.obolibrary.org/obo/TAXRANK_0000000 - - a owl:Class ; - rdfs:label "Taxon rank"@en . -# -# http://www.opengis.net/ont/geosparql#Feature - - a owl:Class ; - rdfs:subClassOf , _:genid1 . - -_:genid1 a owl:Restriction ; - owl:onProperty ; - owl:allValuesFrom . - - owl:disjointWith ; - rdfs:comment "This class represents the top-level feature type. This class is equivalent to GFI_Feature defined in ISO 19156s4agri:2011, and it is superclass of all feature types."@en ; - rdfs:isDefinedBy , ; - rdfs:label "Feature"@en . -# -# http://www.opengis.net/ont/geosparql#Geometry - - a owl:Class ; - rdfs:subClassOf ; - rdfs:comment "The class represents the top-level geometry type. This class is equivalent to the UML class GM_Object defined in ISO 19107, and it is superclass of all geometry types."@en ; - rdfs:isDefinedBy ; - rdfs:label "Geometry"@en . -# -# http://www.opengis.net/ont/geosparql#SpatialObject - - a owl:Class ; - rdfs:subClassOf _:genid2 . - -_:genid2 a owl:Restriction ; - owl:onProperty ; - owl:allValuesFrom . - - rdfs:subClassOf _:genid3 . - -_:genid3 a owl:Restriction ; - owl:onProperty ; - owl:allValuesFrom . - - rdfs:subClassOf _:genid4 . - -_:genid4 a owl:Restriction ; - owl:onProperty ; - owl:allValuesFrom . - - rdfs:subClassOf _:genid5 . - -_:genid5 a owl:Restriction ; - owl:onProperty ; - owl:allValuesFrom . - - rdfs:comment "The class spatial-object represents everything that can have a spatial representation. It is superclass of feature and geometry."@en ; - rdfs:isDefinedBy ; - rdfs:label "SpatialObject"@en . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#Point - - a owl:Class ; - rdfs:subClassOf ; - rdfs:comment """ -Uniquely identified by lat/long/alt. i.e. - -spaciallyIntersects(P1, P2) s4agri:- lat(P1, LAT), long(P1, LONG), alt(P1, ALT), - lat(P2, LAT), long(P2, LONG), alt(P2, ALT). - -sameThing(P1, P2) s4agri:- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2). - """ , "A point, typically described using a coordinate system relative to Earth, such as WGS84." ; - rdfs:isDefinedBy ; - rdfs:label "Point"@en . -# -# http://www.w3.org/2006/time#Instant - - a owl:Class ; - rdfs:subClassOf ; - rdfs:comment "A temporal entity with zero extent or duration"@en ; - rdfs:isDefinedBy ; - rdfs:label "Instant"@en . -# -# http://www.w3.org/2006/time#Interval - - a owl:Class ; - rdfs:subClassOf ; - rdfs:comment "A temporal entity with an extent or duration"@en ; - rdfs:isDefinedBy ; - rdfs:label "Time interval"@en . -# -# http://www.w3.org/2006/time#TemporalEntity - - a owl:Class ; - rdfs:comment "A temporal interval or instant."@en ; - rdfs:isDefinedBy ; - rdfs:label "Temporal entity"@en . -# -# http://www.w3.org/ns/sosa/Platform - - a owl:Class ; - rdfs:comment "A Platform is an entity that hosts other entities, particularly Sensors, Actuators, Samplers, and other Platforms (definition taken from http://www.w3.org/ns/sosa/Platform)"@en ; - rdfs:isDefinedBy ; - rdfs:label "Platform"@en . -# -# http://www.w3.org/ns/ssn/Deployment - - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Deployment"@en . -# -# http://www.w3.org/ns/ssn/System - - a owl:Class ; - rdfs:comment "System is a unit of abstraction for pieces of infrastructure that implement Procedures. A System may have components, its subsystems, which are other Systems. (Definition taken from http://www.w3.org/ns/ssn/System)"@en ; - rdfs:isDefinedBy ; - rdfs:label "System"@en . -# -# http://xmlns.com/foaf/0.1/Agent - - a owl:Class ; - rdfs:subClassOf _:genid6 . - -_:genid6 a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom . - - rdfs:label "Agent"@en . -# -# http://xmlns.com/foaf/0.1/Person - - a owl:Class ; - rdfs:subClassOf ; - rdfs:label "Person"@en . -# -# https://schema.org/Organization - - a owl:Class ; - rdfs:subClassOf ; - rdfs:label "Organization"@en . -# -# https://saref.etsi.org/saref4agri#AirTemperature - -s4agri:AirTemperature a owl:Class ; - rdfs:subClassOf saref:Temperature . -# -# https://saref.etsi.org/saref4agri#AmbientHumidity - -s4agri:AmbientHumidity a owl:Class ; - rdfs:subClassOf saref:Humidity . -# -# https://saref.etsi.org/saref4agri#Animal - -s4agri:Animal a owl:Class ; - rdfs:subClassOf saref:FeatureOfInterest , _:genid7 . - -_:genid7 a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom . - -s4agri:Animal rdfs:subClassOf _:genid8 . - -_:genid8 a owl:Restriction ; - owl:onProperty s4agri:isLocatedIn ; - owl:someValuesFrom . - -s4agri:Animal rdfs:subClassOf _:genid9 . - -_:genid9 a owl:Restriction ; - owl:onProperty s4agri:isMemberOf ; - owl:someValuesFrom s4agri:AnimalGroup . - -s4agri:Animal rdfs:subClassOf _:genid10 . - -_:genid10 a owl:Restriction ; - owl:onProperty s4agri:hasID ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4agri:ID . - -s4agri:Animal rdfs:subClassOf _:genid11 . - -_:genid11 a owl:Restriction ; - owl:onProperty s4agri:hasBirthDate ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime . - -s4agri:Animal rdfs:subClassOf _:genid12 . - -_:genid12 a owl:Restriction ; - owl:onProperty s4agri:hasDeathDate ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime . - -s4agri:Animal rdfs:subClassOf _:genid13 . - -_:genid13 a owl:Restriction ; - owl:onProperty s4agri:hasName ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string . - -s4agri:Animal rdfs:comment "An individual and identifiable living organism that feeds on organic matter, typically having specialized sense organs and nervous system and able to respond rapidly to stimuli."@en ; - rdfs:label "Animal"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#AnimalGroup - -s4agri:AnimalGroup a owl:Class ; - rdfs:subClassOf saref:FeatureOfInterest , _:genid14 . - -_:genid14 a owl:Restriction ; - owl:onProperty s4agri:generates ; - owl:someValuesFrom s4agri:Yield . - -s4agri:AnimalGroup rdfs:subClassOf _:genid15 . - -_:genid15 a owl:Restriction ; - owl:onProperty s4agri:hasMember ; - owl:someValuesFrom s4agri:Animal . - -s4agri:AnimalGroup rdfs:subClassOf _:genid16 . - -_:genid16 a owl:Restriction ; - owl:onProperty s4agri:isLocatedIn ; - owl:someValuesFrom . - -s4agri:AnimalGroup rdfs:subClassOf _:genid17 . - -_:genid17 a owl:Restriction ; - owl:onProperty s4agri:receives ; - owl:someValuesFrom s4agri:Intake . - -s4agri:AnimalGroup rdfs:subClassOf _:genid18 . - -_:genid18 a owl:Restriction ; - owl:onProperty s4agri:hasName ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string . - -s4agri:AnimalGroup rdfs:comment "A collection of one or multiple animals."@en ; - rdfs:label "Animal Group"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#Building - -s4agri:Building a owl:Class ; - rdfs:subClassOf , _:genid19 . - -_:genid19 a owl:Restriction ; - owl:onProperty s4agri:contains ; - owl:someValuesFrom s4agri:BuildingSpace . - -s4agri:Building rdfs:subClassOf _:genid20 . - -_:genid20 a owl:Restriction ; - owl:onProperty s4agri:hasName ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger . - -s4agri:Building rdfs:comment "A building represents a structure that provides shelter for its occupants or contents and stands in one place. The building is also used to provide a basic element within the spatial structure hierarchy for the components of a building project (together with site, storey, and space)."@en ; - rdfs:label "Building"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#BuildingSpace - -s4agri:BuildingSpace a owl:Class ; - rdfs:subClassOf ; - rdfs:comment "An entity used to define the physical spaces of the building. A building space contains devices or building objects."@en ; - rdfs:label "Building space"@en . -# -# https://saref.etsi.org/saref4agri#Crop - -s4agri:Crop a owl:Class ; - rdfs:subClassOf saref:FeatureOfInterest , _:genid21 . - -_:genid21 a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom . - -s4agri:Crop rdfs:subClassOf _:genid22 . - -_:genid22 a owl:Restriction ; - owl:onProperty s4agri:generates ; - owl:someValuesFrom s4agri:Yield . - -s4agri:Crop rdfs:subClassOf _:genid23 . - -_:genid23 a owl:Restriction ; - owl:onProperty s4agri:receives ; - owl:someValuesFrom s4agri:Intake . - -s4agri:Crop rdfs:subClassOf _:genid24 . - -_:genid24 a owl:Restriction ; - owl:onProperty s4agri:hasHarvestDate ; - owl:someValuesFrom xsd:dateTime . - -s4agri:Crop rdfs:subClassOf _:genid25 . - -_:genid25 a owl:Restriction ; - owl:onProperty s4agri:hasPlantDate ; - owl:someValuesFrom xsd:dateTime . - -s4agri:Crop rdfs:comment "A collection of cultivated plants that is grown on a large scale commercially, especially a cereal, fruit, or vegetable."@en ; - rdfs:label "Crop"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#Deployment - -s4agri:Deployment a owl:Class ; - rdfs:subClassOf , _:genid26 . - -_:genid26 a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom . - -s4agri:Deployment rdfs:subClassOf _:genid27 . - -_:genid27 a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom . - -s4agri:Deployment rdfs:subClassOf _:genid28 . - -_:genid28 a owl:Restriction ; - owl:onProperty s4agri:hasDeploymentPeriod ; - owl:someValuesFrom . - -s4agri:Deployment rdfs:subClassOf _:genid29 . - -_:genid29 a owl:Restriction ; - owl:onProperty s4agri:isDeployedAtSpace ; - owl:someValuesFrom . - -s4agri:Deployment rdfs:comment "Deployment"@en , "The scenario, including temporal and spatial information, in which the systems and devices are installed."@en ; - rdfs:label "Deployment"@en . -# -# https://saref.etsi.org/saref4agri#EatingActivitySensor - -s4agri:EatingActivitySensor a owl:Class ; - rdfs:subClassOf saref:Sensor ; - rdfs:label "Eating activity sensor"@en . -# -# https://saref.etsi.org/saref4agri#Farm - -s4agri:Farm a owl:Class ; - rdfs:subClassOf , _:genid30 . - -_:genid30 a owl:Restriction ; - owl:onProperty s4agri:contains ; - owl:someValuesFrom s4agri:Building . - -s4agri:Farm rdfs:subClassOf _:genid31 . - -_:genid31 a owl:Restriction ; - owl:onProperty s4agri:contains ; - owl:someValuesFrom s4agri:Parcel . - -s4agri:Farm rdfs:subClassOf _:genid32 . - -_:genid32 a owl:Restriction ; - owl:onProperty s4agri:hasName ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger . - -s4agri:Farm rdfs:comment "A plot of land used for the scope of farming which can contain buildings and parcels."@en ; - rdfs:label "Farm"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#FarmHolding - -s4agri:FarmHolding a owl:Class ; - rdfs:subClassOf , _:genid33 . - -_:genid33 a owl:Restriction ; - owl:onProperty s4agri:managesFarm ; - owl:someValuesFrom s4agri:Farm . - -s4agri:FarmHolding rdfs:subClassOf _:genid34 . - -_:genid34 a owl:Restriction ; - owl:onProperty s4agri:hasName ; - owl:allValuesFrom xsd:string . - -s4agri:FarmHolding rdfs:comment "A class to decsribe a saref4agri farm holding as subcass of an org:Organization" ; - rdfs:label "Farm holding"@en . -# -# https://saref.etsi.org/saref4agri#Farmer - -s4agri:Farmer a owl:Class ; - rdfs:subClassOf , _:genid35 . - -_:genid35 a owl:Restriction ; - owl:onProperty s4agri:managesFarm ; - owl:someValuesFrom s4agri:Farm . - -s4agri:Farmer rdfs:subClassOf _:genid36 . - -_:genid36 a owl:Restriction ; - owl:onProperty s4agri:hasName ; - owl:allValuesFrom xsd:string . - -s4agri:Farmer rdfs:comment "A class to decsribe a saref4agri farmer as subcass of a foaf:Person" ; - rdfs:label "Farmer"@en . -# -# https://saref.etsi.org/saref4agri#ID - -s4agri:ID a owl:Class ; - rdfs:label "ID"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#Intake - -s4agri:Intake a owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:isDefinedBy "The amount of food or other substance taken into the body of an animal or into the soil."@en ; - rdfs:label "Intake"@en . -# -# https://saref.etsi.org/saref4agri#IrrigationWater - -s4agri:IrrigationWater a owl:Class ; - rdfs:subClassOf saref:Property . -# -# https://saref.etsi.org/saref4agri#MilkingSensor - -s4agri:MilkingSensor a owl:Class ; - rdfs:subClassOf saref:Sensor ; - rdfs:label "Milking sensor"@en . -# -# https://saref.etsi.org/saref4agri#MovementActivitySensor - -s4agri:MovementActivitySensor a owl:Class ; - rdfs:subClassOf saref:Sensor ; - rdfs:label "Movement activity sensor"@en . -# -# https://saref.etsi.org/saref4agri#Parcel - -s4agri:Parcel a owl:Class ; - rdfs:subClassOf , _:genid37 . - -_:genid37 a owl:Restriction ; - owl:onProperty s4agri:contains ; - owl:someValuesFrom s4agri:Crop . - -s4agri:Parcel rdfs:subClassOf _:genid38 . - -_:genid38 a owl:Restriction ; - owl:onProperty s4agri:hasName ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string . - -s4agri:Parcel rdfs:comment "An area of land, which might be used for grazing animals or planting crops. The parcel is defined as an undividable logical area of land which contains homogeneous items."@en ; - rdfs:label "Parcel"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#PlantGrowthStage - -s4agri:PlantGrowthStage a owl:Class ; - rdfs:subClassOf saref:Property . -# -# https://saref.etsi.org/saref4agri#Platform - -s4agri:Platform a owl:Class ; - rdfs:subClassOf ; - rdfs:label "Platform"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#Pluviometer - -s4agri:Pluviometer a owl:Class ; - rdfs:subClassOf saref:Sensor ; - rdfs:comment "A sensor that measures the rain fall."@en ; - rdfs:label "Pluviometer"@en . -# -# https://saref.etsi.org/saref4agri#Precipitation - -s4agri:Precipitation a owl:Class ; - rdfs:subClassOf saref:Property . -# -# https://saref.etsi.org/saref4agri#Soil - -s4agri:Soil a owl:Class ; - rdfs:subClassOf saref:FeatureOfInterest ; - rdfs:comment "Upper layer of the earth in which plants grow." ; - rdfs:label "Soil" . -# -# https://saref.etsi.org/saref4agri#SoilMoisture - -s4agri:SoilMoisture a owl:Class ; - rdfs:subClassOf saref:Property . -# -# https://saref.etsi.org/saref4agri#SoilTemperature - -s4agri:SoilTemperature a owl:Class ; - rdfs:subClassOf saref:Temperature . -# -# https://saref.etsi.org/saref4agri#SoilTensiometer - -s4agri:SoilTensiometer a owl:Class ; - rdfs:subClassOf saref:Sensor ; - rdfs:comment "A sensor that measures the soil moisture."@en ; - rdfs:label "Soil tensiometer"@en . -# -# https://saref.etsi.org/saref4agri#Thermometer - -s4agri:Thermometer a owl:Class ; - rdfs:subClassOf saref:Sensor ; - rdfs:label "Thermometer"@en . -# -# https://saref.etsi.org/saref4agri#WateringGun - -s4agri:WateringGun a owl:Class ; - rdfs:subClassOf saref:Actuator ; - rdfs:comment "An actuator to irrigate an space."@en ; - rdfs:label "Watering gun"@en . -# -# https://saref.etsi.org/saref4agri#WateringSystem - -s4agri:WateringSystem a owl:Class ; - rdfs:subClassOf ; - rdfs:label "Watering system"@en . -# -# https://saref.etsi.org/saref4agri#WateringValve - -s4agri:WateringValve a owl:Class ; - rdfs:subClassOf saref:Actuator ; - rdfs:label "Watering valve"@en . -# -# https://saref.etsi.org/saref4agri#WeatherStation - -s4agri:WeatherStation a owl:Class ; - rdfs:subClassOf , saref:Sensor ; - rdfs:comment "A sensor o system that measure weather conditions."@en ; - rdfs:label "Weather station"@en . -# -# https://saref.etsi.org/saref4agri#WeightSensor - -s4agri:WeightSensor a owl:Class ; - rdfs:subClassOf saref:Sensor ; - rdfs:label "Weight sensor"@en . -# -# https://saref.etsi.org/saref4agri#Yield - -s4agri:Yield a owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:isDefinedBy "The produced amount of food for animals or of agricultural products."@en ; - rdfs:label "Yield"@en . -# -# https://w3id.org/saref#Actuator - -saref:Actuator a owl:Class ; - rdfs:subClassOf saref:Device ; - rdfs:isDefinedBy saref: ; - rdfs:label "Actuator"@en . -# -# https://w3id.org/saref#Command - -saref:Command a owl:Class ; - rdfs:subClassOf _:genid39 . - -_:genid39 a owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:State . - -saref:Command rdfs:subClassOf _:genid40 . - -_:genid40 a owl:Restriction ; - owl:onProperty saref:isCommandOf ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Function . - -saref:Command rdfs:subClassOf _:genid41 . - -_:genid41 a owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger . - -saref:Command rdfs:comment "A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "Command"^^xsd:string . -# -# https://w3id.org/saref#Device - -saref:Device a owl:Class ; - rdfs:subClassOf ; - rdfs:isDefinedBy saref: ; - rdfs:label "Device"@en . -# -# https://w3id.org/saref#FeatureOfInterest - -saref:FeatureOfInterest a owl:Class ; - rdfs:subClassOf _:genid42 . - -_:genid42 a owl:Restriction ; - owl:onProperty saref:hasProperty ; - owl:allValuesFrom saref:Property . - -saref:FeatureOfInterest rdfs:subClassOf _:genid43 . - -_:genid43 a owl:Restriction ; - owl:onProperty saref:isFeatureOfInterestOf ; - owl:allValuesFrom saref:Measurement . - -saref:FeatureOfInterest rdfs:comment saref: ; - rdfs:label "Feature of interest"@en . -# -# https://w3id.org/saref#Function - -saref:Function a owl:Class ; - rdfs:subClassOf _:genid44 . - -_:genid44 a owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Command . - -saref:Function rdfs:comment "The functionality necessary to accomplish the task for which a Device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. "^^xsd:string ; - rdfs:label "Function"^^xsd:string . -# -# https://w3id.org/saref#Humidity - -saref:Humidity a owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit"^^xsd:string ; - rdfs:label "Humidity"^^xsd:string , "Humidiy"@en . -# -# https://w3id.org/saref#Measurement - -saref:Measurement a owl:Class ; - rdfs:subClassOf _:genid45 . - -_:genid45 a owl:Restriction ; - owl:onProperty saref:hasFeatureOfInterest ; - owl:allValuesFrom saref:FeatureOfInterest . - -saref:Measurement rdfs:subClassOf _:genid46 . - -_:genid46 a owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:allValuesFrom saref:UnitOfMeasure . - -saref:Measurement rdfs:subClassOf _:genid47 . - -_:genid47 a owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:allValuesFrom saref:Property . - -saref:Measurement rdfs:subClassOf _:genid48 . - -_:genid48 a owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:UnitOfMeasure . - -saref:Measurement rdfs:subClassOf _:genid49 . - -_:genid49 a owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Property . - -saref:Measurement rdfs:subClassOf _:genid50 . - -_:genid50 a owl:Restriction ; - owl:onProperty saref:hasTimestamp ; - owl:allValuesFrom xsd:dateTime . - -saref:Measurement rdfs:subClassOf _:genid51 . - -_:genid51 a owl:Restriction ; - owl:onProperty saref:hasValue ; - owl:cardinality "1"^^xsd:nonNegativeInteger . - -saref:Measurement rdfs:subClassOf _:genid52 . - -_:genid52 a owl:Restriction ; - owl:onProperty saref:hasValue ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:float . - -saref:Measurement owl:disjointWith saref:Property , saref:UnitOfMeasure ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Measurement"@en . -# -# https://w3id.org/saref#Property - -saref:Property a owl:Class ; - rdfs:subClassOf _:genid53 . - -_:genid53 a owl:Restriction ; - owl:onProperty saref:isControlledByDevice ; - owl:allValuesFrom saref:Device . - -saref:Property rdfs:subClassOf _:genid54 . - -_:genid54 a owl:Restriction ; - owl:onProperty saref:isMeasuredByDevice ; - owl:allValuesFrom saref:Device . - -saref:Property rdfs:subClassOf _:genid55 . - -_:genid55 a owl:Restriction ; - owl:onProperty saref:isPropertyOf ; - owl:allValuesFrom saref:FeatureOfInterest . - -saref:Property rdfs:subClassOf _:genid56 . - -_:genid56 a owl:Restriction ; - owl:onProperty saref:relatesToMeasurement ; - owl:allValuesFrom saref:Measurement . - -saref:Property owl:disjointWith saref:UnitOfMeasure ; - rdfs:comment "An aspect of an entity that can be observable by a sensor."@en , "Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "Property"@en , "Property"^^xsd:string . -# -# https://w3id.org/saref#Sensor - -saref:Sensor a owl:Class ; - rdfs:subClassOf saref:Device ; - rdfs:isDefinedBy saref: ; - rdfs:label "Sensor"@en . -# -# https://w3id.org/saref#State - -saref:State a owl:Class ; - rdfs:comment "The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "State"^^xsd:string . -# -# https://w3id.org/saref#Task - -saref:Task a owl:Class ; - rdfs:subClassOf _:genid57 . - -_:genid57 a owl:Restriction ; - owl:onProperty saref:isAccomplishedBy ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Device . - -saref:Task rdfs:comment "The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "Task"^^xsd:string . -# -# https://w3id.org/saref#Temperature - -saref:Temperature a owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin)"^^xsd:string ; - rdfs:label "Temperature"@en , "Temperature"^^xsd:string . -# -# https://w3id.org/saref#Time - -saref:Time a owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property that allows to specify the time concept in terms of instants or intervals according to the imported W3C Time ontology."^^xsd:string ; - rdfs:label "Time"^^xsd:string . -# -# https://w3id.org/saref#UnitOfMeasure - -saref:UnitOfMeasure a owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM)."^^xsd:string , "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended."@en ; - rdfs:isDefinedBy , saref: ; - rdfs:label "Unit of measure"@en . -# -# -# -# ################################################################# -# # -# # Individuals -# # -# ################################################################# -# -# -# http://dbpedia.org/resource/DBM - - a owl:NamedIndividual , saref:UnitOfMeasure ; - rdfs:label "decibel-milliwatts"@en . -# -# http://www.ontology-of-units-of-measure.org/resource/om-2/degreeCelsius - - a owl:NamedIndividual , saref:UnitOfMeasure ; - rdfs:label "degree Celsius"@en . -# -# http://www.ontology-of-units-of-measure.org/resource/om-2/millibar - - a owl:NamedIndividual , saref:UnitOfMeasure ; - rdfs:label "millibar"@en . -# -# http://www.ontology-of-units-of-measure.org/resource/om-2/millimetre - - a owl:NamedIndividual , saref:UnitOfMeasure ; - rdfs:label "millimetre"@en . -# -# http://www.ontology-of-units-of-measure.org/resource/om-2/millivolt - - a owl:NamedIndividual , saref:UnitOfMeasure ; - rdfs:label "millivolt"@en . -# -# https://saref.etsi.org/saref4agri#AirTemperature - -s4agri:AirTemperature a owl:NamedIndividual , saref:Temperature . -# -# https://saref.etsi.org/saref4agri#AmbientHumidity - -s4agri:AmbientHumidity a owl:NamedIndividual , saref:Humidity . -# -# https://saref.etsi.org/saref4agri#IrrigationWater - -s4agri:IrrigationWater a owl:NamedIndividual , saref:Property . -# -# https://saref.etsi.org/saref4agri#PlantGrowthStage - -s4agri:PlantGrowthStage a owl:NamedIndividual , saref:Property . -# -# https://saref.etsi.org/saref4agri#Precipitation - -s4agri:Precipitation a owl:NamedIndividual , saref:Property . -# -# https://saref.etsi.org/saref4agri#SoilMoisture - -s4agri:SoilMoisture a owl:NamedIndividual , saref:Property . -# -# https://saref.etsi.org/saref4agri#SoilTemperature - -s4agri:SoilTemperature a owl:NamedIndividual , saref:Temperature . -# -# -# -# ################################################################# -# # -# # Annotations -# # -# ################################################################# -# -# - - rdfs:comment """The relation between something and the point, - or other geometrical thing in space, where it is. For example, the realtionship between - a radio tower and a Point with a given lat and long. - Or a relationship between a park and its outline as a closed arc of points, or a road and - its location as a arc (a sequence of points). - Clearly in practice there will be limit to the accuracy of any such statement, but one would expect - an accuracy appropriate for the size of the object and uses such as mapping . - """ ; - rdfs:label "location"@en . -# - -s4agri:AirTemperature rdfs:comment "The degree or intensity of heat present in the air." ; - rdfs:label "Air temperature"@en . -# - -s4agri:AmbientHumidity rdfs:label "Ambient huidity"@en , "Ambient humidity"@en ; - rdfs:comment "The amount of water vapour in the air." . -# - -s4agri:IrrigationWater rdfs:comment "The amount of water falling in the soil by irrigation methods." ; - rdfs:label "Irrigation water"@en . -# - -s4agri:PlantGrowthStage rdfs:comment "The level or stage of growth of the plant." ; - rdfs:label "Plant growth stage"@en . -# - -s4agri:Precipitation rdfs:comment "The amount of water falling in the soil by natural process (e.g. rain)." ; - rdfs:label "Precipitation"@en . -# - -s4agri:SoilMoisture rdfs:label "Soil moisture"@en ; - rdfs:comment "The amount of water or humidity contained in the soil." . -# - -s4agri:SoilTemperature rdfs:comment "The degree or intensity of heat present in the soil." ; - rdfs:label "Soil temperature"@en . -# -# Generated by the OWL API (version 4.2.6.20160910-2108) https://github.com/owlcs/owlapi \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/saref4agri.html b/src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/saref4agri.html deleted file mode 100644 index 45a1069..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/saref4agri.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - SAREF4AGRI: an extension of SAREF for the for the agriculture and food domain

    -

    Official ETSI documentation for SAREF4AGRI v1.1.1
    This page will soon contain the documentation of the SAREF4AGRI ontology v1.1.1

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    The documentation of SAREF4AGRI v1.1.1 will be available here soon. The source of the ontology are available as Turtle or RDF/XML Visualize it with VOWL

    -
    -
    -
    -
    -

    SAREF4AGRI is an extension of SAREF for the agriculture and food domain. SAREF4AGRI is specified and published by ETSI in the TS 103 410-6 associated to this ontology file. The list of use cases, standards and requirements that guided the creation of SAREF4AGRI are described in the associated ETSI TR 103 511.

    -

    This ontology extends the SAREF ontology for the Agricultural domain. This work has been developed in the context of the STF 534 (https://portal.etsi.org/STF/STFs/STFHomePages/STF534.aspx), which was established with the goal to create three SAREF extensions, one of them for the Agricultural domain.

    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/saref4agri.n3 b/src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/saref4agri.n3 deleted file mode 100644 index c9e23c6..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/saref4agri.n3 +++ /dev/null @@ -1,939 +0,0 @@ -@prefix rdf: . -@prefix owl: . -@prefix xml: . -@prefix saref: . -@prefix xsd: . -@prefix s4agri: . -@prefix dcterms: . -@prefix rdfs: . -@prefix vann: . - -s4agri:Intake a owl:Class ; - rdfs:isDefinedBy "The amount of food or other substance taken into the body of an animal or into the soil."@en ; - rdfs:label "Intake"@en ; - rdfs:subClassOf saref:Property . - -saref:controlsProperty - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "controls property"@en . - -saref:hasTimestamp a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has timestamp"@en . - - - a owl:Class ; - rdfs:comment "A temporal entity with zero extent or duration"@en ; - rdfs:isDefinedBy ; - rdfs:label "Instant"@en ; - rdfs:subClassOf . - -s4agri:Parcel a owl:Class ; - rdfs:comment "An area of land, which might be used for grazing animals or planting crops. The parcel is defined as an undividable logical area of land which contains homogeneous items."@en ; - rdfs:label "Parcel" ; - rdfs:subClassOf ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4agri:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:contains ; - owl:someValuesFrom s4agri:Crop - ] . - - - a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "has deployment"@en . - - - a owl:ObjectProperty , owl:AnnotationProperty ; - rdfs:comment "The relation between something and the point, \r\n or other geometrical thing in space, where it is. For example, the realtionship between\r\n a radio tower and a Point with a given lat and long.\r\n Or a relationship between a park and its outline as a closed arc of points, or a road and\r\n its location as a arc (a sequence of points).\r\n Clearly in practice there will be limit to the accuracy of any such statement, but one would expect\r\n an accuracy appropriate for the size of the object and uses such as mapping .\r\n " ; - rdfs:label "location"@en ; - rdfs:subPropertyOf . - -saref:isFeatureOfInterestOf - a owl:ObjectProperty ; - rdfs:comment "Relation betwwen a feature of interest and the measurments that are about it."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "is feature of interest of"@en . - -s4agri:Yield a owl:Class ; - rdfs:isDefinedBy "The produced amount of food for animals or of agricultural products."@en ; - rdfs:label "Yield"@en ; - rdfs:subClassOf saref:Property . - - - a owl:Class ; - rdfs:comment "The class spatial-object represents everything that can have a spatial representation. It is superclass of feature and geometry."@en ; - rdfs:isDefinedBy ; - rdfs:label "SpatialObject"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom ; - owl:onProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom ; - owl:onProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom ; - owl:onProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom ; - owl:onProperty - ] . - -s4agri:hasName a owl:DatatypeProperty ; - rdfs:label "has name" , "A relation to express the name of an entity (e.g.,animal)." ; - rdfs:range xsd:string . - - - a owl:Class ; - rdfs:comment "A temporal entity with an extent or duration"@en ; - rdfs:isDefinedBy ; - rdfs:label "Time interval"@en ; - rdfs:subClassOf . - -saref:State a owl:Class ; - rdfs:comment "The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "State" . - -s4agri:WeatherStation - a owl:Class ; - rdfs:comment "A sensor o system that measure weather conditions."@en ; - rdfs:label "Weather station"@en ; - rdfs:subClassOf saref:Sensor , . - -s4agri:Animal a owl:Class ; - rdfs:comment "An individual and identifiable living organism that feeds on organic matter, typically having specialized sense organs and nervous system and able to respond rapidly to stimuli."@en ; - rdfs:label "Animal" ; - rdfs:subClassOf saref:FeatureOfInterest ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4agri:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime ; - owl:onProperty s4agri:hasBirthDate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime ; - owl:onProperty s4agri:hasDeathDate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:isMemberOf ; - owl:someValuesFrom s4agri:AnimalGroup - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:isLocatedIn ; - owl:someValuesFrom - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4agri:ID ; - owl:onProperty s4agri:hasID - ] . - - - a owl:Class ; - rdfs:label "Taxon rank"@en . - -saref:FeatureOfInterest - a owl:Class ; - rdfs:comment saref: ; - rdfs:label "Feature of interest"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:isFeatureOfInterestOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:hasProperty - ] . - - - a owl:AnnotationProperty ; - rdfs:comment "The WGS84 altitude of a SpatialThing (decimal meters above the local reference ellipsoid)." ; - rdfs:domain ; - rdfs:label "altitude" . - - - a saref:UnitOfMeasure , owl:NamedIndividual ; - rdfs:label "millivolt"@en . - -s4agri:isContainedIn a owl:ObjectProperty ; - rdfs:label "is contained in"@en . - -saref:hasModel a owl:DatatypeProperty ; - rdfs:comment "A relationship identifying the model of an entity (e.g., device)" ; - rdfs:isDefinedBy saref: ; - rdfs:label "has model" ; - rdfs:range xsd:string . - -s4agri:SoilTensiometer - a owl:Class ; - rdfs:comment "A sensor that measures the soil moisture."@en ; - rdfs:label "Soil tensiometer"@en ; - rdfs:subClassOf saref:Sensor . - - - a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "has subsystem"@en . - - - a owl:AnnotationProperty . - -saref:Temperature a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin)" ; - rdfs:label "Temperature" , "Temperature"@en ; - rdfs:subClassOf saref:Property . - -s4agri:isDeployedAtSpace - a owl:ObjectProperty ; - rdfs:comment "is deployed at space"@en , "Relation to indicate the geographical componet of a deployment."@en ; - rdfs:label "is deployed at space" . - -s4agri:Soil a owl:Class ; - rdfs:comment "Upper layer of the earth in which plants grow." ; - rdfs:label "Soil" ; - rdfs:subClassOf saref:FeatureOfInterest . - -saref:relatesToProperty - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "relates to property"@en . - - - a owl:Class ; - rdfs:comment "A Platform is an entity that hosts other entities, particularly Sensors, Actuators, Samplers, and other Platforms (definition taken from http://www.w3.org/ns/sosa/Platform)"@en ; - rdfs:isDefinedBy ; - rdfs:label "Platform"@en . - -saref:isControlledByDevice - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is controlled by device"@en . - -saref:UnitOfMeasure a owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended."@en , "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM)." ; - rdfs:isDefinedBy saref: , ; - rdfs:label "Unit of measure"@en . - -saref:hasState a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has state"@en . - -saref:isPropertyOf a owl:ObjectProperty ; - rdfs:comment "Relation between a property and a feature of interest in which such property appears."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "is property of"@en . - -s4agri:WateringGun a owl:Class ; - rdfs:comment "An actuator to irrigate an space."@en ; - rdfs:label "Watering gun"@en ; - rdfs:subClassOf saref:Actuator . - - - a owl:Class ; - rdfs:label "Person"@en ; - rdfs:subClassOf . - -saref:hasName a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has name"@en . - -s4agri:Building a owl:Class ; - rdfs:comment "A building represents a structure that provides shelter for its occupants or contents and stands in one place. The building is also used to provide a basic element within the spatial structure hierarchy for the components of a building project (together with site, storey, and space)."@en ; - rdfs:label "Building" ; - rdfs:subClassOf ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4agri:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:contains ; - owl:someValuesFrom s4agri:BuildingSpace - ] . - - - a saref:UnitOfMeasure , owl:NamedIndividual ; - rdfs:label "millimetre"@en . - -s4agri:EatingActivitySensor - a owl:Class ; - rdfs:label "Eating activity sensor"@en ; - rdfs:subClassOf saref:Sensor . - -s4agri:ID a owl:Class ; - rdfs:label "ID" . - -s4agri:IrrigationWater - a saref:Property , owl:NamedIndividual , owl:Class ; - rdfs:comment "The amount of water falling in the soil by irrigation methods." ; - rdfs:label "Irrigation water"@en ; - rdfs:subClassOf saref:Property . - - - a owl:ObjectProperty ; - rdfs:comment "Relation between a platform and the deployment(s) that takes place in the platform."@en ; - rdfs:isDefinedBy ; - rdfs:label "in deployment"@en . - - - a owl:ObjectProperty ; - rdfs:label "member"@en . - -s4agri:hasReceived a owl:ObjectProperty ; - rdfs:label "has received" ; - owl:inverseOf s4agri:receives . - -s4agri:SoilTemperature - a saref:Temperature , owl:NamedIndividual , owl:Class ; - rdfs:comment "The degree or intensity of heat present in the soil." ; - rdfs:label "Soil temperature"@en ; - rdfs:subClassOf saref:Temperature . - -s4agri: a owl:Ontology ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:contributor "Jack Verhoosel, TNO" ; - dcterms:contributor , , , , ; - dcterms:created "2019-04-15"^^xsd:date ; - dcterms:description "SAREF4AGRI is an extension of SAREF for the agriculture and food domain. SAREF4AGRI is specified and published by ETSI in the TS 103 410-6 associated to this ontology file. The list of use cases, standards and requirements that guided the creation of SAREF4AGRI are described in the associated ETSI TR 103 511. " , "This ontology extends the SAREF ontology for the Agricultural domain. This work has been developed in the context of the STF 534 (https://portal.etsi.org/STF/STFs/STFHomePages/STF534.aspx), which was established with the goal to create three SAREF extensions, one of them for the Agricultural domain."@en ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:modified "2019-05-20"^^xsd:date ; - dcterms:publisher ; - dcterms:source , ; - dcterms:title "SAREF4AGRI: an extension of SAREF for the for the agriculture and food domain" ; - vann:preferredNamespacePrefix "s4agri" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4agri#" ; - owl:versionIRI ; - owl:versionInfo "1.1.1" . - -s4agri:Pluviometer a owl:Class ; - rdfs:comment "A sensor that measures the rain fall."@en ; - rdfs:label "Pluviometer"@en ; - rdfs:subClassOf saref:Sensor . - -saref:isMeasuredByDevice - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is measured by device"@en . - -s4agri:MilkingSensor a owl:Class ; - rdfs:label "Milking sensor"@en ; - rdfs:subClassOf saref:Sensor . - -saref:Property a owl:Class ; - rdfs:comment "Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended." , "An aspect of an entity that can be observable by a sensor."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Property" , "Property"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Device ; - owl:onProperty saref:isMeasuredByDevice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Device ; - owl:onProperty saref:isControlledByDevice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:FeatureOfInterest ; - owl:onProperty saref:isPropertyOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:relatesToMeasurement - ] ; - owl:disjointWith saref:UnitOfMeasure . - -s4agri:hasDeathDate a owl:DatatypeProperty ; - rdfs:comment "A relation to express the death date of an animal." ; - rdfs:label "has death date" ; - rdfs:range xsd:dateTime . - -s4agri:isLocationOf a owl:ObjectProperty ; - rdfs:label "is location of" . - -saref:Device a owl:Class ; - rdfs:isDefinedBy saref: ; - rdfs:label "Device"@en ; - rdfs:subClassOf . - -saref:hasValue a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has value"@en . - -s4agri:Deployment a owl:Class ; - rdfs:comment "The scenario, including temporal and spatial information, in which the systems and devices are installed."@en , "Deployment"@en ; - rdfs:label "Deployment"@en ; - rdfs:subClassOf ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:isDeployedAtSpace ; - owl:someValuesFrom - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:hasDeploymentPeriod ; - owl:someValuesFrom - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom - ] . - -s4agri:generates a owl:ObjectProperty ; - rdfs:comment "A relation to represent the yield generated by a Crop." ; - rdfs:label "generates"@en ; - rdfs:subPropertyOf saref:hasProperty . - -s4agri:hasDeploymentPeriod - a owl:ObjectProperty ; - rdfs:comment "has deployment period"@en , "Relation to indicate the temporal duration or period of a deployment."@en ; - rdfs:label "has deployment period" . - -s4agri:WateringValve a owl:Class ; - rdfs:label "Watering valve"@en ; - rdfs:subClassOf saref:Actuator . - - - a owl:ObjectProperty ; - rdfs:comment "A spatial representation for a given feature."@en ; - rdfs:domain ; - rdfs:isDefinedBy ; - rdfs:label "has geometry"@en ; - rdfs:range . - - - a owl:Class ; - rdfs:label "Organization"@en ; - rdfs:subClassOf . - -s4agri:hasHarvestDate - a owl:DatatypeProperty ; - rdfs:comment "A relation to express the day the crop is harvested." ; - rdfs:label "has harvest date" ; - rdfs:range xsd:dateTime ; - rdfs:subPropertyOf owl:topDataProperty . - - - a owl:AnnotationProperty ; - rdfs:comment "The WGS84 latitude of a SpatialThing (decimal degrees)." ; - rdfs:domain ; - rdfs:label "latitude" . - -saref:hasDescription a owl:DatatypeProperty ; - rdfs:comment "A relationship providing a description of an entity (e.g., device)" ; - rdfs:isDefinedBy saref: ; - rdfs:label "has description"@en ; - rdfs:range xsd:string . - -saref:hasManufacturer - a owl:DatatypeProperty ; - rdfs:comment "A relationship identifying the manufacturer of an entity (e.g., device)" ; - rdfs:isDefinedBy saref: ; - rdfs:label "has manufacturer" ; - rdfs:range xsd:string . - - - a owl:ObjectProperty ; - rdfs:comment "Relation between a deployment and the platform(s) involved in the deployment."@en ; - rdfs:isDefinedBy ; - rdfs:label "deployed on platform"@en ; - owl:inverseOf . - -s4agri:hasMember a owl:ObjectProperty ; - rdfs:comment "A relation to represent the members of an AnimalGroup." ; - rdfs:label "has member" ; - owl:inverseOf s4agri:isMemberOf . - - - a saref:UnitOfMeasure , owl:NamedIndividual ; - rdfs:label "degree Celsius"@en . - - - a saref:UnitOfMeasure , owl:NamedIndividual ; - rdfs:label "decibel-milliwatts"@en . - -s4agri:AmbientHumidity - a saref:Humidity , owl:NamedIndividual , owl:Class ; - rdfs:comment "The amount of water vapour in the air." ; - rdfs:label "Ambient humidity"@en , "Ambient huidity"@en ; - rdfs:subClassOf saref:Humidity . - -s4agri:isLocatedIn a owl:ObjectProperty ; - rdfs:comment "A relation to express the physical location of a saref4agri entity (e.g., an animal)" ; - rdfs:label "is located in" ; - owl:inverseOf s4agri:isLocationOf . - -s4agri:Platform a owl:Class ; - rdfs:label "Platform" ; - rdfs:subClassOf . - -saref:isMeasuredIn a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is measured in"@en . - -s4agri:Precipitation a saref:Property , owl:NamedIndividual , owl:Class ; - rdfs:comment "The amount of water falling in the soil by natural process (e.g. rain)." ; - rdfs:label "Precipitation"@en ; - rdfs:subClassOf saref:Property . - -s4agri:hasID a owl:ObjectProperty ; - rdfs:comment "A relation to express the unique identifier of an animal." ; - rdfs:label "has id"@en ; - rdfs:range s4agri:ID ; - rdfs:subPropertyOf owl:topObjectProperty . - -saref:relatesToMeasurement - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "relates to measurement"@en . - -s4agri:BuildingSpace a owl:Class ; - rdfs:comment "An entity used to define the physical spaces of the building. A building space contains devices or building objects."@en ; - rdfs:label "Building space"@en ; - rdfs:subClassOf . - - - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Deployment"@en . - -s4agri:Farm a owl:Class ; - rdfs:comment "A plot of land used for the scope of farming which can contain buildings and parcels."@en ; - rdfs:label "Farm" ; - rdfs:subClassOf ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4agri:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:contains ; - owl:someValuesFrom s4agri:Parcel - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:contains ; - owl:someValuesFrom s4agri:Building - ] . - - - a owl:ObjectProperty ; - rdfs:comment "Relation between a platform and the systems it hosts."@en ; - rdfs:isDefinedBy ; - rdfs:label "host"@en ; - owl:inverseOf . - -saref:isAccomplishedBy - a owl:ObjectProperty ; - rdfs:comment "A relationship indentifying the task accomplished by a certain entity (e.g., a device)" ; - rdfs:isDefinedBy saref: ; - rdfs:label "is accomplished by" . - -saref:Task a owl:Class ; - rdfs:comment "The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "Task" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Device ; - owl:onProperty saref:isAccomplishedBy - ] . - - - a owl:ObjectProperty ; - rdfs:comment "Relation between a deployment and the system deployed."@en ; - rdfs:isDefinedBy ; - rdfs:label "deployed system"@en ; - owl:inverseOf . - -saref:hasFeatureOfInterest - a owl:ObjectProperty ; - rdfs:comment "Relation between a measurement and the feature of interest being measured."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has feature of interest"@en ; - owl:inverseOf saref:isFeatureOfInterestOf . - -saref:measurementMadeBy - a owl:ObjectProperty ; - rdfs:comment "Relation between a measurement and the device that made it."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "measurement made by"@en . - - - a owl:ObjectProperty ; - rdfs:comment "Exists if the subject SpatialObject spatially contains the object SpatialObject. DE-9IM: T*****FF*"@en ; - rdfs:domain ; - rdfs:isDefinedBy , ; - rdfs:label "contains"@en ; - rdfs:range . - - - a owl:Class ; - rdfs:label "Agent"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom - ] . - -saref:Humidity a owl:Class ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit" ; - rdfs:label "Humidiy"@en , "Humidity" ; - rdfs:subClassOf saref:Property . - -saref:Sensor a owl:Class ; - rdfs:isDefinedBy saref: ; - rdfs:label "Sensor"@en ; - rdfs:subClassOf saref:Device . - - - a owl:AnnotationProperty . - -s4agri:isMemberOf a owl:ObjectProperty ; - rdfs:comment "A relation to express that an animal can be part of groups." ; - rdfs:label "is member of" . - -saref:Time a owl:Class ; - rdfs:comment "A saref:Property that allows to specify the time concept in terms of instants or intervals according to the imported W3C Time ontology." ; - rdfs:label "Time" ; - rdfs:subClassOf saref:Property . - - - a owl:Class ; - rdfs:comment "System is a unit of abstraction for pieces of infrastructure that implement Procedures. A System may have components, its subsystems, which are other Systems. (Definition taken from http://www.w3.org/ns/ssn/System)"@en ; - rdfs:isDefinedBy ; - rdfs:label "System"@en . - -saref:hasCommand a owl:ObjectProperty ; - rdfs:comment "A relationship between an entity (such as a function) and a command" ; - rdfs:isDefinedBy saref: ; - rdfs:label "has command" ; - owl:inverseOf saref:isCommandOf . - - - a saref:UnitOfMeasure , owl:NamedIndividual ; - rdfs:label "millibar"@en . - - - a owl:Class ; - rdfs:comment "A point, typically described using a coordinate system relative to Earth, such as WGS84." , " \r\nUniquely identified by lat/long/alt. i.e.\r\n\r\nspaciallyIntersects(P1, P2) s4agri:- lat(P1, LAT), long(P1, LONG), alt(P1, ALT),\r\n lat(P2, LAT), long(P2, LONG), alt(P2, ALT).\r\n\r\nsameThing(P1, P2) s4agri:- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2).\r\n " ; - rdfs:isDefinedBy ; - rdfs:label "Point"@en ; - rdfs:subClassOf . - -s4agri:receives a owl:ObjectProperty ; - rdfs:comment "A relation to represent the intake/consumption of certain substances in a Crop." ; - rdfs:label "receives" ; - rdfs:subPropertyOf saref:hasProperty . - -s4agri:WateringSystem - a owl:Class ; - rdfs:label "Watering system"@en ; - rdfs:subClassOf . - -s4agri:managesFarm a owl:ObjectProperty ; - rdfs:label "manages farm"@en . - - - a owl:Class ; - rdfs:comment "A temporal interval or instant."@en ; - rdfs:isDefinedBy ; - rdfs:label "Temporal entity"@en . - -s4agri:hasPlantDate a owl:DatatypeProperty ; - rdfs:comment "A relation to express the day the crop is planted." ; - rdfs:label "has plant date" ; - rdfs:range xsd:dateTime ; - rdfs:subPropertyOf owl:topDataProperty . - -s4agri:Crop a owl:Class ; - rdfs:comment "A collection of cultivated plants that is grown on a large scale commercially, especially a cereal, fruit, or vegetable."@en ; - rdfs:label "Crop" ; - rdfs:subClassOf saref:FeatureOfInterest ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:hasPlantDate ; - owl:someValuesFrom xsd:dateTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:hasHarvestDate ; - owl:someValuesFrom xsd:dateTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:receives ; - owl:someValuesFrom s4agri:Intake - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:generates ; - owl:someValuesFrom s4agri:Yield - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom - ] . - -s4agri:WeightSensor a owl:Class ; - rdfs:label "Weight sensor"@en ; - rdfs:subClassOf saref:Sensor . - - - a owl:ObjectProperty ; - rdfs:comment "Exists if the subject SpatialObject is spatially within the object SpatialObject. DE-9IM: T*F**F***"@en ; - rdfs:domain ; - rdfs:isDefinedBy , ; - rdfs:label "within"@en ; - rdfs:range . - -s4agri:AirTemperature - a saref:Temperature , owl:NamedIndividual , owl:Class ; - rdfs:comment "The degree or intensity of heat present in the air." ; - rdfs:label "Air temperature"@en ; - rdfs:subClassOf saref:Temperature . - - - a owl:AnnotationProperty . - -saref:Function a owl:Class ; - rdfs:comment "The functionality necessary to accomplish the task for which a Device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. " ; - rdfs:label "Function" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Command ; - owl:onProperty saref:hasCommand - ] . - - - a owl:AnnotationProperty . - -saref:Command a owl:Class ; - rdfs:comment "A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "Command" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Function ; - owl:onProperty saref:isCommandOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:State ; - owl:onProperty saref:actsUpon - ] . - -saref:isCommandOf a owl:ObjectProperty ; - rdfs:comment "A relationship between a command and a function." ; - rdfs:isDefinedBy saref: ; - rdfs:label "is command of" . - - - a owl:AnnotationProperty ; - rdfs:comment "The WGS84 longitude of a SpatialThing (decimal degrees)." ; - rdfs:domain ; - rdfs:label "longitude" . - -s4agri:hasBirthDate a owl:DatatypeProperty ; - rdfs:comment "A relation to express the birth date of an animal." ; - rdfs:label "has birth date" ; - rdfs:range xsd:dateTime . - -saref:hasFunction a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the type of function of a device" ; - rdfs:isDefinedBy saref: ; - rdfs:label "has function" . - -saref:makesMeasurement - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "makes measurement"@en ; - owl:inverseOf saref:measurementMadeBy . - -s4agri:contains a owl:ObjectProperty ; - rdfs:subPropertyOf ; - owl:inverseOf s4agri:isContainedIn . - -saref:actsUpon a owl:ObjectProperty ; - rdfs:comment "A relationship between a command and a state" ; - rdfs:isDefinedBy saref: ; - rdfs:label "acts upon" . - -s4agri:SoilMoisture a saref:Property , owl:NamedIndividual , owl:Class ; - rdfs:comment "The amount of water or humidity contained in the soil." ; - rdfs:label "Soil moisture"@en ; - rdfs:subClassOf saref:Property . - -saref:accomplishes a owl:ObjectProperty ; - rdfs:comment "A relationship between a certain entity (e.g., a device) and the task it accomplishes" ; - rdfs:isDefinedBy saref: ; - rdfs:label "accomplishes" ; - owl:inverseOf saref:isAccomplishedBy . - - - a owl:ObjectProperty ; - rdfs:comment "Relation between a system and its hosting platform."@en ; - rdfs:isDefinedBy ; - rdfs:label "is hosted by"@en . - -s4agri:AnimalGroup a owl:Class ; - rdfs:comment "A collection of one or multiple animals."@en ; - rdfs:label "Animal Group" ; - rdfs:subClassOf saref:FeatureOfInterest ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4agri:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:receives ; - owl:someValuesFrom s4agri:Intake - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:isLocatedIn ; - owl:someValuesFrom - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:hasMember ; - owl:someValuesFrom s4agri:Animal - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:generates ; - owl:someValuesFrom s4agri:Yield - ] . - -s4agri:MovementActivitySensor - a owl:Class ; - rdfs:label "Movement activity sensor"@en ; - rdfs:subClassOf saref:Sensor . - - - a owl:ObjectProperty ; - rdfs:label "has taxon rank"@en . - -s4agri:Thermometer a owl:Class ; - rdfs:label "Thermometer"@en ; - rdfs:subClassOf saref:Sensor . - - - a owl:Class ; - rdfs:comment "This class represents the top-level feature type. This class is equivalent to GFI_Feature defined in ISO 19156s4agri:2011, and it is superclass of all feature types."@en ; - rdfs:isDefinedBy , ; - rdfs:label "Feature"@en ; - rdfs:subClassOf ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom ; - owl:onProperty - ] ; - owl:disjointWith . - -saref:Measurement a owl:Class ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Measurement"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasValue - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:Property ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:FeatureOfInterest ; - owl:onProperty saref:hasFeatureOfInterest - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onDataRange xsd:float ; - owl:onProperty saref:hasValue ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:relatesToProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - owl:disjointWith saref:Property , saref:UnitOfMeasure . - -xsd:date a rdfs:Datatype . - -saref:hasProperty a owl:ObjectProperty ; - rdfs:comment "Relation between a feature of interest and its properties."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has property"@en ; - owl:inverseOf saref:isPropertyOf . - -saref:Actuator a owl:Class ; - rdfs:isDefinedBy saref: ; - rdfs:label "Actuator"@en ; - rdfs:subClassOf saref:Device . - -s4agri:FarmHolding a owl:Class ; - rdfs:comment "A class to decsribe a saref4agri farm holding as subcass of an org:Organization" ; - rdfs:label "Farm holding"@en ; - rdfs:subClassOf ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4agri:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:managesFarm ; - owl:someValuesFrom s4agri:Farm - ] . - -s4agri:Farmer a owl:Class ; - rdfs:comment "A class to decsribe a saref4agri farmer as subcass of a foaf:Person" ; - rdfs:label "Farmer"@en ; - rdfs:subClassOf ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4agri:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4agri:managesFarm ; - owl:someValuesFrom s4agri:Farm - ] . - -xsd:duration a rdfs:Datatype . - -saref:measuresProperty - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "measures property"@en . - -s4agri:PlantGrowthStage - a saref:Property , owl:NamedIndividual , owl:Class ; - rdfs:comment "The level or stage of growth of the plant." ; - rdfs:label "Plant growth stage"@en ; - rdfs:subClassOf saref:Property . - - - a owl:Class ; - rdfs:comment "The class represents the top-level geometry type. This class is equivalent to the UML class GM_Object defined in ISO 19107, and it is superclass of all geometry types."@en ; - rdfs:isDefinedBy ; - rdfs:label "Geometry"@en ; - rdfs:subClassOf . diff --git a/src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/saref4agri.rdf b/src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/saref4agri.rdf deleted file mode 100644 index fb69e13..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/saref4agri.rdf +++ /dev/null @@ -1,1272 +0,0 @@ - - - 2019-05-20 - 2019-06-11 - 2019-04-15 - - SAREF4AGRI: an extension of SAREF for the for the agriculture and food domain - s4agri - - - - - - - SAREF4AGRI is an extension of SAREF for the agriculture and food domain. SAREF4AGRI is specified and published by ETSI in the TS 103 410-6 associated to this ontology file. The list of use cases, standards and requirements that guided the creation of SAREF4AGRI are described in the associated ETSI TR 103 511. - Jack Verhoosel, TNO - - 1.1.1 - - - This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge. - This ontology extends the SAREF ontology for the Agricultural domain. This work has been developed in the context of the STF 534 (https://portal.etsi.org/STF/STFs/STFHomePages/STF534.aspx), which was established with the goal to create three SAREF extensions, one of them for the Agricultural domain. - https://saref.etsi.org/saref4agri# - - - - - - - - 1 - - - - - - Animal - An individual and identifiable living organism that feeds on organic matter, typically having specialized sense organs and nervous system and able to respond rapidly to stimuli. - - - - - - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - Yield - The produced amount of food for animals or of agricultural products. - - - - - - Taxon rank - - - Soil - Upper layer of the earth in which plants grow. - - - - - - Intake - The amount of food or other substance taken into the body of an animal or into the soil. - - - - - - System - - System is a unit of abstraction for pieces of infrastructure that implement Procedures. A System may have components, its subsystems, which are other Systems. (Definition taken from http://www.w3.org/ns/ssn/System) - - - Temporal entity - - A temporal interval or instant. - - - Watering system - - - - SpatialObject - - The class spatial-object represents everything that can have a spatial representation. It is superclass of feature and geometry. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Task - The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended. - - - - - - 1 - - - - - - - - - - - - - 1 - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - Measurement - Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. - - - - - - - - - - - - - - 1 - - - - - - - - Time interval - - A temporal entity with an extent or duration - - - - Platform - - A Platform is an entity that hosts other entities, particularly Sensors, Actuators, Samplers, and other Platforms (definition taken from http://www.w3.org/ns/sosa/Platform) - - - Feature - - - This class represents the top-level feature type. This class is equivalent to GFI_Feature defined in ISO 19156s4agri:2011, and it is superclass of all feature types. - - - - - - - - - - - - - - - - - Milking sensor - - - - - - Farm - A plot of land used for the scope of farming which can contain buildings and parcels. - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Watering valve - - - - - - Building - A building represents a structure that provides shelter for its occupants or contents and stands in one place. The building is also used to provide a basic element within the spatial structure hierarchy for the components of a building project (together with site, storey, and space). - - - 1 - - - - - - - - - - - - - - - - - - - Time - A saref:Property that allows to specify the time concept in terms of instants or intervals according to the imported W3C Time ontology. - - - - - - Animal Group - A collection of one or multiple animals. - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Person - - - - - - Unit of measure - - - The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called "watt". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended. - The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called "watt". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM). - - - Humidiy - Humidity - A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit - - - - - - Geometry - - The class represents the top-level geometry type. This class is equivalent to the UML class GM_Object defined in ISO 19107, and it is superclass of all geometry types. - - - - Platform - - - - Actuator - - - - - - - Instant - - A temporal entity with zero extent or duration - - - - Farm holding - A class to decsribe a saref4agri farm holding as subcass of an org:Organization - - - - - - - - - - - - - - - - - - - - - - Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended. - - - - - - - - - - - - - - - - - - - - - Property - An aspect of an entity that can be observable by a sensor. - Property - - - - - - - - - - - - - - - - - - - - - - - Function - The functionality necessary to accomplish the task for which a Device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. - - - - - - 1 - - - - - - - - Weather station - A sensor o system that measure weather conditions. - - - - - - - Movement activity sensor - - - - - - Deployment - The scenario, including temporal and spatial information, in which the systems and devices are installed. - Deployment - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Weight sensor - - - - - - Parcel - An area of land, which might be used for grazing animals or planting crops. The parcel is defined as an undividable logical area of land which contains homogeneous items. - - - - 1 - - - - - - - - - - - - - - - - - - - Thermometer - - - - - - Feature of interest - - - - - - - - - - - - - - - - - - - - Sensor - - - - - - - Farmer - A class to decsribe a saref4agri farmer as subcass of a foaf:Person - - - - - - - - - - - - - - - - - - - - Soil tensiometer - A sensor that measures the soil moisture. - - - - Building space - An entity used to define the physical spaces of the building. A building space contains devices or building objects. - - - - Pluviometer - A sensor that measures the rain fall. - - - - ID - - - Deployment - - - - Temperature - Temperature - A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin) - - - - Watering gun - An actuator to irrigate an space. - - - - State - The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended. - - - Device - - - - - Crop - A collection of cultivated plants that is grown on a large scale commercially, especially a cereal, fruit, or vegetable. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Command - A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended. - - - 1 - - - - - - - - - 1 - - - - - - - - - - - - - - - - Agent - - - - - - - - - - - Organization - - - - Eating activity sensor - - - - Point - - A point, typically described using a coordinate system relative to Earth, such as WGS84. - -Uniquely identified by lat/long/alt. i.e. - -spaciallyIntersects(P1, P2) s4agri:- lat(P1, LAT), long(P1, LONG), alt(P1, ALT), - lat(P2, LAT), long(P2, LONG), alt(P2, ALT). - -sameThing(P1, P2) s4agri:- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2). - - - - - has deployment period - has deployment period - Relation to indicate the temporal duration or period of a deployment. - - - generates - A relation to represent the yield generated by a Crop. - - - - - - location - The relation between something and the point, - or other geometrical thing in space, where it is. For example, the realtionship between - a radio tower and a Point with a given lat and long. - Or a relationship between a park and its outline as a closed arc of points, or a road and - its location as a arc (a sequence of points). - Clearly in practice there will be limit to the accuracy of any such statement, but one would expect - an accuracy appropriate for the size of the object and uses such as mapping . - - - - - - - - has taxon rank - - - is measured in - - - - manages farm - - - is contained in - - - has geometry - - A spatial representation for a given feature. - - - - - has property - - Relation between a feature of interest and its properties. - - - - - - has subsystem - - - - contains - - - Exists if the subject SpatialObject spatially contains the object SpatialObject. DE-9IM: T*****FF* - - - - - deployed system - - Relation between a deployment and the system deployed. - - - - - - has deployment - - - - measures property - - - - member - - - is member of - A relation to express that an animal can be part of groups. - - - within - - - Exists if the subject SpatialObject is spatially within the object SpatialObject. DE-9IM: T*F**F*** - - - - - is located in - A relation to express the physical location of a saref4agri entity (e.g., an animal) - - - - - - - - - - has function - - A relationship identifying the type of function of a device - - - receives - A relation to represent the intake/consumption of certain substances in a Crop. - - - - is property of - - Relation between a property and a feature of interest in which such property appears. - - - relates to measurement - - - - makes measurement - - - - - - - is deployed at space - is deployed at space - Relation to indicate the geographical componet of a deployment. - - - is location of - - - is hosted by - - Relation between a system and its hosting platform. - - - controls property - - - - deployed on platform - - Relation between a deployment and the platform(s) involved in the deployment. - - - - - - is controlled by device - - - - is measured by device - - - - measurement made by - - Relation between a measurement and the device that made it. - - - has feature of interest - - Relation between a measurement and the feature of interest being measured. - - - - - - has state - - - - is accomplished by - - A relationship indentifying the task accomplished by a certain entity (e.g., a device) - - - relates to property - - - - has id - A relation to express the unique identifier of an animal. - - - - - acts upon - - A relationship between a command and a state - - - is feature of interest of - - Relation betwwen a feature of interest and the measurments that are about it. - - - has received - - - - accomplishes - - A relationship between a certain entity (e.g., a device) and the task it accomplishes - - - - in deployment - - Relation between a platform and the deployment(s) that takes place in the platform. - - - is command of - - A relationship between a command and a function. - - - has member - A relation to represent the members of an AnimalGroup. - - - - host - - Relation between a platform and the systems it hosts. - - - - has command - - A relationship between an entity (such as a function) and a command - - - - has death date - A relation to express the death date of an animal. - - - - has manufacturer - - A relationship identifying the manufacturer of an entity (e.g., device) - - - - has plant date - A relation to express the day the crop is planted. - - - - - has value - - - - has name - - - - has harvest date - A relation to express the day the crop is harvested. - - - - - has model - - A relationship identifying the model of an entity (e.g., device) - - - - has description - - A relationship providing a description of an entity (e.g., device) - - - - has birth date - A relation to express the birth date of an animal. - - - - has timestamp - - - - has name - A relation to express the name of an entity (e.g.,animal). - - - - The amount of water vapour in the air. - Ambient humidity - Ambient huidity - - - - - - Air temperature - The degree or intensity of heat present in the air. - - - - - - degree Celsius - - - - millibar - - - - - longitude - The WGS84 longitude of a SpatialThing (decimal degrees). - - - Soil temperature - The degree or intensity of heat present in the soil. - - - - - - Plant growth stage - The level or stage of growth of the plant. - - - - - - - decibel-milliwatts - - - - The amount of water or humidity contained in the soil. - Soil moisture - - - - - - millimetre - - - - - altitude - The WGS84 altitude of a SpatialThing (decimal meters above the local reference ellipsoid). - - - Irrigation water - The amount of water falling in the soil by irrigation methods. - - - - - - - Precipitation - The amount of water falling in the soil by natural process (e.g. rain). - - - - - - - millivolt - - - - - latitude - The WGS84 latitude of a SpatialThing (decimal degrees). - - diff --git a/src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/saref4agri.ttl b/src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/saref4agri.ttl deleted file mode 100644 index 69aad4a..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/saref4agri.ttl +++ /dev/null @@ -1,1374 +0,0 @@ -@prefix owl: . -@prefix rdf: . -@prefix xml: . -@prefix xsd: . -@prefix rdfs: . -@prefix vann: . -@prefix dcterms: . -@prefix saref: . -@prefix s4agri: . - - a owl:Ontology ; - dcterms:title "SAREF4AGRI: an extension of SAREF for the for the agriculture and food domain"^^xsd:string ; - dcterms:created "2019-04-15"^^xsd:date ; - dcterms:modified "2019-05-20"^^xsd:date ; - dcterms:issued "2019-06-11"^^xsd:date ; - owl:versionInfo "1.1.1" ; - owl:versionIRI ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor "Jack Verhoosel, TNO"^^xsd:string ; - dcterms:contributor ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4agri#" ; - vann:preferredNamespacePrefix "s4agri" ; - dcterms:source ; - dcterms:source ; - dcterms:license ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:description "SAREF4AGRI is an extension of SAREF for the agriculture and food domain. SAREF4AGRI is specified and published by ETSI in the TS 103 410-6 associated to this ontology file. The list of use cases, standards and requirements that guided the creation of SAREF4AGRI are described in the associated ETSI TR 103 511. "^^xsd:string ; - dcterms:description "This ontology extends the SAREF ontology for the Agricultural domain. This work has been developed in the context of the STF 534 (https://portal.etsi.org/STF/STFs/STFHomePages/STF534.aspx), which was established with the goal to create three SAREF extensions, one of them for the Agricultural domain."@en ; - dcterms:publisher . -# -# -# ################################################################# -# # -# # Annotation properties -# # -# ################################################################# -# -# -# http://www.w3.org/2003/01/geo/wgs84_pos#alt - - a owl:AnnotationProperty ; - rdfs:comment "The WGS84 altitude of a SpatialThing (decimal meters above the local reference ellipsoid)." ; - rdfs:label "altitude" ; - rdfs:domain . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#lat - - a owl:AnnotationProperty ; - rdfs:comment "The WGS84 latitude of a SpatialThing (decimal degrees)." ; - rdfs:label "latitude" ; - rdfs:domain . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#location - - a owl:AnnotationProperty ; - rdfs:subPropertyOf . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#long - - a owl:AnnotationProperty ; - rdfs:comment "The WGS84 longitude of a SpatialThing (decimal degrees)." ; - rdfs:label "longitude" ; - rdfs:domain . -# -# http://www.w3.org/2004/02/skos/core#definition - - a owl:AnnotationProperty . -# -# http://www.w3.org/2004/02/skos/core#prefLabel - - a owl:AnnotationProperty . -# -# http://www.w3.org/ns/prov#hadPrimarySource - - a owl:AnnotationProperty . -# -# http://xmlns.com/foaf/0.1/based_near - - a owl:AnnotationProperty . -# -# -# -# ################################################################# -# # -# # Datatypes -# # -# ################################################################# -# -# -# http://www.w3.org/2001/XMLSchema#date - -xsd:date a rdfs:Datatype . -# -# http://www.w3.org/2001/XMLSchema#duration - -xsd:duration a rdfs:Datatype . -# -# -# -# ################################################################# -# # -# # Object Properties -# # -# ################################################################# -# -# -# http://purl.obolibrary.org/obo/TAXRANK_1000000 - - a owl:ObjectProperty ; - rdfs:label "has taxon rank"@en . -# -# http://www.opengis.net/ont/geosparql#hasGeometry - - a owl:ObjectProperty ; - rdfs:domain ; - rdfs:range ; - rdfs:comment "A spatial representation for a given feature."@en ; - rdfs:isDefinedBy ; - rdfs:label "has geometry"@en . -# -# http://www.opengis.net/ont/geosparql#sfContains - - a owl:ObjectProperty ; - rdfs:domain ; - rdfs:range ; - rdfs:comment "Exists if the subject SpatialObject spatially contains the object SpatialObject. DE-9IM: T*****FF*"@en ; - rdfs:isDefinedBy , ; - rdfs:label "contains"@en . -# -# http://www.opengis.net/ont/geosparql#sfWithin - - a owl:ObjectProperty ; - rdfs:domain ; - rdfs:range ; - rdfs:comment "Exists if the subject SpatialObject is spatially within the object SpatialObject. DE-9IM: T*F**F***"@en ; - rdfs:isDefinedBy , ; - rdfs:label "within"@en . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#location - - a owl:ObjectProperty . -# -# http://www.w3.org/ns/sosa/hosts - - a owl:ObjectProperty ; - owl:inverseOf ; - rdfs:comment "Relation between a platform and the systems it hosts."@en ; - rdfs:isDefinedBy ; - rdfs:label "host"@en . -# -# http://www.w3.org/ns/sosa/isHostedBy - - a owl:ObjectProperty ; - rdfs:comment "Relation between a system and its hosting platform."@en ; - rdfs:isDefinedBy ; - rdfs:label "is hosted by"@en . -# -# http://www.w3.org/ns/ssn/deployedOnPlatform - - a owl:ObjectProperty ; - owl:inverseOf ; - rdfs:comment "Relation between a deployment and the platform(s) involved in the deployment."@en ; - rdfs:isDefinedBy ; - rdfs:label "deployed on platform"@en . -# -# http://www.w3.org/ns/ssn/deployedSystem - - a owl:ObjectProperty ; - owl:inverseOf ; - rdfs:comment "Relation between a deployment and the system deployed."@en ; - rdfs:isDefinedBy ; - rdfs:label "deployed system"@en . -# -# http://www.w3.org/ns/ssn/hasDeployment - - a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "has deployment"@en . -# -# http://www.w3.org/ns/ssn/hasSubSystem - - a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "has subsystem"@en . -# -# http://www.w3.org/ns/ssn/inDeployment - - a owl:ObjectProperty ; - rdfs:comment "Relation between a platform and the deployment(s) that takes place in the platform."@en ; - rdfs:isDefinedBy ; - rdfs:label "in deployment"@en . -# -# http://xmlns.com/foaf/0.1/member - - a owl:ObjectProperty ; - rdfs:label "member"@en . -# -# https://saref.etsi.org/saref4agri#contains - -s4agri:contains a owl:ObjectProperty ; - rdfs:subPropertyOf ; - owl:inverseOf s4agri:isContainedIn . -# -# https://saref.etsi.org/saref4agri#generates - -s4agri:generates a owl:ObjectProperty ; - rdfs:subPropertyOf saref:hasProperty ; - rdfs:comment "A relation to represent the yield generated by a Crop." ; - rdfs:label "generates"@en . -# -# https://saref.etsi.org/saref4agri#hasDeploymentPeriod - -s4agri:hasDeploymentPeriod a owl:ObjectProperty ; - rdfs:comment "Relation to indicate the temporal duration or period of a deployment."@en , "has deployment period"@en ; - rdfs:label "has deployment period"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#hasID - -s4agri:hasID a owl:ObjectProperty ; - rdfs:subPropertyOf owl:topObjectProperty ; - rdfs:range s4agri:ID ; - rdfs:comment "A relation to express the unique identifier of an animal." ; - rdfs:label "has id"@en . -# -# https://saref.etsi.org/saref4agri#hasMember - -s4agri:hasMember a owl:ObjectProperty ; - owl:inverseOf s4agri:isMemberOf ; - rdfs:comment "A relation to represent the members of an AnimalGroup." ; - rdfs:label "has member"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#hasReceived - -s4agri:hasReceived a owl:ObjectProperty ; - owl:inverseOf s4agri:receives ; - rdfs:label "has received"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#isContainedIn - -s4agri:isContainedIn a owl:ObjectProperty ; - rdfs:label "is contained in"@en . -# -# https://saref.etsi.org/saref4agri#isDeployedAtSpace - -s4agri:isDeployedAtSpace a owl:ObjectProperty ; - rdfs:comment "Relation to indicate the geographical componet of a deployment."@en , "is deployed at space"@en ; - rdfs:label "is deployed at space"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#isLocatedIn - -s4agri:isLocatedIn a owl:ObjectProperty ; - owl:inverseOf s4agri:isLocationOf ; - rdfs:comment "A relation to express the physical location of a saref4agri entity (e.g., an animal)" ; - rdfs:label "is located in"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#isLocationOf - -s4agri:isLocationOf a owl:ObjectProperty ; - rdfs:label "is location of"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#isMemberOf - -s4agri:isMemberOf a owl:ObjectProperty ; - rdfs:comment "A relation to express that an animal can be part of groups." ; - rdfs:label "is member of"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#managesFarm - -s4agri:managesFarm a owl:ObjectProperty ; - rdfs:label "manages farm"@en . -# -# https://saref.etsi.org/saref4agri#receives - -s4agri:receives a owl:ObjectProperty ; - rdfs:subPropertyOf saref:hasProperty ; - rdfs:comment "A relation to represent the intake/consumption of certain substances in a Crop." ; - rdfs:label "receives"^^xsd:string . -# -# https://w3id.org/saref#accomplishes - -saref:accomplishes a owl:ObjectProperty ; - owl:inverseOf saref:isAccomplishedBy ; - rdfs:comment "A relationship between a certain entity (e.g., a device) and the task it accomplishes"^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "accomplishes"^^xsd:string . -# -# https://w3id.org/saref#actsUpon - -saref:actsUpon a owl:ObjectProperty ; - rdfs:comment "A relationship between a command and a state"^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "acts upon"^^xsd:string . -# -# https://w3id.org/saref#controlsProperty - -saref:controlsProperty a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "controls property"@en . -# -# https://w3id.org/saref#hasCommand - -saref:hasCommand a owl:ObjectProperty ; - owl:inverseOf saref:isCommandOf ; - rdfs:comment "A relationship between an entity (such as a function) and a command"^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "has command"^^xsd:string . -# -# https://w3id.org/saref#hasFeatureOfInterest - -saref:hasFeatureOfInterest a owl:ObjectProperty ; - owl:inverseOf saref:isFeatureOfInterestOf ; - rdfs:comment "Relation between a measurement and the feature of interest being measured."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has feature of interest"@en . -# -# https://w3id.org/saref#hasFunction - -saref:hasFunction a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the type of function of a device"^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "has function"^^xsd:string . -# -# https://w3id.org/saref#hasProperty - -saref:hasProperty a owl:ObjectProperty ; - owl:inverseOf saref:isPropertyOf ; - rdfs:comment "Relation between a feature of interest and its properties."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has property"@en . -# -# https://w3id.org/saref#hasState - -saref:hasState a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has state"@en . -# -# https://w3id.org/saref#isAccomplishedBy - -saref:isAccomplishedBy a owl:ObjectProperty ; - rdfs:comment "A relationship indentifying the task accomplished by a certain entity (e.g., a device)"^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "is accomplished by"^^xsd:string . -# -# https://w3id.org/saref#isCommandOf - -saref:isCommandOf a owl:ObjectProperty ; - rdfs:comment "A relationship between a command and a function."^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "is command of"^^xsd:string . -# -# https://w3id.org/saref#isControlledByDevice - -saref:isControlledByDevice a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is controlled by device"@en . -# -# https://w3id.org/saref#isFeatureOfInterestOf - -saref:isFeatureOfInterestOf a owl:ObjectProperty ; - rdfs:comment "Relation betwwen a feature of interest and the measurments that are about it."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "is feature of interest of"@en . -# -# https://w3id.org/saref#isMeasuredByDevice - -saref:isMeasuredByDevice a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is measured by device"@en . -# -# https://w3id.org/saref#isMeasuredIn - -saref:isMeasuredIn a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is measured in"@en . -# -# https://w3id.org/saref#isPropertyOf - -saref:isPropertyOf a owl:ObjectProperty ; - rdfs:comment "Relation between a property and a feature of interest in which such property appears."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "is property of"@en . -# -# https://w3id.org/saref#makesMeasurement - -saref:makesMeasurement a owl:ObjectProperty ; - owl:inverseOf saref:measurementMadeBy ; - rdfs:isDefinedBy saref: ; - rdfs:label "makes measurement"@en . -# -# https://w3id.org/saref#measurementMadeBy - -saref:measurementMadeBy a owl:ObjectProperty ; - rdfs:comment "Relation between a measurement and the device that made it."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "measurement made by"@en . -# -# https://w3id.org/saref#measuresProperty - -saref:measuresProperty a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "measures property"@en . -# -# https://w3id.org/saref#relatesToMeasurement - -saref:relatesToMeasurement a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "relates to measurement"@en . -# -# https://w3id.org/saref#relatesToProperty - -saref:relatesToProperty a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "relates to property"@en . -# -# -# -# ################################################################# -# # -# # Data properties -# # -# ################################################################# -# -# -# https://saref.etsi.org/saref4agri#hasBirthDate - -s4agri:hasBirthDate a owl:DatatypeProperty ; - rdfs:range xsd:dateTime ; - rdfs:comment "A relation to express the birth date of an animal." ; - rdfs:label "has birth date"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#hasDeathDate - -s4agri:hasDeathDate a owl:DatatypeProperty ; - rdfs:range xsd:dateTime ; - rdfs:comment "A relation to express the death date of an animal." ; - rdfs:label "has death date"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#hasHarvestDate - -s4agri:hasHarvestDate a owl:DatatypeProperty ; - rdfs:subPropertyOf owl:topDataProperty ; - rdfs:range xsd:dateTime ; - rdfs:comment "A relation to express the day the crop is harvested." ; - rdfs:label "has harvest date" . -# -# https://saref.etsi.org/saref4agri#hasName - -s4agri:hasName a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:label "A relation to express the name of an entity (e.g.,animal)." , "has name" . -# -# https://saref.etsi.org/saref4agri#hasPlantDate - -s4agri:hasPlantDate a owl:DatatypeProperty ; - rdfs:subPropertyOf owl:topDataProperty ; - rdfs:range xsd:dateTime ; - rdfs:comment "A relation to express the day the crop is planted." ; - rdfs:label "has plant date" . -# -# https://w3id.org/saref#hasDescription - -saref:hasDescription a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship providing a description of an entity (e.g., device)"^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "has description"@en . -# -# https://w3id.org/saref#hasManufacturer - -saref:hasManufacturer a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship identifying the manufacturer of an entity (e.g., device)"^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "has manufacturer"^^xsd:string . -# -# https://w3id.org/saref#hasModel - -saref:hasModel a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship identifying the model of an entity (e.g., device)"^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "has model"^^xsd:string . -# -# https://w3id.org/saref#hasName - -saref:hasName a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has name"@en . -# -# https://w3id.org/saref#hasTimestamp - -saref:hasTimestamp a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has timestamp"@en . -# -# https://w3id.org/saref#hasValue - -saref:hasValue a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has value"@en . -# -# -# -# ################################################################# -# # -# # Classes -# # -# ################################################################# -# -# -# http://purl.obolibrary.org/obo/TAXRANK_0000000 - - a owl:Class ; - rdfs:label "Taxon rank"@en . -# -# http://www.opengis.net/ont/geosparql#Feature - - a owl:Class ; - rdfs:subClassOf , _:genid1 . - -_:genid1 a owl:Restriction ; - owl:onProperty ; - owl:allValuesFrom . - - owl:disjointWith ; - rdfs:comment "This class represents the top-level feature type. This class is equivalent to GFI_Feature defined in ISO 19156s4agri:2011, and it is superclass of all feature types."@en ; - rdfs:isDefinedBy , ; - rdfs:label "Feature"@en . -# -# http://www.opengis.net/ont/geosparql#Geometry - - a owl:Class ; - rdfs:subClassOf ; - rdfs:comment "The class represents the top-level geometry type. This class is equivalent to the UML class GM_Object defined in ISO 19107, and it is superclass of all geometry types."@en ; - rdfs:isDefinedBy ; - rdfs:label "Geometry"@en . -# -# http://www.opengis.net/ont/geosparql#SpatialObject - - a owl:Class ; - rdfs:subClassOf _:genid2 . - -_:genid2 a owl:Restriction ; - owl:onProperty ; - owl:allValuesFrom . - - rdfs:subClassOf _:genid3 . - -_:genid3 a owl:Restriction ; - owl:onProperty ; - owl:allValuesFrom . - - rdfs:subClassOf _:genid4 . - -_:genid4 a owl:Restriction ; - owl:onProperty ; - owl:allValuesFrom . - - rdfs:subClassOf _:genid5 . - -_:genid5 a owl:Restriction ; - owl:onProperty ; - owl:allValuesFrom . - - rdfs:comment "The class spatial-object represents everything that can have a spatial representation. It is superclass of feature and geometry."@en ; - rdfs:isDefinedBy ; - rdfs:label "SpatialObject"@en . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#Point - - a owl:Class ; - rdfs:subClassOf ; - rdfs:comment """ -Uniquely identified by lat/long/alt. i.e. - -spaciallyIntersects(P1, P2) s4agri:- lat(P1, LAT), long(P1, LONG), alt(P1, ALT), - lat(P2, LAT), long(P2, LONG), alt(P2, ALT). - -sameThing(P1, P2) s4agri:- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2). - """ , "A point, typically described using a coordinate system relative to Earth, such as WGS84." ; - rdfs:isDefinedBy ; - rdfs:label "Point"@en . -# -# http://www.w3.org/2006/time#Instant - - a owl:Class ; - rdfs:subClassOf ; - rdfs:comment "A temporal entity with zero extent or duration"@en ; - rdfs:isDefinedBy ; - rdfs:label "Instant"@en . -# -# http://www.w3.org/2006/time#Interval - - a owl:Class ; - rdfs:subClassOf ; - rdfs:comment "A temporal entity with an extent or duration"@en ; - rdfs:isDefinedBy ; - rdfs:label "Time interval"@en . -# -# http://www.w3.org/2006/time#TemporalEntity - - a owl:Class ; - rdfs:comment "A temporal interval or instant."@en ; - rdfs:isDefinedBy ; - rdfs:label "Temporal entity"@en . -# -# http://www.w3.org/ns/sosa/Platform - - a owl:Class ; - rdfs:comment "A Platform is an entity that hosts other entities, particularly Sensors, Actuators, Samplers, and other Platforms (definition taken from http://www.w3.org/ns/sosa/Platform)"@en ; - rdfs:isDefinedBy ; - rdfs:label "Platform"@en . -# -# http://www.w3.org/ns/ssn/Deployment - - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Deployment"@en . -# -# http://www.w3.org/ns/ssn/System - - a owl:Class ; - rdfs:comment "System is a unit of abstraction for pieces of infrastructure that implement Procedures. A System may have components, its subsystems, which are other Systems. (Definition taken from http://www.w3.org/ns/ssn/System)"@en ; - rdfs:isDefinedBy ; - rdfs:label "System"@en . -# -# http://xmlns.com/foaf/0.1/Agent - - a owl:Class ; - rdfs:subClassOf _:genid6 . - -_:genid6 a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom . - - rdfs:label "Agent"@en . -# -# http://xmlns.com/foaf/0.1/Person - - a owl:Class ; - rdfs:subClassOf ; - rdfs:label "Person"@en . -# -# https://schema.org/Organization - - a owl:Class ; - rdfs:subClassOf ; - rdfs:label "Organization"@en . -# -# https://saref.etsi.org/saref4agri#AirTemperature - -s4agri:AirTemperature a owl:Class ; - rdfs:subClassOf saref:Temperature . -# -# https://saref.etsi.org/saref4agri#AmbientHumidity - -s4agri:AmbientHumidity a owl:Class ; - rdfs:subClassOf saref:Humidity . -# -# https://saref.etsi.org/saref4agri#Animal - -s4agri:Animal a owl:Class ; - rdfs:subClassOf saref:FeatureOfInterest , _:genid7 . - -_:genid7 a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom . - -s4agri:Animal rdfs:subClassOf _:genid8 . - -_:genid8 a owl:Restriction ; - owl:onProperty s4agri:isLocatedIn ; - owl:someValuesFrom . - -s4agri:Animal rdfs:subClassOf _:genid9 . - -_:genid9 a owl:Restriction ; - owl:onProperty s4agri:isMemberOf ; - owl:someValuesFrom s4agri:AnimalGroup . - -s4agri:Animal rdfs:subClassOf _:genid10 . - -_:genid10 a owl:Restriction ; - owl:onProperty s4agri:hasID ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4agri:ID . - -s4agri:Animal rdfs:subClassOf _:genid11 . - -_:genid11 a owl:Restriction ; - owl:onProperty s4agri:hasBirthDate ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime . - -s4agri:Animal rdfs:subClassOf _:genid12 . - -_:genid12 a owl:Restriction ; - owl:onProperty s4agri:hasDeathDate ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime . - -s4agri:Animal rdfs:subClassOf _:genid13 . - -_:genid13 a owl:Restriction ; - owl:onProperty s4agri:hasName ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string . - -s4agri:Animal rdfs:comment "An individual and identifiable living organism that feeds on organic matter, typically having specialized sense organs and nervous system and able to respond rapidly to stimuli."@en ; - rdfs:label "Animal"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#AnimalGroup - -s4agri:AnimalGroup a owl:Class ; - rdfs:subClassOf saref:FeatureOfInterest , _:genid14 . - -_:genid14 a owl:Restriction ; - owl:onProperty s4agri:generates ; - owl:someValuesFrom s4agri:Yield . - -s4agri:AnimalGroup rdfs:subClassOf _:genid15 . - -_:genid15 a owl:Restriction ; - owl:onProperty s4agri:hasMember ; - owl:someValuesFrom s4agri:Animal . - -s4agri:AnimalGroup rdfs:subClassOf _:genid16 . - -_:genid16 a owl:Restriction ; - owl:onProperty s4agri:isLocatedIn ; - owl:someValuesFrom . - -s4agri:AnimalGroup rdfs:subClassOf _:genid17 . - -_:genid17 a owl:Restriction ; - owl:onProperty s4agri:receives ; - owl:someValuesFrom s4agri:Intake . - -s4agri:AnimalGroup rdfs:subClassOf _:genid18 . - -_:genid18 a owl:Restriction ; - owl:onProperty s4agri:hasName ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string . - -s4agri:AnimalGroup rdfs:comment "A collection of one or multiple animals."@en ; - rdfs:label "Animal Group"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#Building - -s4agri:Building a owl:Class ; - rdfs:subClassOf , _:genid19 . - -_:genid19 a owl:Restriction ; - owl:onProperty s4agri:contains ; - owl:someValuesFrom s4agri:BuildingSpace . - -s4agri:Building rdfs:subClassOf _:genid20 . - -_:genid20 a owl:Restriction ; - owl:onProperty s4agri:hasName ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger . - -s4agri:Building rdfs:comment "A building represents a structure that provides shelter for its occupants or contents and stands in one place. The building is also used to provide a basic element within the spatial structure hierarchy for the components of a building project (together with site, storey, and space)."@en ; - rdfs:label "Building"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#BuildingSpace - -s4agri:BuildingSpace a owl:Class ; - rdfs:subClassOf ; - rdfs:comment "An entity used to define the physical spaces of the building. A building space contains devices or building objects."@en ; - rdfs:label "Building space"@en . -# -# https://saref.etsi.org/saref4agri#Crop - -s4agri:Crop a owl:Class ; - rdfs:subClassOf saref:FeatureOfInterest , _:genid21 . - -_:genid21 a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom . - -s4agri:Crop rdfs:subClassOf _:genid22 . - -_:genid22 a owl:Restriction ; - owl:onProperty s4agri:generates ; - owl:someValuesFrom s4agri:Yield . - -s4agri:Crop rdfs:subClassOf _:genid23 . - -_:genid23 a owl:Restriction ; - owl:onProperty s4agri:receives ; - owl:someValuesFrom s4agri:Intake . - -s4agri:Crop rdfs:subClassOf _:genid24 . - -_:genid24 a owl:Restriction ; - owl:onProperty s4agri:hasHarvestDate ; - owl:someValuesFrom xsd:dateTime . - -s4agri:Crop rdfs:subClassOf _:genid25 . - -_:genid25 a owl:Restriction ; - owl:onProperty s4agri:hasPlantDate ; - owl:someValuesFrom xsd:dateTime . - -s4agri:Crop rdfs:comment "A collection of cultivated plants that is grown on a large scale commercially, especially a cereal, fruit, or vegetable."@en ; - rdfs:label "Crop"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#Deployment - -s4agri:Deployment a owl:Class ; - rdfs:subClassOf , _:genid26 . - -_:genid26 a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom . - -s4agri:Deployment rdfs:subClassOf _:genid27 . - -_:genid27 a owl:Restriction ; - owl:onProperty ; - owl:someValuesFrom . - -s4agri:Deployment rdfs:subClassOf _:genid28 . - -_:genid28 a owl:Restriction ; - owl:onProperty s4agri:hasDeploymentPeriod ; - owl:someValuesFrom . - -s4agri:Deployment rdfs:subClassOf _:genid29 . - -_:genid29 a owl:Restriction ; - owl:onProperty s4agri:isDeployedAtSpace ; - owl:someValuesFrom . - -s4agri:Deployment rdfs:comment "Deployment"@en , "The scenario, including temporal and spatial information, in which the systems and devices are installed."@en ; - rdfs:label "Deployment"@en . -# -# https://saref.etsi.org/saref4agri#EatingActivitySensor - -s4agri:EatingActivitySensor a owl:Class ; - rdfs:subClassOf saref:Sensor ; - rdfs:label "Eating activity sensor"@en . -# -# https://saref.etsi.org/saref4agri#Farm - -s4agri:Farm a owl:Class ; - rdfs:subClassOf , _:genid30 . - -_:genid30 a owl:Restriction ; - owl:onProperty s4agri:contains ; - owl:someValuesFrom s4agri:Building . - -s4agri:Farm rdfs:subClassOf _:genid31 . - -_:genid31 a owl:Restriction ; - owl:onProperty s4agri:contains ; - owl:someValuesFrom s4agri:Parcel . - -s4agri:Farm rdfs:subClassOf _:genid32 . - -_:genid32 a owl:Restriction ; - owl:onProperty s4agri:hasName ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger . - -s4agri:Farm rdfs:comment "A plot of land used for the scope of farming which can contain buildings and parcels."@en ; - rdfs:label "Farm"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#FarmHolding - -s4agri:FarmHolding a owl:Class ; - rdfs:subClassOf , _:genid33 . - -_:genid33 a owl:Restriction ; - owl:onProperty s4agri:managesFarm ; - owl:someValuesFrom s4agri:Farm . - -s4agri:FarmHolding rdfs:subClassOf _:genid34 . - -_:genid34 a owl:Restriction ; - owl:onProperty s4agri:hasName ; - owl:allValuesFrom xsd:string . - -s4agri:FarmHolding rdfs:comment "A class to decsribe a saref4agri farm holding as subcass of an org:Organization" ; - rdfs:label "Farm holding"@en . -# -# https://saref.etsi.org/saref4agri#Farmer - -s4agri:Farmer a owl:Class ; - rdfs:subClassOf , _:genid35 . - -_:genid35 a owl:Restriction ; - owl:onProperty s4agri:managesFarm ; - owl:someValuesFrom s4agri:Farm . - -s4agri:Farmer rdfs:subClassOf _:genid36 . - -_:genid36 a owl:Restriction ; - owl:onProperty s4agri:hasName ; - owl:allValuesFrom xsd:string . - -s4agri:Farmer rdfs:comment "A class to decsribe a saref4agri farmer as subcass of a foaf:Person" ; - rdfs:label "Farmer"@en . -# -# https://saref.etsi.org/saref4agri#ID - -s4agri:ID a owl:Class ; - rdfs:label "ID"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#Intake - -s4agri:Intake a owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:isDefinedBy "The amount of food or other substance taken into the body of an animal or into the soil."@en ; - rdfs:label "Intake"@en . -# -# https://saref.etsi.org/saref4agri#IrrigationWater - -s4agri:IrrigationWater a owl:Class ; - rdfs:subClassOf saref:Property . -# -# https://saref.etsi.org/saref4agri#MilkingSensor - -s4agri:MilkingSensor a owl:Class ; - rdfs:subClassOf saref:Sensor ; - rdfs:label "Milking sensor"@en . -# -# https://saref.etsi.org/saref4agri#MovementActivitySensor - -s4agri:MovementActivitySensor a owl:Class ; - rdfs:subClassOf saref:Sensor ; - rdfs:label "Movement activity sensor"@en . -# -# https://saref.etsi.org/saref4agri#Parcel - -s4agri:Parcel a owl:Class ; - rdfs:subClassOf , _:genid37 . - -_:genid37 a owl:Restriction ; - owl:onProperty s4agri:contains ; - owl:someValuesFrom s4agri:Crop . - -s4agri:Parcel rdfs:subClassOf _:genid38 . - -_:genid38 a owl:Restriction ; - owl:onProperty s4agri:hasName ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string . - -s4agri:Parcel rdfs:comment "An area of land, which might be used for grazing animals or planting crops. The parcel is defined as an undividable logical area of land which contains homogeneous items."@en ; - rdfs:label "Parcel"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#PlantGrowthStage - -s4agri:PlantGrowthStage a owl:Class ; - rdfs:subClassOf saref:Property . -# -# https://saref.etsi.org/saref4agri#Platform - -s4agri:Platform a owl:Class ; - rdfs:subClassOf ; - rdfs:label "Platform"^^xsd:string . -# -# https://saref.etsi.org/saref4agri#Pluviometer - -s4agri:Pluviometer a owl:Class ; - rdfs:subClassOf saref:Sensor ; - rdfs:comment "A sensor that measures the rain fall."@en ; - rdfs:label "Pluviometer"@en . -# -# https://saref.etsi.org/saref4agri#Precipitation - -s4agri:Precipitation a owl:Class ; - rdfs:subClassOf saref:Property . -# -# https://saref.etsi.org/saref4agri#Soil - -s4agri:Soil a owl:Class ; - rdfs:subClassOf saref:FeatureOfInterest ; - rdfs:comment "Upper layer of the earth in which plants grow." ; - rdfs:label "Soil" . -# -# https://saref.etsi.org/saref4agri#SoilMoisture - -s4agri:SoilMoisture a owl:Class ; - rdfs:subClassOf saref:Property . -# -# https://saref.etsi.org/saref4agri#SoilTemperature - -s4agri:SoilTemperature a owl:Class ; - rdfs:subClassOf saref:Temperature . -# -# https://saref.etsi.org/saref4agri#SoilTensiometer - -s4agri:SoilTensiometer a owl:Class ; - rdfs:subClassOf saref:Sensor ; - rdfs:comment "A sensor that measures the soil moisture."@en ; - rdfs:label "Soil tensiometer"@en . -# -# https://saref.etsi.org/saref4agri#Thermometer - -s4agri:Thermometer a owl:Class ; - rdfs:subClassOf saref:Sensor ; - rdfs:label "Thermometer"@en . -# -# https://saref.etsi.org/saref4agri#WateringGun - -s4agri:WateringGun a owl:Class ; - rdfs:subClassOf saref:Actuator ; - rdfs:comment "An actuator to irrigate an space."@en ; - rdfs:label "Watering gun"@en . -# -# https://saref.etsi.org/saref4agri#WateringSystem - -s4agri:WateringSystem a owl:Class ; - rdfs:subClassOf ; - rdfs:label "Watering system"@en . -# -# https://saref.etsi.org/saref4agri#WateringValve - -s4agri:WateringValve a owl:Class ; - rdfs:subClassOf saref:Actuator ; - rdfs:label "Watering valve"@en . -# -# https://saref.etsi.org/saref4agri#WeatherStation - -s4agri:WeatherStation a owl:Class ; - rdfs:subClassOf , saref:Sensor ; - rdfs:comment "A sensor o system that measure weather conditions."@en ; - rdfs:label "Weather station"@en . -# -# https://saref.etsi.org/saref4agri#WeightSensor - -s4agri:WeightSensor a owl:Class ; - rdfs:subClassOf saref:Sensor ; - rdfs:label "Weight sensor"@en . -# -# https://saref.etsi.org/saref4agri#Yield - -s4agri:Yield a owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:isDefinedBy "The produced amount of food for animals or of agricultural products."@en ; - rdfs:label "Yield"@en . -# -# https://w3id.org/saref#Actuator - -saref:Actuator a owl:Class ; - rdfs:subClassOf saref:Device ; - rdfs:isDefinedBy saref: ; - rdfs:label "Actuator"@en . -# -# https://w3id.org/saref#Command - -saref:Command a owl:Class ; - rdfs:subClassOf _:genid39 . - -_:genid39 a owl:Restriction ; - owl:onProperty saref:actsUpon ; - owl:allValuesFrom saref:State . - -saref:Command rdfs:subClassOf _:genid40 . - -_:genid40 a owl:Restriction ; - owl:onProperty saref:isCommandOf ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Function . - -saref:Command rdfs:subClassOf _:genid41 . - -_:genid41 a owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger . - -saref:Command rdfs:comment "A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "Command"^^xsd:string . -# -# https://w3id.org/saref#Device - -saref:Device a owl:Class ; - rdfs:subClassOf ; - rdfs:isDefinedBy saref: ; - rdfs:label "Device"@en . -# -# https://w3id.org/saref#FeatureOfInterest - -saref:FeatureOfInterest a owl:Class ; - rdfs:subClassOf _:genid42 . - -_:genid42 a owl:Restriction ; - owl:onProperty saref:hasProperty ; - owl:allValuesFrom saref:Property . - -saref:FeatureOfInterest rdfs:subClassOf _:genid43 . - -_:genid43 a owl:Restriction ; - owl:onProperty saref:isFeatureOfInterestOf ; - owl:allValuesFrom saref:Measurement . - -saref:FeatureOfInterest rdfs:comment saref: ; - rdfs:label "Feature of interest"@en . -# -# https://w3id.org/saref#Function - -saref:Function a owl:Class ; - rdfs:subClassOf _:genid44 . - -_:genid44 a owl:Restriction ; - owl:onProperty saref:hasCommand ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Command . - -saref:Function rdfs:comment "The functionality necessary to accomplish the task for which a Device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. "^^xsd:string ; - rdfs:label "Function"^^xsd:string . -# -# https://w3id.org/saref#Humidity - -saref:Humidity a owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit"^^xsd:string ; - rdfs:label "Humidity"^^xsd:string , "Humidiy"@en . -# -# https://w3id.org/saref#Measurement - -saref:Measurement a owl:Class ; - rdfs:subClassOf _:genid45 . - -_:genid45 a owl:Restriction ; - owl:onProperty saref:hasFeatureOfInterest ; - owl:allValuesFrom saref:FeatureOfInterest . - -saref:Measurement rdfs:subClassOf _:genid46 . - -_:genid46 a owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:allValuesFrom saref:UnitOfMeasure . - -saref:Measurement rdfs:subClassOf _:genid47 . - -_:genid47 a owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:allValuesFrom saref:Property . - -saref:Measurement rdfs:subClassOf _:genid48 . - -_:genid48 a owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:UnitOfMeasure . - -saref:Measurement rdfs:subClassOf _:genid49 . - -_:genid49 a owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Property . - -saref:Measurement rdfs:subClassOf _:genid50 . - -_:genid50 a owl:Restriction ; - owl:onProperty saref:hasTimestamp ; - owl:allValuesFrom xsd:dateTime . - -saref:Measurement rdfs:subClassOf _:genid51 . - -_:genid51 a owl:Restriction ; - owl:onProperty saref:hasValue ; - owl:cardinality "1"^^xsd:nonNegativeInteger . - -saref:Measurement rdfs:subClassOf _:genid52 . - -_:genid52 a owl:Restriction ; - owl:onProperty saref:hasValue ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:float . - -saref:Measurement owl:disjointWith saref:Property , saref:UnitOfMeasure ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Measurement"@en . -# -# https://w3id.org/saref#Property - -saref:Property a owl:Class ; - rdfs:subClassOf _:genid53 . - -_:genid53 a owl:Restriction ; - owl:onProperty saref:isControlledByDevice ; - owl:allValuesFrom saref:Device . - -saref:Property rdfs:subClassOf _:genid54 . - -_:genid54 a owl:Restriction ; - owl:onProperty saref:isMeasuredByDevice ; - owl:allValuesFrom saref:Device . - -saref:Property rdfs:subClassOf _:genid55 . - -_:genid55 a owl:Restriction ; - owl:onProperty saref:isPropertyOf ; - owl:allValuesFrom saref:FeatureOfInterest . - -saref:Property rdfs:subClassOf _:genid56 . - -_:genid56 a owl:Restriction ; - owl:onProperty saref:relatesToMeasurement ; - owl:allValuesFrom saref:Measurement . - -saref:Property owl:disjointWith saref:UnitOfMeasure ; - rdfs:comment "An aspect of an entity that can be observable by a sensor."@en , "Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:isDefinedBy saref: ; - rdfs:label "Property"@en , "Property"^^xsd:string . -# -# https://w3id.org/saref#Sensor - -saref:Sensor a owl:Class ; - rdfs:subClassOf saref:Device ; - rdfs:isDefinedBy saref: ; - rdfs:label "Sensor"@en . -# -# https://w3id.org/saref#State - -saref:State a owl:Class ; - rdfs:comment "The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "State"^^xsd:string . -# -# https://w3id.org/saref#Task - -saref:Task a owl:Class ; - rdfs:subClassOf _:genid57 . - -_:genid57 a owl:Restriction ; - owl:onProperty saref:isAccomplishedBy ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Device . - -saref:Task rdfs:comment "The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "Task"^^xsd:string . -# -# https://w3id.org/saref#Temperature - -saref:Temperature a owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin)"^^xsd:string ; - rdfs:label "Temperature"@en , "Temperature"^^xsd:string . -# -# https://w3id.org/saref#Time - -saref:Time a owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "A saref:Property that allows to specify the time concept in terms of instants or intervals according to the imported W3C Time ontology."^^xsd:string ; - rdfs:label "Time"^^xsd:string . -# -# https://w3id.org/saref#UnitOfMeasure - -saref:UnitOfMeasure a owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM)."^^xsd:string , "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended."@en ; - rdfs:isDefinedBy , saref: ; - rdfs:label "Unit of measure"@en . -# -# -# -# ################################################################# -# # -# # Individuals -# # -# ################################################################# -# -# -# http://dbpedia.org/resource/DBM - - a owl:NamedIndividual , saref:UnitOfMeasure ; - rdfs:label "decibel-milliwatts"@en . -# -# http://www.ontology-of-units-of-measure.org/resource/om-2/degreeCelsius - - a owl:NamedIndividual , saref:UnitOfMeasure ; - rdfs:label "degree Celsius"@en . -# -# http://www.ontology-of-units-of-measure.org/resource/om-2/millibar - - a owl:NamedIndividual , saref:UnitOfMeasure ; - rdfs:label "millibar"@en . -# -# http://www.ontology-of-units-of-measure.org/resource/om-2/millimetre - - a owl:NamedIndividual , saref:UnitOfMeasure ; - rdfs:label "millimetre"@en . -# -# http://www.ontology-of-units-of-measure.org/resource/om-2/millivolt - - a owl:NamedIndividual , saref:UnitOfMeasure ; - rdfs:label "millivolt"@en . -# -# https://saref.etsi.org/saref4agri#AirTemperature - -s4agri:AirTemperature a owl:NamedIndividual , saref:Temperature . -# -# https://saref.etsi.org/saref4agri#AmbientHumidity - -s4agri:AmbientHumidity a owl:NamedIndividual , saref:Humidity . -# -# https://saref.etsi.org/saref4agri#IrrigationWater - -s4agri:IrrigationWater a owl:NamedIndividual , saref:Property . -# -# https://saref.etsi.org/saref4agri#PlantGrowthStage - -s4agri:PlantGrowthStage a owl:NamedIndividual , saref:Property . -# -# https://saref.etsi.org/saref4agri#Precipitation - -s4agri:Precipitation a owl:NamedIndividual , saref:Property . -# -# https://saref.etsi.org/saref4agri#SoilMoisture - -s4agri:SoilMoisture a owl:NamedIndividual , saref:Property . -# -# https://saref.etsi.org/saref4agri#SoilTemperature - -s4agri:SoilTemperature a owl:NamedIndividual , saref:Temperature . -# -# -# -# ################################################################# -# # -# # Annotations -# # -# ################################################################# -# -# - - rdfs:comment """The relation between something and the point, - or other geometrical thing in space, where it is. For example, the realtionship between - a radio tower and a Point with a given lat and long. - Or a relationship between a park and its outline as a closed arc of points, or a road and - its location as a arc (a sequence of points). - Clearly in practice there will be limit to the accuracy of any such statement, but one would expect - an accuracy appropriate for the size of the object and uses such as mapping . - """ ; - rdfs:label "location"@en . -# - -s4agri:AirTemperature rdfs:comment "The degree or intensity of heat present in the air." ; - rdfs:label "Air temperature"@en . -# - -s4agri:AmbientHumidity rdfs:label "Ambient huidity"@en , "Ambient humidity"@en ; - rdfs:comment "The amount of water vapour in the air." . -# - -s4agri:IrrigationWater rdfs:comment "The amount of water falling in the soil by irrigation methods." ; - rdfs:label "Irrigation water"@en . -# - -s4agri:PlantGrowthStage rdfs:comment "The level or stage of growth of the plant." ; - rdfs:label "Plant growth stage"@en . -# - -s4agri:Precipitation rdfs:comment "The amount of water falling in the soil by natural process (e.g. rain)." ; - rdfs:label "Precipitation"@en . -# - -s4agri:SoilMoisture rdfs:label "Soil moisture"@en ; - rdfs:comment "The amount of water or humidity contained in the soil." . -# - -s4agri:SoilTemperature rdfs:comment "The degree or intensity of heat present in the soil." ; - rdfs:label "Soil temperature"@en . -# -# Generated by the OWL API (version 4.2.6.20160910-2108) https://github.com/owlcs/owlapi \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4bldg/latest/saref4bldg.html b/src/main/resources/saref-portal-generator/public/saref4bldg/latest/saref4bldg.html deleted file mode 100644 index 33f2485..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4bldg/latest/saref4bldg.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - SAREF extension for building devices

    -

    Official ETSI documentation for SAREF4BLDG v1.1.1
    This page will soon contain the documentation of the SAREF4BLDG ontology v1.1.1

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    The documentation of SAREF4BLDG v1.1.1 will be available here soon. The source of the ontology are available as Turtle or RDF/XML Visualize it with VOWL

    -
    -
    -
    -
    -

    This ontology extends the SAREF ontology for the building domain by defining building devices and how they are located in a building. This extension is based on the ISO 16739:2013 Industry Foundation Classes (IFC) standard for data sharing in the construction and facility management industries. The descriptions of the classes and properties extracted from IFC have been taken from the IFC documentation.

    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4bldg/latest/saref4bldg.n3 b/src/main/resources/saref-portal-generator/public/saref4bldg/latest/saref4bldg.n3 deleted file mode 100644 index 040d1f2..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4bldg/latest/saref4bldg.n3 +++ /dev/null @@ -1,3127 +0,0 @@ -@prefix rdf: . -@prefix owl: . -@prefix xml: . -@prefix s4bldg: . -@prefix saref: . -@prefix xsd: . -@prefix dcterms: . -@prefix rdfs: . -@prefix vann: . -@prefix prov: . - -s4bldg:frameType a owl:DatatypeProperty ; - rdfs:comment "The type of frame used by the damper (e.g., Standard, Single Flange, Single Reversed Flange, Double Flange, etc.)."@en ; - rdfs:label "frame type"@en ; - rdfs:range xsd:string . - - - a owl:ObjectProperty ; - rdfs:comment "The relation between something and the point, or other geometrical thing in space, where it is. For example, the realtionship between a radio tower and a Point with a given lat and long. Or a relationship between a park and its outline as a closed arc of points, or a road and its location as a arc (a sequence of points). Clearly in practice there will be limit to the accuracy of any such statement, but one would expect an accuracy appropriate for the size of the object and uses such as mapping ."@en ; - rdfs:isDefinedBy ; - rdfs:label "location"@en . - -s4bldg:heatTransferSurfaceArea - a owl:ObjectProperty ; - rdfs:comment "Total heat transfer area of the vessel. Usually measured in square metre (m2)."@en ; - rdfs:label "heat transfer surface area"@en . - -s4bldg:idealShaftPower - a owl:ObjectProperty ; - rdfs:comment "Compressor shaft power under ideal conditions. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "ideal shaft power"@en . - -s4bldg:capacityControl - a owl:DatatypeProperty ; - rdfs:comment "FanCycling: Fan is cycled on and off to control duty. TwoSpeedFan: Fan is switched between low and high speed to control duty. VariableSpeedFan: Fan speed is varied to control duty. DampersControl: Dampers modulate the air flow to control duty. BypassValveControl: Bypass valve modulates the water flow to control duty. MultipleSeriesPumps: Turn on/off multiple series pump to control duty. TwoSpeedPump: Switch between high/low pump speed to control duty. VariableSpeedPump: vary pump speed to control duty."@en ; - rdfs:label "capacity control"@en ; - rdfs:range xsd:string . - -s4bldg:bladeThickness - a owl:ObjectProperty ; - rdfs:comment "The thickness of the damper blade. Usually measured in millimeters (mm)."@en ; - rdfs:label "blade thickness"@en . - -s4bldg:hasExteriorInsulation - a owl:DatatypeProperty ; - rdfs:comment "TRUE if the silencer has exterior insulation. FALSE if it does not."@en ; - rdfs:label "has exterior insulation"@en ; - rdfs:range xsd:boolean . - -s4bldg:ElectricMotor a owl:Class ; - rdfs:comment "An electric motor is an engine that is a machine for converting electrical energy into mechanical energy."@en ; - rdfs:label "Electric motor"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricMotor" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:teTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:lockedRotorCurrent - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:hasPartWinding - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:frameSize - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:motorEnclosureType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:startCurrentFactor - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:electricMotorEfficiency - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:powerOutputMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:isGuarded - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:startingTime - ] ; - prov:hadPrimarySource , . - -s4bldg:limitingTerminalSize - a owl:ObjectProperty ; - rdfs:comment "The maximum terminal size capacity of the device. Usually measured in square metre (m2)."@en ; - rdfs:label "limiting terminal size"@en . - -s4bldg:roughness a owl:DatatypeProperty ; - rdfs:comment "A measure of the vertical deviations of the surface."@en ; - rdfs:label "roughness"@en ; - rdfs:range xsd:string . - -s4bldg:colorRenderingIndex - a owl:DatatypeProperty ; - rdfs:comment "The CRI indicates how well a light source renders eight standard colors compared to perfect reference lamp with the same color temperature. The CRI scale ranges from 1 to 100, with 100 representing perfect rendering properties."@en ; - rdfs:label "color rendering index"@en ; - rdfs:range xsd:integer . - -s4bldg:imaginaryImpedanceRatio - a owl:ObjectProperty ; - rdfs:comment "The ratio between the imaginary part of the zero sequence impedance and the imaginary part of the positive impedance (i.e. imaginary part of the short-circuit voltage) of the transformer. Used for three-phase transformer which includes a N-conductor."@en ; - rdfs:label "imaginary impedance ratio"@en . - -s4bldg:coverWidth a owl:ObjectProperty ; - rdfs:comment "The length measured along the x-axis in the local coordinate system of the cover of the oil interceptor. Usually measured in millimeters (mm)."@en ; - rdfs:label "cover width"@en . - -s4bldg:height a owl:ObjectProperty ; - rdfs:comment "Height of the vibration isolator before tha application of load. Usually measured in millimeters (mm)."@en ; - rdfs:label "height"@en . - -s4bldg:thermalTransmittance - a owl:ObjectProperty ; - rdfs:comment "Rate at which energy is transmitted through a body. Usually measured in Watts/m2 Kelvin."@en ; - rdfs:label "thermal transmittance"@en . - -s4bldg:DuctSilencer a owl:Class ; - rdfs:comment "A duct silencer is a device that is typically installed inside a duct distribution system for the purpose of reducing the noise levels from air movement, fan noise, etc. in the adjacent space or downstream of the duct silencer device."@en ; - rdfs:label "Duct silencer"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcDuctSilencer" ; - rdfs:subClassOf s4bldg:FlowTreatmentDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:airFlowRateMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:hasExteriorInsulation - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:workingPressureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:weight - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:airFlowRateMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:length - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:workingPressureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:hydraulicDiameter - ] ; - prov:hadPrimarySource , . - -s4bldg:UnitaryControlElement - a owl:Class ; - rdfs:comment "A unitary control element combines a number of control components into a single product, such as a thermostat or humidistat.\n\nA unitary control element provides a housing for an aggregation of control or electrical distribution elements that, in combination, perform a singular (unitary) purpose. Each item in the aggregation may have its own geometric representation and location."@en ; - rdfs:label "Unitary control element"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcUnitaryControlElement" ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - prov:hadPrimarySource , . - -s4bldg:numberOfSections - a owl:DatatypeProperty ; - rdfs:comment "Number of sections used."@en ; - rdfs:label "number of sections"@en ; - rdfs:range xsd:integer . - -s4bldg:heatTransferDimension - a owl:DatatypeProperty ; - rdfs:comment "Indicates how heat is transmitted according to the shape of the space heater."@en ; - rdfs:label "heat transfer dimension"@en ; - rdfs:range xsd:string . - -s4bldg:DistributionDevice - a owl:Class ; - rdfs:comment "Generalization of all devices that participate in a distribution system. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcproductextension/lexical/ifcdistributionelement.htm)"@en ; - rdfs:label "Distribution device"@en ; - rdfs:subClassOf s4bldg:BuildingDevice . - -s4bldg:nominalCoolingCapacity - a owl:ObjectProperty ; - rdfs:comment "Nominal cooling capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal cooling capacity"@en . - -s4bldg:placementType a owl:DatatypeProperty ; - rdfs:comment "Indicates how the device is designed to be placed."@en ; - rdfs:label "placement type"@en ; - rdfs:range xsd:string . - -s4bldg:bladeAction a owl:DatatypeProperty ; - rdfs:comment "Blade action."@en ; - rdfs:label "blade action"@en ; - rdfs:range xsd:string . - -s4bldg:ambientDesignDryBulbTemperature - a owl:ObjectProperty ; - rdfs:comment "Ambient design dry bulb temperature used for selecting the cooling tower. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "ambient design dry bulb temperature"@en . - -s4bldg:bladeShape a owl:DatatypeProperty ; - rdfs:comment "Blade shape. Flat means triple V-groove."@en ; - rdfs:label "blade shape"@en ; - rdfs:range xsd:string . - -saref:Actuator a owl:Class ; - rdfs:comment "A device responsible for moving or controlling a mechanism or system"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Actuator"@en . - -s4bldg:insideDiameter - a owl:ObjectProperty ; - rdfs:comment "Actual inner diameter of the tube in the tube bundle. Usually measured in millimeters (mm)."@en ; - rdfs:label "inside diameter"@en . - -s4bldg:Pump a owl:Class ; - rdfs:comment "A pump is a device which imparts mechanical work on fluids or slurries to move them through a channel or pipeline. A typical use of a pump is to circulate chilled water or heating hot water in a building services distribution system."@en ; - rdfs:label "Pump"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcPump" ; - rdfs:subClassOf s4bldg:FlowMovingDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:netPositiveSuctionHead - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:flowResistanceMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:connectionSize - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:pumpFlowRateMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nomminalRotationSpeed - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:flowResistanceMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:pumpFlowRateMax - ] ; - prov:hadPrimarySource , . - -s4bldg:FlowController - a owl:Class ; - rdfs:comment "The distribution flow element FlowController defines the occurrence of elements of a distribution system that are used to regulate flow through a distribution system. Examples include dampers, valves, switches, and relays."@en ; - rdfs:label "Flow controller"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowController" ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - prov:hadPrimarySource . - -s4bldg:waterInletTemperatureMax - a owl:ObjectProperty ; - rdfs:comment "Allowable water inlet temperature range. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "water inlet temperature range"@en . - -s4bldg:evaporationCoolant - a owl:DatatypeProperty ; - rdfs:comment "The fluid used for the coolant in the evaporator."@en ; - rdfs:label "evaporation coolant"@en ; - rdfs:range xsd:string . - -s4bldg:TubeBundle a owl:Class ; - rdfs:comment "A tube bundle is a device consisting of tubes and bundles of tubes used for heat transfer and contained typically within other energy conversion devices, such as a chiller or coil."@en ; - rdfs:label "Tube bundle"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcTubeBundle" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:inLineRowSpacing - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalDiameter - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOfCircuits - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:thermalConductivity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:volumen - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:horizontalSpacing - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:hasTurbulator - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:foulingFactor - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:insideDiameter - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:length - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOfRows - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:verticalSpacing - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:outsideDiameter - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:staggeredRowSpacing - ] ; - prov:hadPrimarySource , . - -s4bldg:shadingDeviceType - a owl:DatatypeProperty ; - rdfs:comment "Specifies the type of shading device."@en ; - rdfs:label "shading device type"@en ; - rdfs:range xsd:string . - -s4bldg:lightEmitterNominalPower - a owl:ObjectProperty ; - rdfs:comment "Light emitter nominal power. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "light emitter nominal power"@en . - -s4bldg:Valve a owl:Class ; - rdfs:comment "A valve is used in a building services piping distribution system to control or modulate the flow of the fluid."@en ; - rdfs:label "Valve"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcValve" ; - rdfs:subClassOf s4bldg:FlowController ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:valvePattern - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:valveOperation - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:testPressure - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:workingPressure - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:flowCoefficient - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:size - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:closeOffRating - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:valveMechanism - ] ; - prov:hadPrimarySource , . - -s4bldg:Interceptor a owl:Class ; - rdfs:comment "An interceptor is a device designed and installed in order to separate and retain deleterious, hazardous or undesirable matter while permitting normal sewage or liquids to discharge into a collection system by gravity."@en ; - rdfs:label "Interceptor"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcInterceptor" ; - rdfs:subClassOf s4bldg:FlowTreatmentDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:outletConnectionSize - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:inletConnectionSize - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalBodyDepth - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:ventilatingPipeSize - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalBodyLength - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:coverLength - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalBodyWidth - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:coverWidth - ] ; - prov:hadPrimarySource , . - -s4bldg:standard a owl:DatatypeProperty ; - rdfs:comment "The designation of the standard applicable for the definition of the characteristics of the unit."@en ; - rdfs:label "standard"@en ; - rdfs:range xsd:string . - -s4bldg:finishColor a owl:DatatypeProperty ; - rdfs:comment "Finish color for cooled beam."@en ; - rdfs:label "finish color"@en ; - rdfs:range xsd:string . - -s4bldg:frameDepth a owl:ObjectProperty ; - rdfs:comment "The length (or depth) of the damper frame. Usually measured in millimeters (mm)."@en ; - rdfs:label "frame depth"@en . - -s4bldg:numberOfBlades - a owl:DatatypeProperty ; - rdfs:comment "Number of blades."@en ; - rdfs:label "number of blades"@en ; - rdfs:range xsd:integer . - -s4bldg:nominalDiameter - a owl:ObjectProperty ; - rdfs:comment "Nominal diameter or width of the tubes in the tube bundle. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal diameter"@en . - -s4bldg:visibleLightReflectance - a owl:ObjectProperty ; - rdfs:comment "Fraction of the visible light that is reflected by the glazing at normal incidence. It is a value without unit."@en ; - rdfs:label "visible light reflectance"@en . - -s4bldg:volumen a owl:ObjectProperty ; - rdfs:comment "Total volume of fluid in the tubes and their headers. Usually measured in cubic metre (m3)."@en ; - rdfs:label "volumen"@en . - -s4bldg:isPluggableOutlet - a owl:DatatypeProperty ; - rdfs:comment "Indication of whether the outlet accepts a loose plug connection (= TRUE) or whether it is directly connected (= FALSE) or whether the form of connection has not yet been determined (= UNKNOWN)."@en ; - rdfs:label "is pluggable outlet"@en ; - rdfs:range xsd:boolean . - -s4bldg:nominalDepth a owl:ObjectProperty ; - rdfs:comment "The nominal depth of the tank. Note: Not required for a horizontal cylindrical tank. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal depth"@en . - -s4bldg:Transformer a owl:Class ; - rdfs:comment "A transformer is an inductive stationary device that transfers electrical energy from one circuit to another.\n\nTransformer is used to transform electric power; conversion of electric signals for other purposes is handled at other entities: Controller converts arbitrary signals, AudioVisualAppliance converts signals for audio or video streams, and CommunicationsAppliance converts signals for data or other communications usage."@en ; - rdfs:label "Transformer"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcTransformer" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:apparentPowerMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:isNeutralPrimaryTerminalAvailable - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:primaryCurrent - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:primaryFrequency - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:primaryApparentPower - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:secondaryCurrent - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:secondaryApparentPower - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:imaginaryImpedanceRatio - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:secondaryFrequency - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:isNeutralSecondaryTerminalAvailable - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:realImpedanceRatio - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:transformerVectorGroup - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:primaryVoltage - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:secondaryVoltage - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:secondaryCurrentType - ] ; - prov:hadPrimarySource , . - -s4bldg:nominalVolumetricCapacity - a owl:ObjectProperty ; - rdfs:comment "The total nominal or design volumetric capacity of the tank. Usually measured in cubic metre (m3)."@en ; - rdfs:label "nominal volumetric capacity"@en . - -s4bldg:outsideDiameter - a owl:ObjectProperty ; - rdfs:comment "Actual outside diameter of the tube in the tube bundle. Usually measured in millimeters (mm)."@en ; - rdfs:label "outside diameter"@en . - -s4bldg:nominalLengthOrDiameter - a owl:ObjectProperty ; - rdfs:comment "The nominal length or, in the case of a vertical cylindrical tank, the nominal diameter of the tank. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal length or diameter"@en . - -s4bldg:nominalCondensingTemperature - a owl:ObjectProperty ; - rdfs:comment "Chiller condensing temperature. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal condensing temperature"@en . - -s4bldg:CooledBeam a owl:Class ; - rdfs:comment "A cooled beam (or chilled beam) is a device typically used to cool air by circulating a fluid such as chilled water through exposed finned tubes above a space. Typically mounted overhead near or within a ceiling, the cooled beam uses convection to cool the space below it by acting as a heat sink for the naturally rising warm air of the space. Once cooled, the air naturally drops back to the floor where the cycle begins again."@en ; - rdfs:label "Cooled beam"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCooledBeam" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:coilWidth - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalHeatingCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:integratedLightingType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalWaterFlowHeating - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:waterPressureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalCoolingCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalSupplyWaterTemperatureCooling - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:waterPressureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalWaterFlowCooling - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalSupplyWaterTemperatureHeating - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:waterFlowControlSystemType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalReturnWaterTemperatureCooling - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalSorroundingHumidityCooling - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalReturnWaterTemperatureHeating - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalSorroundingTemperatureCooling - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:finishColor - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:pipeConnectionEnum - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalSorroundingTemperatureHeating - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:isFreeHanging - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:coilLength - ] ; - prov:hadPrimarySource , . - -s4bldg:numberOfPanels - a owl:DatatypeProperty ; - rdfs:comment "Number of panels."@en ; - rdfs:label "number of panels"@en ; - rdfs:range xsd:integer . - -s4bldg:nominalWaterFlowCooling - a owl:ObjectProperty ; - rdfs:comment "Nominal water flow (refers to nominal cooling capacity). Usually measured in m3/s."@en ; - rdfs:label "nominal water flow cooling"@en . - -s4bldg:nominalSorroundingTemperatureCooling - a owl:ObjectProperty ; - rdfs:comment "Nominal surrounding temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal sorrounding temperature cooling"@en . - -s4bldg:flowResistanceMin - a owl:ObjectProperty ; - rdfs:comment "Allowable range of frictional resistance against which the fluid is being pumped. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "flow resistance range"@en . - -s4bldg:Condenser a owl:Class ; - rdfs:comment "A condenser is a device that is used to dissipate heat, typically by condensing a substance such as a refrigerant from its gaseous to its liquid state."@en ; - rdfs:label "Condenser"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCondenser" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalHeatTransferCoefficient - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:refrigerantClass - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalHeatTransferArea - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:internalSurfaceArea - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:internalWaterVolume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:internalRefrigerantVolume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:externalSurfaceArea - ] ; - prov:hadPrimarySource , . - -s4bldg:accessType a owl:DatatypeProperty ; - rdfs:comment "Defines the types of access (or cover) to a tank that may be specified. Note that covers are generally specified for rectangular tanks. For cylindrical tanks, access will normally be via a manhole."@en ; - rdfs:label "access type"@en ; - rdfs:range xsd:string . - -s4bldg:isNeutralSecondaryTerminalAvailable - a owl:DatatypeProperty ; - rdfs:comment "An indication of whether the neutral point of the secondary winding is available as a terminal (=TRUE) or not (= FALSE)."@en ; - rdfs:label "is neutral secondary terminal available"@en ; - rdfs:range xsd:boolean . - -s4bldg:secondaryAirFlowRateMax - a owl:ObjectProperty ; - rdfs:comment "Maximum secondary airflow that can be delivered. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "secondary air flow rate range"@en . - -s4bldg:MedicalDevice a owl:Class ; - rdfs:comment "A medical device is attached to a medical piping system and operates upon medical gases to perform a specific function. Medical gases include medical air, medical vacuum, oxygen, carbon dioxide, nitrogen, and nitrous oxide."@en ; - rdfs:label "Medical device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcMedicalDevice" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - prov:hadPrimarySource , . - -s4bldg:hasTurbulator a owl:DatatypeProperty ; - rdfs:comment "TRUE if the tube has a turbulator, FALSE if it does not."@en ; - rdfs:label "has turbulator"@en ; - rdfs:range xsd:boolean . - -s4bldg:ElectricFlowStorageDevice - a owl:Class ; - rdfs:comment "An electric flow storage device is a device in which electrical energy is stored and from which energy may be progressively released."@en ; - rdfs:label "Electric flow storage device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricFlowStorageDevice" ; - rdfs:subClassOf s4bldg:FlowStorageDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalSupplyVoltageMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalFrequency - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalSupplyVoltage - ] ; - prov:hadPrimarySource , . - -s4bldg:teTime a owl:ObjectProperty ; - rdfs:comment "The maximum time (in s) at which the motor could run with locked rotor when the motor is used in an EX-environment. The time indicates that a protective device should trip before this time when the starting current of the motor is slowing through the device."@en ; - rdfs:label "te time"@en . - -s4bldg:firstCurvatureRadius - a owl:ObjectProperty ; - rdfs:comment "FirstCurvatureRadius should be defined as the base or left side radius of curvature value. Usually measured in millimeters (mm)."@en ; - rdfs:label "first curvature radius"@en . - -s4bldg:isSpaceOf a owl:TransitiveProperty , owl:ObjectProperty ; - rdfs:comment "Relation between a building space and the building or building space it belongs to."@en ; - rdfs:label "isSpaceOf"@en . - -s4bldg:airFlowRateMax - a owl:ObjectProperty ; - rdfs:comment "Maximum allowable air flow rate. Usually measured in m3/s."@en ; - rdfs:label "air flow rate range max"@en . - -s4bldg:FireSuppressionTerminal - a owl:Class ; - rdfs:comment "A fire suppression terminal has the purpose of delivering a fluid (gas or liquid) that will suppress a fire.\n\nA fire suppression terminal provides for all forms of sprinkler, spreader and other form of terminal that is connected to a pipework system and intended to act in the role of suppressing a fire."@en ; - rdfs:label "Fire suppression terminal"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFireSuppressionTerminal" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - prov:hadPrimarySource , . - -s4bldg:Coil a owl:Class ; - rdfs:comment "A coil is a device used to provide heat transfer between non-mixing media. A common example is a cooling coil, which utilizes a finned coil in which circulates chilled water, antifreeze, or refrigerant that is used to remove heat from air moving across the surface of the coil. A coil may be used either for heating or cooling purposes by placing a series of tubes (the coil) carrying a heating or cooling fluid into an airstream. The coil may be constructed from tubes bundled in a serpentine form or from finned tubes that give a extended heat transfer surface.\n\nCoils may also be used for non-airflow cases such as embedded in a floor slab."@en ; - rdfs:label "Coil"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCoil" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:airFlowRateMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalUa - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalSensibleCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:placementType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:airFlowRateMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalLatentCapacity - ] ; - prov:hadPrimarySource , . - -s4bldg:nominalAirFlowRate - a owl:ObjectProperty ; - rdfs:comment "Nominal rate of air flow. Usually measured in m3/s."@en ; - rdfs:label "nominal air flow rate"@en . - -s4bldg:primaryVoltage - a owl:ObjectProperty ; - rdfs:comment "The voltage that is going to be transformed and that runs into the transformer on the primary side. Usually measured in Volts (V, W/A)."@en ; - rdfs:label "primary voltage"@en . - -s4bldg:numberOfCircuits - a owl:DatatypeProperty ; - rdfs:comment "Number of parallel fluid tube circuits."@en ; - rdfs:label "number of circuits"@en ; - rdfs:range xsd:integer . - -s4bldg:TransportElement - a owl:Class ; - rdfs:comment "A transport element is a generalization of all transport related objects that move people, animals or goods within a building or building complex. The TransportElement defines the occurrence of a transport element. "@en ; - rdfs:label "Transport element"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcTransportElement" ; - rdfs:subClassOf saref:Device ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:fireExit - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:capacityWeight - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:positiveInteger ; - owl:onProperty s4bldg:capacityPeople - ] ; - prov:hadPrimarySource , . - -s4bldg:colorTemperature - a owl:ObjectProperty ; - rdfs:comment "The color temperature of any source of radiation is defined as the temperature (in Kelvin) of a black-body or Planckian radiator whose radiation has the same chromaticity as the source of radiation. Often the values are only approximate color temperatures as the black-body radiator cannot emit radiation of every chromaticity value. The color temperatures of the commonest artificial light sources range from less than 3000K (warm white) to 4000K (intermediate) and over 5000K (daylight). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "color temperature"@en . - -s4bldg:spectrumMin a owl:ObjectProperty ; - rdfs:comment "The spectrum of radiation describes its composition with regard to wavelength. Light, for example, as the portion of electromagnetic radiation that is visible to the human eye, is radiation with wavelengths in the range of approx. 380 to 780 nm (1 nm = 10 m). The corresponding range of colours varies from violet to indigo, blue, green, yellow, orange, and red. These colours form a continuous spectrum, in which the various spectral sectors merge into each other."@en ; - rdfs:label "minimum spectrum"@en . - -s4bldg:numberOfCells a owl:DatatypeProperty ; - rdfs:comment "Number of cells in one cooling tower unit."@en ; - rdfs:label "number of cells"@en ; - rdfs:range xsd:integer . - -s4bldg:secondaryFrequency - a owl:ObjectProperty ; - rdfs:comment "The frequency that has been transformed and is running out of the transformer on the secondary side. Usually measured in cycles/s or Hertz (Hz)."@en ; - rdfs:label "secondary frequency"@en . - -s4bldg:SwitchingDevice - a owl:Class ; - rdfs:comment "A switch is used in a cable distribution system (electrical circuit) to control or modulate the flow of electricity.\n\nSwitches include those used for electrical power, communications, audio-visual, or other distribution system types as determined by the available ports."@en ; - rdfs:label "Switching device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSwitchingDevice" ; - rdfs:subClassOf s4bldg:FlowController ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:switchFunction - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:legend - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:isIlluminated - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOfGangs - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:hasLock - ] ; - prov:hadPrimarySource , . - -s4bldg:partLoadRatioMin - a owl:ObjectProperty ; - rdfs:comment "Minimum part load ratio as a fraction of nominal capacity."@en ; - rdfs:label "minimum part load ratio"@en . - -s4bldg:FlowTreatmentDevice - a owl:Class ; - rdfs:comment "The distribution flow element FlowTreatmentDevice defines the occurrence of a device typically used to remove unwanted matter from a fluid, either liquid or gas, and typically participates in a flow distribution system."@en ; - rdfs:label "Flow treatment device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowTreatmentDevice" ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - prov:hadPrimarySource . - -s4bldg:lockedRotorCurrent - a owl:ObjectProperty ; - rdfs:comment "Input current when a motor armature is energized but not rotating. Usually measured in Ampere (A)."@en ; - rdfs:label "locked rotor current"@en . - -s4bldg:capacityPeople - a owl:DatatypeProperty ; - rdfs:comment "Capacity of the transportation element measured in numbers of person."@en ; - rdfs:label "capacity people"@en ; - rdfs:range xsd:nonNegativeInteger . - -s4bldg:Building a owl:Class ; - rdfs:comment "A building represents a structure that provides shelter for its occupants or contents and stands in one place. The building is also used to provide a basic element within the spatial structure hierarchy for the components of a building project (together with site, storey, and space)."@en ; - rdfs:label "Building"@en ; - rdfs:seeAlso ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4bldg:BuildingSpace ; - owl:onProperty s4bldg:hasSpace - ] ; - prov:hadPrimarySource . - -s4bldg:bladeEdge a owl:DatatypeProperty ; - rdfs:comment "Blade edge."@en ; - rdfs:label "blade edge"@en ; - rdfs:range xsd:string . - -s4bldg:FlowMeter a owl:Class ; - rdfs:comment "A flow meter is a device that is used to measure the flow rate in a system."@en ; - rdfs:label "Flow meter"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowMeter" ; - rdfs:subClassOf s4bldg:FlowController ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:remoteReading - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:readOutType - ] ; - prov:hadPrimarySource , . - -s4bldg:evaporationMediumType - a owl:DatatypeProperty ; - rdfs:comment "ColdLiquid: Evaporator is using liquid type of fluid to exchange heat with refrigerant. ColdAir: Evaporator is using air to exchange heat with refrigerant."@en ; - rdfs:label "evaporation medium type"@en ; - rdfs:range xsd:string . - -s4bldg:frameSize a owl:DatatypeProperty ; - rdfs:comment "Designation of the frame size according to the named range of frame sizes designated at the place of use or according to a given standard."@en ; - rdfs:label "frame size"@en ; - rdfs:range xsd:string . - -s4bldg:audioVolume a owl:ObjectProperty ; - rdfs:comment "Indicates discrete audio volume levels and corresponding sound power offsets, if applicable. Missing values may be interpolated. Measured in watts."@en ; - rdfs:label "audio volume"@en . - -s4bldg:finalResistance - a owl:ObjectProperty ; - rdfs:comment "Filter fluid resistance when replacement is required (i.e., Pressure drop at the maximum air flowrate across the filter when the filter needs replacement per ASHRAE Standard 52.1). Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "final resistance"@en . - -s4bldg:nominalBodyWidth - a owl:ObjectProperty ; - rdfs:comment "Nominal or quoted length, measured along the y-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal body width"@en . - -s4bldg:sprayType a owl:DatatypeProperty ; - rdfs:comment "SprayFilled: Water is sprayed into airflow. SplashTypeFill: water cascades over successive rows of splash bars. FilmTypeFill: water flows in a thin layer over closely spaced sheets."@en ; - rdfs:label "spray type"@en ; - rdfs:range xsd:string . - -s4bldg:primaryAirFlowRateMax - a owl:ObjectProperty ; - rdfs:comment "Maximum primary airflow that can be delivered. Usually measured in m3/s."@en ; - rdfs:label "primary air flow rate range"@en . - -s4bldg:compressorSpeed - a owl:ObjectProperty ; - rdfs:comment "Compressor speed. Usually measured in cycles/s."@en ; - rdfs:label "compressor speed"@en . - -s4bldg:isExternal a owl:DatatypeProperty ; - rdfs:comment "Indication whether the element is designed for use in the exterior (TRUE) or not (FALSE). If (TRUE) it is an external element and faces the outside of the building."@en ; - rdfs:label "is external"@en ; - rdfs:range xsd:boolean . - -s4bldg:powerSource a owl:DatatypeProperty ; - rdfs:comment "Type of power driving the compressor."@en ; - rdfs:label "power source"@en ; - rdfs:range xsd:string . - -s4bldg:HeatExchanger a owl:Class ; - rdfs:comment "A heat exchanger is a device used to provide heat transfer between non-mixing media such as plate and shell and tube heat exchangers. HeatExchanger is commonly used on water-side distribution systems to recover energy from a liquid to another liquid (typically water-based), whereas AirToAirHeatRecovery is commonly used on air-side distribution systems to recover energy from a gas to a gas (usually air)."@en ; - rdfs:label "Heat exchanger"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcHeatExchanger" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:arrangement - ] ; - prov:hadPrimarySource , . - -s4bldg:AudioVisualAppliance - a owl:Class ; - rdfs:comment "An audio-visual appliance is a device that displays, captures, transmits, or receives audio or video.\n\nAudio-visual appliances may be fixed in place or may be able to be moved from one space to another. They may require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source. Audio-visual appliances may be connected to data circuits including specialist circuits for audio visual purposes only."@en ; - rdfs:label "Audio visual appliance"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcAudioVisualApplicance" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:mediaSource - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:audioVolume - ] ; - prov:hadPrimarySource , . - -s4bldg:thermalEfficiency - a owl:ObjectProperty ; - rdfs:comment "Overall Thermal Efficiency is defined as gross energy output of the heat transfer device divided by the energy input."@en ; - rdfs:label "thermal efficiency"@en . - -s4bldg:internalControl - a owl:DatatypeProperty ; - rdfs:comment "Internal modulation control."@en ; - rdfs:label "internal control"@en ; - rdfs:range xsd:string . - -s4bldg:valveOperation - a owl:DatatypeProperty ; - rdfs:comment "The method of valve operation where: DROPWEIGHT: A valve that is closed by the action of a weighted lever being released, the weight normally being prevented from dropping by being held by a wire, the closure normally being made by the action of heat on a fusible link in the wire FLOAT: A valve that is opened and closed by the action of a float that rises and falls with water level. The float may be a ball attached to a lever or other mechanism HYDRAULIC: A valve that is opened and closed by hydraulic actuation LEVER: A valve that is opened and closed by the action of a lever rotating the gate within the valve. LOCKSHIELD: A valve that requires the use of a special lockshield key for opening and closing, the operating mechanism being protected by a shroud during normal operation. MOTORIZED: A valve that is opened and closed by the action of an electric motor on an actuator PNEUMATIC: A valve that is opened and closed by pneumatic actuation SOLENOID: A valve that is normally held open by a magnetic field in a coil acting on the gate but that is closed immediately if the electrical current generating the magnetic field is removed. SPRING: A valve that is normally held in position by the pressure of a spring on a plate but that may be caused to open if the pressure of the fluid is sufficient to overcome the spring pressure. THERMOSTATIC: A valve in which the ports are opened or closed to maintain a required predetermined temperature. WHEEL: A valve that is opened and closed by the action of a wheel moving the gate within the valve."@en ; - rdfs:label "valve operation"@en ; - rdfs:range xsd:string . - -s4bldg:nominalSupplyVoltageMax - a owl:ObjectProperty ; - rdfs:comment "The maximum and minimum allowed voltage of the supply e.g. boundaries of 380V/440V may be applied for a nominal voltage of 400V."@en ; - rdfs:label "nominal supply voltage offset"@en . - -s4bldg:nominalSupplyWaterTemperatureHeating - a owl:ObjectProperty ; - rdfs:comment "Nominal supply water temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal supply water temperature heating"@en . - -s4bldg:externalSurfaceArea - a owl:ObjectProperty ; - rdfs:comment "External surface area (both primary and secondary area). Usually measured in square metre (m2)."@en ; - rdfs:label "external surface area"@en . - -s4bldg:PhysicalObject - a owl:Class ; - rdfs:comment "Any Object that has a proper space region. (Definition extracted from DUL ontology)"@en ; - rdfs:label "Physical object"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf [ a rdf:List ; - rdf:first s4bldg:BuildingSpace ; - rdf:rest [ a rdf:List ; - rdf:first s4bldg:PhysicalObject ; - rdf:rest () - ] - ] - ] ; - owl:onProperty s4bldg:isContainedIn - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4bldg:PhysicalObject ; - owl:onProperty s4bldg:contains - ] . - -s4bldg:isIlluminated a owl:DatatypeProperty ; - rdfs:comment "An indication of whether there is an illuminated indicator to show that the switch is on (=TRUE) or not (= FALSE)."@en ; - rdfs:label "is illuminated"@en ; - rdfs:range xsd:boolean . - -s4bldg:hasHotGasBypass - a owl:DatatypeProperty ; - rdfs:comment "Whether or not hot gas bypass is provided for the compressor. TRUE = Yes, FALSE = No."@en ; - rdfs:label "has hot gas bypass"@en ; - rdfs:range xsd:boolean . - -s4bldg:legend a owl:DatatypeProperty ; - rdfs:comment "A text inscribed or applied to the switch as a legend to indicate purpose or function."@en ; - rdfs:label "legend"@en ; - rdfs:range xsd:string . - -s4bldg:waterInletTemperatureMin - a owl:ObjectProperty ; - rdfs:comment "Allowable water inlet temperature range. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "water inlet temperature range"@en . - -s4bldg:DistributionFlowDevice - a owl:Class ; - rdfs:comment "Represents devices of a distribution system that facilitate the distribution of energy or matter, such as air, water or power. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcsharedbldgserviceelements/lexical/ifcdistributionflowelement.htm)"@en ; - rdfs:label "DistributionFlowDevice"@en ; - rdfs:subClassOf s4bldg:DistributionDevice . - -s4bldg:isContainedIn a owl:TransitiveProperty , owl:ObjectProperty ; - rdfs:comment "A relation between an object and the physical space in which it is located."@en ; - rdfs:label "is contained in"@en . - -saref:Measurement a owl:Class ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "Measurement"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:Property ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:relatesToProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onDataRange xsd:float ; - owl:onProperty saref:hasValue ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn - ] ; - owl:disjointWith saref:Property , saref:UnitOfMeasure . - -s4bldg:controlStrategy - a owl:DatatypeProperty ; - rdfs:comment "FixedExitingWaterTemp: The capacity is controlled to maintain a fixed exiting water temperature. WetBulbTempReset: The set-point is reset based on the wet-bulb temperature."@en ; - rdfs:label "control strategy"@en ; - rdfs:range xsd:string . - -s4bldg:contains a owl:TransitiveProperty , owl:ObjectProperty ; - rdfs:comment "A relation between a physical space and the objects located in such space."@en ; - rdfs:label "contains"@en ; - owl:inverseOf s4bldg:isContainedIn . - -s4bldg:coilLength a owl:ObjectProperty ; - rdfs:comment "Length of coil. Usually measured in millimeters (mm)."@en ; - rdfs:label "coil length"@en . - -s4bldg:FlowMovingDevice - a owl:Class ; - rdfs:comment "The distribution flow element FlowMovingDevice defines the occurrence of an apparatus used to distribute, circulate or perform conveyance of fluids, including liquids and gases (such as a pump or fan), and typically participates in a flow distribution system."@en ; - rdfs:label "Flow moving device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowMovingDevice" ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - prov:hadPrimarySource . - -s4bldg:startingTime a owl:ObjectProperty ; - rdfs:comment "The time (in s) needed for the motor to reach its rated speed with its driven equipment attached, starting from standstill and at the nominal voltage applied at its terminals."@en ; - rdfs:label "starting time"@en . - -s4bldg:outputCapacity - a owl:ObjectProperty ; - rdfs:comment "Total nominal heat output as listed by the manufacturer. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "output capacity"@en . - -s4bldg:secondaryCurrent - a owl:ObjectProperty ; - rdfs:comment "The current that has been transformed and is running out of the transformer on the secondary side. Usually measured in Ampere (A)."@en ; - rdfs:label "secondary current"@en . - -s4bldg:secondaryCurrentType - a owl:DatatypeProperty ; - rdfs:comment "A list of the secondary current types that can result from transformer output."@en ; - rdfs:label "secondary current type"@en ; - rdfs:range xsd:string . - -s4bldg:heatExchangeArea - a owl:ObjectProperty ; - rdfs:comment "Heat exchange area. Usually measured in square metre (m2)."@en ; - rdfs:label "heat exchange area"@en . - -s4bldg:fireExit a owl:DatatypeProperty ; - rdfs:comment "Indication whether this object is designed to serve as an exit in the case of fire (TRUE) or not (FALSE). Here whether the transport element (in case of e.g., a lift) is designed to serve as a fire exit, e.g., for fire escape purposes."@en ; - rdfs:label "fire exit"@en ; - rdfs:range xsd:boolean . - -s4bldg:numberOsSockets - a owl:DatatypeProperty ; - rdfs:comment "The number of sockets that may be connected. In case of inconsistency, sockets defined on ports take precedence."@en ; - rdfs:label "number os sockets"@en ; - rdfs:range xsd:integer . - -s4bldg:arrangement a owl:DatatypeProperty ; - rdfs:comment "Defines the basic flow arrangements for the heat exchanger: COUNTERFLOW: Counterflow heat exchanger arrangement. CROSSFLOW: Crossflow heat exchanger arrangement. PARALLELFLOW: Parallel flow heat exchanger arrangement. MULTIPASS: Multipass flow heat exchanger arrangement. OTHER: Other type of heat exchanger flow arrangement not defined above."@en ; - rdfs:label "arrangement"@en ; - rdfs:range xsd:string . - -s4bldg:Lamp a owl:Class ; - rdfs:comment "A lamp is an artificial light source such as a light bulb or tube."@en ; - rdfs:label "Lamp"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcLamp" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:lightEmitterNominalPower - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:colorTemperature - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:spectrumMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:colorAppearance - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:lampCompensationType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:lampMaintenanceFactor - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:contributedLuminousFlux - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:colorRenderingIndex - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:spectrumMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:lampBallastType - ] ; - prov:hadPrimarySource , . - -s4bldg:BuildingObject - a owl:Class ; - rdfs:comment "An object in the building that can be controlled by devices, such as a door or a window that can be automatically opened or closed by an actuator. (Definition taken from SAREF 1.0)"@en ; - rdfs:label "Building object"@en ; - rdfs:subClassOf s4bldg:PhysicalObject . - -s4bldg:powerOutputMax - a owl:ObjectProperty ; - rdfs:comment "The maximum output power rating of the engine. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "maximum power output"@en . - -s4bldg:nominalParticleGeometricStandardDeviation - a owl:ObjectProperty ; - rdfs:comment "Particle geometric standard deviation associated with nominal efficiency. "@en ; - rdfs:label "nominal particle geometric standard deviation"@en . - -s4bldg:Boiler a owl:Class ; - rdfs:comment "A boiler is a closed, pressure-rated vessel in which water or other fluid is heated using an energy source such as natural gas, heating oil, or electricity. The fluid in the vessel is then circulated out of the boiler for use in various processes or heating applications."@en ; - rdfs:label "Boiler"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcBoiler" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:isWaterStorageHeater - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:waterInletTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:heatTransferSurfaceArea - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:pressureRating - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:outletTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:waterStorageCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalEnergyConsumption - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:operatingMode - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:energySource - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:waterInletTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalPartLoadRatio - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:outletTemperatureMax - ] ; - prov:hadPrimarySource , . - -saref:relatesToProperty - a owl:ObjectProperty ; - rdfs:comment "A relation between a measurement and the property such measurement is about."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "relates to property"@en . - -s4bldg:staggeredRowSpacing - a owl:ObjectProperty ; - rdfs:comment "Staggered tube row spacing. Usually measured in millimeters (mm)."@en ; - rdfs:label "staggered row spacing"@en . - -s4bldg:nominalParticleGeometricMeanDiameter - a owl:ObjectProperty ; - rdfs:comment "Particle geometric mean diameter associated with nominal efficiency. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal particle geometric mean diameter"@en . - -s4bldg:Fan a owl:Class ; - rdfs:comment "A fan is a device which imparts mechanical work on a gas. A typical usage of a fan is to induce airflow in a building services air distribution system."@en ; - rdfs:label "Fan"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFan" ; - rdfs:subClassOf s4bldg:FlowMovingDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalTotalPressure - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalStaticPressure - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalRotationSpeed - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:capacityControlType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalPowerRate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalAirFlowRate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:motorDriveType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationalRiterial - ] ; - prov:hadPrimarySource , . - -s4bldg:internalRefrigerantVolume - a owl:ObjectProperty ; - rdfs:comment "Internal volume of evaporator (refrigerant side). Usually measured in cubic metre (m3)."@en ; - rdfs:label "internal refrigerant volume"@en . - -s4bldg:bodyMass a owl:ObjectProperty ; - rdfs:comment "Overall body mass of the heater. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "body mass"@en . - -xsd:duration a rdfs:Datatype . - -s4bldg:nominalTotalPressure - a owl:ObjectProperty ; - rdfs:comment "Nominal total pressure rise across the fan. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "nominal total pressure"@en . - -s4bldg:pipeConnectionEnum - a owl:DatatypeProperty ; - rdfs:comment "The manner in which the pipe connection is made to the cooled beam."@en ; - rdfs:label "pipe connection enum"@en ; - rdfs:range xsd:string . - -s4bldg:startCurrentFactor - a owl:ObjectProperty ; - rdfs:comment "IEC. Start current factor defines how large the peek starting current will become on the engine. StartCurrentFactor is multiplied to NominalCurrent and we get the start current."@en ; - rdfs:label "start current factor"@en . - -s4bldg:basinReserveVolume - a owl:ObjectProperty ; - rdfs:comment "Volume between operating and overflow levels in cooling tower basin. Usually measured in cubic metre (m3)."@en ; - rdfs:label "basin reserve volume"@en . - -dcterms:rightsHolder a owl:AnnotationProperty . - -s4bldg:shortCircuitVoltage - a owl:ObjectProperty ; - rdfs:comment "A complex number that specifies the real and imaginary parts of the short-circuit voltage at rated current of a transformer given in %."@en ; - rdfs:label "short circuit voltage"@en . - -s4bldg:secondaryAirFlowRateMin - a owl:ObjectProperty ; - rdfs:comment "Maximum secondary airflow that can be delivered. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "secondary air flow rate range"@en . - -s4bldg:nominalSorroundingHumidityCooling - a owl:ObjectProperty ; - rdfs:comment "Nominal surrounding humidity (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal sorrounding humidity cooling"@en . - -s4bldg:FlowInstrument - a owl:Class ; - rdfs:comment "A flow instrument reads and displays the value of a particular property of a system at a point, or displays the difference in the value of a property between two points.\n\nInstrumentation is typically for the purpose of determining the value of the property at a point in time. It is not the purpose of an instrument to record or integrate the values over time (although they may be connected to recording devices that do perform such a function). This entity provides for all forms of mechanical flow instrument (thermometers, pressure gauges etc.) and electrical flow instruments (ammeters, voltmeters etc.)"@en ; - rdfs:label "Flow instrument"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowInstrument" ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - prov:hadPrimarySource , . - -s4bldg:thermalConductivity - a owl:ObjectProperty ; - rdfs:comment "Fouling factor of the tubes in the tube bundle. Usually measured in m2 Kelvin/Watt."@en ; - rdfs:label "thermal conductivity"@en . - -s4bldg:waterRequirement - a owl:ObjectProperty ; - rdfs:comment "Make-up water requirement. Usually measured in m3/s."@en ; - rdfs:label "water requirement"@en . - -s4bldg:Chiller a owl:Class ; - rdfs:comment "A chiller is a device used to remove heat from a liquid via a vapor-compression or absorption refrigeration cycle to cool a fluid, typically water or a mixture of water and glycol. The chilled fluid is then used to cool and dehumidify air in a building."@en ; - rdfs:label "Chiller"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcChiller" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalEfficiency - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalEvaporatingTemmperature - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalCondensingTemperature - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalHeatRejectionRate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalPowerConsumption - ] ; - prov:hadPrimarySource , . - -s4bldg:Compressor a owl:Class ; - rdfs:comment "A compressor is a device that compresses a fluid typically used in a refrigeration circuit."@en ; - rdfs:label "Compressor"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCompressor" ; - rdfs:subClassOf s4bldg:FlowMovingDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:compressorSpeed - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:refrigerantClass - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:idealCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:impellerDiameter - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:idealShaftPower - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:powerSource - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:partLoadRatioMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:hasHotGasBypass - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:partLoadRatioMin - ] ; - prov:hadPrimarySource , . - -vann:preferredNamespaceUri - a owl:AnnotationProperty . - -s4bldg:nominalPowerRate - a owl:ObjectProperty ; - rdfs:comment "Nominal fan power rate.Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal power rate"@en . - -s4bldg:heatTransferMedium - a owl:DatatypeProperty ; - rdfs:comment "Enumeration defining the heat transfer medium if applicable."@en ; - rdfs:label "heat transfer medium"@en ; - rdfs:range xsd:string . - -s4bldg:patternType a owl:DatatypeProperty ; - rdfs:comment "Defines the types of pattern (or shape of a tank that may be specified."@en ; - rdfs:label "pattern type"@en ; - rdfs:range xsd:string . - -s4bldg:hasDefrost a owl:DatatypeProperty ; - rdfs:comment "Whether the heat exchanger has defrost function or not."@en ; - rdfs:label "has defrost"@en ; - rdfs:range xsd:boolean . - -s4bldg:effectiveCapacity - a owl:ObjectProperty ; - rdfs:comment "The total effective or actual volumetric capacity of the tank. Usually measured in cubic metre (m3).B3"@en ; - rdfs:label "effective capacity"@en . - -s4bldg:secondaryApparentPower - a owl:ObjectProperty ; - rdfs:comment "The power in VA (volt ampere) that has been transformed and is running out of the transformer on the secondary side. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "secondary apparent power"@en . - -s4bldg:EnergyConversionDevice - a owl:Class ; - rdfs:comment "The distribution flow element EnergyConversionDevice defines the occurrence of a device used to perform energy conversion or heat transfer and typically participates in a flow distribution system."@en ; - rdfs:label "Energy conversion device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcEnergyConversionDevice" ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - prov:hadPrimarySource . - -s4bldg:isNeutralPrimaryTerminalAvailable - a owl:DatatypeProperty ; - rdfs:comment "An indication of whether the neutral point of the primary winding is available as a terminal (=TRUE) or not (= FALSE)."@en ; - rdfs:label "is neutral primary terminal available"@en ; - rdfs:range xsd:boolean . - -s4bldg:CommunicationAppliance - a owl:Class ; - rdfs:comment "A communications appliance transmits and receives electronic or digital information as data or sound.\n\nCommunication appliances may be fixed in place or may be able to be moved from one space to another. Communication appliances require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source."@en ; - rdfs:label "Communication appliance"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCommunicationAppliance" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - prov:hadPrimarySource , . - -s4bldg:nominalHeatRejectionRate - a owl:ObjectProperty ; - rdfs:comment "Sum of the refrigeration effect and the heat equivalent of the power input to the compressor. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal heat rejection rate"@en . - -s4bldg:isWaterStorageHeater - a owl:DatatypeProperty ; - rdfs:comment "This is used to identify if the boiler has storage capacity (TRUE). If FALSE, then there is no storage capacity built into the boiler, such as an instantaneous hot water heater."@en ; - rdfs:label "is water storage heater"@en ; - rdfs:range xsd:boolean . - -s4bldg:inletConnectionSize - a owl:ObjectProperty ; - rdfs:comment "Size of the inlet connection. Usually measured in millimeters (mm)."@en ; - rdfs:label "inlet connection size"@en . - -s4bldg:weight a owl:ObjectProperty ; - rdfs:comment "The weight of the device. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "weight"@en . - -s4bldg:airFlowRateMin - a owl:ObjectProperty ; - rdfs:comment "Minimum allowable air flow rate. Usually measured in m3/s."@en ; - rdfs:label "air flow rate range min"@en . - -s4bldg:remoteReading a owl:DatatypeProperty ; - rdfs:comment "Indicates whether the meter has a connection for remote reading through connection of a communication device (set TRUE) or not (set FALSE)."@en ; - rdfs:label "remote reading"@en ; - rdfs:range xsd:boolean . - -s4bldg:circuitType a owl:DatatypeProperty ; - rdfs:comment "OpenCircuit: Exposes water directly to the cooling atmosphere. CloseCircuit: The fluid is separated from the atmosphere by a heat exchanger. Wet: The air stream or the heat exchange surface is evaporatively cooled. Dry: No evaporation into the air stream. DryWet: A combination of a dry tower and a wet tower."@en ; - rdfs:label "circuit type"@en ; - rdfs:range xsd:string . - -s4bldg:nominalSorroundingTemperatureHeating - a owl:ObjectProperty ; - rdfs:comment "Nominal surrounding temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal sorrounding temperature heating"@en . - -s4bldg:internalWaterVolume - a owl:ObjectProperty ; - rdfs:comment "Internal volume of evaporator (water side). Usually measured in cubic metre (m3)."@en ; - rdfs:label "internal water volume"@en . - -s4bldg:failPosition a owl:DatatypeProperty ; - rdfs:comment "Specifies the required fail-safe position of the actuator."@en ; - rdfs:label "fail position"@en ; - rdfs:range xsd:string . - -s4bldg:nominalBodyLength - a owl:ObjectProperty ; - rdfs:comment "Nominal or quoted length, measured along the x-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal body length"@en . - -s4bldg:operation a owl:DatatypeProperty ; - rdfs:comment "The operational mechanism for the damper operation."@en ; - rdfs:label "operation"@en ; - rdfs:range xsd:string . - -dcterms:dateCopyrighted - a owl:AnnotationProperty . - -saref:hasTimestamp a owl:FunctionalProperty , owl:DatatypeProperty ; - rdfs:comment "A relationship stating the timestamp of an entity (e.g. a measurement)."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "has timestamp"@en ; - rdfs:range xsd:dateTime . - -s4bldg:lampMaintenanceFactor - a owl:ObjectProperty ; - rdfs:comment "Non recoverable losses of luminous flux of a lamp due to lamp depreciation i.e. the decreasing of light output of a luminaire due to aging and dirt."@en ; - rdfs:label "lamp maintenance factor"@en . - -s4bldg:valvePattern a owl:DatatypeProperty ; - rdfs:comment "The configuration of the ports of a valve according to either the linear route taken by a fluid flowing through the valve or by the number of ports where: SINGLEPORT: Valve that has a single entry port from the system that it serves, the exit port being to the surrounding environment. ANGLED_2_PORT: Valve in which the direction of flow is changed through 90 degrees. STRAIGHT_2_PORT: Valve in which the flow is straight through. STRAIGHT_3_PORT: Valve with three separate ports. CROSSOVER_4_PORT: Valve with 4 separate ports."@en ; - rdfs:label "valve pattern"@en ; - rdfs:range xsd:string . - -s4bldg:pumpFlowRateMax - a owl:ObjectProperty ; - rdfs:comment "Allowable range of volume of fluid being pumped against the resistance specified. Usually measured in kg/s."@en ; - rdfs:label "pump flow rate range"@en . - -s4bldg:Sensor a owl:Class ; - rdfs:comment "A sensor is a device that measures a physical quantity and converts it into a signal which can be read by an observer or by an instrument."@en ; - rdfs:label "Sensor"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSensor" ; - rdfs:subClassOf saref:Sensor , s4bldg:DistributionControlDevice ; - prov:hadPrimarySource , . - -s4bldg:application a owl:DatatypeProperty ; - rdfs:comment "Humidifier application. Fixed: Humidifier installed in a ducted flow distribution system. Portable: Humidifier is not installed in a ducted flow distribution system."@en ; - rdfs:label "application"@en ; - rdfs:range xsd:string . - -s4bldg:nominalReturnWaterTemperatureCooling - a owl:ObjectProperty ; - rdfs:comment "Nominal return water temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal return water temperature cooling"@en . - -s4bldg: a owl:Ontology ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:contributor , , ; - dcterms:description "This ontology extends the SAREF ontology for the building domain by defining building devices and how they are located in a building. This extension is based on the ISO 16739:2013 Industry Foundation Classes (IFC) standard for data sharing in the construction and facility management industries. The descriptions of the classes and properties extracted from IFC have been taken from the IFC documentation."@en ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:publisher ; - dcterms:source , ; - dcterms:title "SAREF extension for building devices"@en ; - vann:preferredNamespacePrefix "s4bldg" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4bldg#" ; - owl:versionIRI ; - owl:versionInfo "1.1.1" . - -s4bldg:openPressureDrop - a owl:ObjectProperty ; - rdfs:comment "Total pressure drop across damper. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "open pressure drop"@en . - -s4bldg:workingPressureMax - a owl:ObjectProperty ; - rdfs:comment "Maximum working pressure. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "maximum working pressure"@en . - -s4bldg:connectionSize - a owl:ObjectProperty ; - rdfs:comment "The connection size of the to and from the pump. Usually measured in millimeters (mm)."@en ; - rdfs:label "connection size"@en . - -s4bldg:idealCapacity a owl:ObjectProperty ; - rdfs:comment "Compressor capacity under ideal conditions. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "ideal capacity"@en . - -s4bldg:fluidFlowRateMax - a owl:ObjectProperty ; - rdfs:comment "Possible range of fluid flowrate that can be delivered. Usually measured in m3/s."@en ; - rdfs:label "fluid flow rate range"@en . - -saref:Sensor a owl:Class ; - rdfs:comment "A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes.\nA device that has category saref:Sensor and performs a saref:SensingFunction."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Sensor"@en . - -s4bldg:foulingFactor a owl:ObjectProperty ; - rdfs:comment "Fouling factor of the tubes in the tube bundle. Usually measured in m2 Kelvin/Watt."@en ; - rdfs:label "fouling factor"@en . - -s4bldg:transformerVectorGroup - a owl:DatatypeProperty ; - rdfs:comment "List of the possible vector groups for the transformer from which that required may be set. Values in the enumeration list follow a standard international code where the first letter describes how the primary windings are connected, the second letter describes how the secondary windings are connected, and the numbers describe the rotation of voltages and currents from the primary to the secondary side in multiples of 30 degrees. D: means that the windings are delta-connected. Y: means that the windings are star-connected. Z: means that the windings are zig-zag connected (a special start-connected providing low reactance of the transformer). The connectivity is only relevant for three-phase transformers."@en ; - rdfs:label "transformer vector group"@en ; - rdfs:range xsd:string . - -saref:hasValue a owl:DatatypeProperty ; - rdfs:comment "A relationship defining the value of a certain property, e.g., energy or power"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has value"@en . - -s4bldg:primaryAirFlowRateMin - a owl:ObjectProperty ; - rdfs:comment "Minimum primary airflow that can be delivered. Usually measured in m3/s."@en ; - rdfs:label "primary air flow rate range"@en . - -s4bldg:supportedWeightMax - a owl:ObjectProperty ; - rdfs:comment "The maximum weight that can be carried by the vibration isolator. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "maximum supported weight"@en . - -s4bldg:EvaporativeCooler - a owl:Class ; - rdfs:comment "An evaporative cooler is a device that cools air by saturating it with water vapor."@en ; - rdfs:label "Evaporative cooler"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcEvaporativeCooler" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:flowArrangement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:heatExchangeArea - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:waterRequirement - ] ; - prov:hadPrimarySource , . - -s4bldg:nominalPowerConsumption - a owl:ObjectProperty ; - rdfs:comment "Nominal total power consumption. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal power consumption"@en . - -s4bldg:initialResistance - a owl:ObjectProperty ; - rdfs:comment "Initial new filter fluid resistance (i.e., pressure drop at the maximum air flowrate across the filter when the filter is new per ASHRAE Standard 52.1). Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "initial resistance"@en . - -s4bldg:ambientDesignWetBulbTemperature - a owl:ObjectProperty ; - rdfs:comment "Ambient design wet bulb temperature used for selecting the cooling tower. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "ambient design wet bulb temperature"@en . - -s4bldg:ShadingDevice a owl:Class ; - rdfs:comment "Shading devices are purpose built devices to protect from the sunlight, from natural light, or screening them from view. Shading devices can form part of the facade or can be mounted inside the building, they can be fixed or operable."@en ; - rdfs:label "Shading device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcShadingDevice" ; - rdfs:subClassOf s4bldg:BuildingDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:shadingDeviceType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:thermalTransmittance - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:solarReflectance - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:visibleLightTransmittance - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:solarTransmittance - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:mechanicalOperated - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:visibleLightReflectance - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:roughness - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:isExternal - ] ; - prov:hadPrimarySource , . - -s4bldg:lampBallastType - a owl:DatatypeProperty ; - rdfs:comment "The type of ballast used to stabilise gas discharge by limiting the current during operation and to deliver the necessary striking voltage for starting. Ballasts are needed to operate Discharge Lamps such as Fluorescent, Compact Fluorescent, High-pressure Mercury, Metal Halide and High-pressure Sodium Lamps. Magnetic ballasts are chokes which limit the current passing through a lamp connected in series on the principle of self-induction. The resultant current and power are decisive for the efficient operation of the lamp. A specially designed ballast is required for every type of lamp to comply with lamp rating in terms of Luminous Flux, Color Appearance and service life. The two types of magnetic ballasts for fluorescent lamps are KVG Conventional (EC-A series) and VVG Low-loss ballasts (EC-B series). Low-loss ballasts have a higher efficiency, which means reduced ballast losses and a lower thermal load. Electronic ballasts are used to run fluorescent lamps at high frequencies (approx. 35 - 40 kHz)."@en ; - rdfs:label "lamp ballast type"@en ; - rdfs:range xsd:string . - -s4bldg:valveMechanism - a owl:DatatypeProperty ; - rdfs:comment "The mechanism by which the valve function is achieved where: BALL: Valve that has a ported ball that can be turned relative to the body seat ports. BUTTERFLY: Valve in which a streamlined disc pivots about a diametric axis. CONFIGUREDGATE: Screwdown valve in which the closing gate is shaped in a configured manner to have a more precise control of pressure and flow change across the valve. GLAND: Valve with a tapered seating, in which a rotatable plug is retained by means of a gland and gland packing. GLOBE: Screwdown valve that has a spherical body. LUBRICATEDPLUG: Plug valve in which a lubricant is injected under pressure between the plug face and the body. NEEDLE: Valve for regulating the flow in or from a pipe, in which a slender cone moves along the axis of flow to close against a fixed conical seat. PARALLELSLIDE: Screwdown valve that has a machined plate that slides in formed grooves to form a seal. PLUG: Valve that has a ported plug that can be turned relative to the body seat ports. WEDGEGATE: Screwdown valve that has a wedge shaped plate fitting into tapered guides to form a seal."@en ; - rdfs:label "valve mechanism"@en ; - rdfs:range xsd:string . - -s4bldg:SanitaryTerminal - a owl:Class ; - rdfs:comment "A sanitary terminal is a fixed appliance or terminal usually supplied with water and used for drinking, cleaning or foul water disposal or that is an item of equipment directly used with such an appliance or terminal."@en ; - rdfs:label "Sanitary terminal"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSanitaryTerminal" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - prov:hadPrimarySource , . - -s4bldg:horizontalSpacing - a owl:ObjectProperty ; - rdfs:comment "Horizontal spacing between tubes in the tube bundle. Usually measured in millimeters (mm)."@en ; - rdfs:label "horizontal spacing"@en . - -s4bldg:ventilatingPipeSize - a owl:ObjectProperty ; - rdfs:comment "Size of the ventilating pipe(s). Usually measured in millimeters (mm)."@en ; - rdfs:label "ventilating pipe size"@en . - -s4bldg:primaryApparentPower - a owl:ObjectProperty ; - rdfs:comment "The power in VA (volt ampere) that has been transformed and that runs into the transformer on the primary side. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "primary apparent power"@en . - -s4bldg:nominalSupplyVoltageMin - a owl:ObjectProperty ; - rdfs:comment "The maximum and minimum allowed voltage of the supply e.g. boundaries of 380V/440V may be applied for a nominal voltage of 400V."@en ; - rdfs:label "nominal supply voltage offset"@en . - -s4bldg:internalSurfaceArea - a owl:ObjectProperty ; - rdfs:comment "Internal surface area. Usually measured in square metre (m2)."@en ; - rdfs:label "internal surface area"@en . - -s4bldg:nominalHeatingCapacity - a owl:ObjectProperty ; - rdfs:comment "Nominal heating capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal heating capacity"@en . - -s4bldg:vibrationTransmissibility - a owl:ObjectProperty ; - rdfs:comment "The vibration transmissibility percentage."@en ; - rdfs:label "vibration transmissibility"@en . - -s4bldg:hasPartWinding - a owl:DatatypeProperty ; - rdfs:comment "Indication of whether the motor is single speed, i.e. has a single winding (= FALSE) or multi-speed i.e.has part winding (= TRUE) ."@en ; - rdfs:label "has part winding"@en ; - rdfs:range xsd:boolean . - -s4bldg:workingPressure - a owl:ObjectProperty ; - rdfs:comment "The normally expected maximum working pressure of the valve. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "working pressure"@en . - -s4bldg:integratedLightingType - a owl:DatatypeProperty ; - rdfs:comment "Integrated lighting in cooled beam."@en ; - rdfs:label "integrated lighting type"@en ; - rdfs:range xsd:string . - -s4bldg:operationTemperatureMax - a owl:ObjectProperty ; - rdfs:comment "Allowable operation ambient (air, fluid) temperature range. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "operation temperature range"@en . - -s4bldg:nominalMediaSurfaceVelocity - a owl:ObjectProperty ; - rdfs:comment "Average fluid velocity at the media surface. Usually measured in m/s."@en ; - rdfs:label "nominal media surface velocity"@en . - -s4bldg:nominalMoistureGain - a owl:ObjectProperty ; - rdfs:comment "Nominal rate of water vapor added into the airstream. Usually measured in kg/s."@en ; - rdfs:label "nominal moisture gain"@en . - -s4bldg:nominalFilterFaceVelocity - a owl:ObjectProperty ; - rdfs:comment "Filter face velocity. Usually measured in m/s."@en ; - rdfs:label "nominal filter face velocity"@en . - -s4bldg:numberOfGangs a owl:DatatypeProperty ; - rdfs:comment "Number of gangs/buttons on this switch."@en ; - rdfs:label "number of gangs"@en ; - rdfs:range xsd:integer . - -s4bldg:capacityWeight - a owl:ObjectProperty ; - rdfs:comment "Capacity of the transport element measured by weight. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "capacity weight"@en . - -s4bldg:waterFlowControlSystemType - a owl:DatatypeProperty ; - rdfs:comment "Factory fitted waterflow control system."@en ; - rdfs:label "water flow control system type"@en ; - rdfs:range xsd:string . - -s4bldg:Humidifier a owl:Class ; - rdfs:comment "A humidifier is a device that adds moisture into the air."@en ; - rdfs:label "Humidifier"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcHumidifier" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:internalControl - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:waterRequirement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:application - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:weight - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalAirFlowRate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalMoistureGain - ] ; - prov:hadPrimarySource , . - -s4bldg:hasSpace a owl:TransitiveProperty , owl:ObjectProperty ; - rdfs:comment "Relation between a building or a building space and the spaces it can be divided into."@en ; - rdfs:label "has space"@en ; - owl:inverseOf s4bldg:isSpaceOf . - -s4bldg:netPositiveSuctionHead - a owl:ObjectProperty ; - rdfs:comment "Minimum liquid pressure at the pump inlet to prevent cavitation. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "net positive suction head"@en . - -s4bldg:Tank a owl:Class ; - rdfs:comment "A tank is a vessel or container in which a fluid or gas is stored for later use."@en ; - rdfs:label "Tank"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcTank" ; - rdfs:subClassOf s4bldg:FlowStorageDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalDepth - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operatingWeight - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:patternType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:endShapeType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOfSections - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalVolumetricCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:secondCurvatureRadius - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:storageType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:effectiveCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:firstCurvatureRadius - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalLengthOrDiameter - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:accessType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalWidthOrDiameter - ] ; - prov:hadPrimarySource , . - -s4bldg:hasLock a owl:DatatypeProperty ; - rdfs:comment "Indication of whether a switching device has a key operated lock (=TRUE) or not (= FALSE)."@en ; - rdfs:label "has lock"@en ; - rdfs:range xsd:boolean . - -s4bldg:length a owl:ObjectProperty ; - rdfs:comment "The finished length of the device. Usually measured in millimeters (mm)."@en ; - rdfs:label "length"@en . - -s4bldg:nominalLatentCapacity - a owl:ObjectProperty ; - rdfs:comment "Nominal latent capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal latent capacity"@en . - -s4bldg:SpaceHeater a owl:Class ; - rdfs:comment "Space heaters utilize a combination of radiation and/or natural convection using a heating source such as electricity, steam or hot water to heat a limited space or area. Examples of space heaters include radiators, convectors, baseboard and finned-tube heaters.\n\nUnitaryEquipment should be used for packaged units supporting a combination of heating, cooling, and/or dehumidification; Coil should be used for coil-based floor heating."@en ; - rdfs:label "Space heater"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSpaceHeater" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:placementType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOfSections - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:outputCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:thermalMassHeatCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:bodyMass - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:temperatureClassification - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOfPanels - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:heatTransferDimension - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:thermalEfficiency - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:heatTransferMedium - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:energySource - ] ; - prov:hadPrimarySource , . - -s4bldg:nominalPartLoadRatio - a owl:ObjectProperty ; - rdfs:comment "Allowable part load ratio range."@en ; - rdfs:label "nominal part load ratio"@en . - -s4bldg:nominalEfficiency - a owl:ObjectProperty ; - rdfs:comment "Nominal chiller efficiency under nominal conditions. "@en ; - rdfs:label "nominal efficiency"@en . - -s4bldg:temperatureClassification - a owl:DatatypeProperty ; - rdfs:comment "Enumeration defining the temperature classification of the space heater surface temperature. low temperature - surface temperature is relatively low, usually heated by hot water or electricity. high temperature - surface temperature is relatively high, usually heated by gas or steam."@en ; - rdfs:label "temperature classification"@en ; - rdfs:range xsd:string . - -s4bldg:CoolingTower a owl:Class ; - rdfs:comment "A cooling tower is a device which rejects heat to ambient air by circulating a fluid such as water through it to reduce its temperature by partial evaporation."@en ; - rdfs:label "Cooling tower"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCoolingTower" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:ambientDesignWetBulbTemperature - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:capacityControl - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:basinReserveVolume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:liftElevationDifference - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:waterRequirement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:sprayType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:flowArrangement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:ambientDesignDryBulbTemperature - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOfCells - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:circuitType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:controlStrategy - ] ; - prov:hadPrimarySource , . - -s4bldg:temperatureRating - a owl:ObjectProperty ; - rdfs:comment "Temperature rating. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "temperature rating"@en . - -s4bldg:outletConnectionSize - a owl:ObjectProperty ; - rdfs:comment "Size of the outlet connection. Usually measured in millimeters (mm)."@en ; - rdfs:label "outlet connection size"@en . - -s4bldg:waterPressureMax - a owl:ObjectProperty ; - rdfs:comment "Allowable water circuit working pressure range. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "water pressure range"@en . - -s4bldg:ProtectiveDeviceTrippingUnit - a owl:Class ; - rdfs:comment "A protective device tripping unit breaks an electrical circuit at a separate breaking unit when a stated electric current that passes through the unit is exceeded."@en ; - rdfs:label "Protective device tripping unit"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcProtectiveDeviceTrippingUnit" ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:standard - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:limitingTerminalSize - ] ; - prov:hadPrimarySource , . - -s4bldg:Damper a owl:Class ; - rdfs:comment "A damper typically participates in an HVAC duct distribution system and is used to control or modulate the flow of air."@en ; - rdfs:label "Damper"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcDamper" ; - rdfs:subClassOf s4bldg:FlowController ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:bladeShape - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:temperatureRating - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:airFlowRateMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:leakageFullyClosed - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:frameType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:orientation - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:closeOffRating - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOfBlades - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:faceArea - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:frameThickness - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:operation - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:workingPressureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:bladeEdge - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalAirFlowRate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:bladeThickness - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:openPressureDrop - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:frameDepth - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:bladeAction - ] ; - prov:hadPrimarySource , . - -s4bldg:ProtectiveDevice - a owl:Class ; - rdfs:comment "A protective device breaks an electrical circuit when a stated electric current that passes through it is exceeded.\n\nA protective device provides protection against electrical current only (not as a general protective device). It may be used to represent the complete set of elements including both the tripping unit and the breaking unit that provide the protection. This may be particularly useful at earlier stages of design where the approach to breaking the electrical supply may be determined but the method of tripping may not. Alternatively, this entity may be used to specifically represent the breaking unit alone (in which case the tripping unit will also be specifically identified). This entity is specific to dedicated protective devices and excludes electrical outlets that may have circuit protection."@en ; - rdfs:label "Protective device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcProtectiveDevice" ; - rdfs:subClassOf s4bldg:FlowController ; - prov:hadPrimarySource , . - -s4bldg:nominalBodyDepth - a owl:ObjectProperty ; - rdfs:comment "Nominal or quoted =length, measured along the z-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal body depth"@en . - -s4bldg:ElectricTimeControl - a owl:Class ; - rdfs:comment "An electric time control is a device that applies control to the provision or flow of electrical energy over time."@en ; - rdfs:label "Electric time control"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricTimeControl" ; - rdfs:subClassOf s4bldg:FlowController ; - prov:hadPrimarySource , . - -s4bldg:outletTemperatureMax - a owl:ObjectProperty ; - rdfs:comment "Allowable outlet temperature of either the water or the steam. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "outlet temperature range"@en . - -s4bldg:apparentPowerMax - a owl:ObjectProperty ; - rdfs:comment "Maximum apparent power/capacity in VA (volt ampere). Usually measured in Watts (W, J/s)."@en ; - rdfs:label "maximum apparent power"@en . - -s4bldg:leakageFullyClosed - a owl:ObjectProperty ; - rdfs:comment "Leakage when fully closed. Usually measured in m3/s."@en ; - rdfs:label "leakage fully closed"@en . - -s4bldg:contributedLuminousFlux - a owl:ObjectProperty ; - rdfs:comment "Luminous flux is a photometric measure of radiant flux, i.e. the volume of light emitted from a light source. Luminous flux is measured either for the interior as a whole or for a part of the interior (partial luminous flux for a solid angle). All other photometric parameters are derivatives of luminous flux. Luminous flux is measured in lumens (lm). The luminous flux is given as a nominal value for each lamp. Usually measured in Lumen (lm, Candela Steradian)."@en ; - rdfs:label "contributed luminous flux"@en . - -s4bldg:nominalHeatTransferCoefficient - a owl:ObjectProperty ; - rdfs:comment "Nominal overall heat transfer coefficient associated with nominal heat transfer area. Usually measured in Watts/m2 Kelvin."@en ; - rdfs:label "nominal heat transfer coefficient"@en . - -s4bldg:flowCoefficient - a owl:ObjectProperty ; - rdfs:comment "Flow coefficient (the quantity of fluid that passes through a fully open valve at unit pressure drop), typically expressed as the Kv or Cv value for the valve."@en ; - rdfs:label "flow coefficient"@en . - -dcterms:creator a owl:AnnotationProperty . - -s4bldg:ElectricAppliance - a owl:Class ; - rdfs:comment "An electric appliance is a device intended for consumer usage that is powered by electricity.\n\nElectric appliances may be fixed in place or may be able to be moved from one space to another. Electric appliances require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source."@en ; - rdfs:label "Electric appliance"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricAppliance" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - prov:hadPrimarySource , . - -s4bldg:AirToAirHeatRecovery - a owl:Class ; - rdfs:comment "An air-to-air heat recovery device employs a counter-flow heat exchanger between inbound and outbound air flow. It is typically used to transfer heat from warmer air in one chamber to cooler air in the second chamber (i.e., typically used to recover heat from the conditioned air being exhausted and the outside air being supplied to a building), resulting in energy savings from reduced heating (or cooling) requirements."@en ; - rdfs:label "Air to air heat recovery"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcAirToAirHeatRecovery" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:heatTransferTypeEnum - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:primaryAirFlowRateMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:primaryAirFlowRateMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:secondaryAirFlowRateMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:hasDefrost - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:secondaryAirFlowRateMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - prov:hadPrimarySource , . - -s4bldg:Burner a owl:Class ; - rdfs:comment "A burner is a device that converts fuel into heat through combustion. It includes gas, oil, and wood burners."@en ; - rdfs:label "Burner"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcBurner" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:energySource - ] ; - prov:hadPrimarySource , . - -s4bldg:primaryCurrent - a owl:ObjectProperty ; - rdfs:comment "The current that is going to be transformed and that runs into the transformer on the primary side. Usually measured in Ampere (A)."@en ; - rdfs:label "primary current"@en . - -s4bldg:VibrationIsolator - a owl:Class ; - rdfs:comment "A vibration isolator is a device used to minimize the effects of vibration transmissibility in a building."@en ; - rdfs:label "Vibration isolator"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcVibrationIsolator" ; - rdfs:subClassOf saref:Device ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:vibrationTransmissibility - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:isolatorStaticDeflection - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:isolatorCompressibility - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:height - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:supportedWeightMax - ] ; - prov:hadPrimarySource , . - -s4bldg:SolarDevice a owl:Class ; - rdfs:comment "A solar device converts solar radiation into other energy such as electric current or thermal energy."@en ; - rdfs:label "Solar device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSolarDevice" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - prov:hadPrimarySource , . - -prov:hadPrimarySource - a owl:AnnotationProperty . - -s4bldg:nominalWidthOrDiameter - a owl:ObjectProperty ; - rdfs:comment "The nominal width or, in the case of a horizontal cylindrical tank, the nominal diameter of the tank. Note: Not required for a vertical cylindrical tank. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal width or diameter"@en . - -s4bldg:nominalRotationSpeed - a owl:ObjectProperty ; - rdfs:comment "Nominal fan wheel speed. Usually measured in cycles/s."@en ; - rdfs:label "nominal rotation speed"@en . - -s4bldg:coverLength a owl:ObjectProperty ; - rdfs:comment "The length measured along the x-axis in the local coordinate system or the radius (in the case of a circular shape in plan) of the cover of the oil interceptor. Usually measured in millimeters (mm)."@en ; - rdfs:label "cover length"@en . - -s4bldg:realImpedanceRatio - a owl:ObjectProperty ; - rdfs:comment "The ratio between the real part of the zero sequence impedance and the real part of the positive impedance (i.e. real part of the short-circuit voltage) of the transformer. Used for three-phase transformer which includes a N-conductor."@en ; - rdfs:label "real impedance ratio"@en . - -s4bldg:closeOffRating - a owl:ObjectProperty ; - rdfs:comment "Close off rating. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "close off rating"@en . - -s4bldg:isFreeHanging a owl:DatatypeProperty ; - rdfs:comment "Is it free hanging type (not mounted in a false ceiling)?"@en ; - rdfs:label "is free hanging"@en ; - rdfs:range xsd:boolean . - -s4bldg:nominalSensibleCapacity - a owl:ObjectProperty ; - rdfs:comment "Nominal sensible capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal sensible capacity"@en . - -s4bldg:nominalUa a owl:ObjectProperty ; - rdfs:comment "Nominal UA value."@en ; - rdfs:label "nominal ua"@en . - -s4bldg:Filter a owl:Class ; - rdfs:comment "A filter is an apparatus used to remove particulate or gaseous matter from fluids and gases."@en ; - rdfs:label "Filter"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFilter" ; - rdfs:subClassOf s4bldg:FlowTreatmentDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:weight - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:finalResistance - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:fluidFlowRateMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:fluidFlowRateMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalParticleGeometricStandardDeviation - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalFilterFaceVelocity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalMediaSurfaceVelocity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalParticleGeometricMeanDiameter - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalFlowRate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:initialResistance - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalPressureDrop - ] ; - prov:hadPrimarySource , . - -s4bldg:readOutType a owl:DatatypeProperty ; - rdfs:comment "Indication of the form that readout from the meter takes. In the case of a dial read out, this may comprise multiple dials that give a cumulative reading and/or a mechanical odometer."@en ; - rdfs:label "read out type"@en ; - rdfs:range xsd:string . - -s4bldg:hydraulicDiameter - a owl:ObjectProperty ; - rdfs:comment "Hydraulic diameter. Usually measured in millimeters (mm)."@en ; - rdfs:label "hydraulic diameter"@en . - -s4bldg:nominalFlowRate - a owl:ObjectProperty ; - rdfs:comment "Nominal fluid flow rate through the filter. Usually measured in m3/s."@en ; - rdfs:label "nominal flow rate"@en . - -s4bldg:liftElevationDifference - a owl:ObjectProperty ; - rdfs:comment "Elevation difference between cooling tower sump and the top of the tower. Usually measured in millimeters (mm)."@en ; - rdfs:label "lift elevation difference"@en . - -s4bldg:operationalRiterial - a owl:ObjectProperty ; - rdfs:comment "Time of operation at maximum operational ambient air temperature. Measured in seconds (s) or days (d) or other units of time."@en ; - rdfs:label "operational riterial"@en . - -saref:UnitOfMeasure a owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Unit of measure"@en . - -s4bldg:isolatorCompressibility - a owl:ObjectProperty ; - rdfs:comment "The compressibility of the vibration isolator."@en ; - rdfs:label "isolator compressibility"@en . - -s4bldg:Controller a owl:Class ; - rdfs:comment "A controller is a device that monitors inputs and controls outputs within a building automation system.\n\nA controller may be physical (having placement within a spatial structure) or logical (a software interface or aggregated within a programmable physical controller)."@en ; - rdfs:label "Controller"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcController" ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - prov:hadPrimarySource , . - -saref:Device a owl:Class ; - rdfs:comment "A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Device"@en ; - rdfs:subClassOf s4bldg:PhysicalObject . - -s4bldg:motorDriveType - a owl:DatatypeProperty ; - rdfs:comment "Motor drive type: DIRECTDRIVE: Direct drive. BELTDRIVE: Belt drive. COUPLING: Coupling. OTHER: Other type of motor drive. UNKNOWN: Unknown motor drive type. "@en ; - rdfs:label "motor drive type"@en ; - rdfs:range xsd:string . - -s4bldg:isGuarded a owl:DatatypeProperty ; - rdfs:comment "Indication of whether the motor enclosure is guarded (= TRUE) or not (= FALSE)."@en ; - rdfs:label "is guarded"@en ; - rdfs:range xsd:boolean . - -s4bldg:flowArrangement - a owl:DatatypeProperty ; - rdfs:comment "CounterFlow: Air and water flow enter in different directions. CrossFlow: Air and water flow are perpendicular. ParallelFlow: air and water flow enter in same directions."@en ; - rdfs:label "flow arrangement"@en ; - rdfs:range xsd:string . - -s4bldg:DistributionControlDevice - a owl:Class ; - rdfs:comment "Represents devices of a building automation control system that are used to impart control over elements of a distribution system. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcsharedbldgserviceelements/lexical/ifcdistributioncontrolelement.htm)"@en ; - rdfs:label "Distribution control device"@en ; - rdfs:subClassOf s4bldg:DistributionDevice . - -s4bldg:Alarm a owl:Class ; - rdfs:comment "An alarm is a device that signals the existence of a condition or situation that is outside the boundaries of normal expectation or that activates such a device.\n\nAlarms include the provision of break glass buttons and manual pull boxes that are used to activate alarms."@en ; - rdfs:label "Alarm"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcAlarm" ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - prov:hadPrimarySource , . - -s4bldg:nominalEnergyConsumption - a owl:ObjectProperty ; - rdfs:comment "Nominal fuel consumption rate required to produce the total boiler heat output. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal energy consumption"@en . - -s4bldg:inLineRowSpacing - a owl:ObjectProperty ; - rdfs:comment "In-line tube row spacing. Usually measured in millimeters (mm)."@en ; - rdfs:label "in line row spacing"@en . - -s4bldg:Engine a owl:Class ; - rdfs:comment "An engine is a device that converts fuel into mechanical energy through combustion."@en ; - rdfs:label "Engine"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcEngine" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:energySource - ] ; - prov:hadPrimarySource , . - -s4bldg:nominalStaticPressure - a owl:ObjectProperty ; - rdfs:comment "The static pressure within the air stream that the fan must overcome to insure designed circulation of air. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "nominal static pressure"@en . - -s4bldg:pressureRating - a owl:ObjectProperty ; - rdfs:comment "Nominal pressure rating of the boiler as rated by the agency having jurisdiction. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "pressure rating"@en . - -s4bldg:heatTransferTypeEnum - a owl:DatatypeProperty ; - rdfs:comment "Type of heat transfer between the two air streams."@en ; - rdfs:label "heat transfer type enum"@en ; - rdfs:range xsd:string . - -s4bldg:nominalSupplyVoltage - a owl:ObjectProperty ; - rdfs:comment "The nominal voltage of the supply. Usually measured in Volts (V, W/A)."@en ; - rdfs:label "nominal supply voltage"@en . - -s4bldg:pumpFlowRateMin - a owl:ObjectProperty ; - rdfs:comment "Allowable range of volume of fluid being pumped against the resistance specified. Usually measured in kg/s."@en ; - rdfs:label "pump flow rate range"@en . - -s4bldg:orientation a owl:DatatypeProperty ; - rdfs:comment "The intended orientation for the damper as specified by the manufacturer."@en ; - rdfs:label "orientation"@en ; - rdfs:range xsd:string . - -s4bldg:lampCompensationType - a owl:DatatypeProperty ; - rdfs:comment "Identifies the form of compensation used for power factor correction and radio suppression."@en ; - rdfs:label "lamp compensation type"@en ; - rdfs:range xsd:string . - -s4bldg:FlowTerminal a owl:Class ; - rdfs:comment "The distribution flow element FlowTerminal defines the occurrence of a permanently attached element that acts as a terminus or beginning of a distribution system (such as an air outlet, drain, water closet, or sink). A terminal is typically a point at which a system interfaces with an external environment."@en ; - rdfs:label "Flow terminal"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowTerminal" ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - prov:hadPrimarySource . - -vann:preferredNamespacePrefix - a owl:AnnotationProperty . - -s4bldg:visibleLightTransmittance - a owl:ObjectProperty ; - rdfs:comment "Fraction of the visible light that passes the shading system at normal incidence. It is a value without unit."@en ; - rdfs:label "visible light transmittance"@en . - -s4bldg:operatingMode a owl:DatatypeProperty ; - rdfs:comment "Identifies the operating mode of the boiler."@en ; - rdfs:label "operating mode"@en ; - rdfs:range xsd:string . - -s4bldg:thermalMassHeatCapacity - a owl:ObjectProperty ; - rdfs:comment "Product of component mass and specific heat."@en ; - rdfs:label "thermal mass heat capacity"@en . - -s4bldg:workingPressureMin - a owl:ObjectProperty ; - rdfs:comment "Allowable minimum working pressure (relative to ambient pressure). Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "minimum working pressure"@en . - -s4bldg:fluidFlowRateMin - a owl:ObjectProperty ; - rdfs:comment "Possible range of fluid flowrate that can be delivered. Usually measured in m3/s."@en ; - rdfs:label "fluid flow rate range"@en . - -s4bldg:electricGeneratorEfficiency - a owl:ObjectProperty ; - rdfs:comment "The ratio of output capacity to intake capacity."@en ; - rdfs:label "electric generator efficiency"@en . - -s4bldg:Actuator a owl:Class ; - rdfs:comment "An actuator is a mechanical device for moving or controlling a mechanism or system. An actuator takes energy, usually created by air, electricity, or liquid, and converts that into some kind of motion."@en ; - rdfs:label "Actuator"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcActuator" ; - rdfs:subClassOf saref:Actuator , s4bldg:DistributionControlDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:manualOverride - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:failPosition - ] ; - prov:hadPrimarySource , . - -s4bldg:waterStorageCapacity - a owl:ObjectProperty ; - rdfs:comment "Water storage capacity. Usually measured in cubic metre (m3)."@en ; - rdfs:label "water storage capacity"@en . - -s4bldg:solarTransmittance - a owl:ObjectProperty ; - rdfs:comment "(Tsol) The ratio of incident solar radiation that directly passes through a shading system (also named _e). Note the following equation Asol + Rsol + Tsol = 1"@en ; - rdfs:label "solar transmittance"@en . - -s4bldg:nominalFrequency - a owl:ObjectProperty ; - rdfs:comment "The nominal frequency of the supply. Usually measured in cycles/s or Hertz (Hz)."@en ; - rdfs:label "nominal frequency"@en . - -s4bldg:energySource a owl:DatatypeProperty ; - rdfs:comment "The source of energy."@en , "Enumeration defining the energy source or fuel cumbusted to generate heat."@en ; - rdfs:label "energy source"@en ; - rdfs:range xsd:string . - -s4bldg:secondCurvatureRadius - a owl:ObjectProperty ; - rdfs:comment "SecondCurvatureRadius should be defined as the top or right side radius of curvature value. Usually measured in millimeters (mm)."@en ; - rdfs:label "second curvature radius"@en . - -s4bldg:nominalReturnWaterTemperatureHeating - a owl:ObjectProperty ; - rdfs:comment "Nominal return water temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal return water temperature heating"@en . - -s4bldg:electricMotorEfficiency - a owl:ObjectProperty ; - rdfs:comment "The ratio of output capacity to intake capacity."@en ; - rdfs:label "electric motor efficiency"@en . - -s4bldg:coilWidth a owl:ObjectProperty ; - rdfs:comment "Width of coil. Usually measured in millimeters (mm"@en ; - rdfs:label "coil width"@en . - -s4bldg:secondaryVoltage - a owl:ObjectProperty ; - rdfs:comment "The voltage that has been transformed and is running out of the transformer on the secondary side. Usually measured in Volts (V, W/A)."@en ; - rdfs:label "secondary voltage"@en . - -s4bldg:faceArea a owl:ObjectProperty ; - rdfs:comment "Face area open to the airstream. Usually measured in square metre (m2)."@en ; - rdfs:label "face area"@en . - -s4bldg:testPressure a owl:ObjectProperty ; - rdfs:comment "The maximum pressure to which the valve has been subjected under test. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "test pressure"@en . - -s4bldg:flowResistanceMax - a owl:ObjectProperty ; - rdfs:comment "Allowable range of frictional resistance against which the fluid is being pumped. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "flow resistance range"@en . - -s4bldg:numberOfRows a owl:DatatypeProperty ; - rdfs:comment "Number of tube rows in the tube bundle assembly."@en ; - rdfs:label "number of rows"@en ; - rdfs:range xsd:integer . - -s4bldg:nominalPressureDrop - a owl:ObjectProperty ; - rdfs:comment "Total pressure drop across the filter. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "nominal pressure drop"@en . - -s4bldg:nominalHeatTransferArea - a owl:ObjectProperty ; - rdfs:comment "Nominal heat transfer surface area associated with nominal overall heat transfer coefficient. Usually measured in square metre (m2)."@en ; - rdfs:label "nominal heat transfer area"@en . - -s4bldg:mediaSource a owl:DatatypeProperty ; - rdfs:comment "Indicates media sources and corresponding names of ports (DistributionPort with FlowDirection=SINK and PredefinedType=AUDIOVISUAL) or aggregated audio/video components (AudioVisualAppliance)."@en ; - rdfs:label "media source"@en ; - rdfs:range xsd:string . - -s4bldg:operatingWeight - a owl:ObjectProperty ; - rdfs:comment "Operating weight of the tank including all of its contents. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "operating weight"@en . - -s4bldg:nominalWaterFlowHeating - a owl:ObjectProperty ; - rdfs:comment "Nominal water flow (refers to nominal heating capacity). Usually measured in m3/s."@en ; - rdfs:label "nominal water flow heating"@en . - -s4bldg:Evaporator a owl:Class ; - rdfs:comment "An evaporator is a device in which a liquid refrigerent is vaporized and absorbs heat from the surrounding fluid."@en ; - rdfs:label "Evaporator"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcEvaporator" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:evaporationCoolant - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalHeatTransferArea - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:internalSurfaceArea - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:externalSurfaceArea - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:internalWaterVolume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:refrigerantClass - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:internalRefrigerantVolume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:evaporationMediumType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalHeatTransferCoefficient - ] ; - prov:hadPrimarySource , . - -s4bldg:operationTemperatureMin - a owl:ObjectProperty ; - rdfs:comment "Allowable operation ambient (air, fluid) temperature range. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "operation temperature range"@en . - -s4bldg:endShapeType a owl:DatatypeProperty ; - rdfs:comment "Defines the types of end shapes that can be used for preformed tanks. The convention for reading these enumerated values is that for a vertical cylinder, the first value is the base and the second is the top for a horizontal cylinder, the order of reading should be left to right. For a speherical tank, the value UNSET should be used.B5"@en ; - rdfs:label "end shape type"@en ; - rdfs:range xsd:string . - -s4bldg:nomminalRotationSpeed - a owl:ObjectProperty ; - rdfs:comment "Pump rotational speed under nominal conditions. Usually measured in cycles/s."@en ; - rdfs:label "nomminal rotation speed"@en . - -s4bldg:BuildingSpace a owl:Class ; - rdfs:comment "An entity used to define the physical spaces of the building. A building space contains devices or building objects."@en ; - rdfs:label "Building space"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf [ a rdf:List ; - rdf:first s4bldg:Building ; - rdf:rest [ a rdf:List ; - rdf:first s4bldg:BuildingSpace ; - rdf:rest () - ] - ] - ] ; - owl:onProperty s4bldg:isSpaceOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4bldg:BuildingSpace ; - owl:onProperty s4bldg:hasSpace - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4bldg:PhysicalObject ; - owl:onProperty s4bldg:contains - ] . - -s4bldg:size a owl:ObjectProperty ; - rdfs:comment "The size of the connection to the valve (or to each connection for faucets, mixing valves, etc.). Usually measured in millimeters (mm)."@en ; - rdfs:label "size"@en . - -s4bldg:impellerDiameter - a owl:ObjectProperty ; - rdfs:comment "Diameter of compressor impeller - used to scale performance of geometrically similar compressors. Usually measured in millimeters (mm)."@en ; - rdfs:label "impeller diameter"@en . - -s4bldg:spectrumMax a owl:ObjectProperty ; - rdfs:comment "The spectrum of radiation describes its composition with regard to wavelength. Light, for example, as the portion of electromagnetic radiation that is visible to the human eye, is radiation with wavelengths in the range of approx. 380 to 780 nm (1 nm = 10 m). The corresponding range of colours varies from violet to indigo, blue, green, yellow, orange, and red. These colours form a continuous spectrum, in which the various spectral sectors merge into each other."@en ; - rdfs:label "maximum spectrum"@en . - -s4bldg:BuildingDevice - a owl:Class ; - rdfs:comment "A tangible object designed to accomplish a particular task in a building."@en ; - rdfs:label "Building device"@en ; - rdfs:subClassOf saref:Device , s4bldg:BuildingObject . - -s4bldg:verticalSpacing - a owl:ObjectProperty ; - rdfs:comment "Vertical spacing between tubes in the tube bundle.Usually measured in millimeters (mm)."@en ; - rdfs:label "vertical spacing"@en . - -s4bldg:switchFunction - a owl:DatatypeProperty ; - rdfs:comment "Indicates types of switches which differs in functionality."@en ; - rdfs:label "switch function"@en ; - rdfs:range xsd:string . - -s4bldg:FlowStorageDevice - a owl:Class ; - rdfs:comment "The distribution flow element FlowStorageDevice defines the occurrence of a device that participates in a distribution system and is used for temporary storage (such as a tank)."@en ; - rdfs:label "Flow storage device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowStorageDevice" ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - prov:hadPrimarySource . - -s4bldg:colorAppearance - a owl:DatatypeProperty ; - rdfs:comment "In both the DIN and CIE standards, artificial light sources are classified in terms of their color appearance. To the human eye they all appear to be white the difference can only be detected by direct comparison. Visual performance is not directly affected by differences in color appearance."@en ; - rdfs:label "color appearance"@en ; - rdfs:range xsd:string . - -s4bldg:ElectricGenerator - a owl:Class ; - rdfs:comment "An electric generator is an engine that is a machine for converting mechanical energy into electrical energy."@en ; - rdfs:label "Electric generator"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricGenerator" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:powerOutputMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:startCurrentFactor - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:electricGeneratorEfficiency - ] ; - prov:hadPrimarySource , . - -s4bldg:capacityControlType - a owl:DatatypeProperty ; - rdfs:comment "InletVane: Control by adjusting inlet vane. VariableSpeedDrive: Control by variable speed drive. BladePitchAngle: Control by adjusting blade pitch angle. TwoSpeed: Control by switch between high and low speed. DischargeDamper: Control by modulating discharge damper."@en ; - rdfs:label "capacity control type"@en ; - rdfs:range xsd:string . - -s4bldg:storageType a owl:DatatypeProperty ; - rdfs:comment "Defines the general material category intended to be stored."@en ; - rdfs:label "storage type"@en ; - rdfs:range xsd:string . - -saref:isMeasuredIn a owl:ObjectProperty ; - rdfs:comment "A relation between a measurement and the unit of measure in which the measurement value is expressed."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "is measured in"@en . - -s4bldg:nominalEvaporatingTemmperature - a owl:ObjectProperty ; - rdfs:comment "Chiller evaporating temperature.Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal evaporating temmperature"@en . - -s4bldg:partLoadRatioMax - a owl:ObjectProperty ; - rdfs:comment "Maximum part load ratio as a fraction of nominal capacity."@en ; - rdfs:label "maximum part load ratio"@en . - -s4bldg:nominalCapacity - a owl:ObjectProperty ; - rdfs:comment "Nominal capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal capacity"@en . - -s4bldg:Outlet a owl:Class ; - rdfs:comment "An outlet is a device installed at a point to receive one or more inserted plugs for electrical power or communications.\n\nPower outlets are commonly connected within a junction box; data outlets may be directly connected to a wall. For power outlets sharing the same circuit within a junction box, the ports should indicate the logical wiring relationship to the enclosing junction box, even though they may be physically connected to a cable going to another outlet, switch, or fixture."@en ; - rdfs:label "Outlet"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcOutlet" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOsSockets - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:isPluggableOutlet - ] ; - prov:hadPrimarySource , . - -s4bldg:mechanicalOperated - a owl:DatatypeProperty ; - rdfs:comment "Indication whether the element is operated machanically (TRUE) or not, i.e. manually (FALSE)."@en ; - rdfs:label "mechanical operated"@en ; - rdfs:range xsd:boolean . - -s4bldg:isolatorStaticDeflection - a owl:ObjectProperty ; - rdfs:comment "Static deflection of the vibration isolator. Usually measured in millimeters (mm)."@en ; - rdfs:label "isolator static deflection"@en . - -s4bldg:waterPressureMin - a owl:ObjectProperty ; - rdfs:comment "Allowable water circuit working pressure range. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "water pressure range"@en . - -s4bldg:motorEnclosureType - a owl:DatatypeProperty ; - rdfs:comment "A list of the available types of motor enclosure from which that required may be selected."@en ; - rdfs:label "motor enclosure type"@en ; - rdfs:range xsd:string . - -s4bldg:refrigerantClass - a owl:DatatypeProperty ; - rdfs:comment "Refrigerant class used by the compressor. CFC: Chlorofluorocarbons. HCFC: Hydrochlorofluorocarbons. HFC: Hydrofluorocarbons."@en ; - rdfs:label "refrigerant class"@en ; - rdfs:range xsd:string . - -s4bldg:outletTemperatureMin - a owl:ObjectProperty ; - rdfs:comment "Allowable outlet temperature of either the water or the steam. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "outlet temperature range"@en . - -s4bldg:frameThickness - a owl:ObjectProperty ; - rdfs:comment "The thickness of the damper frame material. Usually measured in millimeters (mm)."@en ; - rdfs:label "frame thickness"@en . - -s4bldg:manualOverride - a owl:DatatypeProperty ; - rdfs:comment "Identifies whether hand-operated operation is provided as an override (= TRUE) or not (= FALSE). Note that this value should be set to FALSE by default in the case of a Hand Operated Actuator."@en ; - rdfs:label "manual override"@en ; - rdfs:range xsd:boolean . - -s4bldg:nominalSupplyWaterTemperatureCooling - a owl:ObjectProperty ; - rdfs:comment "Nominal supply water temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal supply water temperature cooling"@en . - -s4bldg:solarReflectance - a owl:ObjectProperty ; - rdfs:comment "(Rsol): The ratio of incident solar radiation that is reflected by a shading system (also named _e). Note the following equation Asol + Rsol + Tsol = 1"@en ; - rdfs:label "solar reflectance"@en . - -s4bldg:primaryFrequency - a owl:ObjectProperty ; - rdfs:comment "The frequency that is going to be transformed and that runs into the transformer on the primary side. Usually measured in cycles/s or Hertz (Hz)."@en ; - rdfs:label "primary frequency"@en . - -saref:Property a owl:Class ; - rdfs:comment "An aspect of an entity that can be observable by a sensor."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "Property"@en ; - owl:disjointWith saref:UnitOfMeasure . diff --git a/src/main/resources/saref-portal-generator/public/saref4bldg/latest/saref4bldg.rdf b/src/main/resources/saref-portal-generator/public/saref4bldg/latest/saref4bldg.rdf deleted file mode 100644 index 78efafb..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4bldg/latest/saref4bldg.rdf +++ /dev/null @@ -1,4570 +0,0 @@ - - - https://saref.etsi.org/saref4bldg# - - This ontology extends the SAREF ontology for the building domain by defining building devices and how they are located in a building. This extension is based on the ISO 16739:2013 Industry Foundation Classes (IFC) standard for data sharing in the construction and facility management industries. The descriptions of the classes and properties extracted from IFC have been taken from the IFC documentation. - - s4bldg - SAREF extension for building devices - - - This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge. - - - 2019-06-11 - 1.1.1 - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcFlowMeter - Flow meter - A flow meter is a device that is used to measure the flow rate in a system. - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcCooledBeam - - - - - - - - - - - - - - Cooled beam - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A cooled beam (or chilled beam) is a device typically used to cool air by circulating a fluid such as chilled water through exposed finned tubes above a space. Typically mounted overhead near or within a ceiling, the cooled beam uses convection to cool the space below it by acting as a heat sink for the naturally rising warm air of the space. Once cooled, the air naturally drops back to the floor where the cycle begins again. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Fan - - - - - - - - - - - - A fan is a device which imparts mechanical work on a gas. A typical usage of a fan is to induce airflow in a building services air distribution system. - https://w3id.org/ifc/IFC4_ADD1#IfcFan - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcCoolingTower - A cooling tower is a device which rejects heat to ambient air by circulating a fluid such as water through it to reduce its temperature by partial evaporation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Cooling tower - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcTubeBundle - A tube bundle is a device consisting of tubes and bundles of tubes used for heat transfer and contained typically within other energy conversion devices, such as a chiller or coil. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tube bundle - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcLamp - Lamp - - - - - - - - - - - - - - - - - - - - - - - A lamp is an artificial light source such as a light bulb or tube. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Switching device - - - A switch is used in a cable distribution system (electrical circuit) to control or modulate the flow of electricity. - -Switches include those used for electrical power, communications, audio-visual, or other distribution system types as determined by the available ports. - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcSwitchingDevice - - - Physical object - Any Object that has a proper space region. (Definition extracted from DUL ontology) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Electric motor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcElectricMotor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - An electric motor is an engine that is a machine for converting electrical energy into mechanical energy. - - - - - - - - - - - - - - - - Building - A building represents a structure that provides shelter for its occupants or contents and stands in one place. The building is also used to provide a basic element within the spatial structure hierarchy for the components of a building project (together with site, storey, and space). - - - - - - - - - - - - - Building device - A tangible object designed to accomplish a particular task in a building. - - - - - - - - - Distribution device - Generalization of all devices that participate in a distribution system. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcproductextension/lexical/ifcdistributionelement.htm) - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcAudioVisualApplicance - Audio visual appliance - An audio-visual appliance is a device that displays, captures, transmits, or receives audio or video. - -Audio-visual appliances may be fixed in place or may be able to be moved from one space to another. They may require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source. Audio-visual appliances may be connected to data circuits including specialist circuits for audio visual purposes only. - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcProtectiveDevice - Protective device - A protective device breaks an electrical circuit when a stated electric current that passes through it is exceeded. - -A protective device provides protection against electrical current only (not as a general protective device). It may be used to represent the complete set of elements including both the tripping unit and the breaking unit that provide the protection. This may be particularly useful at earlier stages of design where the approach to breaking the electrical supply may be determined but the method of tripping may not. Alternatively, this entity may be used to specifically represent the breaking unit alone (in which case the tripping unit will also be specifically identified). This entity is specific to dedicated protective devices and excludes electrical outlets that may have circuit protection. - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcProtectiveDeviceTrippingUnit - Protective device tripping unit - A protective device tripping unit breaks an electrical circuit at a separate breaking unit when a stated electric current that passes through the unit is exceeded. - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcFlowStorageDevice - Flow storage device - The distribution flow element FlowStorageDevice defines the occurrence of a device that participates in a distribution system and is used for temporary storage (such as a tank). - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcTransportElement - - - - - - - - - - - - - - - - - - - - A transport element is a generalization of all transport related objects that move people, animals or goods within a building or building complex. The TransportElement defines the occurrence of a transport element. - - - - Transport element - - - - - - - - - - - - - - - - - - - - - A compressor is a device that compresses a fluid typically used in a refrigeration circuit. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcCompressor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compressor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcInterceptor - - - - - - - - - - - - An interceptor is a device designed and installed in order to separate and retain deleterious, hazardous or undesirable matter while permitting normal sewage or liquids to discharge into a collection system by gravity. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Interceptor - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcFlowController - Flow controller - The distribution flow element FlowController defines the occurrence of elements of a distribution system that are used to regulate flow through a distribution system. Examples include dampers, valves, switches, and relays. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - An evaporator is a device in which a liquid refrigerent is vaporized and absorbs heat from the surrounding fluid. - - - - - - - - - - - - - - - - - - - - - - Evaporator - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcEvaporator - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcSensor - Sensor - A sensor is a device that measures a physical quantity and converts it into a signal which can be read by an observer or by an instrument. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A filter is an apparatus used to remove particulate or gaseous matter from fluids and gases. - - - - - Filter - - https://w3id.org/ifc/IFC4_ADD1#IfcFilter - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcController - Controller - A controller is a device that monitors inputs and controls outputs within a building automation system. - -A controller may be physical (having placement within a spatial structure) or logical (a software interface or aggregated within a programmable physical controller). - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcUnitaryControlElement - Unitary control element - A unitary control element combines a number of control components into a single product, such as a thermostat or humidistat. - -A unitary control element provides a housing for an aggregation of control or electrical distribution elements that, in combination, perform a singular (unitary) purpose. Each item in the aggregation may have its own geometric representation and location. - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcElectricFlowStorageDevice - - - - - - - - - - - Electric flow storage device - - - - - - - - - - - - - - An electric flow storage device is a device in which electrical energy is stored and from which energy may be progressively released. - - - Sensor - - A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. -A device that has category saref:Sensor and performs a saref:SensingFunction. - - - Property - https://w3id.org/saref# - An aspect of an entity that can be observable by a sensor. - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcBurner - Burner - A burner is a device that converts fuel into heat through combustion. It includes gas, oil, and wood burners. - - - - - - - - - - - - - - - - - - - - - - - - Tank - https://w3id.org/ifc/IFC4_ADD1#IfcTank - - - - - - - - - - - - - - - - - - - - - - - - - - - - A tank is a vessel or container in which a fluid or gas is stored for later use. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcMedicalDevice - Medical device - A medical device is attached to a medical piping system and operates upon medical gases to perform a specific function. Medical gases include medical air, medical vacuum, oxygen, carbon dioxide, nitrogen, and nitrous oxide. - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcElectricGenerator - - Electric generator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - An electric generator is an engine that is a machine for converting mechanical energy into electrical energy. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A pump is a device which imparts mechanical work on fluids or slurries to move them through a channel or pipeline. A typical use of a pump is to circulate chilled water or heating hot water in a building services distribution system. - - - - - - - - - - - - - - - - - - - - - - - - - - Pump - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcPump - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcOutlet - Outlet - An outlet is a device installed at a point to receive one or more inserted plugs for electrical power or communications. - -Power outlets are commonly connected within a junction box; data outlets may be directly connected to a wall. For power outlets sharing the same circuit within a junction box, the ports should indicate the logical wiring relationship to the enclosing junction box, even though they may be physically connected to a cable going to another outlet, switch, or fixture. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcCoil - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A coil is a device used to provide heat transfer between non-mixing media. A common example is a cooling coil, which utilizes a finned coil in which circulates chilled water, antifreeze, or refrigerant that is used to remove heat from air moving across the surface of the coil. A coil may be used either for heating or cooling purposes by placing a series of tubes (the coil) carrying a heating or cooling fluid into an airstream. The coil may be constructed from tubes bundled in a serpentine form or from finned tubes that give a extended heat transfer surface. - -Coils may also be used for non-airflow cases such as embedded in a floor slab. - Coil - - - - https://w3id.org/ifc/IFC4_ADD1#IfcEnergyConversionDevice - Energy conversion device - The distribution flow element EnergyConversionDevice defines the occurrence of a device used to perform energy conversion or heat transfer and typically participates in a flow distribution system. - - - - - - Actuator - - A device responsible for moving or controlling a mechanism or system - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcFlowInstrument - Flow instrument - A flow instrument reads and displays the value of a particular property of a system at a point, or displays the difference in the value of a property between two points. - -Instrumentation is typically for the purpose of determining the value of the property at a point in time. It is not the purpose of an instrument to record or integrate the values over time (although they may be connected to recording devices that do perform such a function). This entity provides for all forms of mechanical flow instrument (thermometers, pressure gauges etc.) and electrical flow instruments (ammeters, voltmeters etc.) - - - - - - Distribution control device - Represents devices of a building automation control system that are used to impart control over elements of a distribution system. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcsharedbldgserviceelements/lexical/ifcdistributioncontrolelement.htm) - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcCommunicationAppliance - Communication appliance - A communications appliance transmits and receives electronic or digital information as data or sound. - -Communication appliances may be fixed in place or may be able to be moved from one space to another. Communication appliances require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source. - - - - - - - - - 1 - - - - - - Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. - - - - - - 1 - - - - - - - - - - - - - - https://w3id.org/saref# - - - - - - - - - - - - 1 - - - - - - Measurement - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcAlarm - Alarm - An alarm is a device that signals the existence of a condition or situation that is outside the boundaries of normal expectation or that activates such a device. - -Alarms include the provision of break glass buttons and manual pull boxes that are used to activate alarms. - - - - Duct silencer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcDuctSilencer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A duct silencer is a device that is typically installed inside a duct distribution system for the purpose of reducing the noise levels from air movement, fan noise, etc. in the adjacent space or downstream of the duct silencer device. - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcEngine - Engine - An engine is a device that converts fuel into mechanical energy through combustion. - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcFlowTerminal - Flow terminal - The distribution flow element FlowTerminal defines the occurrence of a permanently attached element that acts as a terminus or beginning of a distribution system (such as an air outlet, drain, water closet, or sink). A terminal is typically a point at which a system interfaces with an external environment. - - - - - - Humidifier - - https://w3id.org/ifc/IFC4_ADD1#IfcHumidifier - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A humidifier is a device that adds moisture into the air. - - - - - - - - - - - Building space - An entity used to define the physical spaces of the building. A building space contains devices or building objects. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Transformer - https://w3id.org/ifc/IFC4_ADD1#IfcTransformer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A transformer is an inductive stationary device that transfers electrical energy from one circuit to another. - -Transformer is used to transform electric power; conversion of electric signals for other purposes is handled at other entities: Controller converts arbitrary signals, AudioVisualAppliance converts signals for audio or video streams, and CommunicationsAppliance converts signals for data or other communications usage. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcFireSuppressionTerminal - Fire suppression terminal - A fire suppression terminal has the purpose of delivering a fluid (gas or liquid) that will suppress a fire. - -A fire suppression terminal provides for all forms of sprinkler, spreader and other form of terminal that is connected to a pipework system and intended to act in the role of suppressing a fire. - - - - Unit of measure - - The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called "watt". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended. - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcElectricTimeControl - Electric time control - An electric time control is a device that applies control to the provision or flow of electrical energy over time. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Damper - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A damper typically participates in an HVAC duct distribution system and is used to control or modulate the flow of air. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcDamper - - - - - - - - - - - - Device - - A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function. - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcSanitaryTerminal - Sanitary terminal - A sanitary terminal is a fixed appliance or terminal usually supplied with water and used for drinking, cleaning or foul water disposal or that is an item of equipment directly used with such an appliance or terminal. - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcElectricAppliance - Electric appliance - An electric appliance is a device intended for consumer usage that is powered by electricity. - -Electric appliances may be fixed in place or may be able to be moved from one space to another. Electric appliances require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source. - - - - Condenser - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A condenser is a device that is used to dissipate heat, typically by condensing a substance such as a refrigerant from its gaseous to its liquid state. - https://w3id.org/ifc/IFC4_ADD1#IfcCondenser - - - Building object - An object in the building that can be controlled by devices, such as a door or a window that can be automatically opened or closed by an actuator. (Definition taken from SAREF 1.0) - - - - https://w3id.org/ifc/IFC4_ADD1#IfcChiller - - - - - - - - - - Chiller - - - - - - - - - - A chiller is a device used to remove heat from a liquid via a vapor-compression or absorption refrigeration cycle to cool a fluid, typically water or a mixture of water and glycol. The chilled fluid is then used to cool and dehumidify air in a building. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Space heater - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcSpaceHeater - Space heaters utilize a combination of radiation and/or natural convection using a heating source such as electricity, steam or hot water to heat a limited space or area. Examples of space heaters include radiators, convectors, baseboard and finned-tube heaters. - -UnitaryEquipment should be used for packaged units supporting a combination of heating, cooling, and/or dehumidification; Coil should be used for coil-based floor heating. - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcHeatExchanger - Heat exchanger - A heat exchanger is a device used to provide heat transfer between non-mixing media such as plate and shell and tube heat exchangers. HeatExchanger is commonly used on water-side distribution systems to recover energy from a liquid to another liquid (typically water-based), whereas AirToAirHeatRecovery is commonly used on air-side distribution systems to recover energy from a gas to a gas (usually air). - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcFlowMovingDevice - Flow moving device - The distribution flow element FlowMovingDevice defines the occurrence of an apparatus used to distribute, circulate or perform conveyance of fluids, including liquids and gases (such as a pump or fan), and typically participates in a flow distribution system. - - - - - - DistributionFlowDevice - Represents devices of a distribution system that facilitate the distribution of energy or matter, such as air, water or power. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcsharedbldgserviceelements/lexical/ifcdistributionflowelement.htm) - - - - - - - - - - - - - - - - - - - - - Valve - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcValve - A valve is used in a building services piping distribution system to control or modulate the flow of the fluid. - - - - - - - - - - - A vibration isolator is a device used to minimize the effects of vibration transmissibility in a building. - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcVibrationIsolator - - - - - - - - - - Vibration isolator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcSolarDevice - Solar device - A solar device converts solar radiation into other energy such as electric current or thermal energy. - - - - Air to air heat recovery - - - - - - - - - - - - - - - - - - - An air-to-air heat recovery device employs a counter-flow heat exchanger between inbound and outbound air flow. It is typically used to transfer heat from warmer air in one chamber to cooler air in the second chamber (i.e., typically used to recover heat from the conditioned air being exhausted and the outside air being supplied to a building), resulting in energy savings from reduced heating (or cooling) requirements. - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcAirToAirHeatRecovery - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - An evaporative cooler is a device that cools air by saturating it with water vapor. - - - - - - - - - - - - - - - - - Evaporative cooler - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcEvaporativeCooler - - - - https://w3id.org/ifc/IFC4_ADD1#IfcFlowTreatmentDevice - Flow treatment device - The distribution flow element FlowTreatmentDevice defines the occurrence of a device typically used to remove unwanted matter from a fluid, either liquid or gas, and typically participates in a flow distribution system. - - - - - - - - - - - - - - - - - - - - - - - - - - - - Boiler - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcBoiler - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A boiler is a closed, pressure-rated vessel in which water or other fluid is heated using an energy source such as natural gas, heating oil, or electricity. The fluid in the vessel is then circulated out of the boiler for use in various processes or heating applications. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcActuator - Actuator - An actuator is a mechanical device for moving or controlling a mechanism or system. An actuator takes energy, usually created by air, electricity, or liquid, and converts that into some kind of motion. - - - - - - - - - - - - - - - - - - - - - - - - - - - - Shading device - - - - - - - - - Shading devices are purpose built devices to protect from the sunlight, from natural light, or screening them from view. Shading devices can form part of the facade or can be mounted inside the building, they can be fixed or operable. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcShadingDevice - - - - - - - - - - - lift elevation difference - Elevation difference between cooling tower sump and the top of the tower. Usually measured in millimeters (mm). - - - flow coefficient - Flow coefficient (the quantity of fluid that passes through a fully open valve at unit pressure drop), typically expressed as the Kv or Cv value for the valve. - - - secondary voltage - The voltage that has been transformed and is running out of the transformer on the secondary side. Usually measured in Volts (V, W/A). - - - nominal supply voltage offset - The maximum and minimum allowed voltage of the supply e.g. boundaries of 380V/440V may be applied for a nominal voltage of 400V. - - - frame depth - The length (or depth) of the damper frame. Usually measured in millimeters (mm). - - - horizontal spacing - Horizontal spacing between tubes in the tube bundle. Usually measured in millimeters (mm). - - - isolator static deflection - Static deflection of the vibration isolator. Usually measured in millimeters (mm). - - - nominal width or diameter - The nominal width or, in the case of a horizontal cylindrical tank, the nominal diameter of the tank. Note: Not required for a vertical cylindrical tank. Usually measured in millimeters (mm). - - - secondary air flow rate range - Maximum secondary airflow that can be delivered. Usually measured in Pascals (Pa, N/m2). - - - nominal efficiency - Nominal chiller efficiency under nominal conditions. - - - body mass - Overall body mass of the heater. Usually measured in kilograms (kg) or grams (g). - - - ventilating pipe size - Size of the ventilating pipe(s). Usually measured in millimeters (mm). - - - nominal ua - Nominal UA value. - - - vibration transmissibility - The vibration transmissibility percentage. - - - pressure rating - Nominal pressure rating of the boiler as rated by the agency having jurisdiction. Usually measured in Pascals (Pa, N/m2). - - - water storage capacity - Water storage capacity. Usually measured in cubic metre (m3). - - - flow resistance range - Allowable range of frictional resistance against which the fluid is being pumped. Usually measured in Pascals (Pa, N/m2). - - - thermal mass heat capacity - Product of component mass and specific heat. - - - minimum spectrum - The spectrum of radiation describes its composition with regard to wavelength. Light, for example, as the portion of electromagnetic radiation that is visible to the human eye, is radiation with wavelengths in the range of approx. 380 to 780 nm (1 nm = 10 m). The corresponding range of colours varies from violet to indigo, blue, green, yellow, orange, and red. These colours form a continuous spectrum, in which the various spectral sectors merge into each other. - - - primary air flow rate range - Maximum primary airflow that can be delivered. Usually measured in m3/s. - - - blade thickness - The thickness of the damper blade. Usually measured in millimeters (mm). - - - open pressure drop - Total pressure drop across damper. Usually measured in Pascals (Pa, N/m2). - - - maximum working pressure - Maximum working pressure. Usually measured in Pascals (Pa, N/m2). - - - coil length - Length of coil. Usually measured in millimeters (mm). - - - nominal length or diameter - The nominal length or, in the case of a vertical cylindrical tank, the nominal diameter of the tank. Usually measured in millimeters (mm). - - - maximum supported weight - The maximum weight that can be carried by the vibration isolator. Usually measured in kilograms (kg) or grams (g). - - - solar transmittance - (Tsol) The ratio of incident solar radiation that directly passes through a shading system (also named _e). Note the following equation Asol + Rsol + Tsol = 1 - - - ambient design wet bulb temperature - Ambient design wet bulb temperature used for selecting the cooling tower. Usually measured in degrees Kelvin (K). - - - primary air flow rate range - Minimum primary airflow that can be delivered. Usually measured in m3/s. - - - nominal condensing temperature - Chiller condensing temperature. Usually measured in degrees Kelvin (K). - - - nominal air flow rate - Nominal rate of air flow. Usually measured in m3/s. - - - nominal diameter - Nominal diameter or width of the tubes in the tube bundle. Usually measured in millimeters (mm). - - - real impedance ratio - The ratio between the real part of the zero sequence impedance and the real part of the positive impedance (i.e. real part of the short-circuit voltage) of the transformer. Used for three-phase transformer which includes a N-conductor. - - - nominal supply voltage offset - The maximum and minimum allowed voltage of the supply e.g. boundaries of 380V/440V may be applied for a nominal voltage of 400V. - - - nominal water flow cooling - Nominal water flow (refers to nominal cooling capacity). Usually measured in m3/s. - - - nominal filter face velocity - Filter face velocity. Usually measured in m/s. - - - operation temperature range - Allowable operation ambient (air, fluid) temperature range. Usually measured in degrees Kelvin (K). - - - nominal capacity - Nominal capacity. Usually measured in Watts (W, J/s). - - - is measured in - https://w3id.org/saref# - A relation between a measurement and the unit of measure in which the measurement value is expressed. - - - nominal part load ratio - Allowable part load ratio range. - - - thermal conductivity - Fouling factor of the tubes in the tube bundle. Usually measured in m2 Kelvin/Watt. - - - water pressure range - Allowable water circuit working pressure range. Usually measured in Pascals (Pa, N/m2). - - - nominal latent capacity - Nominal latent capacity. Usually measured in Watts (W, J/s). - - - nominal particle geometric mean diameter - Particle geometric mean diameter associated with nominal efficiency. Usually measured in millimeters (mm). - - - weight - The weight of the device. Usually measured in kilograms (kg) or grams (g). - - - location - - The relation between something and the point, or other geometrical thing in space, where it is. For example, the realtionship between a radio tower and a Point with a given lat and long. Or a relationship between a park and its outline as a closed arc of points, or a road and its location as a arc (a sequence of points). Clearly in practice there will be limit to the accuracy of any such statement, but one would expect an accuracy appropriate for the size of the object and uses such as mapping . - - - minimum working pressure - Allowable minimum working pressure (relative to ambient pressure). Usually measured in Pascals (Pa, N/m2). - - - nominal heat transfer area - Nominal heat transfer surface area associated with nominal overall heat transfer coefficient. Usually measured in square metre (m2). - - - contributed luminous flux - Luminous flux is a photometric measure of radiant flux, i.e. the volume of light emitted from a light source. Luminous flux is measured either for the interior as a whole or for a part of the interior (partial luminous flux for a solid angle). All other photometric parameters are derivatives of luminous flux. Luminous flux is measured in lumens (lm). The luminous flux is given as a nominal value for each lamp. Usually measured in Lumen (lm, Candela Steradian). - - - operation temperature range - Allowable operation ambient (air, fluid) temperature range. Usually measured in degrees Kelvin (K). - - - output capacity - Total nominal heat output as listed by the manufacturer. Usually measured in Watts (W, J/s). - - - visible light reflectance - Fraction of the visible light that is reflected by the glazing at normal incidence. It is a value without unit. - - - nominal rotation speed - Nominal fan wheel speed. Usually measured in cycles/s. - - - working pressure - The normally expected maximum working pressure of the valve. Usually measured in Pascals (Pa, N/m2). - - - temperature rating - Temperature rating. Usually measured in degrees Kelvin (K). - - - frame thickness - The thickness of the damper frame material. Usually measured in millimeters (mm). - - - ideal shaft power - Compressor shaft power under ideal conditions. Usually measured in Watts (W, J/s). - - - nominal cooling capacity - Nominal cooling capacity. Usually measured in Watts (W, J/s). - - - nominal body length - Nominal or quoted length, measured along the x-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm). - - - nominal supply water temperature cooling - Nominal supply water temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K). - - - secondary air flow rate range - Maximum secondary airflow that can be delivered. Usually measured in Pascals (Pa, N/m2). - - - hydraulic diameter - Hydraulic diameter. Usually measured in millimeters (mm). - - - vertical spacing - Vertical spacing between tubes in the tube bundle.Usually measured in millimeters (mm). - - - nomminal rotation speed - Pump rotational speed under nominal conditions. Usually measured in cycles/s. - - - compressor speed - Compressor speed. Usually measured in cycles/s. - - - water requirement - Make-up water requirement. Usually measured in m3/s. - - - nominal supply voltage - The nominal voltage of the supply. Usually measured in Volts (V, W/A). - - - pump flow rate range - Allowable range of volume of fluid being pumped against the resistance specified. Usually measured in kg/s. - - - outside diameter - Actual outside diameter of the tube in the tube bundle. Usually measured in millimeters (mm). - - - maximum part load ratio - Maximum part load ratio as a fraction of nominal capacity. - - - test pressure - The maximum pressure to which the valve has been subjected under test. Usually measured in Pascals (Pa, N/m2). - - - nominal water flow heating - Nominal water flow (refers to nominal heating capacity). Usually measured in m3/s. - - - nominal evaporating temmperature - Chiller evaporating temperature.Usually measured in degrees Kelvin (K). - - - visible light transmittance - Fraction of the visible light that passes the shading system at normal incidence. It is a value without unit. - - - primary apparent power - The power in VA (volt ampere) that has been transformed and that runs into the transformer on the primary side. Usually measured in Watts (W, J/s). - - - fluid flow rate range - Possible range of fluid flowrate that can be delivered. Usually measured in m3/s. - - - isolator compressibility - The compressibility of the vibration isolator. - - - face area - Face area open to the airstream. Usually measured in square metre (m2). - - - pump flow rate range - Allowable range of volume of fluid being pumped against the resistance specified. Usually measured in kg/s. - - - imaginary impedance ratio - The ratio between the imaginary part of the zero sequence impedance and the imaginary part of the positive impedance (i.e. imaginary part of the short-circuit voltage) of the transformer. Used for three-phase transformer which includes a N-conductor. - - - nominal flow rate - Nominal fluid flow rate through the filter. Usually measured in m3/s. - - - thermal efficiency - Overall Thermal Efficiency is defined as gross energy output of the heat transfer device divided by the energy input. - - - cover width - The length measured along the x-axis in the local coordinate system of the cover of the oil interceptor. Usually measured in millimeters (mm). - - - solar reflectance - (Rsol): The ratio of incident solar radiation that is reflected by a shading system (also named _e). Note the following equation Asol + Rsol + Tsol = 1 - - - nominal supply water temperature heating - Nominal supply water temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K). - - - water inlet temperature range - Allowable water inlet temperature range. Usually measured in degrees Kelvin (K). - - - second curvature radius - SecondCurvatureRadius should be defined as the top or right side radius of curvature value. Usually measured in millimeters (mm). - - - limiting terminal size - The maximum terminal size capacity of the device. Usually measured in square metre (m2). - - - fouling factor - Fouling factor of the tubes in the tube bundle. Usually measured in m2 Kelvin/Watt. - - - size - The size of the connection to the valve (or to each connection for faucets, mixing valves, etc.). Usually measured in millimeters (mm). - - - electric generator efficiency - The ratio of output capacity to intake capacity. - - - light emitter nominal power - Light emitter nominal power. Usually measured in Watts (W, J/s). - - - color temperature - The color temperature of any source of radiation is defined as the temperature (in Kelvin) of a black-body or Planckian radiator whose radiation has the same chromaticity as the source of radiation. Often the values are only approximate color temperatures as the black-body radiator cannot emit radiation of every chromaticity value. The color temperatures of the commonest artificial light sources range from less than 3000K (warm white) to 4000K (intermediate) and over 5000K (daylight). Usually measured in degrees Kelvin (K). - - - secondary current - The current that has been transformed and is running out of the transformer on the secondary side. Usually measured in Ampere (A). - - - height - Height of the vibration isolator before tha application of load. Usually measured in millimeters (mm). - - - air flow rate range max - Maximum allowable air flow rate. Usually measured in m3/s. - - - primary current - The current that is going to be transformed and that runs into the transformer on the primary side. Usually measured in Ampere (A). - - - first curvature radius - FirstCurvatureRadius should be defined as the base or left side radius of curvature value. Usually measured in millimeters (mm). - - - audio volume - Indicates discrete audio volume levels and corresponding sound power offsets, if applicable. Missing values may be interpolated. Measured in watts. - - - electric motor efficiency - The ratio of output capacity to intake capacity. - - - leakage fully closed - Leakage when fully closed. Usually measured in m3/s. - - - nominal total pressure - Nominal total pressure rise across the fan. Usually measured in Pascals (Pa, N/m2). - - - cover length - The length measured along the x-axis in the local coordinate system or the radius (in the case of a circular shape in plan) of the cover of the oil interceptor. Usually measured in millimeters (mm). - - - maximum power output - The maximum output power rating of the engine. Usually measured in Watts (W, J/s). - - - outlet connection size - Size of the outlet connection. Usually measured in millimeters (mm). - - - lamp maintenance factor - Non recoverable losses of luminous flux of a lamp due to lamp depreciation i.e. the decreasing of light output of a luminaire due to aging and dirt. - - - internal water volume - Internal volume of evaporator (water side). Usually measured in cubic metre (m3). - - - heat transfer surface area - Total heat transfer area of the vessel. Usually measured in square metre (m2). - - - basin reserve volume - Volume between operating and overflow levels in cooling tower basin. Usually measured in cubic metre (m3). - - - locked rotor current - Input current when a motor armature is energized but not rotating. Usually measured in Ampere (A). - - - inside diameter - Actual inner diameter of the tube in the tube bundle. Usually measured in millimeters (mm). - - - water inlet temperature range - Allowable water inlet temperature range. Usually measured in degrees Kelvin (K). - - - internal refrigerant volume - Internal volume of evaporator (refrigerant side). Usually measured in cubic metre (m3). - - - nominal media surface velocity - Average fluid velocity at the media surface. Usually measured in m/s. - - - volumen - Total volume of fluid in the tubes and their headers. Usually measured in cubic metre (m3). - - - nominal power rate - Nominal fan power rate.Usually measured in Watts (W, J/s). - - - in line row spacing - In-line tube row spacing. Usually measured in millimeters (mm). - - - nominal body depth - Nominal or quoted =length, measured along the z-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm). - - - nominal sorrounding humidity cooling - Nominal surrounding humidity (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K). - - - nominal frequency - The nominal frequency of the supply. Usually measured in cycles/s or Hertz (Hz). - - - coil width - Width of coil. Usually measured in millimeters (mm - - - nominal sensible capacity - Nominal sensible capacity. Usually measured in Watts (W, J/s). - - - nominal heat rejection rate - Sum of the refrigeration effect and the heat equivalent of the power input to the compressor. Usually measured in Watts (W, J/s). - - - primary frequency - The frequency that is going to be transformed and that runs into the transformer on the primary side. Usually measured in cycles/s or Hertz (Hz). - - - nominal static pressure - The static pressure within the air stream that the fan must overcome to insure designed circulation of air. Usually measured in Pascals (Pa, N/m2). - - - thermal transmittance - Rate at which energy is transmitted through a body. Usually measured in Watts/m2 Kelvin. - - - minimum part load ratio - Minimum part load ratio as a fraction of nominal capacity. - - - connection size - The connection size of the to and from the pump. Usually measured in millimeters (mm). - - - nominal body width - Nominal or quoted length, measured along the y-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm). - - - nominal pressure drop - Total pressure drop across the filter. Usually measured in Pascals (Pa, N/m2). - - - fluid flow rate range - Possible range of fluid flowrate that can be delivered. Usually measured in m3/s. - - - secondary apparent power - The power in VA (volt ampere) that has been transformed and is running out of the transformer on the secondary side. Usually measured in Watts (W, J/s). - - - nominal particle geometric standard deviation - Particle geometric standard deviation associated with nominal efficiency. - - - nominal heat transfer coefficient - Nominal overall heat transfer coefficient associated with nominal heat transfer area. Usually measured in Watts/m2 Kelvin. - - - relates to property - https://w3id.org/saref# - A relation between a measurement and the property such measurement is about. - - - secondary frequency - The frequency that has been transformed and is running out of the transformer on the secondary side. Usually measured in cycles/s or Hertz (Hz). - - - heat exchange area - Heat exchange area. Usually measured in square metre (m2). - - - air flow rate range min - Minimum allowable air flow rate. Usually measured in m3/s. - - - outlet temperature range - Allowable outlet temperature of either the water or the steam. Usually measured in degrees Kelvin (K). - - - nominal heating capacity - Nominal heating capacity. Usually measured in Watts (W, J/s). - - - nominal return water temperature cooling - Nominal return water temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K). - - - internal surface area - Internal surface area. Usually measured in square metre (m2). - - - effective capacity - The total effective or actual volumetric capacity of the tank. Usually measured in cubic metre (m3).B3 - - - nominal moisture gain - Nominal rate of water vapor added into the airstream. Usually measured in kg/s. - - - maximum apparent power - Maximum apparent power/capacity in VA (volt ampere). Usually measured in Watts (W, J/s). - - - nominal sorrounding temperature heating - Nominal surrounding temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K). - - - final resistance - Filter fluid resistance when replacement is required (i.e., Pressure drop at the maximum air flowrate across the filter when the filter needs replacement per ASHRAE Standard 52.1). Usually measured in Pascals (Pa, N/m2). - - - length - The finished length of the device. Usually measured in millimeters (mm). - - - close off rating - Close off rating. Usually measured in Pascals (Pa, N/m2). - - - operating weight - Operating weight of the tank including all of its contents. Usually measured in kilograms (kg) or grams (g). - - - ambient design dry bulb temperature - Ambient design dry bulb temperature used for selecting the cooling tower. Usually measured in degrees Kelvin (K). - - - initial resistance - Initial new filter fluid resistance (i.e., pressure drop at the maximum air flowrate across the filter when the filter is new per ASHRAE Standard 52.1). Usually measured in Pascals (Pa, N/m2). - - - inlet connection size - Size of the inlet connection. Usually measured in millimeters (mm). - - - short circuit voltage - A complex number that specifies the real and imaginary parts of the short-circuit voltage at rated current of a transformer given in %. - - - net positive suction head - Minimum liquid pressure at the pump inlet to prevent cavitation. Usually measured in Pascals (Pa, N/m2). - - - nominal volumetric capacity - The total nominal or design volumetric capacity of the tank. Usually measured in cubic metre (m3). - - - nominal energy consumption - Nominal fuel consumption rate required to produce the total boiler heat output. Usually measured in Watts (W, J/s). - - - primary voltage - The voltage that is going to be transformed and that runs into the transformer on the primary side. Usually measured in Volts (V, W/A). - - - ideal capacity - Compressor capacity under ideal conditions. Usually measured in Watts (W, J/s). - - - capacity weight - Capacity of the transport element measured by weight. Usually measured in kilograms (kg) or grams (g). - - - start current factor - IEC. Start current factor defines how large the peek starting current will become on the engine. StartCurrentFactor is multiplied to NominalCurrent and we get the start current. - - - nominal return water temperature heating - Nominal return water temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K). - - - maximum spectrum - The spectrum of radiation describes its composition with regard to wavelength. Light, for example, as the portion of electromagnetic radiation that is visible to the human eye, is radiation with wavelengths in the range of approx. 380 to 780 nm (1 nm = 10 m). The corresponding range of colours varies from violet to indigo, blue, green, yellow, orange, and red. These colours form a continuous spectrum, in which the various spectral sectors merge into each other. - - - staggered row spacing - Staggered tube row spacing. Usually measured in millimeters (mm). - - - impeller diameter - Diameter of compressor impeller - used to scale performance of geometrically similar compressors. Usually measured in millimeters (mm). - - - water pressure range - Allowable water circuit working pressure range. Usually measured in Pascals (Pa, N/m2). - - - outlet temperature range - Allowable outlet temperature of either the water or the steam. Usually measured in degrees Kelvin (K). - - - nominal sorrounding temperature cooling - Nominal surrounding temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K). - - - te time - The maximum time (in s) at which the motor could run with locked rotor when the motor is used in an EX-environment. The time indicates that a protective device should trip before this time when the starting current of the motor is slowing through the device. - - - nominal depth - The nominal depth of the tank. Note: Not required for a horizontal cylindrical tank. Usually measured in millimeters (mm). - - - flow resistance range - Allowable range of frictional resistance against which the fluid is being pumped. Usually measured in Pascals (Pa, N/m2). - - - starting time - The time (in s) needed for the motor to reach its rated speed with its driven equipment attached, starting from standstill and at the nominal voltage applied at its terminals. - - - operational riterial - Time of operation at maximum operational ambient air temperature. Measured in seconds (s) or days (d) or other units of time. - - - nominal power consumption - Nominal total power consumption. Usually measured in Watts (W, J/s). - - - external surface area - External surface area (both primary and secondary area). Usually measured in square metre (m2). - - - manual override - Identifies whether hand-operated operation is provided as an override (= TRUE) or not (= FALSE). Note that this value should be set to FALSE by default in the case of a Hand Operated Actuator. - - - - number of cells - Number of cells in one cooling tower unit. - - - - is external - Indication whether the element is designed for use in the exterior (TRUE) or not (FALSE). If (TRUE) it is an external element and faces the outside of the building. - - - - access type - Defines the types of access (or cover) to a tank that may be specified. Note that covers are generally specified for rectangular tanks. For cylindrical tanks, access will normally be via a manhole. - - - - heat transfer medium - Enumeration defining the heat transfer medium if applicable. - - - - is free hanging - Is it free hanging type (not mounted in a false ceiling)? - - - - heat transfer type enum - Type of heat transfer between the two air streams. - - - - number of sections - Number of sections used. - - - - heat transfer dimension - Indicates how heat is transmitted according to the shape of the space heater. - - - - evaporation coolant - The fluid used for the coolant in the evaporator. - - - - has hot gas bypass - Whether or not hot gas bypass is provided for the compressor. TRUE = Yes, FALSE = No. - - - - operation - The operational mechanism for the damper operation. - - - - roughness - A measure of the vertical deviations of the surface. - - - - number os sockets - The number of sockets that may be connected. In case of inconsistency, sockets defined on ports take precedence. - - - - has defrost - Whether the heat exchanger has defrost function or not. - - - - mechanical operated - Indication whether the element is operated machanically (TRUE) or not, i.e. manually (FALSE). - - - - evaporation medium type - ColdLiquid: Evaporator is using liquid type of fluid to exchange heat with refrigerant. ColdAir: Evaporator is using air to exchange heat with refrigerant. - - - - color appearance - In both the DIN and CIE standards, artificial light sources are classified in terms of their color appearance. To the human eye they all appear to be white the difference can only be detected by direct comparison. Visual performance is not directly affected by differences in color appearance. - - - - application - Humidifier application. Fixed: Humidifier installed in a ducted flow distribution system. Portable: Humidifier is not installed in a ducted flow distribution system. - - - - water flow control system type - Factory fitted waterflow control system. - - - - is guarded - Indication of whether the motor enclosure is guarded (= TRUE) or not (= FALSE). - - - - operating mode - Identifies the operating mode of the boiler. - - - - end shape type - Defines the types of end shapes that can be used for preformed tanks. The convention for reading these enumerated values is that for a vertical cylinder, the first value is the base and the second is the top for a horizontal cylinder, the order of reading should be left to right. For a speherical tank, the value UNSET should be used.B5 - - - - is neutral secondary terminal available - An indication of whether the neutral point of the secondary winding is available as a terminal (=TRUE) or not (= FALSE). - - - - finish color - Finish color for cooled beam. - - - - read out type - Indication of the form that readout from the meter takes. In the case of a dial read out, this may comprise multiple dials that give a cumulative reading and/or a mechanical odometer. - - - - integrated lighting type - Integrated lighting in cooled beam. - - - - transformer vector group - List of the possible vector groups for the transformer from which that required may be set. Values in the enumeration list follow a standard international code where the first letter describes how the primary windings are connected, the second letter describes how the secondary windings are connected, and the numbers describe the rotation of voltages and currents from the primary to the secondary side in multiples of 30 degrees. D: means that the windings are delta-connected. Y: means that the windings are star-connected. Z: means that the windings are zig-zag connected (a special start-connected providing low reactance of the transformer). The connectivity is only relevant for three-phase transformers. - - - - has exterior insulation - TRUE if the silencer has exterior insulation. FALSE if it does not. - - - - circuit type - OpenCircuit: Exposes water directly to the cooling atmosphere. CloseCircuit: The fluid is separated from the atmosphere by a heat exchanger. Wet: The air stream or the heat exchange surface is evaporatively cooled. Dry: No evaporation into the air stream. DryWet: A combination of a dry tower and a wet tower. - - - - blade shape - Blade shape. Flat means triple V-groove. - - - - valve pattern - The configuration of the ports of a valve according to either the linear route taken by a fluid flowing through the valve or by the number of ports where: SINGLEPORT: Valve that has a single entry port from the system that it serves, the exit port being to the surrounding environment. ANGLED_2_PORT: Valve in which the direction of flow is changed through 90 degrees. STRAIGHT_2_PORT: Valve in which the flow is straight through. STRAIGHT_3_PORT: Valve with three separate ports. CROSSOVER_4_PORT: Valve with 4 separate ports. - - - - standard - The designation of the standard applicable for the definition of the characteristics of the unit. - - - - frame type - The type of frame used by the damper (e.g., Standard, Single Flange, Single Reversed Flange, Double Flange, etc.). - - - - color rendering index - The CRI indicates how well a light source renders eight standard colors compared to perfect reference lamp with the same color temperature. The CRI scale ranges from 1 to 100, with 100 representing perfect rendering properties. - - - - placement type - Indicates how the device is designed to be placed. - - - - capacity people - Capacity of the transportation element measured in numbers of person. - - - - pattern type - Defines the types of pattern (or shape of a tank that may be specified. - - - - media source - Indicates media sources and corresponding names of ports (DistributionPort with FlowDirection=SINK and PredefinedType=AUDIOVISUAL) or aggregated audio/video components (AudioVisualAppliance). - - - - arrangement - Defines the basic flow arrangements for the heat exchanger: COUNTERFLOW: Counterflow heat exchanger arrangement. CROSSFLOW: Crossflow heat exchanger arrangement. PARALLELFLOW: Parallel flow heat exchanger arrangement. MULTIPASS: Multipass flow heat exchanger arrangement. OTHER: Other type of heat exchanger flow arrangement not defined above. - - - - has value - - A relationship defining the value of a certain property, e.g., energy or power - - - power source - Type of power driving the compressor. - - - - frame size - Designation of the frame size according to the named range of frame sizes designated at the place of use or according to a given standard. - - - - shading device type - Specifies the type of shading device. - - - - capacity control type - InletVane: Control by adjusting inlet vane. VariableSpeedDrive: Control by variable speed drive. BladePitchAngle: Control by adjusting blade pitch angle. TwoSpeed: Control by switch between high and low speed. DischargeDamper: Control by modulating discharge damper. - - - - control strategy - FixedExitingWaterTemp: The capacity is controlled to maintain a fixed exiting water temperature. WetBulbTempReset: The set-point is reset based on the wet-bulb temperature. - - - - fire exit - Indication whether this object is designed to serve as an exit in the case of fire (TRUE) or not (FALSE). Here whether the transport element (in case of e.g., a lift) is designed to serve as a fire exit, e.g., for fire escape purposes. - - - - number of blades - Number of blades. - - - - orientation - The intended orientation for the damper as specified by the manufacturer. - - - - motor drive type - Motor drive type: DIRECTDRIVE: Direct drive. BELTDRIVE: Belt drive. COUPLING: Coupling. OTHER: Other type of motor drive. UNKNOWN: Unknown motor drive type. - - - - number of rows - Number of tube rows in the tube bundle assembly. - - - - energy source - The source of energy. - Enumeration defining the energy source or fuel cumbusted to generate heat. - - - - valve operation - The method of valve operation where: DROPWEIGHT: A valve that is closed by the action of a weighted lever being released, the weight normally being prevented from dropping by being held by a wire, the closure normally being made by the action of heat on a fusible link in the wire FLOAT: A valve that is opened and closed by the action of a float that rises and falls with water level. The float may be a ball attached to a lever or other mechanism HYDRAULIC: A valve that is opened and closed by hydraulic actuation LEVER: A valve that is opened and closed by the action of a lever rotating the gate within the valve. LOCKSHIELD: A valve that requires the use of a special lockshield key for opening and closing, the operating mechanism being protected by a shroud during normal operation. MOTORIZED: A valve that is opened and closed by the action of an electric motor on an actuator PNEUMATIC: A valve that is opened and closed by pneumatic actuation SOLENOID: A valve that is normally held open by a magnetic field in a coil acting on the gate but that is closed immediately if the electrical current generating the magnetic field is removed. SPRING: A valve that is normally held in position by the pressure of a spring on a plate but that may be caused to open if the pressure of the fluid is sufficient to overcome the spring pressure. THERMOSTATIC: A valve in which the ports are opened or closed to maintain a required predetermined temperature. WHEEL: A valve that is opened and closed by the action of a wheel moving the gate within the valve. - - - - fail position - Specifies the required fail-safe position of the actuator. - - - - is water storage heater - This is used to identify if the boiler has storage capacity (TRUE). If FALSE, then there is no storage capacity built into the boiler, such as an instantaneous hot water heater. - - - - lamp compensation type - Identifies the form of compensation used for power factor correction and radio suppression. - - - - internal control - Internal modulation control. - - - - temperature classification - Enumeration defining the temperature classification of the space heater surface temperature. low temperature - surface temperature is relatively low, usually heated by hot water or electricity. high temperature - surface temperature is relatively high, usually heated by gas or steam. - - - - valve mechanism - The mechanism by which the valve function is achieved where: BALL: Valve that has a ported ball that can be turned relative to the body seat ports. BUTTERFLY: Valve in which a streamlined disc pivots about a diametric axis. CONFIGUREDGATE: Screwdown valve in which the closing gate is shaped in a configured manner to have a more precise control of pressure and flow change across the valve. GLAND: Valve with a tapered seating, in which a rotatable plug is retained by means of a gland and gland packing. GLOBE: Screwdown valve that has a spherical body. LUBRICATEDPLUG: Plug valve in which a lubricant is injected under pressure between the plug face and the body. NEEDLE: Valve for regulating the flow in or from a pipe, in which a slender cone moves along the axis of flow to close against a fixed conical seat. PARALLELSLIDE: Screwdown valve that has a machined plate that slides in formed grooves to form a seal. PLUG: Valve that has a ported plug that can be turned relative to the body seat ports. WEDGEGATE: Screwdown valve that has a wedge shaped plate fitting into tapered guides to form a seal. - - - - has lock - Indication of whether a switching device has a key operated lock (=TRUE) or not (= FALSE). - - - - number of panels - Number of panels. - - - - has part winding - Indication of whether the motor is single speed, i.e. has a single winding (= FALSE) or multi-speed i.e.has part winding (= TRUE) . - - - - pipe connection enum - The manner in which the pipe connection is made to the cooled beam. - - - - capacity control - FanCycling: Fan is cycled on and off to control duty. TwoSpeedFan: Fan is switched between low and high speed to control duty. VariableSpeedFan: Fan speed is varied to control duty. DampersControl: Dampers modulate the air flow to control duty. BypassValveControl: Bypass valve modulates the water flow to control duty. MultipleSeriesPumps: Turn on/off multiple series pump to control duty. TwoSpeedPump: Switch between high/low pump speed to control duty. VariableSpeedPump: vary pump speed to control duty. - - - - flow arrangement - CounterFlow: Air and water flow enter in different directions. CrossFlow: Air and water flow are perpendicular. ParallelFlow: air and water flow enter in same directions. - - - - switch function - Indicates types of switches which differs in functionality. - - - - number of circuits - Number of parallel fluid tube circuits. - - - - storage type - Defines the general material category intended to be stored. - - - - is pluggable outlet - Indication of whether the outlet accepts a loose plug connection (= TRUE) or whether it is directly connected (= FALSE) or whether the form of connection has not yet been determined (= UNKNOWN). - - - - spray type - SprayFilled: Water is sprayed into airflow. SplashTypeFill: water cascades over successive rows of splash bars. FilmTypeFill: water flows in a thin layer over closely spaced sheets. - - - - blade edge - Blade edge. - - - - refrigerant class - Refrigerant class used by the compressor. CFC: Chlorofluorocarbons. HCFC: Hydrochlorofluorocarbons. HFC: Hydrofluorocarbons. - - - - has turbulator - TRUE if the tube has a turbulator, FALSE if it does not. - - - - lamp ballast type - The type of ballast used to stabilise gas discharge by limiting the current during operation and to deliver the necessary striking voltage for starting. Ballasts are needed to operate Discharge Lamps such as Fluorescent, Compact Fluorescent, High-pressure Mercury, Metal Halide and High-pressure Sodium Lamps. Magnetic ballasts are chokes which limit the current passing through a lamp connected in series on the principle of self-induction. The resultant current and power are decisive for the efficient operation of the lamp. A specially designed ballast is required for every type of lamp to comply with lamp rating in terms of Luminous Flux, Color Appearance and service life. The two types of magnetic ballasts for fluorescent lamps are KVG Conventional (EC-A series) and VVG Low-loss ballasts (EC-B series). Low-loss ballasts have a higher efficiency, which means reduced ballast losses and a lower thermal load. Electronic ballasts are used to run fluorescent lamps at high frequencies (approx. 35 - 40 kHz). - - - - legend - A text inscribed or applied to the switch as a legend to indicate purpose or function. - - - - motor enclosure type - A list of the available types of motor enclosure from which that required may be selected. - - - - remote reading - Indicates whether the meter has a connection for remote reading through connection of a communication device (set TRUE) or not (set FALSE). - - - - is illuminated - An indication of whether there is an illuminated indicator to show that the switch is on (=TRUE) or not (= FALSE). - - - - blade action - Blade action. - - - - number of gangs - Number of gangs/buttons on this switch. - - - - is neutral primary terminal available - An indication of whether the neutral point of the primary winding is available as a terminal (=TRUE) or not (= FALSE). - - - - secondary current type - A list of the secondary current types that can result from transformer output. - - - - contains - A relation between a physical space and the objects located in such space. - - - - - - - has space - Relation between a building or a building space and the spaces it can be divided into. - - - - - - - isSpaceOf - Relation between a building space and the building or building space it belongs to. - - - - is contained in - A relation between an object and the physical space in which it is located. - - - - has timestamp - https://w3id.org/saref# - A relationship stating the timestamp of an entity (e.g. a measurement). - - - - - - - - - - diff --git a/src/main/resources/saref-portal-generator/public/saref4bldg/latest/saref4bldg.ttl b/src/main/resources/saref-portal-generator/public/saref4bldg/latest/saref4bldg.ttl deleted file mode 100644 index 9842012..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4bldg/latest/saref4bldg.ttl +++ /dev/null @@ -1,4248 +0,0 @@ -@prefix s4bldg: . -@prefix owl: . -@prefix rdf: . -@prefix xml: . -@prefix xsd: . -@prefix prov: . -@prefix rdfs: . -@prefix vann: . -@prefix saref: . -@prefix dcterms: . - - a owl:Ontology ; - dcterms:title "SAREF extension for building devices"@en ; - owl:versionInfo "1.1.1" ; - owl:versionIRI ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4bldg#" ; - vann:preferredNamespacePrefix "s4bldg" ; - dcterms:license ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:source ; - dcterms:source ; - dcterms:description "This ontology extends the SAREF ontology for the building domain by defining building devices and how they are located in a building. This extension is based on the ISO 16739:2013 Industry Foundation Classes (IFC) standard for data sharing in the construction and facility management industries. The descriptions of the classes and properties extracted from IFC have been taken from the IFC documentation."@en ; - dcterms:publisher . - -# -# -# ################################################################# -# # -# # Annotation properties -# # -# ################################################################# -# -# -# http://purl.org/dc/terms/creator - -dcterms:creator a owl:AnnotationProperty . -# -# http://purl.org/dc/terms/dateCopyrighted - -dcterms:dateCopyrighted a owl:AnnotationProperty . -# -# http://purl.org/dc/terms/rightsHolder - -dcterms:rightsHolder a owl:AnnotationProperty . -# -# http://purl.org/vocab/vann/preferredNamespacePrefix - -vann:preferredNamespacePrefix a owl:AnnotationProperty . -# -# http://purl.org/vocab/vann/preferredNamespaceUri - -vann:preferredNamespaceUri a owl:AnnotationProperty . -# -# http://www.w3.org/ns/prov#hadPrimarySource - -prov:hadPrimarySource a owl:AnnotationProperty . -# -# -# -# ################################################################# -# # -# # Datatypes -# # -# ################################################################# -# -# -# http://www.w3.org/2001/XMLSchema#duration - -xsd:duration a rdfs:Datatype . -# -# -# -# ################################################################# -# # -# # Object Properties -# # -# ################################################################# -# -# -# http://www.w3.org/2003/01/geo/wgs84_pos#location - - a owl:ObjectProperty ; - rdfs:comment "The relation between something and the point, or other geometrical thing in space, where it is. For example, the realtionship between a radio tower and a Point with a given lat and long. Or a relationship between a park and its outline as a closed arc of points, or a road and its location as a arc (a sequence of points). Clearly in practice there will be limit to the accuracy of any such statement, but one would expect an accuracy appropriate for the size of the object and uses such as mapping ."@en ; - rdfs:isDefinedBy ; - rdfs:label "location"@en . -# -# https://saref.etsi.org/saref4bldg#airFlowRateMax - -s4bldg:airFlowRateMax a owl:ObjectProperty ; - rdfs:comment "Maximum allowable air flow rate. Usually measured in m3/s."@en ; - rdfs:label "air flow rate range max"@en . -# -# https://saref.etsi.org/saref4bldg#airFlowRateMin - -s4bldg:airFlowRateMin a owl:ObjectProperty ; - rdfs:comment "Minimum allowable air flow rate. Usually measured in m3/s."@en ; - rdfs:label "air flow rate range min"@en . -# -# https://saref.etsi.org/saref4bldg#ambientDesignDryBulbTemperature - -s4bldg:ambientDesignDryBulbTemperature a owl:ObjectProperty ; - rdfs:comment "Ambient design dry bulb temperature used for selecting the cooling tower. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "ambient design dry bulb temperature"@en . -# -# https://saref.etsi.org/saref4bldg#ambientDesignWetBulbTemperature - -s4bldg:ambientDesignWetBulbTemperature a owl:ObjectProperty ; - rdfs:comment "Ambient design wet bulb temperature used for selecting the cooling tower. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "ambient design wet bulb temperature"@en . -# -# https://saref.etsi.org/saref4bldg#apparentPowerMax - -s4bldg:apparentPowerMax a owl:ObjectProperty ; - rdfs:comment "Maximum apparent power/capacity in VA (volt ampere). Usually measured in Watts (W, J/s)."@en ; - rdfs:label "maximum apparent power"@en . -# -# https://saref.etsi.org/saref4bldg#audioVolume - -s4bldg:audioVolume a owl:ObjectProperty ; - rdfs:comment "Indicates discrete audio volume levels and corresponding sound power offsets, if applicable. Missing values may be interpolated. Measured in watts."@en ; - rdfs:label "audio volume"@en . -# -# https://saref.etsi.org/saref4bldg#basinReserveVolume - -s4bldg:basinReserveVolume a owl:ObjectProperty ; - rdfs:comment "Volume between operating and overflow levels in cooling tower basin. Usually measured in cubic metre (m3)."@en ; - rdfs:label "basin reserve volume"@en . -# -# https://saref.etsi.org/saref4bldg#bladeThickness - -s4bldg:bladeThickness a owl:ObjectProperty ; - rdfs:comment "The thickness of the damper blade. Usually measured in millimeters (mm)."@en ; - rdfs:label "blade thickness"@en . -# -# https://saref.etsi.org/saref4bldg#bodyMass - -s4bldg:bodyMass a owl:ObjectProperty ; - rdfs:comment "Overall body mass of the heater. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "body mass"@en . -# -# https://saref.etsi.org/saref4bldg#capacityWeight - -s4bldg:capacityWeight a owl:ObjectProperty ; - rdfs:comment "Capacity of the transport element measured by weight. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "capacity weight"@en . -# -# https://saref.etsi.org/saref4bldg#closeOffRating - -s4bldg:closeOffRating a owl:ObjectProperty ; - rdfs:comment "Close off rating. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "close off rating"@en . -# -# https://saref.etsi.org/saref4bldg#coilLength - -s4bldg:coilLength a owl:ObjectProperty ; - rdfs:comment "Length of coil. Usually measured in millimeters (mm)."@en ; - rdfs:label "coil length"@en . -# -# https://saref.etsi.org/saref4bldg#coilWidth - -s4bldg:coilWidth a owl:ObjectProperty ; - rdfs:comment "Width of coil. Usually measured in millimeters (mm"@en ; - rdfs:label "coil width"@en . -# -# https://saref.etsi.org/saref4bldg#colorTemperature - -s4bldg:colorTemperature a owl:ObjectProperty ; - rdfs:comment "The color temperature of any source of radiation is defined as the temperature (in Kelvin) of a black-body or Planckian radiator whose radiation has the same chromaticity as the source of radiation. Often the values are only approximate color temperatures as the black-body radiator cannot emit radiation of every chromaticity value. The color temperatures of the commonest artificial light sources range from less than 3000K (warm white) to 4000K (intermediate) and over 5000K (daylight). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "color temperature"@en . -# -# https://saref.etsi.org/saref4bldg#compressorSpeed - -s4bldg:compressorSpeed a owl:ObjectProperty ; - rdfs:comment "Compressor speed. Usually measured in cycles/s."@en ; - rdfs:label "compressor speed"@en . -# -# https://saref.etsi.org/saref4bldg#connectionSize - -s4bldg:connectionSize a owl:ObjectProperty ; - rdfs:comment "The connection size of the to and from the pump. Usually measured in millimeters (mm)."@en ; - rdfs:label "connection size"@en . -# -# https://saref.etsi.org/saref4bldg#contains - -s4bldg:contains a owl:ObjectProperty ; - owl:inverseOf s4bldg:isContainedIn ; - a owl:TransitiveProperty ; - rdfs:comment "A relation between a physical space and the objects located in such space."@en ; - rdfs:label "contains"@en . -# -# https://saref.etsi.org/saref4bldg#contributedLuminousFlux - -s4bldg:contributedLuminousFlux a owl:ObjectProperty ; - rdfs:comment "Luminous flux is a photometric measure of radiant flux, i.e. the volume of light emitted from a light source. Luminous flux is measured either for the interior as a whole or for a part of the interior (partial luminous flux for a solid angle). All other photometric parameters are derivatives of luminous flux. Luminous flux is measured in lumens (lm). The luminous flux is given as a nominal value for each lamp. Usually measured in Lumen (lm, Candela Steradian)."@en ; - rdfs:label "contributed luminous flux"@en . -# -# https://saref.etsi.org/saref4bldg#coverLength - -s4bldg:coverLength a owl:ObjectProperty ; - rdfs:comment "The length measured along the x-axis in the local coordinate system or the radius (in the case of a circular shape in plan) of the cover of the oil interceptor. Usually measured in millimeters (mm)."@en ; - rdfs:label "cover length"@en . -# -# https://saref.etsi.org/saref4bldg#coverWidth - -s4bldg:coverWidth a owl:ObjectProperty ; - rdfs:comment "The length measured along the x-axis in the local coordinate system of the cover of the oil interceptor. Usually measured in millimeters (mm)."@en ; - rdfs:label "cover width"@en . -# -# https://saref.etsi.org/saref4bldg#effectiveCapacity - -s4bldg:effectiveCapacity a owl:ObjectProperty ; - rdfs:comment "The total effective or actual volumetric capacity of the tank. Usually measured in cubic metre (m3).B3"@en ; - rdfs:label "effective capacity"@en . -# -# https://saref.etsi.org/saref4bldg#electricGeneratorEfficiency - -s4bldg:electricGeneratorEfficiency a owl:ObjectProperty ; - rdfs:comment "The ratio of output capacity to intake capacity."@en ; - rdfs:label "electric generator efficiency"@en . -# -# https://saref.etsi.org/saref4bldg#electricMotorEfficiency - -s4bldg:electricMotorEfficiency a owl:ObjectProperty ; - rdfs:comment "The ratio of output capacity to intake capacity."@en ; - rdfs:label "electric motor efficiency"@en . -# -# https://saref.etsi.org/saref4bldg#externalSurfaceArea - -s4bldg:externalSurfaceArea a owl:ObjectProperty ; - rdfs:comment "External surface area (both primary and secondary area). Usually measured in square metre (m2)."@en ; - rdfs:label "external surface area"@en . -# -# https://saref.etsi.org/saref4bldg#faceArea - -s4bldg:faceArea a owl:ObjectProperty ; - rdfs:comment "Face area open to the airstream. Usually measured in square metre (m2)."@en ; - rdfs:label "face area"@en . -# -# https://saref.etsi.org/saref4bldg#finalResistance - -s4bldg:finalResistance a owl:ObjectProperty ; - rdfs:comment "Filter fluid resistance when replacement is required (i.e., Pressure drop at the maximum air flowrate across the filter when the filter needs replacement per ASHRAE Standard 52.1). Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "final resistance"@en . -# -# https://saref.etsi.org/saref4bldg#firstCurvatureRadius - -s4bldg:firstCurvatureRadius a owl:ObjectProperty ; - rdfs:comment "FirstCurvatureRadius should be defined as the base or left side radius of curvature value. Usually measured in millimeters (mm)."@en ; - rdfs:label "first curvature radius"@en . -# -# https://saref.etsi.org/saref4bldg#flowCoefficient - -s4bldg:flowCoefficient a owl:ObjectProperty ; - rdfs:comment "Flow coefficient (the quantity of fluid that passes through a fully open valve at unit pressure drop), typically expressed as the Kv or Cv value for the valve."@en ; - rdfs:label "flow coefficient"@en . -# -# https://saref.etsi.org/saref4bldg#flowResistanceMax - -s4bldg:flowResistanceMax a owl:ObjectProperty ; - rdfs:comment "Allowable range of frictional resistance against which the fluid is being pumped. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "flow resistance range"@en . -# -# https://saref.etsi.org/saref4bldg#flowResistanceMin - -s4bldg:flowResistanceMin a owl:ObjectProperty ; - rdfs:comment "Allowable range of frictional resistance against which the fluid is being pumped. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "flow resistance range"@en . -# -# https://saref.etsi.org/saref4bldg#fluidFlowRateMax - -s4bldg:fluidFlowRateMax a owl:ObjectProperty ; - rdfs:comment "Possible range of fluid flowrate that can be delivered. Usually measured in m3/s."@en ; - rdfs:label "fluid flow rate range"@en . -# -# https://saref.etsi.org/saref4bldg#fluidFlowRateMin - -s4bldg:fluidFlowRateMin a owl:ObjectProperty ; - rdfs:comment "Possible range of fluid flowrate that can be delivered. Usually measured in m3/s."@en ; - rdfs:label "fluid flow rate range"@en . -# -# https://saref.etsi.org/saref4bldg#foulingFactor - -s4bldg:foulingFactor a owl:ObjectProperty ; - rdfs:comment "Fouling factor of the tubes in the tube bundle. Usually measured in m2 Kelvin/Watt."@en ; - rdfs:label "fouling factor"@en . -# -# https://saref.etsi.org/saref4bldg#frameDepth - -s4bldg:frameDepth a owl:ObjectProperty ; - rdfs:comment "The length (or depth) of the damper frame. Usually measured in millimeters (mm)."@en ; - rdfs:label "frame depth"@en . -# -# https://saref.etsi.org/saref4bldg#frameThickness - -s4bldg:frameThickness a owl:ObjectProperty ; - rdfs:comment "The thickness of the damper frame material. Usually measured in millimeters (mm)."@en ; - rdfs:label "frame thickness"@en . -# -# https://saref.etsi.org/saref4bldg#hasSpace - -s4bldg:hasSpace a owl:ObjectProperty ; - owl:inverseOf s4bldg:isSpaceOf ; - a owl:TransitiveProperty ; - rdfs:comment "Relation between a building or a building space and the spaces it can be divided into."@en ; - rdfs:label "has space"@en . -# -# https://saref.etsi.org/saref4bldg#heatExchangeArea - -s4bldg:heatExchangeArea a owl:ObjectProperty ; - rdfs:comment "Heat exchange area. Usually measured in square metre (m2)."@en ; - rdfs:label "heat exchange area"@en . -# -# https://saref.etsi.org/saref4bldg#heatTransferSurfaceArea - -s4bldg:heatTransferSurfaceArea a owl:ObjectProperty ; - rdfs:comment "Total heat transfer area of the vessel. Usually measured in square metre (m2)."@en ; - rdfs:label "heat transfer surface area"@en . -# -# https://saref.etsi.org/saref4bldg#height - -s4bldg:height a owl:ObjectProperty ; - rdfs:comment "Height of the vibration isolator before tha application of load. Usually measured in millimeters (mm)."@en ; - rdfs:label "height"@en . -# -# https://saref.etsi.org/saref4bldg#horizontalSpacing - -s4bldg:horizontalSpacing a owl:ObjectProperty ; - rdfs:comment "Horizontal spacing between tubes in the tube bundle. Usually measured in millimeters (mm)."@en ; - rdfs:label "horizontal spacing"@en . -# -# https://saref.etsi.org/saref4bldg#hydraulicDiameter - -s4bldg:hydraulicDiameter a owl:ObjectProperty ; - rdfs:comment "Hydraulic diameter. Usually measured in millimeters (mm)."@en ; - rdfs:label "hydraulic diameter"@en . -# -# https://saref.etsi.org/saref4bldg#idealCapacity - -s4bldg:idealCapacity a owl:ObjectProperty ; - rdfs:comment "Compressor capacity under ideal conditions. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "ideal capacity"@en . -# -# https://saref.etsi.org/saref4bldg#idealShaftPower - -s4bldg:idealShaftPower a owl:ObjectProperty ; - rdfs:comment "Compressor shaft power under ideal conditions. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "ideal shaft power"@en . -# -# https://saref.etsi.org/saref4bldg#imaginaryImpedanceRatio - -s4bldg:imaginaryImpedanceRatio a owl:ObjectProperty ; - rdfs:comment "The ratio between the imaginary part of the zero sequence impedance and the imaginary part of the positive impedance (i.e. imaginary part of the short-circuit voltage) of the transformer. Used for three-phase transformer which includes a N-conductor."@en ; - rdfs:label "imaginary impedance ratio"@en . -# -# https://saref.etsi.org/saref4bldg#impellerDiameter - -s4bldg:impellerDiameter a owl:ObjectProperty ; - rdfs:comment "Diameter of compressor impeller - used to scale performance of geometrically similar compressors. Usually measured in millimeters (mm)."@en ; - rdfs:label "impeller diameter"@en . -# -# https://saref.etsi.org/saref4bldg#inLineRowSpacing - -s4bldg:inLineRowSpacing a owl:ObjectProperty ; - rdfs:comment "In-line tube row spacing. Usually measured in millimeters (mm)."@en ; - rdfs:label "in line row spacing"@en . -# -# https://saref.etsi.org/saref4bldg#initialResistance - -s4bldg:initialResistance a owl:ObjectProperty ; - rdfs:comment "Initial new filter fluid resistance (i.e., pressure drop at the maximum air flowrate across the filter when the filter is new per ASHRAE Standard 52.1). Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "initial resistance"@en . -# -# https://saref.etsi.org/saref4bldg#inletConnectionSize - -s4bldg:inletConnectionSize a owl:ObjectProperty ; - rdfs:comment "Size of the inlet connection. Usually measured in millimeters (mm)."@en ; - rdfs:label "inlet connection size"@en . -# -# https://saref.etsi.org/saref4bldg#insideDiameter - -s4bldg:insideDiameter a owl:ObjectProperty ; - rdfs:comment "Actual inner diameter of the tube in the tube bundle. Usually measured in millimeters (mm)."@en ; - rdfs:label "inside diameter"@en . -# -# https://saref.etsi.org/saref4bldg#internalRefrigerantVolume - -s4bldg:internalRefrigerantVolume a owl:ObjectProperty ; - rdfs:comment "Internal volume of evaporator (refrigerant side). Usually measured in cubic metre (m3)."@en ; - rdfs:label "internal refrigerant volume"@en . -# -# https://saref.etsi.org/saref4bldg#internalSurfaceArea - -s4bldg:internalSurfaceArea a owl:ObjectProperty ; - rdfs:comment "Internal surface area. Usually measured in square metre (m2)."@en ; - rdfs:label "internal surface area"@en . -# -# https://saref.etsi.org/saref4bldg#internalWaterVolume - -s4bldg:internalWaterVolume a owl:ObjectProperty ; - rdfs:comment "Internal volume of evaporator (water side). Usually measured in cubic metre (m3)."@en ; - rdfs:label "internal water volume"@en . -# -# https://saref.etsi.org/saref4bldg#isContainedIn - -s4bldg:isContainedIn a owl:ObjectProperty , owl:TransitiveProperty ; - rdfs:comment "A relation between an object and the physical space in which it is located."@en ; - rdfs:label "is contained in"@en . -# -# https://saref.etsi.org/saref4bldg#isSpaceOf - -s4bldg:isSpaceOf a owl:ObjectProperty , owl:TransitiveProperty ; - rdfs:comment "Relation between a building space and the building or building space it belongs to."@en ; - rdfs:label "isSpaceOf"@en . -# -# https://saref.etsi.org/saref4bldg#isolatorCompressibility - -s4bldg:isolatorCompressibility a owl:ObjectProperty ; - rdfs:comment "The compressibility of the vibration isolator."@en ; - rdfs:label "isolator compressibility"@en . -# -# https://saref.etsi.org/saref4bldg#isolatorStaticDeflection - -s4bldg:isolatorStaticDeflection a owl:ObjectProperty ; - rdfs:comment "Static deflection of the vibration isolator. Usually measured in millimeters (mm)."@en ; - rdfs:label "isolator static deflection"@en . -# -# https://saref.etsi.org/saref4bldg#lampMaintenanceFactor - -s4bldg:lampMaintenanceFactor a owl:ObjectProperty ; - rdfs:comment "Non recoverable losses of luminous flux of a lamp due to lamp depreciation i.e. the decreasing of light output of a luminaire due to aging and dirt."@en ; - rdfs:label "lamp maintenance factor"@en . -# -# https://saref.etsi.org/saref4bldg#leakageFullyClosed - -s4bldg:leakageFullyClosed a owl:ObjectProperty ; - rdfs:comment "Leakage when fully closed. Usually measured in m3/s."@en ; - rdfs:label "leakage fully closed"@en . -# -# https://saref.etsi.org/saref4bldg#length - -s4bldg:length a owl:ObjectProperty ; - rdfs:comment "The finished length of the device. Usually measured in millimeters (mm)."@en ; - rdfs:label "length"@en . -# -# https://saref.etsi.org/saref4bldg#liftElevationDifference - -s4bldg:liftElevationDifference a owl:ObjectProperty ; - rdfs:comment "Elevation difference between cooling tower sump and the top of the tower. Usually measured in millimeters (mm)."@en ; - rdfs:label "lift elevation difference"@en . -# -# https://saref.etsi.org/saref4bldg#lightEmitterNominalPower - -s4bldg:lightEmitterNominalPower a owl:ObjectProperty ; - rdfs:comment "Light emitter nominal power. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "light emitter nominal power"@en . -# -# https://saref.etsi.org/saref4bldg#limitingTerminalSize - -s4bldg:limitingTerminalSize a owl:ObjectProperty ; - rdfs:comment "The maximum terminal size capacity of the device. Usually measured in square metre (m2)."@en ; - rdfs:label "limiting terminal size"@en . -# -# https://saref.etsi.org/saref4bldg#lockedRotorCurrent - -s4bldg:lockedRotorCurrent a owl:ObjectProperty ; - rdfs:comment "Input current when a motor armature is energized but not rotating. Usually measured in Ampere (A)."@en ; - rdfs:label "locked rotor current"@en . -# -# https://saref.etsi.org/saref4bldg#netPositiveSuctionHead - -s4bldg:netPositiveSuctionHead a owl:ObjectProperty ; - rdfs:comment "Minimum liquid pressure at the pump inlet to prevent cavitation. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "net positive suction head"@en . -# -# https://saref.etsi.org/saref4bldg#nominalAirFlowRate - -s4bldg:nominalAirFlowRate a owl:ObjectProperty ; - rdfs:comment "Nominal rate of air flow. Usually measured in m3/s."@en ; - rdfs:label "nominal air flow rate"@en . -# -# https://saref.etsi.org/saref4bldg#nominalBodyDepth - -s4bldg:nominalBodyDepth a owl:ObjectProperty ; - rdfs:comment "Nominal or quoted =length, measured along the z-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal body depth"@en . -# -# https://saref.etsi.org/saref4bldg#nominalBodyLength - -s4bldg:nominalBodyLength a owl:ObjectProperty ; - rdfs:comment "Nominal or quoted length, measured along the x-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal body length"@en . -# -# https://saref.etsi.org/saref4bldg#nominalBodyWidth - -s4bldg:nominalBodyWidth a owl:ObjectProperty ; - rdfs:comment "Nominal or quoted length, measured along the y-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal body width"@en . -# -# https://saref.etsi.org/saref4bldg#nominalCapacity - -s4bldg:nominalCapacity a owl:ObjectProperty ; - rdfs:comment "Nominal capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal capacity"@en . -# -# https://saref.etsi.org/saref4bldg#nominalCondensingTemperature - -s4bldg:nominalCondensingTemperature a owl:ObjectProperty ; - rdfs:comment "Chiller condensing temperature. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal condensing temperature"@en . -# -# https://saref.etsi.org/saref4bldg#nominalCoolingCapacity - -s4bldg:nominalCoolingCapacity a owl:ObjectProperty ; - rdfs:comment "Nominal cooling capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal cooling capacity"@en . -# -# https://saref.etsi.org/saref4bldg#nominalDepth - -s4bldg:nominalDepth a owl:ObjectProperty ; - rdfs:comment "The nominal depth of the tank. Note: Not required for a horizontal cylindrical tank. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal depth"@en . -# -# https://saref.etsi.org/saref4bldg#nominalDiameter - -s4bldg:nominalDiameter a owl:ObjectProperty ; - rdfs:comment "Nominal diameter or width of the tubes in the tube bundle. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal diameter"@en . -# -# https://saref.etsi.org/saref4bldg#nominalEfficiency - -s4bldg:nominalEfficiency a owl:ObjectProperty ; - rdfs:comment "Nominal chiller efficiency under nominal conditions. "@en ; - rdfs:label "nominal efficiency"@en . -# -# https://saref.etsi.org/saref4bldg#nominalEnergyConsumption - -s4bldg:nominalEnergyConsumption a owl:ObjectProperty ; - rdfs:comment "Nominal fuel consumption rate required to produce the total boiler heat output. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal energy consumption"@en . -# -# https://saref.etsi.org/saref4bldg#nominalEvaporatingTemmperature - -s4bldg:nominalEvaporatingTemmperature a owl:ObjectProperty ; - rdfs:comment "Chiller evaporating temperature.Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal evaporating temmperature"@en . -# -# https://saref.etsi.org/saref4bldg#nominalFilterFaceVelocity - -s4bldg:nominalFilterFaceVelocity a owl:ObjectProperty ; - rdfs:comment "Filter face velocity. Usually measured in m/s."@en ; - rdfs:label "nominal filter face velocity"@en . -# -# https://saref.etsi.org/saref4bldg#nominalFlowRate - -s4bldg:nominalFlowRate a owl:ObjectProperty ; - rdfs:comment "Nominal fluid flow rate through the filter. Usually measured in m3/s."@en ; - rdfs:label "nominal flow rate"@en . -# -# https://saref.etsi.org/saref4bldg#nominalFrequency - -s4bldg:nominalFrequency a owl:ObjectProperty ; - rdfs:comment "The nominal frequency of the supply. Usually measured in cycles/s or Hertz (Hz)."@en ; - rdfs:label "nominal frequency"@en . -# -# https://saref.etsi.org/saref4bldg#nominalHeatRejectionRate - -s4bldg:nominalHeatRejectionRate a owl:ObjectProperty ; - rdfs:comment "Sum of the refrigeration effect and the heat equivalent of the power input to the compressor. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal heat rejection rate"@en . -# -# https://saref.etsi.org/saref4bldg#nominalHeatTransferArea - -s4bldg:nominalHeatTransferArea a owl:ObjectProperty ; - rdfs:comment "Nominal heat transfer surface area associated with nominal overall heat transfer coefficient. Usually measured in square metre (m2)."@en ; - rdfs:label "nominal heat transfer area"@en . -# -# https://saref.etsi.org/saref4bldg#nominalHeatTransferCoefficient - -s4bldg:nominalHeatTransferCoefficient a owl:ObjectProperty ; - rdfs:comment "Nominal overall heat transfer coefficient associated with nominal heat transfer area. Usually measured in Watts/m2 Kelvin."@en ; - rdfs:label "nominal heat transfer coefficient"@en . -# -# https://saref.etsi.org/saref4bldg#nominalHeatingCapacity - -s4bldg:nominalHeatingCapacity a owl:ObjectProperty ; - rdfs:comment "Nominal heating capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal heating capacity"@en . -# -# https://saref.etsi.org/saref4bldg#nominalLatentCapacity - -s4bldg:nominalLatentCapacity a owl:ObjectProperty ; - rdfs:comment "Nominal latent capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal latent capacity"@en . -# -# https://saref.etsi.org/saref4bldg#nominalLengthOrDiameter - -s4bldg:nominalLengthOrDiameter a owl:ObjectProperty ; - rdfs:comment "The nominal length or, in the case of a vertical cylindrical tank, the nominal diameter of the tank. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal length or diameter"@en . -# -# https://saref.etsi.org/saref4bldg#nominalMediaSurfaceVelocity - -s4bldg:nominalMediaSurfaceVelocity a owl:ObjectProperty ; - rdfs:comment "Average fluid velocity at the media surface. Usually measured in m/s."@en ; - rdfs:label "nominal media surface velocity"@en . -# -# https://saref.etsi.org/saref4bldg#nominalMoistureGain - -s4bldg:nominalMoistureGain a owl:ObjectProperty ; - rdfs:comment "Nominal rate of water vapor added into the airstream. Usually measured in kg/s."@en ; - rdfs:label "nominal moisture gain"@en . -# -# https://saref.etsi.org/saref4bldg#nominalPartLoadRatio - -s4bldg:nominalPartLoadRatio a owl:ObjectProperty ; - rdfs:comment "Allowable part load ratio range."@en ; - rdfs:label "nominal part load ratio"@en . -# -# https://saref.etsi.org/saref4bldg#nominalParticleGeometricMeanDiameter - -s4bldg:nominalParticleGeometricMeanDiameter a owl:ObjectProperty ; - rdfs:comment "Particle geometric mean diameter associated with nominal efficiency. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal particle geometric mean diameter"@en . -# -# https://saref.etsi.org/saref4bldg#nominalParticleGeometricStandardDeviation - -s4bldg:nominalParticleGeometricStandardDeviation a owl:ObjectProperty ; - rdfs:comment "Particle geometric standard deviation associated with nominal efficiency. "@en ; - rdfs:label "nominal particle geometric standard deviation"@en . -# -# https://saref.etsi.org/saref4bldg#nominalPowerConsumption - -s4bldg:nominalPowerConsumption a owl:ObjectProperty ; - rdfs:comment "Nominal total power consumption. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal power consumption"@en . -# -# https://saref.etsi.org/saref4bldg#nominalPowerRate - -s4bldg:nominalPowerRate a owl:ObjectProperty ; - rdfs:comment "Nominal fan power rate.Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal power rate"@en . -# -# https://saref.etsi.org/saref4bldg#nominalPressureDrop - -s4bldg:nominalPressureDrop a owl:ObjectProperty ; - rdfs:comment "Total pressure drop across the filter. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "nominal pressure drop"@en . -# -# https://saref.etsi.org/saref4bldg#nominalReturnWaterTemperatureCooling - -s4bldg:nominalReturnWaterTemperatureCooling a owl:ObjectProperty ; - rdfs:comment "Nominal return water temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal return water temperature cooling"@en . -# -# https://saref.etsi.org/saref4bldg#nominalReturnWaterTemperatureHeating - -s4bldg:nominalReturnWaterTemperatureHeating a owl:ObjectProperty ; - rdfs:comment "Nominal return water temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal return water temperature heating"@en . -# -# https://saref.etsi.org/saref4bldg#nominalRotationSpeed - -s4bldg:nominalRotationSpeed a owl:ObjectProperty ; - rdfs:comment "Nominal fan wheel speed. Usually measured in cycles/s."@en ; - rdfs:label "nominal rotation speed"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSensibleCapacity - -s4bldg:nominalSensibleCapacity a owl:ObjectProperty ; - rdfs:comment "Nominal sensible capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal sensible capacity"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSorroundingHumidityCooling - -s4bldg:nominalSorroundingHumidityCooling a owl:ObjectProperty ; - rdfs:comment "Nominal surrounding humidity (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal sorrounding humidity cooling"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSorroundingTemperatureCooling - -s4bldg:nominalSorroundingTemperatureCooling a owl:ObjectProperty ; - rdfs:comment "Nominal surrounding temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal sorrounding temperature cooling"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSorroundingTemperatureHeating - -s4bldg:nominalSorroundingTemperatureHeating a owl:ObjectProperty ; - rdfs:comment "Nominal surrounding temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal sorrounding temperature heating"@en . -# -# https://saref.etsi.org/saref4bldg#nominalStaticPressure - -s4bldg:nominalStaticPressure a owl:ObjectProperty ; - rdfs:comment "The static pressure within the air stream that the fan must overcome to insure designed circulation of air. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "nominal static pressure"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSupplyVoltage - -s4bldg:nominalSupplyVoltage a owl:ObjectProperty ; - rdfs:comment "The nominal voltage of the supply. Usually measured in Volts (V, W/A)."@en ; - rdfs:label "nominal supply voltage"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSupplyVoltageMax - -s4bldg:nominalSupplyVoltageMax a owl:ObjectProperty ; - rdfs:comment "The maximum and minimum allowed voltage of the supply e.g. boundaries of 380V/440V may be applied for a nominal voltage of 400V."@en ; - rdfs:label "nominal supply voltage offset"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSupplyVoltageMin - -s4bldg:nominalSupplyVoltageMin a owl:ObjectProperty ; - rdfs:comment "The maximum and minimum allowed voltage of the supply e.g. boundaries of 380V/440V may be applied for a nominal voltage of 400V."@en ; - rdfs:label "nominal supply voltage offset"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSupplyWaterTemperatureCooling - -s4bldg:nominalSupplyWaterTemperatureCooling a owl:ObjectProperty ; - rdfs:comment "Nominal supply water temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal supply water temperature cooling"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSupplyWaterTemperatureHeating - -s4bldg:nominalSupplyWaterTemperatureHeating a owl:ObjectProperty ; - rdfs:comment "Nominal supply water temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal supply water temperature heating"@en . -# -# https://saref.etsi.org/saref4bldg#nominalTotalPressure - -s4bldg:nominalTotalPressure a owl:ObjectProperty ; - rdfs:comment "Nominal total pressure rise across the fan. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "nominal total pressure"@en . -# -# https://saref.etsi.org/saref4bldg#nominalUa - -s4bldg:nominalUa a owl:ObjectProperty ; - rdfs:comment "Nominal UA value."@en ; - rdfs:label "nominal ua"@en . -# -# https://saref.etsi.org/saref4bldg#nominalVolumetricCapacity - -s4bldg:nominalVolumetricCapacity a owl:ObjectProperty ; - rdfs:comment "The total nominal or design volumetric capacity of the tank. Usually measured in cubic metre (m3)."@en ; - rdfs:label "nominal volumetric capacity"@en . -# -# https://saref.etsi.org/saref4bldg#nominalWaterFlowCooling - -s4bldg:nominalWaterFlowCooling a owl:ObjectProperty ; - rdfs:comment "Nominal water flow (refers to nominal cooling capacity). Usually measured in m3/s."@en ; - rdfs:label "nominal water flow cooling"@en . -# -# https://saref.etsi.org/saref4bldg#nominalWaterFlowHeating - -s4bldg:nominalWaterFlowHeating a owl:ObjectProperty ; - rdfs:comment "Nominal water flow (refers to nominal heating capacity). Usually measured in m3/s."@en ; - rdfs:label "nominal water flow heating"@en . -# -# https://saref.etsi.org/saref4bldg#nominalWidthOrDiameter - -s4bldg:nominalWidthOrDiameter a owl:ObjectProperty ; - rdfs:comment "The nominal width or, in the case of a horizontal cylindrical tank, the nominal diameter of the tank. Note: Not required for a vertical cylindrical tank. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal width or diameter"@en . -# -# https://saref.etsi.org/saref4bldg#nomminalRotationSpeed - -s4bldg:nomminalRotationSpeed a owl:ObjectProperty ; - rdfs:comment "Pump rotational speed under nominal conditions. Usually measured in cycles/s."@en ; - rdfs:label "nomminal rotation speed"@en . -# -# https://saref.etsi.org/saref4bldg#openPressureDrop - -s4bldg:openPressureDrop a owl:ObjectProperty ; - rdfs:comment "Total pressure drop across damper. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "open pressure drop"@en . -# -# https://saref.etsi.org/saref4bldg#operatingWeight - -s4bldg:operatingWeight a owl:ObjectProperty ; - rdfs:comment "Operating weight of the tank including all of its contents. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "operating weight"@en . -# -# https://saref.etsi.org/saref4bldg#operationTemperatureMax - -s4bldg:operationTemperatureMax a owl:ObjectProperty ; - rdfs:comment "Allowable operation ambient (air, fluid) temperature range. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "operation temperature range"@en . -# -# https://saref.etsi.org/saref4bldg#operationTemperatureMin - -s4bldg:operationTemperatureMin a owl:ObjectProperty ; - rdfs:comment "Allowable operation ambient (air, fluid) temperature range. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "operation temperature range"@en . -# -# https://saref.etsi.org/saref4bldg#operationalRiterial - -s4bldg:operationalRiterial a owl:ObjectProperty ; - rdfs:comment "Time of operation at maximum operational ambient air temperature. Measured in seconds (s) or days (d) or other units of time."@en ; - rdfs:label "operational riterial"@en . -# -# https://saref.etsi.org/saref4bldg#outletConnectionSize - -s4bldg:outletConnectionSize a owl:ObjectProperty ; - rdfs:comment "Size of the outlet connection. Usually measured in millimeters (mm)."@en ; - rdfs:label "outlet connection size"@en . -# -# https://saref.etsi.org/saref4bldg#outletTemperatureMax - -s4bldg:outletTemperatureMax a owl:ObjectProperty ; - rdfs:comment "Allowable outlet temperature of either the water or the steam. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "outlet temperature range"@en . -# -# https://saref.etsi.org/saref4bldg#outletTemperatureMin - -s4bldg:outletTemperatureMin a owl:ObjectProperty ; - rdfs:comment "Allowable outlet temperature of either the water or the steam. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "outlet temperature range"@en . -# -# https://saref.etsi.org/saref4bldg#outputCapacity - -s4bldg:outputCapacity a owl:ObjectProperty ; - rdfs:comment "Total nominal heat output as listed by the manufacturer. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "output capacity"@en . -# -# https://saref.etsi.org/saref4bldg#outsideDiameter - -s4bldg:outsideDiameter a owl:ObjectProperty ; - rdfs:comment "Actual outside diameter of the tube in the tube bundle. Usually measured in millimeters (mm)."@en ; - rdfs:label "outside diameter"@en . -# -# https://saref.etsi.org/saref4bldg#partLoadRatioMax - -s4bldg:partLoadRatioMax a owl:ObjectProperty ; - rdfs:comment "Maximum part load ratio as a fraction of nominal capacity."@en ; - rdfs:label "maximum part load ratio"@en . -# -# https://saref.etsi.org/saref4bldg#partLoadRatioMin - -s4bldg:partLoadRatioMin a owl:ObjectProperty ; - rdfs:comment "Minimum part load ratio as a fraction of nominal capacity."@en ; - rdfs:label "minimum part load ratio"@en . -# -# https://saref.etsi.org/saref4bldg#powerOutputMax - -s4bldg:powerOutputMax a owl:ObjectProperty ; - rdfs:comment "The maximum output power rating of the engine. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "maximum power output"@en . -# -# https://saref.etsi.org/saref4bldg#pressureRating - -s4bldg:pressureRating a owl:ObjectProperty ; - rdfs:comment "Nominal pressure rating of the boiler as rated by the agency having jurisdiction. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "pressure rating"@en . -# -# https://saref.etsi.org/saref4bldg#primaryAirFlowRateMax - -s4bldg:primaryAirFlowRateMax a owl:ObjectProperty ; - rdfs:comment "Maximum primary airflow that can be delivered. Usually measured in m3/s."@en ; - rdfs:label "primary air flow rate range"@en . -# -# https://saref.etsi.org/saref4bldg#primaryAirFlowRateMin - -s4bldg:primaryAirFlowRateMin a owl:ObjectProperty ; - rdfs:comment "Minimum primary airflow that can be delivered. Usually measured in m3/s."@en ; - rdfs:label "primary air flow rate range"@en . -# -# https://saref.etsi.org/saref4bldg#primaryApparentPower - -s4bldg:primaryApparentPower a owl:ObjectProperty ; - rdfs:comment "The power in VA (volt ampere) that has been transformed and that runs into the transformer on the primary side. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "primary apparent power"@en . -# -# https://saref.etsi.org/saref4bldg#primaryCurrent - -s4bldg:primaryCurrent a owl:ObjectProperty ; - rdfs:comment "The current that is going to be transformed and that runs into the transformer on the primary side. Usually measured in Ampere (A)."@en ; - rdfs:label "primary current"@en . -# -# https://saref.etsi.org/saref4bldg#primaryFrequency - -s4bldg:primaryFrequency a owl:ObjectProperty ; - rdfs:comment "The frequency that is going to be transformed and that runs into the transformer on the primary side. Usually measured in cycles/s or Hertz (Hz)."@en ; - rdfs:label "primary frequency"@en . -# -# https://saref.etsi.org/saref4bldg#primaryVoltage - -s4bldg:primaryVoltage a owl:ObjectProperty ; - rdfs:comment "The voltage that is going to be transformed and that runs into the transformer on the primary side. Usually measured in Volts (V, W/A)."@en ; - rdfs:label "primary voltage"@en . -# -# https://saref.etsi.org/saref4bldg#pumpFlowRateMax - -s4bldg:pumpFlowRateMax a owl:ObjectProperty ; - rdfs:comment "Allowable range of volume of fluid being pumped against the resistance specified. Usually measured in kg/s."@en ; - rdfs:label "pump flow rate range"@en . -# -# https://saref.etsi.org/saref4bldg#pumpFlowRateMin - -s4bldg:pumpFlowRateMin a owl:ObjectProperty ; - rdfs:comment "Allowable range of volume of fluid being pumped against the resistance specified. Usually measured in kg/s."@en ; - rdfs:label "pump flow rate range"@en . -# -# https://saref.etsi.org/saref4bldg#realImpedanceRatio - -s4bldg:realImpedanceRatio a owl:ObjectProperty ; - rdfs:comment "The ratio between the real part of the zero sequence impedance and the real part of the positive impedance (i.e. real part of the short-circuit voltage) of the transformer. Used for three-phase transformer which includes a N-conductor."@en ; - rdfs:label "real impedance ratio"@en . -# -# https://saref.etsi.org/saref4bldg#secondCurvatureRadius - -s4bldg:secondCurvatureRadius a owl:ObjectProperty ; - rdfs:comment "SecondCurvatureRadius should be defined as the top or right side radius of curvature value. Usually measured in millimeters (mm)."@en ; - rdfs:label "second curvature radius"@en . -# -# https://saref.etsi.org/saref4bldg#secondaryAirFlowRateMax - -s4bldg:secondaryAirFlowRateMax a owl:ObjectProperty ; - rdfs:comment "Maximum secondary airflow that can be delivered. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "secondary air flow rate range"@en . -# -# https://saref.etsi.org/saref4bldg#secondaryAirFlowRateMin - -s4bldg:secondaryAirFlowRateMin a owl:ObjectProperty ; - rdfs:comment "Maximum secondary airflow that can be delivered. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "secondary air flow rate range"@en . -# -# https://saref.etsi.org/saref4bldg#secondaryApparentPower - -s4bldg:secondaryApparentPower a owl:ObjectProperty ; - rdfs:comment "The power in VA (volt ampere) that has been transformed and is running out of the transformer on the secondary side. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "secondary apparent power"@en . -# -# https://saref.etsi.org/saref4bldg#secondaryCurrent - -s4bldg:secondaryCurrent a owl:ObjectProperty ; - rdfs:comment "The current that has been transformed and is running out of the transformer on the secondary side. Usually measured in Ampere (A)."@en ; - rdfs:label "secondary current"@en . -# -# https://saref.etsi.org/saref4bldg#secondaryFrequency - -s4bldg:secondaryFrequency a owl:ObjectProperty ; - rdfs:comment "The frequency that has been transformed and is running out of the transformer on the secondary side. Usually measured in cycles/s or Hertz (Hz)."@en ; - rdfs:label "secondary frequency"@en . -# -# https://saref.etsi.org/saref4bldg#secondaryVoltage - -s4bldg:secondaryVoltage a owl:ObjectProperty ; - rdfs:comment "The voltage that has been transformed and is running out of the transformer on the secondary side. Usually measured in Volts (V, W/A)."@en ; - rdfs:label "secondary voltage"@en . -# -# https://saref.etsi.org/saref4bldg#shortCircuitVoltage - -s4bldg:shortCircuitVoltage a owl:ObjectProperty ; - rdfs:comment "A complex number that specifies the real and imaginary parts of the short-circuit voltage at rated current of a transformer given in %."@en ; - rdfs:label "short circuit voltage"@en . -# -# https://saref.etsi.org/saref4bldg#size - -s4bldg:size a owl:ObjectProperty ; - rdfs:comment "The size of the connection to the valve (or to each connection for faucets, mixing valves, etc.). Usually measured in millimeters (mm)."@en ; - rdfs:label "size"@en . -# -# https://saref.etsi.org/saref4bldg#solarReflectance - -s4bldg:solarReflectance a owl:ObjectProperty ; - rdfs:comment "(Rsol): The ratio of incident solar radiation that is reflected by a shading system (also named _e). Note the following equation Asol + Rsol + Tsol = 1"@en ; - rdfs:label "solar reflectance"@en . -# -# https://saref.etsi.org/saref4bldg#solarTransmittance - -s4bldg:solarTransmittance a owl:ObjectProperty ; - rdfs:comment "(Tsol) The ratio of incident solar radiation that directly passes through a shading system (also named _e). Note the following equation Asol + Rsol + Tsol = 1"@en ; - rdfs:label "solar transmittance"@en . -# -# https://saref.etsi.org/saref4bldg#spectrumMax - -s4bldg:spectrumMax a owl:ObjectProperty ; - rdfs:comment "The spectrum of radiation describes its composition with regard to wavelength. Light, for example, as the portion of electromagnetic radiation that is visible to the human eye, is radiation with wavelengths in the range of approx. 380 to 780 nm (1 nm = 10 m). The corresponding range of colours varies from violet to indigo, blue, green, yellow, orange, and red. These colours form a continuous spectrum, in which the various spectral sectors merge into each other."@en ; - rdfs:label "maximum spectrum"@en . -# -# https://saref.etsi.org/saref4bldg#spectrumMin - -s4bldg:spectrumMin a owl:ObjectProperty ; - rdfs:comment "The spectrum of radiation describes its composition with regard to wavelength. Light, for example, as the portion of electromagnetic radiation that is visible to the human eye, is radiation with wavelengths in the range of approx. 380 to 780 nm (1 nm = 10 m). The corresponding range of colours varies from violet to indigo, blue, green, yellow, orange, and red. These colours form a continuous spectrum, in which the various spectral sectors merge into each other."@en ; - rdfs:label "minimum spectrum"@en . -# -# https://saref.etsi.org/saref4bldg#staggeredRowSpacing - -s4bldg:staggeredRowSpacing a owl:ObjectProperty ; - rdfs:comment "Staggered tube row spacing. Usually measured in millimeters (mm)."@en ; - rdfs:label "staggered row spacing"@en . -# -# https://saref.etsi.org/saref4bldg#startCurrentFactor - -s4bldg:startCurrentFactor a owl:ObjectProperty ; - rdfs:comment "IEC. Start current factor defines how large the peek starting current will become on the engine. StartCurrentFactor is multiplied to NominalCurrent and we get the start current."@en ; - rdfs:label "start current factor"@en . -# -# https://saref.etsi.org/saref4bldg#startingTime - -s4bldg:startingTime a owl:ObjectProperty ; - rdfs:comment "The time (in s) needed for the motor to reach its rated speed with its driven equipment attached, starting from standstill and at the nominal voltage applied at its terminals."@en ; - rdfs:label "starting time"@en . -# -# https://saref.etsi.org/saref4bldg#supportedWeightMax - -s4bldg:supportedWeightMax a owl:ObjectProperty ; - rdfs:comment "The maximum weight that can be carried by the vibration isolator. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "maximum supported weight"@en . -# -# https://saref.etsi.org/saref4bldg#teTime - -s4bldg:teTime a owl:ObjectProperty ; - rdfs:comment "The maximum time (in s) at which the motor could run with locked rotor when the motor is used in an EX-environment. The time indicates that a protective device should trip before this time when the starting current of the motor is slowing through the device."@en ; - rdfs:label "te time"@en . -# -# https://saref.etsi.org/saref4bldg#temperatureRating - -s4bldg:temperatureRating a owl:ObjectProperty ; - rdfs:comment "Temperature rating. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "temperature rating"@en . -# -# https://saref.etsi.org/saref4bldg#testPressure - -s4bldg:testPressure a owl:ObjectProperty ; - rdfs:comment "The maximum pressure to which the valve has been subjected under test. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "test pressure"@en . -# -# https://saref.etsi.org/saref4bldg#thermalConductivity - -s4bldg:thermalConductivity a owl:ObjectProperty ; - rdfs:comment "Fouling factor of the tubes in the tube bundle. Usually measured in m2 Kelvin/Watt."@en ; - rdfs:label "thermal conductivity"@en . -# -# https://saref.etsi.org/saref4bldg#thermalEfficiency - -s4bldg:thermalEfficiency a owl:ObjectProperty ; - rdfs:comment "Overall Thermal Efficiency is defined as gross energy output of the heat transfer device divided by the energy input."@en ; - rdfs:label "thermal efficiency"@en . -# -# https://saref.etsi.org/saref4bldg#thermalMassHeatCapacity - -s4bldg:thermalMassHeatCapacity a owl:ObjectProperty ; - rdfs:comment "Product of component mass and specific heat."@en ; - rdfs:label "thermal mass heat capacity"@en . -# -# https://saref.etsi.org/saref4bldg#thermalTransmittance - -s4bldg:thermalTransmittance a owl:ObjectProperty ; - rdfs:comment "Rate at which energy is transmitted through a body. Usually measured in Watts/m2 Kelvin."@en ; - rdfs:label "thermal transmittance"@en . -# -# https://saref.etsi.org/saref4bldg#ventilatingPipeSize - -s4bldg:ventilatingPipeSize a owl:ObjectProperty ; - rdfs:comment "Size of the ventilating pipe(s). Usually measured in millimeters (mm)."@en ; - rdfs:label "ventilating pipe size"@en . -# -# https://saref.etsi.org/saref4bldg#verticalSpacing - -s4bldg:verticalSpacing a owl:ObjectProperty ; - rdfs:comment "Vertical spacing between tubes in the tube bundle.Usually measured in millimeters (mm)."@en ; - rdfs:label "vertical spacing"@en . -# -# https://saref.etsi.org/saref4bldg#vibrationTransmissibility - -s4bldg:vibrationTransmissibility a owl:ObjectProperty ; - rdfs:comment "The vibration transmissibility percentage."@en ; - rdfs:label "vibration transmissibility"@en . -# -# https://saref.etsi.org/saref4bldg#visibleLightReflectance - -s4bldg:visibleLightReflectance a owl:ObjectProperty ; - rdfs:comment "Fraction of the visible light that is reflected by the glazing at normal incidence. It is a value without unit."@en ; - rdfs:label "visible light reflectance"@en . -# -# https://saref.etsi.org/saref4bldg#visibleLightTransmittance - -s4bldg:visibleLightTransmittance a owl:ObjectProperty ; - rdfs:comment "Fraction of the visible light that passes the shading system at normal incidence. It is a value without unit."@en ; - rdfs:label "visible light transmittance"@en . -# -# https://saref.etsi.org/saref4bldg#volumen - -s4bldg:volumen a owl:ObjectProperty ; - rdfs:comment "Total volume of fluid in the tubes and their headers. Usually measured in cubic metre (m3)."@en ; - rdfs:label "volumen"@en . -# -# https://saref.etsi.org/saref4bldg#waterInletTemperatureMax - -s4bldg:waterInletTemperatureMax a owl:ObjectProperty ; - rdfs:comment "Allowable water inlet temperature range. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "water inlet temperature range"@en . -# -# https://saref.etsi.org/saref4bldg#waterInletTemperatureMin - -s4bldg:waterInletTemperatureMin a owl:ObjectProperty ; - rdfs:comment "Allowable water inlet temperature range. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "water inlet temperature range"@en . -# -# https://saref.etsi.org/saref4bldg#waterPressureMax - -s4bldg:waterPressureMax a owl:ObjectProperty ; - rdfs:comment "Allowable water circuit working pressure range. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "water pressure range"@en . -# -# https://saref.etsi.org/saref4bldg#waterPressureMin - -s4bldg:waterPressureMin a owl:ObjectProperty ; - rdfs:comment "Allowable water circuit working pressure range. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "water pressure range"@en . -# -# https://saref.etsi.org/saref4bldg#waterRequirement - -s4bldg:waterRequirement a owl:ObjectProperty ; - rdfs:comment "Make-up water requirement. Usually measured in m3/s."@en ; - rdfs:label "water requirement"@en . -# -# https://saref.etsi.org/saref4bldg#waterStorageCapacity - -s4bldg:waterStorageCapacity a owl:ObjectProperty ; - rdfs:comment "Water storage capacity. Usually measured in cubic metre (m3)."@en ; - rdfs:label "water storage capacity"@en . -# -# https://saref.etsi.org/saref4bldg#weight - -s4bldg:weight a owl:ObjectProperty ; - rdfs:comment "The weight of the device. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "weight"@en . -# -# https://saref.etsi.org/saref4bldg#workingPressure - -s4bldg:workingPressure a owl:ObjectProperty ; - rdfs:comment "The normally expected maximum working pressure of the valve. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "working pressure"@en . -# -# https://saref.etsi.org/saref4bldg#workingPressureMax - -s4bldg:workingPressureMax a owl:ObjectProperty ; - rdfs:comment "Maximum working pressure. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "maximum working pressure"@en . -# -# https://saref.etsi.org/saref4bldg#workingPressureMin - -s4bldg:workingPressureMin a owl:ObjectProperty ; - rdfs:comment "Allowable minimum working pressure (relative to ambient pressure). Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "minimum working pressure"@en . -# -# https://w3id.org/saref#isMeasuredIn - -saref:isMeasuredIn a owl:ObjectProperty ; - rdfs:comment "A relation between a measurement and the unit of measure in which the measurement value is expressed."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "is measured in"@en . -# -# https://w3id.org/saref#relatesToProperty - -saref:relatesToProperty a owl:ObjectProperty ; - rdfs:comment "A relation between a measurement and the property such measurement is about."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "relates to property"@en . -# -# -# -# ################################################################# -# # -# # Data properties -# # -# ################################################################# -# -# -# https://saref.etsi.org/saref4bldg#accessType - -s4bldg:accessType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Defines the types of access (or cover) to a tank that may be specified. Note that covers are generally specified for rectangular tanks. For cylindrical tanks, access will normally be via a manhole."@en ; - rdfs:label "access type"@en . -# -# https://saref.etsi.org/saref4bldg#application - -s4bldg:application a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Humidifier application. Fixed: Humidifier installed in a ducted flow distribution system. Portable: Humidifier is not installed in a ducted flow distribution system."@en ; - rdfs:label "application"@en . -# -# https://saref.etsi.org/saref4bldg#arrangement - -s4bldg:arrangement a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Defines the basic flow arrangements for the heat exchanger: COUNTERFLOW: Counterflow heat exchanger arrangement. CROSSFLOW: Crossflow heat exchanger arrangement. PARALLELFLOW: Parallel flow heat exchanger arrangement. MULTIPASS: Multipass flow heat exchanger arrangement. OTHER: Other type of heat exchanger flow arrangement not defined above."@en ; - rdfs:label "arrangement"@en . -# -# https://saref.etsi.org/saref4bldg#bladeAction - -s4bldg:bladeAction a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Blade action."@en ; - rdfs:label "blade action"@en . -# -# https://saref.etsi.org/saref4bldg#bladeEdge - -s4bldg:bladeEdge a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Blade edge."@en ; - rdfs:label "blade edge"@en . -# -# https://saref.etsi.org/saref4bldg#bladeShape - -s4bldg:bladeShape a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Blade shape. Flat means triple V-groove."@en ; - rdfs:label "blade shape"@en . -# -# https://saref.etsi.org/saref4bldg#capacityControl - -s4bldg:capacityControl a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "FanCycling: Fan is cycled on and off to control duty. TwoSpeedFan: Fan is switched between low and high speed to control duty. VariableSpeedFan: Fan speed is varied to control duty. DampersControl: Dampers modulate the air flow to control duty. BypassValveControl: Bypass valve modulates the water flow to control duty. MultipleSeriesPumps: Turn on/off multiple series pump to control duty. TwoSpeedPump: Switch between high/low pump speed to control duty. VariableSpeedPump: vary pump speed to control duty."@en ; - rdfs:label "capacity control"@en . -# -# https://saref.etsi.org/saref4bldg#capacityControlType - -s4bldg:capacityControlType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "InletVane: Control by adjusting inlet vane. VariableSpeedDrive: Control by variable speed drive. BladePitchAngle: Control by adjusting blade pitch angle. TwoSpeed: Control by switch between high and low speed. DischargeDamper: Control by modulating discharge damper."@en ; - rdfs:label "capacity control type"@en . -# -# https://saref.etsi.org/saref4bldg#capacityPeople - -s4bldg:capacityPeople a owl:DatatypeProperty ; - rdfs:range xsd:nonNegativeInteger ; - rdfs:comment "Capacity of the transportation element measured in numbers of person."@en ; - rdfs:label "capacity people"@en . -# -# https://saref.etsi.org/saref4bldg#circuitType - -s4bldg:circuitType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "OpenCircuit: Exposes water directly to the cooling atmosphere. CloseCircuit: The fluid is separated from the atmosphere by a heat exchanger. Wet: The air stream or the heat exchange surface is evaporatively cooled. Dry: No evaporation into the air stream. DryWet: A combination of a dry tower and a wet tower."@en ; - rdfs:label "circuit type"@en . -# -# https://saref.etsi.org/saref4bldg#colorAppearance - -s4bldg:colorAppearance a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "In both the DIN and CIE standards, artificial light sources are classified in terms of their color appearance. To the human eye they all appear to be white the difference can only be detected by direct comparison. Visual performance is not directly affected by differences in color appearance."@en ; - rdfs:label "color appearance"@en . -# -# https://saref.etsi.org/saref4bldg#colorRenderingIndex - -s4bldg:colorRenderingIndex a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "The CRI indicates how well a light source renders eight standard colors compared to perfect reference lamp with the same color temperature. The CRI scale ranges from 1 to 100, with 100 representing perfect rendering properties."@en ; - rdfs:label "color rendering index"@en . -# -# https://saref.etsi.org/saref4bldg#controlStrategy - -s4bldg:controlStrategy a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "FixedExitingWaterTemp: The capacity is controlled to maintain a fixed exiting water temperature. WetBulbTempReset: The set-point is reset based on the wet-bulb temperature."@en ; - rdfs:label "control strategy"@en . -# -# https://saref.etsi.org/saref4bldg#endShapeType - -s4bldg:endShapeType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Defines the types of end shapes that can be used for preformed tanks. The convention for reading these enumerated values is that for a vertical cylinder, the first value is the base and the second is the top for a horizontal cylinder, the order of reading should be left to right. For a speherical tank, the value UNSET should be used.B5"@en ; - rdfs:label "end shape type"@en . -# -# https://saref.etsi.org/saref4bldg#energySource - -s4bldg:energySource a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Enumeration defining the energy source or fuel cumbusted to generate heat."@en , "The source of energy."@en ; - rdfs:label "energy source"@en . -# -# https://saref.etsi.org/saref4bldg#evaporationCoolant - -s4bldg:evaporationCoolant a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The fluid used for the coolant in the evaporator."@en ; - rdfs:label "evaporation coolant"@en . -# -# https://saref.etsi.org/saref4bldg#evaporationMediumType - -s4bldg:evaporationMediumType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "ColdLiquid: Evaporator is using liquid type of fluid to exchange heat with refrigerant. ColdAir: Evaporator is using air to exchange heat with refrigerant."@en ; - rdfs:label "evaporation medium type"@en . -# -# https://saref.etsi.org/saref4bldg#failPosition - -s4bldg:failPosition a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Specifies the required fail-safe position of the actuator."@en ; - rdfs:label "fail position"@en . -# -# https://saref.etsi.org/saref4bldg#finishColor - -s4bldg:finishColor a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Finish color for cooled beam."@en ; - rdfs:label "finish color"@en . -# -# https://saref.etsi.org/saref4bldg#fireExit - -s4bldg:fireExit a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Indication whether this object is designed to serve as an exit in the case of fire (TRUE) or not (FALSE). Here whether the transport element (in case of e.g., a lift) is designed to serve as a fire exit, e.g., for fire escape purposes."@en ; - rdfs:label "fire exit"@en . -# -# https://saref.etsi.org/saref4bldg#flowArrangement - -s4bldg:flowArrangement a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "CounterFlow: Air and water flow enter in different directions. CrossFlow: Air and water flow are perpendicular. ParallelFlow: air and water flow enter in same directions."@en ; - rdfs:label "flow arrangement"@en . -# -# https://saref.etsi.org/saref4bldg#frameSize - -s4bldg:frameSize a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Designation of the frame size according to the named range of frame sizes designated at the place of use or according to a given standard."@en ; - rdfs:label "frame size"@en . -# -# https://saref.etsi.org/saref4bldg#frameType - -s4bldg:frameType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The type of frame used by the damper (e.g., Standard, Single Flange, Single Reversed Flange, Double Flange, etc.)."@en ; - rdfs:label "frame type"@en . -# -# https://saref.etsi.org/saref4bldg#hasDefrost - -s4bldg:hasDefrost a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Whether the heat exchanger has defrost function or not."@en ; - rdfs:label "has defrost"@en . -# -# https://saref.etsi.org/saref4bldg#hasExteriorInsulation - -s4bldg:hasExteriorInsulation a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "TRUE if the silencer has exterior insulation. FALSE if it does not."@en ; - rdfs:label "has exterior insulation"@en . -# -# https://saref.etsi.org/saref4bldg#hasHotGasBypass - -s4bldg:hasHotGasBypass a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Whether or not hot gas bypass is provided for the compressor. TRUE = Yes, FALSE = No."@en ; - rdfs:label "has hot gas bypass"@en . -# -# https://saref.etsi.org/saref4bldg#hasLock - -s4bldg:hasLock a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Indication of whether a switching device has a key operated lock (=TRUE) or not (= FALSE)."@en ; - rdfs:label "has lock"@en . -# -# https://saref.etsi.org/saref4bldg#hasPartWinding - -s4bldg:hasPartWinding a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Indication of whether the motor is single speed, i.e. has a single winding (= FALSE) or multi-speed i.e.has part winding (= TRUE) ."@en ; - rdfs:label "has part winding"@en . -# -# https://saref.etsi.org/saref4bldg#hasTurbulator - -s4bldg:hasTurbulator a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "TRUE if the tube has a turbulator, FALSE if it does not."@en ; - rdfs:label "has turbulator"@en . -# -# https://saref.etsi.org/saref4bldg#heatTransferDimension - -s4bldg:heatTransferDimension a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Indicates how heat is transmitted according to the shape of the space heater."@en ; - rdfs:label "heat transfer dimension"@en . -# -# https://saref.etsi.org/saref4bldg#heatTransferMedium - -s4bldg:heatTransferMedium a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Enumeration defining the heat transfer medium if applicable."@en ; - rdfs:label "heat transfer medium"@en . -# -# https://saref.etsi.org/saref4bldg#heatTransferTypeEnum - -s4bldg:heatTransferTypeEnum a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Type of heat transfer between the two air streams."@en ; - rdfs:label "heat transfer type enum"@en . -# -# https://saref.etsi.org/saref4bldg#integratedLightingType - -s4bldg:integratedLightingType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Integrated lighting in cooled beam."@en ; - rdfs:label "integrated lighting type"@en . -# -# https://saref.etsi.org/saref4bldg#internalControl - -s4bldg:internalControl a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Internal modulation control."@en ; - rdfs:label "internal control"@en . -# -# https://saref.etsi.org/saref4bldg#isExternal - -s4bldg:isExternal a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Indication whether the element is designed for use in the exterior (TRUE) or not (FALSE). If (TRUE) it is an external element and faces the outside of the building."@en ; - rdfs:label "is external"@en . -# -# https://saref.etsi.org/saref4bldg#isFreeHanging - -s4bldg:isFreeHanging a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Is it free hanging type (not mounted in a false ceiling)?"@en ; - rdfs:label "is free hanging"@en . -# -# https://saref.etsi.org/saref4bldg#isGuarded - -s4bldg:isGuarded a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Indication of whether the motor enclosure is guarded (= TRUE) or not (= FALSE)."@en ; - rdfs:label "is guarded"@en . -# -# https://saref.etsi.org/saref4bldg#isIlluminated - -s4bldg:isIlluminated a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "An indication of whether there is an illuminated indicator to show that the switch is on (=TRUE) or not (= FALSE)."@en ; - rdfs:label "is illuminated"@en . -# -# https://saref.etsi.org/saref4bldg#isNeutralPrimaryTerminalAvailable - -s4bldg:isNeutralPrimaryTerminalAvailable a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "An indication of whether the neutral point of the primary winding is available as a terminal (=TRUE) or not (= FALSE)."@en ; - rdfs:label "is neutral primary terminal available"@en . -# -# https://saref.etsi.org/saref4bldg#isNeutralSecondaryTerminalAvailable - -s4bldg:isNeutralSecondaryTerminalAvailable a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "An indication of whether the neutral point of the secondary winding is available as a terminal (=TRUE) or not (= FALSE)."@en ; - rdfs:label "is neutral secondary terminal available"@en . -# -# https://saref.etsi.org/saref4bldg#isPluggableOutlet - -s4bldg:isPluggableOutlet a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Indication of whether the outlet accepts a loose plug connection (= TRUE) or whether it is directly connected (= FALSE) or whether the form of connection has not yet been determined (= UNKNOWN)."@en ; - rdfs:label "is pluggable outlet"@en . -# -# https://saref.etsi.org/saref4bldg#isWaterStorageHeater - -s4bldg:isWaterStorageHeater a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "This is used to identify if the boiler has storage capacity (TRUE). If FALSE, then there is no storage capacity built into the boiler, such as an instantaneous hot water heater."@en ; - rdfs:label "is water storage heater"@en . -# -# https://saref.etsi.org/saref4bldg#lampBallastType - -s4bldg:lampBallastType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The type of ballast used to stabilise gas discharge by limiting the current during operation and to deliver the necessary striking voltage for starting. Ballasts are needed to operate Discharge Lamps such as Fluorescent, Compact Fluorescent, High-pressure Mercury, Metal Halide and High-pressure Sodium Lamps. Magnetic ballasts are chokes which limit the current passing through a lamp connected in series on the principle of self-induction. The resultant current and power are decisive for the efficient operation of the lamp. A specially designed ballast is required for every type of lamp to comply with lamp rating in terms of Luminous Flux, Color Appearance and service life. The two types of magnetic ballasts for fluorescent lamps are KVG Conventional (EC-A series) and VVG Low-loss ballasts (EC-B series). Low-loss ballasts have a higher efficiency, which means reduced ballast losses and a lower thermal load. Electronic ballasts are used to run fluorescent lamps at high frequencies (approx. 35 - 40 kHz)."@en ; - rdfs:label "lamp ballast type"@en . -# -# https://saref.etsi.org/saref4bldg#lampCompensationType - -s4bldg:lampCompensationType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Identifies the form of compensation used for power factor correction and radio suppression."@en ; - rdfs:label "lamp compensation type"@en . -# -# https://saref.etsi.org/saref4bldg#legend - -s4bldg:legend a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A text inscribed or applied to the switch as a legend to indicate purpose or function."@en ; - rdfs:label "legend"@en . -# -# https://saref.etsi.org/saref4bldg#manualOverride - -s4bldg:manualOverride a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Identifies whether hand-operated operation is provided as an override (= TRUE) or not (= FALSE). Note that this value should be set to FALSE by default in the case of a Hand Operated Actuator."@en ; - rdfs:label "manual override"@en . -# -# https://saref.etsi.org/saref4bldg#mechanicalOperated - -s4bldg:mechanicalOperated a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Indication whether the element is operated machanically (TRUE) or not, i.e. manually (FALSE)."@en ; - rdfs:label "mechanical operated"@en . -# -# https://saref.etsi.org/saref4bldg#mediaSource - -s4bldg:mediaSource a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Indicates media sources and corresponding names of ports (DistributionPort with FlowDirection=SINK and PredefinedType=AUDIOVISUAL) or aggregated audio/video components (AudioVisualAppliance)."@en ; - rdfs:label "media source"@en . -# -# https://saref.etsi.org/saref4bldg#motorDriveType - -s4bldg:motorDriveType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Motor drive type: DIRECTDRIVE: Direct drive. BELTDRIVE: Belt drive. COUPLING: Coupling. OTHER: Other type of motor drive. UNKNOWN: Unknown motor drive type. "@en ; - rdfs:label "motor drive type"@en . -# -# https://saref.etsi.org/saref4bldg#motorEnclosureType - -s4bldg:motorEnclosureType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A list of the available types of motor enclosure from which that required may be selected."@en ; - rdfs:label "motor enclosure type"@en . -# -# https://saref.etsi.org/saref4bldg#numberOfBlades - -s4bldg:numberOfBlades a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "Number of blades."@en ; - rdfs:label "number of blades"@en . -# -# https://saref.etsi.org/saref4bldg#numberOfCells - -s4bldg:numberOfCells a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "Number of cells in one cooling tower unit."@en ; - rdfs:label "number of cells"@en . -# -# https://saref.etsi.org/saref4bldg#numberOfCircuits - -s4bldg:numberOfCircuits a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "Number of parallel fluid tube circuits."@en ; - rdfs:label "number of circuits"@en . -# -# https://saref.etsi.org/saref4bldg#numberOfGangs - -s4bldg:numberOfGangs a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "Number of gangs/buttons on this switch."@en ; - rdfs:label "number of gangs"@en . -# -# https://saref.etsi.org/saref4bldg#numberOfPanels - -s4bldg:numberOfPanels a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "Number of panels."@en ; - rdfs:label "number of panels"@en . -# -# https://saref.etsi.org/saref4bldg#numberOfRows - -s4bldg:numberOfRows a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "Number of tube rows in the tube bundle assembly."@en ; - rdfs:label "number of rows"@en . -# -# https://saref.etsi.org/saref4bldg#numberOfSections - -s4bldg:numberOfSections a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "Number of sections used."@en ; - rdfs:label "number of sections"@en . -# -# https://saref.etsi.org/saref4bldg#numberOsSockets - -s4bldg:numberOsSockets a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "The number of sockets that may be connected. In case of inconsistency, sockets defined on ports take precedence."@en ; - rdfs:label "number os sockets"@en . -# -# https://saref.etsi.org/saref4bldg#operatingMode - -s4bldg:operatingMode a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Identifies the operating mode of the boiler."@en ; - rdfs:label "operating mode"@en . -# -# https://saref.etsi.org/saref4bldg#operation - -s4bldg:operation a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The operational mechanism for the damper operation."@en ; - rdfs:label "operation"@en . -# -# https://saref.etsi.org/saref4bldg#orientation - -s4bldg:orientation a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The intended orientation for the damper as specified by the manufacturer."@en ; - rdfs:label "orientation"@en . -# -# https://saref.etsi.org/saref4bldg#patternType - -s4bldg:patternType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Defines the types of pattern (or shape of a tank that may be specified."@en ; - rdfs:label "pattern type"@en . -# -# https://saref.etsi.org/saref4bldg#pipeConnectionEnum - -s4bldg:pipeConnectionEnum a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The manner in which the pipe connection is made to the cooled beam."@en ; - rdfs:label "pipe connection enum"@en . -# -# https://saref.etsi.org/saref4bldg#placementType - -s4bldg:placementType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Indicates how the device is designed to be placed."@en ; - rdfs:label "placement type"@en . -# -# https://saref.etsi.org/saref4bldg#powerSource - -s4bldg:powerSource a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Type of power driving the compressor."@en ; - rdfs:label "power source"@en . -# -# https://saref.etsi.org/saref4bldg#readOutType - -s4bldg:readOutType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Indication of the form that readout from the meter takes. In the case of a dial read out, this may comprise multiple dials that give a cumulative reading and/or a mechanical odometer."@en ; - rdfs:label "read out type"@en . -# -# https://saref.etsi.org/saref4bldg#refrigerantClass - -s4bldg:refrigerantClass a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Refrigerant class used by the compressor. CFC: Chlorofluorocarbons. HCFC: Hydrochlorofluorocarbons. HFC: Hydrofluorocarbons."@en ; - rdfs:label "refrigerant class"@en . -# -# https://saref.etsi.org/saref4bldg#remoteReading - -s4bldg:remoteReading a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Indicates whether the meter has a connection for remote reading through connection of a communication device (set TRUE) or not (set FALSE)."@en ; - rdfs:label "remote reading"@en . -# -# https://saref.etsi.org/saref4bldg#roughness - -s4bldg:roughness a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A measure of the vertical deviations of the surface."@en ; - rdfs:label "roughness"@en . -# -# https://saref.etsi.org/saref4bldg#secondaryCurrentType - -s4bldg:secondaryCurrentType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A list of the secondary current types that can result from transformer output."@en ; - rdfs:label "secondary current type"@en . -# -# https://saref.etsi.org/saref4bldg#shadingDeviceType - -s4bldg:shadingDeviceType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Specifies the type of shading device."@en ; - rdfs:label "shading device type"@en . -# -# https://saref.etsi.org/saref4bldg#sprayType - -s4bldg:sprayType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "SprayFilled: Water is sprayed into airflow. SplashTypeFill: water cascades over successive rows of splash bars. FilmTypeFill: water flows in a thin layer over closely spaced sheets."@en ; - rdfs:label "spray type"@en . -# -# https://saref.etsi.org/saref4bldg#standard - -s4bldg:standard a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The designation of the standard applicable for the definition of the characteristics of the unit."@en ; - rdfs:label "standard"@en . -# -# https://saref.etsi.org/saref4bldg#storageType - -s4bldg:storageType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Defines the general material category intended to be stored."@en ; - rdfs:label "storage type"@en . -# -# https://saref.etsi.org/saref4bldg#switchFunction - -s4bldg:switchFunction a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Indicates types of switches which differs in functionality."@en ; - rdfs:label "switch function"@en . -# -# https://saref.etsi.org/saref4bldg#temperatureClassification - -s4bldg:temperatureClassification a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Enumeration defining the temperature classification of the space heater surface temperature. low temperature - surface temperature is relatively low, usually heated by hot water or electricity. high temperature - surface temperature is relatively high, usually heated by gas or steam."@en ; - rdfs:label "temperature classification"@en . -# -# https://saref.etsi.org/saref4bldg#transformerVectorGroup - -s4bldg:transformerVectorGroup a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "List of the possible vector groups for the transformer from which that required may be set. Values in the enumeration list follow a standard international code where the first letter describes how the primary windings are connected, the second letter describes how the secondary windings are connected, and the numbers describe the rotation of voltages and currents from the primary to the secondary side in multiples of 30 degrees. D: means that the windings are delta-connected. Y: means that the windings are star-connected. Z: means that the windings are zig-zag connected (a special start-connected providing low reactance of the transformer). The connectivity is only relevant for three-phase transformers."@en ; - rdfs:label "transformer vector group"@en . -# -# https://saref.etsi.org/saref4bldg#valveMechanism - -s4bldg:valveMechanism a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The mechanism by which the valve function is achieved where: BALL: Valve that has a ported ball that can be turned relative to the body seat ports. BUTTERFLY: Valve in which a streamlined disc pivots about a diametric axis. CONFIGUREDGATE: Screwdown valve in which the closing gate is shaped in a configured manner to have a more precise control of pressure and flow change across the valve. GLAND: Valve with a tapered seating, in which a rotatable plug is retained by means of a gland and gland packing. GLOBE: Screwdown valve that has a spherical body. LUBRICATEDPLUG: Plug valve in which a lubricant is injected under pressure between the plug face and the body. NEEDLE: Valve for regulating the flow in or from a pipe, in which a slender cone moves along the axis of flow to close against a fixed conical seat. PARALLELSLIDE: Screwdown valve that has a machined plate that slides in formed grooves to form a seal. PLUG: Valve that has a ported plug that can be turned relative to the body seat ports. WEDGEGATE: Screwdown valve that has a wedge shaped plate fitting into tapered guides to form a seal."@en ; - rdfs:label "valve mechanism"@en . -# -# https://saref.etsi.org/saref4bldg#valveOperation - -s4bldg:valveOperation a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The method of valve operation where: DROPWEIGHT: A valve that is closed by the action of a weighted lever being released, the weight normally being prevented from dropping by being held by a wire, the closure normally being made by the action of heat on a fusible link in the wire FLOAT: A valve that is opened and closed by the action of a float that rises and falls with water level. The float may be a ball attached to a lever or other mechanism HYDRAULIC: A valve that is opened and closed by hydraulic actuation LEVER: A valve that is opened and closed by the action of a lever rotating the gate within the valve. LOCKSHIELD: A valve that requires the use of a special lockshield key for opening and closing, the operating mechanism being protected by a shroud during normal operation. MOTORIZED: A valve that is opened and closed by the action of an electric motor on an actuator PNEUMATIC: A valve that is opened and closed by pneumatic actuation SOLENOID: A valve that is normally held open by a magnetic field in a coil acting on the gate but that is closed immediately if the electrical current generating the magnetic field is removed. SPRING: A valve that is normally held in position by the pressure of a spring on a plate but that may be caused to open if the pressure of the fluid is sufficient to overcome the spring pressure. THERMOSTATIC: A valve in which the ports are opened or closed to maintain a required predetermined temperature. WHEEL: A valve that is opened and closed by the action of a wheel moving the gate within the valve."@en ; - rdfs:label "valve operation"@en . -# -# https://saref.etsi.org/saref4bldg#valvePattern - -s4bldg:valvePattern a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The configuration of the ports of a valve according to either the linear route taken by a fluid flowing through the valve or by the number of ports where: SINGLEPORT: Valve that has a single entry port from the system that it serves, the exit port being to the surrounding environment. ANGLED_2_PORT: Valve in which the direction of flow is changed through 90 degrees. STRAIGHT_2_PORT: Valve in which the flow is straight through. STRAIGHT_3_PORT: Valve with three separate ports. CROSSOVER_4_PORT: Valve with 4 separate ports."@en ; - rdfs:label "valve pattern"@en . -# -# https://saref.etsi.org/saref4bldg#waterFlowControlSystemType - -s4bldg:waterFlowControlSystemType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Factory fitted waterflow control system."@en ; - rdfs:label "water flow control system type"@en . -# -# https://w3id.org/saref#hasTimestamp - -saref:hasTimestamp a owl:DatatypeProperty , owl:FunctionalProperty ; - rdfs:range xsd:dateTime ; - rdfs:comment "A relationship stating the timestamp of an entity (e.g. a measurement)."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "has timestamp"@en . -# -# https://w3id.org/saref#hasValue - -saref:hasValue a owl:DatatypeProperty ; - rdfs:comment "A relationship defining the value of a certain property, e.g., energy or power"@en ; - rdfs:isDefinedBy ; - rdfs:label "has value"@en . -# -# -# -# ################################################################# -# # -# # Classes -# # -# ################################################################# -# -# -# https://saref.etsi.org/saref4bldg#Actuator - -s4bldg:Actuator a owl:Class ; - rdfs:subClassOf s4bldg:DistributionControlDevice , saref:Actuator , _:genid1 . - -_:genid1 a owl:Restriction ; - owl:onProperty s4bldg:failPosition ; - owl:allValuesFrom xsd:string . - -s4bldg:Actuator rdfs:subClassOf _:genid2 . - -_:genid2 a owl:Restriction ; - owl:onProperty s4bldg:manualOverride ; - owl:allValuesFrom xsd:boolean . - -s4bldg:Actuator rdfs:comment "An actuator is a mechanical device for moving or controlling a mechanism or system. An actuator takes energy, usually created by air, electricity, or liquid, and converts that into some kind of motion."@en ; - rdfs:label "Actuator"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcActuator" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#AirToAirHeatRecovery - -s4bldg:AirToAirHeatRecovery a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid3 . - -_:genid3 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:AirToAirHeatRecovery rdfs:subClassOf _:genid4 . - -_:genid4 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:AirToAirHeatRecovery rdfs:subClassOf _:genid5 . - -_:genid5 a owl:Restriction ; - owl:onProperty s4bldg:primaryAirFlowRateMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:AirToAirHeatRecovery rdfs:subClassOf _:genid6 . - -_:genid6 a owl:Restriction ; - owl:onProperty s4bldg:primaryAirFlowRateMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:AirToAirHeatRecovery rdfs:subClassOf _:genid7 . - -_:genid7 a owl:Restriction ; - owl:onProperty s4bldg:secondaryAirFlowRateMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:AirToAirHeatRecovery rdfs:subClassOf _:genid8 . - -_:genid8 a owl:Restriction ; - owl:onProperty s4bldg:secondaryAirFlowRateMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:AirToAirHeatRecovery rdfs:subClassOf _:genid9 . - -_:genid9 a owl:Restriction ; - owl:onProperty s4bldg:hasDefrost ; - owl:allValuesFrom xsd:boolean . - -s4bldg:AirToAirHeatRecovery rdfs:subClassOf _:genid10 . - -_:genid10 a owl:Restriction ; - owl:onProperty s4bldg:heatTransferTypeEnum ; - owl:allValuesFrom xsd:string . - -s4bldg:AirToAirHeatRecovery rdfs:comment "An air-to-air heat recovery device employs a counter-flow heat exchanger between inbound and outbound air flow. It is typically used to transfer heat from warmer air in one chamber to cooler air in the second chamber (i.e., typically used to recover heat from the conditioned air being exhausted and the outside air being supplied to a building), resulting in energy savings from reduced heating (or cooling) requirements."@en ; - rdfs:label "Air to air heat recovery"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcAirToAirHeatRecovery" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Alarm - -s4bldg:Alarm a owl:Class ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - rdfs:comment """An alarm is a device that signals the existence of a condition or situation that is outside the boundaries of normal expectation or that activates such a device. - -Alarms include the provision of break glass buttons and manual pull boxes that are used to activate alarms."""@en ; - rdfs:label "Alarm"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcAlarm" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#AudioVisualAppliance - -s4bldg:AudioVisualAppliance a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal , _:genid11 . - -_:genid11 a owl:Restriction ; - owl:onProperty s4bldg:audioVolume ; - owl:allValuesFrom saref:Measurement . - -s4bldg:AudioVisualAppliance rdfs:subClassOf _:genid12 . - -_:genid12 a owl:Restriction ; - owl:onProperty s4bldg:mediaSource ; - owl:allValuesFrom xsd:string . - -s4bldg:AudioVisualAppliance rdfs:comment """An audio-visual appliance is a device that displays, captures, transmits, or receives audio or video. - -Audio-visual appliances may be fixed in place or may be able to be moved from one space to another. They may require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source. Audio-visual appliances may be connected to data circuits including specialist circuits for audio visual purposes only."""@en ; - rdfs:label "Audio visual appliance"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcAudioVisualApplicance" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Boiler - -s4bldg:Boiler a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid13 . - -_:genid13 a owl:Restriction ; - owl:onProperty s4bldg:heatTransferSurfaceArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid14 . - -_:genid14 a owl:Restriction ; - owl:onProperty s4bldg:nominalEnergyConsumption ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid15 . - -_:genid15 a owl:Restriction ; - owl:onProperty s4bldg:nominalPartLoadRatio ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid16 . - -_:genid16 a owl:Restriction ; - owl:onProperty s4bldg:outletTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid17 . - -_:genid17 a owl:Restriction ; - owl:onProperty s4bldg:outletTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid18 . - -_:genid18 a owl:Restriction ; - owl:onProperty s4bldg:pressureRating ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid19 . - -_:genid19 a owl:Restriction ; - owl:onProperty s4bldg:waterInletTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid20 . - -_:genid20 a owl:Restriction ; - owl:onProperty s4bldg:waterInletTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid21 . - -_:genid21 a owl:Restriction ; - owl:onProperty s4bldg:waterStorageCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid22 . - -_:genid22 a owl:Restriction ; - owl:onProperty s4bldg:energySource ; - owl:allValuesFrom xsd:string . - -s4bldg:Boiler rdfs:subClassOf _:genid23 . - -_:genid23 a owl:Restriction ; - owl:onProperty s4bldg:isWaterStorageHeater ; - owl:allValuesFrom xsd:boolean . - -s4bldg:Boiler rdfs:subClassOf _:genid24 . - -_:genid24 a owl:Restriction ; - owl:onProperty s4bldg:operatingMode ; - owl:allValuesFrom xsd:string . - -s4bldg:Boiler rdfs:comment "A boiler is a closed, pressure-rated vessel in which water or other fluid is heated using an energy source such as natural gas, heating oil, or electricity. The fluid in the vessel is then circulated out of the boiler for use in various processes or heating applications."@en ; - rdfs:label "Boiler"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcBoiler" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Building - -s4bldg:Building a owl:Class ; - rdfs:subClassOf _:genid25 . - -_:genid25 a owl:Restriction ; - owl:onProperty s4bldg:hasSpace ; - owl:allValuesFrom s4bldg:BuildingSpace . - -s4bldg:Building rdfs:comment "A building represents a structure that provides shelter for its occupants or contents and stands in one place. The building is also used to provide a basic element within the spatial structure hierarchy for the components of a building project (together with site, storey, and space)."@en ; - rdfs:label "Building"@en ; - rdfs:seeAlso ; - prov:hadPrimarySource . -# -# https://saref.etsi.org/saref4bldg#BuildingDevice - -s4bldg:BuildingDevice a owl:Class ; - rdfs:subClassOf s4bldg:BuildingObject , saref:Device ; - rdfs:comment "A tangible object designed to accomplish a particular task in a building."@en ; - rdfs:label "Building device"@en . -# -# https://saref.etsi.org/saref4bldg#BuildingObject - -s4bldg:BuildingObject a owl:Class ; - rdfs:subClassOf s4bldg:PhysicalObject ; - rdfs:comment "An object in the building that can be controlled by devices, such as a door or a window that can be automatically opened or closed by an actuator. (Definition taken from SAREF 1.0)"@en ; - rdfs:label "Building object"@en . -# -# https://saref.etsi.org/saref4bldg#BuildingSpace - -s4bldg:BuildingSpace a owl:Class ; - rdfs:subClassOf _:genid26 . - -_:genid26 a owl:Restriction ; - owl:onProperty s4bldg:contains ; - owl:allValuesFrom s4bldg:PhysicalObject . - -s4bldg:BuildingSpace rdfs:subClassOf _:genid27 . - -_:genid27 a owl:Restriction ; - owl:onProperty s4bldg:hasSpace ; - owl:allValuesFrom s4bldg:BuildingSpace . - -s4bldg:BuildingSpace rdfs:subClassOf _:genid28 . - -_:genid28 a owl:Restriction ; - owl:onProperty s4bldg:isSpaceOf ; - owl:allValuesFrom _:genid29 . - -_:genid29 a owl:Class ; - owl:unionOf _:genid31 . - -_:genid31 a rdf:List ; - rdf:first s4bldg:Building ; - rdf:rest _:genid30 . - -_:genid30 a rdf:List ; - rdf:first s4bldg:BuildingSpace ; - rdf:rest rdf:nil . - -s4bldg:BuildingSpace rdfs:comment "An entity used to define the physical spaces of the building. A building space contains devices or building objects."@en ; - rdfs:label "Building space"@en . -# -# https://saref.etsi.org/saref4bldg#Burner - -s4bldg:Burner a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid32 . - -_:genid32 a owl:Restriction ; - owl:onProperty s4bldg:energySource ; - owl:allValuesFrom xsd:string . - -s4bldg:Burner rdfs:comment "A burner is a device that converts fuel into heat through combustion. It includes gas, oil, and wood burners."@en ; - rdfs:label "Burner"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcBurner" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Chiller - -s4bldg:Chiller a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid33 . - -_:genid33 a owl:Restriction ; - owl:onProperty s4bldg:nominalCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Chiller rdfs:subClassOf _:genid34 . - -_:genid34 a owl:Restriction ; - owl:onProperty s4bldg:nominalCondensingTemperature ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Chiller rdfs:subClassOf _:genid35 . - -_:genid35 a owl:Restriction ; - owl:onProperty s4bldg:nominalEfficiency ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Chiller rdfs:subClassOf _:genid36 . - -_:genid36 a owl:Restriction ; - owl:onProperty s4bldg:nominalEvaporatingTemmperature ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Chiller rdfs:subClassOf _:genid37 . - -_:genid37 a owl:Restriction ; - owl:onProperty s4bldg:nominalHeatRejectionRate ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Chiller rdfs:subClassOf _:genid38 . - -_:genid38 a owl:Restriction ; - owl:onProperty s4bldg:nominalPowerConsumption ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Chiller rdfs:comment "A chiller is a device used to remove heat from a liquid via a vapor-compression or absorption refrigeration cycle to cool a fluid, typically water or a mixture of water and glycol. The chilled fluid is then used to cool and dehumidify air in a building."@en ; - rdfs:label "Chiller"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcChiller" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Coil - -s4bldg:Coil a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid39 . - -_:genid39 a owl:Restriction ; - owl:onProperty s4bldg:airFlowRateMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Coil rdfs:subClassOf _:genid40 . - -_:genid40 a owl:Restriction ; - owl:onProperty s4bldg:airFlowRateMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Coil rdfs:subClassOf _:genid41 . - -_:genid41 a owl:Restriction ; - owl:onProperty s4bldg:nominalLatentCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Coil rdfs:subClassOf _:genid42 . - -_:genid42 a owl:Restriction ; - owl:onProperty s4bldg:nominalSensibleCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Coil rdfs:subClassOf _:genid43 . - -_:genid43 a owl:Restriction ; - owl:onProperty s4bldg:nominalUa ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Coil rdfs:subClassOf _:genid44 . - -_:genid44 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Coil rdfs:subClassOf _:genid45 . - -_:genid45 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Coil rdfs:subClassOf _:genid46 . - -_:genid46 a owl:Restriction ; - owl:onProperty s4bldg:placementType ; - owl:allValuesFrom xsd:string . - -s4bldg:Coil rdfs:comment """A coil is a device used to provide heat transfer between non-mixing media. A common example is a cooling coil, which utilizes a finned coil in which circulates chilled water, antifreeze, or refrigerant that is used to remove heat from air moving across the surface of the coil. A coil may be used either for heating or cooling purposes by placing a series of tubes (the coil) carrying a heating or cooling fluid into an airstream. The coil may be constructed from tubes bundled in a serpentine form or from finned tubes that give a extended heat transfer surface. - -Coils may also be used for non-airflow cases such as embedded in a floor slab."""@en ; - rdfs:label "Coil"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCoil" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#CommunicationAppliance - -s4bldg:CommunicationAppliance a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:comment """A communications appliance transmits and receives electronic or digital information as data or sound. - -Communication appliances may be fixed in place or may be able to be moved from one space to another. Communication appliances require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source."""@en ; - rdfs:label "Communication appliance"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCommunicationAppliance" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Compressor - -s4bldg:Compressor a owl:Class ; - rdfs:subClassOf s4bldg:FlowMovingDevice , _:genid47 . - -_:genid47 a owl:Restriction ; - owl:onProperty s4bldg:compressorSpeed ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Compressor rdfs:subClassOf _:genid48 . - -_:genid48 a owl:Restriction ; - owl:onProperty s4bldg:idealCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Compressor rdfs:subClassOf _:genid49 . - -_:genid49 a owl:Restriction ; - owl:onProperty s4bldg:idealShaftPower ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Compressor rdfs:subClassOf _:genid50 . - -_:genid50 a owl:Restriction ; - owl:onProperty s4bldg:impellerDiameter ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Compressor rdfs:subClassOf _:genid51 . - -_:genid51 a owl:Restriction ; - owl:onProperty s4bldg:nominalCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Compressor rdfs:subClassOf _:genid52 . - -_:genid52 a owl:Restriction ; - owl:onProperty s4bldg:partLoadRatioMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Compressor rdfs:subClassOf _:genid53 . - -_:genid53 a owl:Restriction ; - owl:onProperty s4bldg:partLoadRatioMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Compressor rdfs:subClassOf _:genid54 . - -_:genid54 a owl:Restriction ; - owl:onProperty s4bldg:hasHotGasBypass ; - owl:allValuesFrom xsd:boolean . - -s4bldg:Compressor rdfs:subClassOf _:genid55 . - -_:genid55 a owl:Restriction ; - owl:onProperty s4bldg:powerSource ; - owl:allValuesFrom xsd:string . - -s4bldg:Compressor rdfs:subClassOf _:genid56 . - -_:genid56 a owl:Restriction ; - owl:onProperty s4bldg:refrigerantClass ; - owl:allValuesFrom xsd:string . - -s4bldg:Compressor rdfs:comment "A compressor is a device that compresses a fluid typically used in a refrigeration circuit."@en ; - rdfs:label "Compressor"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCompressor" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Condenser - -s4bldg:Condenser a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid57 . - -_:genid57 a owl:Restriction ; - owl:onProperty s4bldg:externalSurfaceArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Condenser rdfs:subClassOf _:genid58 . - -_:genid58 a owl:Restriction ; - owl:onProperty s4bldg:internalRefrigerantVolume ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Condenser rdfs:subClassOf _:genid59 . - -_:genid59 a owl:Restriction ; - owl:onProperty s4bldg:internalSurfaceArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Condenser rdfs:subClassOf _:genid60 . - -_:genid60 a owl:Restriction ; - owl:onProperty s4bldg:internalWaterVolume ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Condenser rdfs:subClassOf _:genid61 . - -_:genid61 a owl:Restriction ; - owl:onProperty s4bldg:nominalHeatTransferArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Condenser rdfs:subClassOf _:genid62 . - -_:genid62 a owl:Restriction ; - owl:onProperty s4bldg:nominalHeatTransferCoefficient ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Condenser rdfs:subClassOf _:genid63 . - -_:genid63 a owl:Restriction ; - owl:onProperty s4bldg:refrigerantClass ; - owl:allValuesFrom xsd:string . - -s4bldg:Condenser rdfs:comment "A condenser is a device that is used to dissipate heat, typically by condensing a substance such as a refrigerant from its gaseous to its liquid state."@en ; - rdfs:label "Condenser"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCondenser" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Controller - -s4bldg:Controller a owl:Class ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - rdfs:comment """A controller is a device that monitors inputs and controls outputs within a building automation system. - -A controller may be physical (having placement within a spatial structure) or logical (a software interface or aggregated within a programmable physical controller)."""@en ; - rdfs:label "Controller"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcController" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#CooledBeam - -s4bldg:CooledBeam a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid64 . - -_:genid64 a owl:Restriction ; - owl:onProperty s4bldg:coilLength ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid65 . - -_:genid65 a owl:Restriction ; - owl:onProperty s4bldg:coilWidth ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid66 . - -_:genid66 a owl:Restriction ; - owl:onProperty s4bldg:nominalCoolingCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid67 . - -_:genid67 a owl:Restriction ; - owl:onProperty s4bldg:nominalHeatingCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid68 . - -_:genid68 a owl:Restriction ; - owl:onProperty s4bldg:nominalReturnWaterTemperatureCooling ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid69 . - -_:genid69 a owl:Restriction ; - owl:onProperty s4bldg:nominalReturnWaterTemperatureHeating ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid70 . - -_:genid70 a owl:Restriction ; - owl:onProperty s4bldg:nominalSorroundingHumidityCooling ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid71 . - -_:genid71 a owl:Restriction ; - owl:onProperty s4bldg:nominalSorroundingTemperatureCooling ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid72 . - -_:genid72 a owl:Restriction ; - owl:onProperty s4bldg:nominalSorroundingTemperatureHeating ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid73 . - -_:genid73 a owl:Restriction ; - owl:onProperty s4bldg:nominalSupplyWaterTemperatureCooling ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid74 . - -_:genid74 a owl:Restriction ; - owl:onProperty s4bldg:nominalSupplyWaterTemperatureHeating ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid75 . - -_:genid75 a owl:Restriction ; - owl:onProperty s4bldg:nominalWaterFlowCooling ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid76 . - -_:genid76 a owl:Restriction ; - owl:onProperty s4bldg:nominalWaterFlowHeating ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid77 . - -_:genid77 a owl:Restriction ; - owl:onProperty s4bldg:waterPressureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid78 . - -_:genid78 a owl:Restriction ; - owl:onProperty s4bldg:waterPressureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid79 . - -_:genid79 a owl:Restriction ; - owl:onProperty s4bldg:finishColor ; - owl:allValuesFrom xsd:string . - -s4bldg:CooledBeam rdfs:subClassOf _:genid80 . - -_:genid80 a owl:Restriction ; - owl:onProperty s4bldg:integratedLightingType ; - owl:allValuesFrom xsd:string . - -s4bldg:CooledBeam rdfs:subClassOf _:genid81 . - -_:genid81 a owl:Restriction ; - owl:onProperty s4bldg:isFreeHanging ; - owl:allValuesFrom xsd:boolean . - -s4bldg:CooledBeam rdfs:subClassOf _:genid82 . - -_:genid82 a owl:Restriction ; - owl:onProperty s4bldg:pipeConnectionEnum ; - owl:allValuesFrom xsd:string . - -s4bldg:CooledBeam rdfs:subClassOf _:genid83 . - -_:genid83 a owl:Restriction ; - owl:onProperty s4bldg:waterFlowControlSystemType ; - owl:allValuesFrom xsd:string . - -s4bldg:CooledBeam rdfs:comment "A cooled beam (or chilled beam) is a device typically used to cool air by circulating a fluid such as chilled water through exposed finned tubes above a space. Typically mounted overhead near or within a ceiling, the cooled beam uses convection to cool the space below it by acting as a heat sink for the naturally rising warm air of the space. Once cooled, the air naturally drops back to the floor where the cycle begins again."@en ; - rdfs:label "Cooled beam"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCooledBeam" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#CoolingTower - -s4bldg:CoolingTower a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid84 . - -_:genid84 a owl:Restriction ; - owl:onProperty s4bldg:ambientDesignDryBulbTemperature ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CoolingTower rdfs:subClassOf _:genid85 . - -_:genid85 a owl:Restriction ; - owl:onProperty s4bldg:ambientDesignWetBulbTemperature ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CoolingTower rdfs:subClassOf _:genid86 . - -_:genid86 a owl:Restriction ; - owl:onProperty s4bldg:basinReserveVolume ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CoolingTower rdfs:subClassOf _:genid87 . - -_:genid87 a owl:Restriction ; - owl:onProperty s4bldg:liftElevationDifference ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CoolingTower rdfs:subClassOf _:genid88 . - -_:genid88 a owl:Restriction ; - owl:onProperty s4bldg:nominalCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CoolingTower rdfs:subClassOf _:genid89 . - -_:genid89 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CoolingTower rdfs:subClassOf _:genid90 . - -_:genid90 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CoolingTower rdfs:subClassOf _:genid91 . - -_:genid91 a owl:Restriction ; - owl:onProperty s4bldg:waterRequirement ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CoolingTower rdfs:subClassOf _:genid92 . - -_:genid92 a owl:Restriction ; - owl:onProperty s4bldg:capacityControl ; - owl:allValuesFrom xsd:string . - -s4bldg:CoolingTower rdfs:subClassOf _:genid93 . - -_:genid93 a owl:Restriction ; - owl:onProperty s4bldg:circuitType ; - owl:allValuesFrom xsd:string . - -s4bldg:CoolingTower rdfs:subClassOf _:genid94 . - -_:genid94 a owl:Restriction ; - owl:onProperty s4bldg:controlStrategy ; - owl:allValuesFrom xsd:string . - -s4bldg:CoolingTower rdfs:subClassOf _:genid95 . - -_:genid95 a owl:Restriction ; - owl:onProperty s4bldg:flowArrangement ; - owl:allValuesFrom xsd:string . - -s4bldg:CoolingTower rdfs:subClassOf _:genid96 . - -_:genid96 a owl:Restriction ; - owl:onProperty s4bldg:numberOfCells ; - owl:allValuesFrom xsd:integer . - -s4bldg:CoolingTower rdfs:subClassOf _:genid97 . - -_:genid97 a owl:Restriction ; - owl:onProperty s4bldg:sprayType ; - owl:allValuesFrom xsd:string . - -s4bldg:CoolingTower rdfs:comment "A cooling tower is a device which rejects heat to ambient air by circulating a fluid such as water through it to reduce its temperature by partial evaporation."@en ; - rdfs:label "Cooling tower"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCoolingTower" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Damper - -s4bldg:Damper a owl:Class ; - rdfs:subClassOf s4bldg:FlowController , _:genid98 . - -_:genid98 a owl:Restriction ; - owl:onProperty s4bldg:airFlowRateMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid99 . - -_:genid99 a owl:Restriction ; - owl:onProperty s4bldg:bladeThickness ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid100 . - -_:genid100 a owl:Restriction ; - owl:onProperty s4bldg:closeOffRating ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid101 . - -_:genid101 a owl:Restriction ; - owl:onProperty s4bldg:faceArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid102 . - -_:genid102 a owl:Restriction ; - owl:onProperty s4bldg:frameDepth ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid103 . - -_:genid103 a owl:Restriction ; - owl:onProperty s4bldg:frameThickness ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid104 . - -_:genid104 a owl:Restriction ; - owl:onProperty s4bldg:leakageFullyClosed ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid105 . - -_:genid105 a owl:Restriction ; - owl:onProperty s4bldg:nominalAirFlowRate ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid106 . - -_:genid106 a owl:Restriction ; - owl:onProperty s4bldg:openPressureDrop ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid107 . - -_:genid107 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid108 . - -_:genid108 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid109 . - -_:genid109 a owl:Restriction ; - owl:onProperty s4bldg:temperatureRating ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid110 . - -_:genid110 a owl:Restriction ; - owl:onProperty s4bldg:workingPressureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid111 . - -_:genid111 a owl:Restriction ; - owl:onProperty s4bldg:bladeAction ; - owl:allValuesFrom xsd:string . - -s4bldg:Damper rdfs:subClassOf _:genid112 . - -_:genid112 a owl:Restriction ; - owl:onProperty s4bldg:bladeEdge ; - owl:allValuesFrom xsd:string . - -s4bldg:Damper rdfs:subClassOf _:genid113 . - -_:genid113 a owl:Restriction ; - owl:onProperty s4bldg:bladeShape ; - owl:allValuesFrom xsd:string . - -s4bldg:Damper rdfs:subClassOf _:genid114 . - -_:genid114 a owl:Restriction ; - owl:onProperty s4bldg:frameType ; - owl:allValuesFrom xsd:string . - -s4bldg:Damper rdfs:subClassOf _:genid115 . - -_:genid115 a owl:Restriction ; - owl:onProperty s4bldg:numberOfBlades ; - owl:allValuesFrom xsd:integer . - -s4bldg:Damper rdfs:subClassOf _:genid116 . - -_:genid116 a owl:Restriction ; - owl:onProperty s4bldg:operation ; - owl:allValuesFrom xsd:string . - -s4bldg:Damper rdfs:subClassOf _:genid117 . - -_:genid117 a owl:Restriction ; - owl:onProperty s4bldg:orientation ; - owl:allValuesFrom xsd:string . - -s4bldg:Damper rdfs:comment "A damper typically participates in an HVAC duct distribution system and is used to control or modulate the flow of air."@en ; - rdfs:label "Damper"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcDamper" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#DistributionControlDevice - -s4bldg:DistributionControlDevice a owl:Class ; - rdfs:subClassOf s4bldg:DistributionDevice ; - rdfs:comment "Represents devices of a building automation control system that are used to impart control over elements of a distribution system. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcsharedbldgserviceelements/lexical/ifcdistributioncontrolelement.htm)"@en ; - rdfs:label "Distribution control device"@en . -# -# https://saref.etsi.org/saref4bldg#DistributionDevice - -s4bldg:DistributionDevice a owl:Class ; - rdfs:subClassOf s4bldg:BuildingDevice ; - rdfs:comment "Generalization of all devices that participate in a distribution system. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcproductextension/lexical/ifcdistributionelement.htm)"@en ; - rdfs:label "Distribution device"@en . -# -# https://saref.etsi.org/saref4bldg#DistributionFlowDevice - -s4bldg:DistributionFlowDevice a owl:Class ; - rdfs:subClassOf s4bldg:DistributionDevice ; - rdfs:comment "Represents devices of a distribution system that facilitate the distribution of energy or matter, such as air, water or power. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcsharedbldgserviceelements/lexical/ifcdistributionflowelement.htm)"@en ; - rdfs:label "DistributionFlowDevice"@en . -# -# https://saref.etsi.org/saref4bldg#DuctSilencer - -s4bldg:DuctSilencer a owl:Class ; - rdfs:subClassOf s4bldg:FlowTreatmentDevice , _:genid118 . - -_:genid118 a owl:Restriction ; - owl:onProperty s4bldg:airFlowRateMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid119 . - -_:genid119 a owl:Restriction ; - owl:onProperty s4bldg:airFlowRateMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid120 . - -_:genid120 a owl:Restriction ; - owl:onProperty s4bldg:hydraulicDiameter ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid121 . - -_:genid121 a owl:Restriction ; - owl:onProperty s4bldg:length ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid122 . - -_:genid122 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid123 . - -_:genid123 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid124 . - -_:genid124 a owl:Restriction ; - owl:onProperty s4bldg:weight ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid125 . - -_:genid125 a owl:Restriction ; - owl:onProperty s4bldg:workingPressureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid126 . - -_:genid126 a owl:Restriction ; - owl:onProperty s4bldg:workingPressureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid127 . - -_:genid127 a owl:Restriction ; - owl:onProperty s4bldg:hasExteriorInsulation ; - owl:allValuesFrom xsd:boolean . - -s4bldg:DuctSilencer rdfs:comment "A duct silencer is a device that is typically installed inside a duct distribution system for the purpose of reducing the noise levels from air movement, fan noise, etc. in the adjacent space or downstream of the duct silencer device."@en ; - rdfs:label "Duct silencer"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcDuctSilencer" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#ElectricAppliance - -s4bldg:ElectricAppliance a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:comment """An electric appliance is a device intended for consumer usage that is powered by electricity. - -Electric appliances may be fixed in place or may be able to be moved from one space to another. Electric appliances require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source."""@en ; - rdfs:label "Electric appliance"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricAppliance" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#ElectricFlowStorageDevice - -s4bldg:ElectricFlowStorageDevice a owl:Class ; - rdfs:subClassOf s4bldg:FlowStorageDevice , _:genid128 . - -_:genid128 a owl:Restriction ; - owl:onProperty s4bldg:nominalFrequency ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricFlowStorageDevice rdfs:subClassOf _:genid129 . - -_:genid129 a owl:Restriction ; - owl:onProperty s4bldg:nominalSupplyVoltage ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricFlowStorageDevice rdfs:subClassOf _:genid130 . - -_:genid130 a owl:Restriction ; - owl:onProperty s4bldg:nominalSupplyVoltageMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricFlowStorageDevice rdfs:comment "An electric flow storage device is a device in which electrical energy is stored and from which energy may be progressively released."@en ; - rdfs:label "Electric flow storage device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricFlowStorageDevice" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#ElectricGenerator - -s4bldg:ElectricGenerator a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid131 . - -_:genid131 a owl:Restriction ; - owl:onProperty s4bldg:electricGeneratorEfficiency ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricGenerator rdfs:subClassOf _:genid132 . - -_:genid132 a owl:Restriction ; - owl:onProperty s4bldg:powerOutputMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricGenerator rdfs:subClassOf _:genid133 . - -_:genid133 a owl:Restriction ; - owl:onProperty s4bldg:startCurrentFactor ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricGenerator rdfs:comment "An electric generator is an engine that is a machine for converting mechanical energy into electrical energy."@en ; - rdfs:label "Electric generator"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricGenerator" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#ElectricMotor - -s4bldg:ElectricMotor a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid134 . - -_:genid134 a owl:Restriction ; - owl:onProperty s4bldg:electricMotorEfficiency ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid135 . - -_:genid135 a owl:Restriction ; - owl:onProperty s4bldg:lockedRotorCurrent ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid136 . - -_:genid136 a owl:Restriction ; - owl:onProperty s4bldg:powerOutputMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid137 . - -_:genid137 a owl:Restriction ; - owl:onProperty s4bldg:startCurrentFactor ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid138 . - -_:genid138 a owl:Restriction ; - owl:onProperty s4bldg:startingTime ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid139 . - -_:genid139 a owl:Restriction ; - owl:onProperty s4bldg:teTime ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid140 . - -_:genid140 a owl:Restriction ; - owl:onProperty s4bldg:frameSize ; - owl:allValuesFrom xsd:string . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid141 . - -_:genid141 a owl:Restriction ; - owl:onProperty s4bldg:hasPartWinding ; - owl:allValuesFrom xsd:boolean . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid142 . - -_:genid142 a owl:Restriction ; - owl:onProperty s4bldg:isGuarded ; - owl:allValuesFrom xsd:boolean . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid143 . - -_:genid143 a owl:Restriction ; - owl:onProperty s4bldg:motorEnclosureType ; - owl:allValuesFrom xsd:string . - -s4bldg:ElectricMotor rdfs:comment "An electric motor is an engine that is a machine for converting electrical energy into mechanical energy."@en ; - rdfs:label "Electric motor"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricMotor" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#ElectricTimeControl - -s4bldg:ElectricTimeControl a owl:Class ; - rdfs:subClassOf s4bldg:FlowController ; - rdfs:comment "An electric time control is a device that applies control to the provision or flow of electrical energy over time."@en ; - rdfs:label "Electric time control"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricTimeControl" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#EnergyConversionDevice - -s4bldg:EnergyConversionDevice a owl:Class ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - rdfs:comment "The distribution flow element EnergyConversionDevice defines the occurrence of a device used to perform energy conversion or heat transfer and typically participates in a flow distribution system."@en ; - rdfs:label "Energy conversion device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcEnergyConversionDevice" ; - prov:hadPrimarySource . -# -# https://saref.etsi.org/saref4bldg#Engine - -s4bldg:Engine a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid144 . - -_:genid144 a owl:Restriction ; - owl:onProperty s4bldg:energySource ; - owl:allValuesFrom xsd:string . - -s4bldg:Engine rdfs:comment "An engine is a device that converts fuel into mechanical energy through combustion."@en ; - rdfs:label "Engine"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcEngine" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#EvaporativeCooler - -s4bldg:EvaporativeCooler a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid145 . - -_:genid145 a owl:Restriction ; - owl:onProperty s4bldg:heatExchangeArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:EvaporativeCooler rdfs:subClassOf _:genid146 . - -_:genid146 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:EvaporativeCooler rdfs:subClassOf _:genid147 . - -_:genid147 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:EvaporativeCooler rdfs:subClassOf _:genid148 . - -_:genid148 a owl:Restriction ; - owl:onProperty s4bldg:waterRequirement ; - owl:allValuesFrom saref:Measurement . - -s4bldg:EvaporativeCooler rdfs:subClassOf _:genid149 . - -_:genid149 a owl:Restriction ; - owl:onProperty s4bldg:flowArrangement ; - owl:allValuesFrom xsd:string . - -s4bldg:EvaporativeCooler rdfs:comment "An evaporative cooler is a device that cools air by saturating it with water vapor."@en ; - rdfs:label "Evaporative cooler"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcEvaporativeCooler" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Evaporator - -s4bldg:Evaporator a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid150 . - -_:genid150 a owl:Restriction ; - owl:onProperty s4bldg:externalSurfaceArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Evaporator rdfs:subClassOf _:genid151 . - -_:genid151 a owl:Restriction ; - owl:onProperty s4bldg:internalRefrigerantVolume ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Evaporator rdfs:subClassOf _:genid152 . - -_:genid152 a owl:Restriction ; - owl:onProperty s4bldg:internalSurfaceArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Evaporator rdfs:subClassOf _:genid153 . - -_:genid153 a owl:Restriction ; - owl:onProperty s4bldg:internalWaterVolume ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Evaporator rdfs:subClassOf _:genid154 . - -_:genid154 a owl:Restriction ; - owl:onProperty s4bldg:nominalHeatTransferArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Evaporator rdfs:subClassOf _:genid155 . - -_:genid155 a owl:Restriction ; - owl:onProperty s4bldg:nominalHeatTransferCoefficient ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Evaporator rdfs:subClassOf _:genid156 . - -_:genid156 a owl:Restriction ; - owl:onProperty s4bldg:evaporationCoolant ; - owl:allValuesFrom xsd:string . - -s4bldg:Evaporator rdfs:subClassOf _:genid157 . - -_:genid157 a owl:Restriction ; - owl:onProperty s4bldg:evaporationMediumType ; - owl:allValuesFrom xsd:string . - -s4bldg:Evaporator rdfs:subClassOf _:genid158 . - -_:genid158 a owl:Restriction ; - owl:onProperty s4bldg:refrigerantClass ; - owl:allValuesFrom xsd:string . - -s4bldg:Evaporator rdfs:comment "An evaporator is a device in which a liquid refrigerent is vaporized and absorbs heat from the surrounding fluid."@en ; - rdfs:label "Evaporator"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcEvaporator" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Fan - -s4bldg:Fan a owl:Class ; - rdfs:subClassOf s4bldg:FlowMovingDevice , _:genid159 . - -_:genid159 a owl:Restriction ; - owl:onProperty s4bldg:nominalAirFlowRate ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Fan rdfs:subClassOf _:genid160 . - -_:genid160 a owl:Restriction ; - owl:onProperty s4bldg:nominalPowerRate ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Fan rdfs:subClassOf _:genid161 . - -_:genid161 a owl:Restriction ; - owl:onProperty s4bldg:nominalRotationSpeed ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Fan rdfs:subClassOf _:genid162 . - -_:genid162 a owl:Restriction ; - owl:onProperty s4bldg:nominalStaticPressure ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Fan rdfs:subClassOf _:genid163 . - -_:genid163 a owl:Restriction ; - owl:onProperty s4bldg:nominalTotalPressure ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Fan rdfs:subClassOf _:genid164 . - -_:genid164 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Fan rdfs:subClassOf _:genid165 . - -_:genid165 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Fan rdfs:subClassOf _:genid166 . - -_:genid166 a owl:Restriction ; - owl:onProperty s4bldg:operationalRiterial ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Fan rdfs:subClassOf _:genid167 . - -_:genid167 a owl:Restriction ; - owl:onProperty s4bldg:capacityControlType ; - owl:allValuesFrom xsd:string . - -s4bldg:Fan rdfs:subClassOf _:genid168 . - -_:genid168 a owl:Restriction ; - owl:onProperty s4bldg:motorDriveType ; - owl:allValuesFrom xsd:string . - -s4bldg:Fan rdfs:comment "A fan is a device which imparts mechanical work on a gas. A typical usage of a fan is to induce airflow in a building services air distribution system."@en ; - rdfs:label "Fan"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFan" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Filter - -s4bldg:Filter a owl:Class ; - rdfs:subClassOf s4bldg:FlowTreatmentDevice , _:genid169 . - -_:genid169 a owl:Restriction ; - owl:onProperty s4bldg:finalResistance ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid170 . - -_:genid170 a owl:Restriction ; - owl:onProperty s4bldg:fluidFlowRateMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid171 . - -_:genid171 a owl:Restriction ; - owl:onProperty s4bldg:fluidFlowRateMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid172 . - -_:genid172 a owl:Restriction ; - owl:onProperty s4bldg:initialResistance ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid173 . - -_:genid173 a owl:Restriction ; - owl:onProperty s4bldg:nominalFilterFaceVelocity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid174 . - -_:genid174 a owl:Restriction ; - owl:onProperty s4bldg:nominalFlowRate ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid175 . - -_:genid175 a owl:Restriction ; - owl:onProperty s4bldg:nominalMediaSurfaceVelocity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid176 . - -_:genid176 a owl:Restriction ; - owl:onProperty s4bldg:nominalParticleGeometricMeanDiameter ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid177 . - -_:genid177 a owl:Restriction ; - owl:onProperty s4bldg:nominalParticleGeometricStandardDeviation ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid178 . - -_:genid178 a owl:Restriction ; - owl:onProperty s4bldg:nominalPressureDrop ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid179 . - -_:genid179 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid180 . - -_:genid180 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid181 . - -_:genid181 a owl:Restriction ; - owl:onProperty s4bldg:weight ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:comment "A filter is an apparatus used to remove particulate or gaseous matter from fluids and gases."@en ; - rdfs:label "Filter"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFilter" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#FireSuppressionTerminal - -s4bldg:FireSuppressionTerminal a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:comment """A fire suppression terminal has the purpose of delivering a fluid (gas or liquid) that will suppress a fire. - -A fire suppression terminal provides for all forms of sprinkler, spreader and other form of terminal that is connected to a pipework system and intended to act in the role of suppressing a fire."""@en ; - rdfs:label "Fire suppression terminal"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFireSuppressionTerminal" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#FlowController - -s4bldg:FlowController a owl:Class ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - rdfs:comment "The distribution flow element FlowController defines the occurrence of elements of a distribution system that are used to regulate flow through a distribution system. Examples include dampers, valves, switches, and relays."@en ; - rdfs:label "Flow controller"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowController" ; - prov:hadPrimarySource . -# -# https://saref.etsi.org/saref4bldg#FlowInstrument - -s4bldg:FlowInstrument a owl:Class ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - rdfs:comment """A flow instrument reads and displays the value of a particular property of a system at a point, or displays the difference in the value of a property between two points. - -Instrumentation is typically for the purpose of determining the value of the property at a point in time. It is not the purpose of an instrument to record or integrate the values over time (although they may be connected to recording devices that do perform such a function). This entity provides for all forms of mechanical flow instrument (thermometers, pressure gauges etc.) and electrical flow instruments (ammeters, voltmeters etc.)"""@en ; - rdfs:label "Flow instrument"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowInstrument" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#FlowMeter - -s4bldg:FlowMeter a owl:Class ; - rdfs:subClassOf s4bldg:FlowController , _:genid182 . - -_:genid182 a owl:Restriction ; - owl:onProperty s4bldg:readOutType ; - owl:allValuesFrom xsd:string . - -s4bldg:FlowMeter rdfs:subClassOf _:genid183 . - -_:genid183 a owl:Restriction ; - owl:onProperty s4bldg:remoteReading ; - owl:allValuesFrom xsd:boolean . - -s4bldg:FlowMeter rdfs:comment "A flow meter is a device that is used to measure the flow rate in a system."@en ; - rdfs:label "Flow meter"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowMeter" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#FlowMovingDevice - -s4bldg:FlowMovingDevice a owl:Class ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - rdfs:comment "The distribution flow element FlowMovingDevice defines the occurrence of an apparatus used to distribute, circulate or perform conveyance of fluids, including liquids and gases (such as a pump or fan), and typically participates in a flow distribution system."@en ; - rdfs:label "Flow moving device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowMovingDevice" ; - prov:hadPrimarySource . -# -# https://saref.etsi.org/saref4bldg#FlowStorageDevice - -s4bldg:FlowStorageDevice a owl:Class ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - rdfs:comment "The distribution flow element FlowStorageDevice defines the occurrence of a device that participates in a distribution system and is used for temporary storage (such as a tank)."@en ; - rdfs:label "Flow storage device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowStorageDevice" ; - prov:hadPrimarySource . -# -# https://saref.etsi.org/saref4bldg#FlowTerminal - -s4bldg:FlowTerminal a owl:Class ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - rdfs:comment "The distribution flow element FlowTerminal defines the occurrence of a permanently attached element that acts as a terminus or beginning of a distribution system (such as an air outlet, drain, water closet, or sink). A terminal is typically a point at which a system interfaces with an external environment."@en ; - rdfs:label "Flow terminal"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowTerminal" ; - prov:hadPrimarySource . -# -# https://saref.etsi.org/saref4bldg#FlowTreatmentDevice - -s4bldg:FlowTreatmentDevice a owl:Class ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - rdfs:comment "The distribution flow element FlowTreatmentDevice defines the occurrence of a device typically used to remove unwanted matter from a fluid, either liquid or gas, and typically participates in a flow distribution system."@en ; - rdfs:label "Flow treatment device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowTreatmentDevice" ; - prov:hadPrimarySource . -# -# https://saref.etsi.org/saref4bldg#HeatExchanger - -s4bldg:HeatExchanger a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid184 . - -_:genid184 a owl:Restriction ; - owl:onProperty s4bldg:arrangement ; - owl:allValuesFrom xsd:string . - -s4bldg:HeatExchanger rdfs:comment "A heat exchanger is a device used to provide heat transfer between non-mixing media such as plate and shell and tube heat exchangers. HeatExchanger is commonly used on water-side distribution systems to recover energy from a liquid to another liquid (typically water-based), whereas AirToAirHeatRecovery is commonly used on air-side distribution systems to recover energy from a gas to a gas (usually air)."@en ; - rdfs:label "Heat exchanger"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcHeatExchanger" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Humidifier - -s4bldg:Humidifier a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid185 . - -_:genid185 a owl:Restriction ; - owl:onProperty s4bldg:nominalAirFlowRate ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Humidifier rdfs:subClassOf _:genid186 . - -_:genid186 a owl:Restriction ; - owl:onProperty s4bldg:nominalMoistureGain ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Humidifier rdfs:subClassOf _:genid187 . - -_:genid187 a owl:Restriction ; - owl:onProperty s4bldg:waterRequirement ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Humidifier rdfs:subClassOf _:genid188 . - -_:genid188 a owl:Restriction ; - owl:onProperty s4bldg:weight ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Humidifier rdfs:subClassOf _:genid189 . - -_:genid189 a owl:Restriction ; - owl:onProperty s4bldg:application ; - owl:allValuesFrom xsd:string . - -s4bldg:Humidifier rdfs:subClassOf _:genid190 . - -_:genid190 a owl:Restriction ; - owl:onProperty s4bldg:internalControl ; - owl:allValuesFrom xsd:string . - -s4bldg:Humidifier rdfs:comment "A humidifier is a device that adds moisture into the air."@en ; - rdfs:label "Humidifier"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcHumidifier" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Interceptor - -s4bldg:Interceptor a owl:Class ; - rdfs:subClassOf s4bldg:FlowTreatmentDevice , _:genid191 . - -_:genid191 a owl:Restriction ; - owl:onProperty s4bldg:coverLength ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Interceptor rdfs:subClassOf _:genid192 . - -_:genid192 a owl:Restriction ; - owl:onProperty s4bldg:coverWidth ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Interceptor rdfs:subClassOf _:genid193 . - -_:genid193 a owl:Restriction ; - owl:onProperty s4bldg:inletConnectionSize ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Interceptor rdfs:subClassOf _:genid194 . - -_:genid194 a owl:Restriction ; - owl:onProperty s4bldg:nominalBodyDepth ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Interceptor rdfs:subClassOf _:genid195 . - -_:genid195 a owl:Restriction ; - owl:onProperty s4bldg:nominalBodyLength ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Interceptor rdfs:subClassOf _:genid196 . - -_:genid196 a owl:Restriction ; - owl:onProperty s4bldg:nominalBodyWidth ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Interceptor rdfs:subClassOf _:genid197 . - -_:genid197 a owl:Restriction ; - owl:onProperty s4bldg:outletConnectionSize ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Interceptor rdfs:subClassOf _:genid198 . - -_:genid198 a owl:Restriction ; - owl:onProperty s4bldg:ventilatingPipeSize ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Interceptor rdfs:comment "An interceptor is a device designed and installed in order to separate and retain deleterious, hazardous or undesirable matter while permitting normal sewage or liquids to discharge into a collection system by gravity."@en ; - rdfs:label "Interceptor"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcInterceptor" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Lamp - -s4bldg:Lamp a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal , _:genid199 . - -_:genid199 a owl:Restriction ; - owl:onProperty s4bldg:colorTemperature ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Lamp rdfs:subClassOf _:genid200 . - -_:genid200 a owl:Restriction ; - owl:onProperty s4bldg:contributedLuminousFlux ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Lamp rdfs:subClassOf _:genid201 . - -_:genid201 a owl:Restriction ; - owl:onProperty s4bldg:lampMaintenanceFactor ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Lamp rdfs:subClassOf _:genid202 . - -_:genid202 a owl:Restriction ; - owl:onProperty s4bldg:lightEmitterNominalPower ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Lamp rdfs:subClassOf _:genid203 . - -_:genid203 a owl:Restriction ; - owl:onProperty s4bldg:spectrumMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Lamp rdfs:subClassOf _:genid204 . - -_:genid204 a owl:Restriction ; - owl:onProperty s4bldg:spectrumMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Lamp rdfs:subClassOf _:genid205 . - -_:genid205 a owl:Restriction ; - owl:onProperty s4bldg:colorAppearance ; - owl:allValuesFrom xsd:string . - -s4bldg:Lamp rdfs:subClassOf _:genid206 . - -_:genid206 a owl:Restriction ; - owl:onProperty s4bldg:colorRenderingIndex ; - owl:allValuesFrom xsd:integer . - -s4bldg:Lamp rdfs:subClassOf _:genid207 . - -_:genid207 a owl:Restriction ; - owl:onProperty s4bldg:lampBallastType ; - owl:allValuesFrom xsd:string . - -s4bldg:Lamp rdfs:subClassOf _:genid208 . - -_:genid208 a owl:Restriction ; - owl:onProperty s4bldg:lampCompensationType ; - owl:allValuesFrom xsd:string . - -s4bldg:Lamp rdfs:comment "A lamp is an artificial light source such as a light bulb or tube."@en ; - rdfs:label "Lamp"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcLamp" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#MedicalDevice - -s4bldg:MedicalDevice a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:comment "A medical device is attached to a medical piping system and operates upon medical gases to perform a specific function. Medical gases include medical air, medical vacuum, oxygen, carbon dioxide, nitrogen, and nitrous oxide."@en ; - rdfs:label "Medical device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcMedicalDevice" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Outlet - -s4bldg:Outlet a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal , _:genid209 . - -_:genid209 a owl:Restriction ; - owl:onProperty s4bldg:isPluggableOutlet ; - owl:allValuesFrom xsd:boolean . - -s4bldg:Outlet rdfs:subClassOf _:genid210 . - -_:genid210 a owl:Restriction ; - owl:onProperty s4bldg:numberOsSockets ; - owl:allValuesFrom xsd:integer . - -s4bldg:Outlet rdfs:comment """An outlet is a device installed at a point to receive one or more inserted plugs for electrical power or communications. - -Power outlets are commonly connected within a junction box; data outlets may be directly connected to a wall. For power outlets sharing the same circuit within a junction box, the ports should indicate the logical wiring relationship to the enclosing junction box, even though they may be physically connected to a cable going to another outlet, switch, or fixture."""@en ; - rdfs:label "Outlet"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcOutlet" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#PhysicalObject - -s4bldg:PhysicalObject a owl:Class ; - rdfs:subClassOf _:genid211 . - -_:genid211 a owl:Restriction ; - owl:onProperty s4bldg:contains ; - owl:allValuesFrom s4bldg:PhysicalObject . - -s4bldg:PhysicalObject rdfs:subClassOf _:genid212 . - -_:genid212 a owl:Restriction ; - owl:onProperty s4bldg:isContainedIn ; - owl:allValuesFrom _:genid213 . - -_:genid213 a owl:Class ; - owl:unionOf _:genid215 . - -_:genid215 a rdf:List ; - rdf:first s4bldg:BuildingSpace ; - rdf:rest _:genid214 . - -_:genid214 a rdf:List ; - rdf:first s4bldg:PhysicalObject ; - rdf:rest rdf:nil . - -s4bldg:PhysicalObject rdfs:comment "Any Object that has a proper space region. (Definition extracted from DUL ontology)"@en ; - rdfs:label "Physical object"@en . -# -# https://saref.etsi.org/saref4bldg#ProtectiveDevice - -s4bldg:ProtectiveDevice a owl:Class ; - rdfs:subClassOf s4bldg:FlowController ; - rdfs:comment """A protective device breaks an electrical circuit when a stated electric current that passes through it is exceeded. - -A protective device provides protection against electrical current only (not as a general protective device). It may be used to represent the complete set of elements including both the tripping unit and the breaking unit that provide the protection. This may be particularly useful at earlier stages of design where the approach to breaking the electrical supply may be determined but the method of tripping may not. Alternatively, this entity may be used to specifically represent the breaking unit alone (in which case the tripping unit will also be specifically identified). This entity is specific to dedicated protective devices and excludes electrical outlets that may have circuit protection."""@en ; - rdfs:label "Protective device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcProtectiveDevice" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#ProtectiveDeviceTrippingUnit - -s4bldg:ProtectiveDeviceTrippingUnit a owl:Class ; - rdfs:subClassOf s4bldg:DistributionControlDevice , _:genid216 . - -_:genid216 a owl:Restriction ; - owl:onProperty s4bldg:limitingTerminalSize ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ProtectiveDeviceTrippingUnit rdfs:subClassOf _:genid217 . - -_:genid217 a owl:Restriction ; - owl:onProperty s4bldg:standard ; - owl:allValuesFrom xsd:string . - -s4bldg:ProtectiveDeviceTrippingUnit rdfs:comment "A protective device tripping unit breaks an electrical circuit at a separate breaking unit when a stated electric current that passes through the unit is exceeded."@en ; - rdfs:label "Protective device tripping unit"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcProtectiveDeviceTrippingUnit" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Pump - -s4bldg:Pump a owl:Class ; - rdfs:subClassOf s4bldg:FlowMovingDevice , _:genid218 . - -_:genid218 a owl:Restriction ; - owl:onProperty s4bldg:connectionSize ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:subClassOf _:genid219 . - -_:genid219 a owl:Restriction ; - owl:onProperty s4bldg:flowResistanceMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:subClassOf _:genid220 . - -_:genid220 a owl:Restriction ; - owl:onProperty s4bldg:flowResistanceMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:subClassOf _:genid221 . - -_:genid221 a owl:Restriction ; - owl:onProperty s4bldg:netPositiveSuctionHead ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:subClassOf _:genid222 . - -_:genid222 a owl:Restriction ; - owl:onProperty s4bldg:nomminalRotationSpeed ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:subClassOf _:genid223 . - -_:genid223 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:subClassOf _:genid224 . - -_:genid224 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:subClassOf _:genid225 . - -_:genid225 a owl:Restriction ; - owl:onProperty s4bldg:pumpFlowRateMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:subClassOf _:genid226 . - -_:genid226 a owl:Restriction ; - owl:onProperty s4bldg:pumpFlowRateMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:comment "A pump is a device which imparts mechanical work on fluids or slurries to move them through a channel or pipeline. A typical use of a pump is to circulate chilled water or heating hot water in a building services distribution system."@en ; - rdfs:label "Pump"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcPump" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#SanitaryTerminal - -s4bldg:SanitaryTerminal a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:comment "A sanitary terminal is a fixed appliance or terminal usually supplied with water and used for drinking, cleaning or foul water disposal or that is an item of equipment directly used with such an appliance or terminal."@en ; - rdfs:label "Sanitary terminal"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSanitaryTerminal" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Sensor - -s4bldg:Sensor a owl:Class ; - rdfs:subClassOf s4bldg:DistributionControlDevice , saref:Sensor ; - rdfs:comment "A sensor is a device that measures a physical quantity and converts it into a signal which can be read by an observer or by an instrument."@en ; - rdfs:label "Sensor"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSensor" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#ShadingDevice - -s4bldg:ShadingDevice a owl:Class ; - rdfs:subClassOf s4bldg:BuildingDevice , _:genid227 . - -_:genid227 a owl:Restriction ; - owl:onProperty s4bldg:solarReflectance ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ShadingDevice rdfs:subClassOf _:genid228 . - -_:genid228 a owl:Restriction ; - owl:onProperty s4bldg:solarTransmittance ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ShadingDevice rdfs:subClassOf _:genid229 . - -_:genid229 a owl:Restriction ; - owl:onProperty s4bldg:thermalTransmittance ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ShadingDevice rdfs:subClassOf _:genid230 . - -_:genid230 a owl:Restriction ; - owl:onProperty s4bldg:visibleLightReflectance ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ShadingDevice rdfs:subClassOf _:genid231 . - -_:genid231 a owl:Restriction ; - owl:onProperty s4bldg:visibleLightTransmittance ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ShadingDevice rdfs:subClassOf _:genid232 . - -_:genid232 a owl:Restriction ; - owl:onProperty s4bldg:isExternal ; - owl:allValuesFrom xsd:boolean . - -s4bldg:ShadingDevice rdfs:subClassOf _:genid233 . - -_:genid233 a owl:Restriction ; - owl:onProperty s4bldg:mechanicalOperated ; - owl:allValuesFrom xsd:boolean . - -s4bldg:ShadingDevice rdfs:subClassOf _:genid234 . - -_:genid234 a owl:Restriction ; - owl:onProperty s4bldg:roughness ; - owl:allValuesFrom xsd:string . - -s4bldg:ShadingDevice rdfs:subClassOf _:genid235 . - -_:genid235 a owl:Restriction ; - owl:onProperty s4bldg:shadingDeviceType ; - owl:allValuesFrom xsd:string . - -s4bldg:ShadingDevice rdfs:comment "Shading devices are purpose built devices to protect from the sunlight, from natural light, or screening them from view. Shading devices can form part of the facade or can be mounted inside the building, they can be fixed or operable."@en ; - rdfs:label "Shading device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcShadingDevice" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#SolarDevice - -s4bldg:SolarDevice a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:comment "A solar device converts solar radiation into other energy such as electric current or thermal energy."@en ; - rdfs:label "Solar device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSolarDevice" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#SpaceHeater - -s4bldg:SpaceHeater a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal , _:genid236 . - -_:genid236 a owl:Restriction ; - owl:onProperty s4bldg:bodyMass ; - owl:allValuesFrom saref:Measurement . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid237 . - -_:genid237 a owl:Restriction ; - owl:onProperty s4bldg:outputCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid238 . - -_:genid238 a owl:Restriction ; - owl:onProperty s4bldg:thermalEfficiency ; - owl:allValuesFrom saref:Measurement . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid239 . - -_:genid239 a owl:Restriction ; - owl:onProperty s4bldg:thermalMassHeatCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid240 . - -_:genid240 a owl:Restriction ; - owl:onProperty s4bldg:energySource ; - owl:allValuesFrom xsd:string . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid241 . - -_:genid241 a owl:Restriction ; - owl:onProperty s4bldg:heatTransferDimension ; - owl:allValuesFrom xsd:string . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid242 . - -_:genid242 a owl:Restriction ; - owl:onProperty s4bldg:heatTransferMedium ; - owl:allValuesFrom xsd:string . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid243 . - -_:genid243 a owl:Restriction ; - owl:onProperty s4bldg:numberOfPanels ; - owl:allValuesFrom xsd:integer . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid244 . - -_:genid244 a owl:Restriction ; - owl:onProperty s4bldg:numberOfSections ; - owl:allValuesFrom xsd:integer . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid245 . - -_:genid245 a owl:Restriction ; - owl:onProperty s4bldg:placementType ; - owl:allValuesFrom xsd:string . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid246 . - -_:genid246 a owl:Restriction ; - owl:onProperty s4bldg:temperatureClassification ; - owl:allValuesFrom xsd:string . - -s4bldg:SpaceHeater rdfs:comment """Space heaters utilize a combination of radiation and/or natural convection using a heating source such as electricity, steam or hot water to heat a limited space or area. Examples of space heaters include radiators, convectors, baseboard and finned-tube heaters. - -UnitaryEquipment should be used for packaged units supporting a combination of heating, cooling, and/or dehumidification; Coil should be used for coil-based floor heating."""@en ; - rdfs:label "Space heater"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSpaceHeater" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#SwitchingDevice - -s4bldg:SwitchingDevice a owl:Class ; - rdfs:subClassOf s4bldg:FlowController , _:genid247 . - -_:genid247 a owl:Restriction ; - owl:onProperty s4bldg:hasLock ; - owl:allValuesFrom xsd:boolean . - -s4bldg:SwitchingDevice rdfs:subClassOf _:genid248 . - -_:genid248 a owl:Restriction ; - owl:onProperty s4bldg:isIlluminated ; - owl:allValuesFrom xsd:boolean . - -s4bldg:SwitchingDevice rdfs:subClassOf _:genid249 . - -_:genid249 a owl:Restriction ; - owl:onProperty s4bldg:legend ; - owl:allValuesFrom xsd:string . - -s4bldg:SwitchingDevice rdfs:subClassOf _:genid250 . - -_:genid250 a owl:Restriction ; - owl:onProperty s4bldg:numberOfGangs ; - owl:allValuesFrom xsd:integer . - -s4bldg:SwitchingDevice rdfs:subClassOf _:genid251 . - -_:genid251 a owl:Restriction ; - owl:onProperty s4bldg:switchFunction ; - owl:allValuesFrom xsd:string . - -s4bldg:SwitchingDevice rdfs:comment """A switch is used in a cable distribution system (electrical circuit) to control or modulate the flow of electricity. - -Switches include those used for electrical power, communications, audio-visual, or other distribution system types as determined by the available ports."""@en ; - rdfs:label "Switching device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSwitchingDevice" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Tank - -s4bldg:Tank a owl:Class ; - rdfs:subClassOf s4bldg:FlowStorageDevice , _:genid252 . - -_:genid252 a owl:Restriction ; - owl:onProperty s4bldg:effectiveCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Tank rdfs:subClassOf _:genid253 . - -_:genid253 a owl:Restriction ; - owl:onProperty s4bldg:firstCurvatureRadius ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Tank rdfs:subClassOf _:genid254 . - -_:genid254 a owl:Restriction ; - owl:onProperty s4bldg:nominalDepth ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Tank rdfs:subClassOf _:genid255 . - -_:genid255 a owl:Restriction ; - owl:onProperty s4bldg:nominalLengthOrDiameter ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Tank rdfs:subClassOf _:genid256 . - -_:genid256 a owl:Restriction ; - owl:onProperty s4bldg:nominalVolumetricCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Tank rdfs:subClassOf _:genid257 . - -_:genid257 a owl:Restriction ; - owl:onProperty s4bldg:nominalWidthOrDiameter ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Tank rdfs:subClassOf _:genid258 . - -_:genid258 a owl:Restriction ; - owl:onProperty s4bldg:operatingWeight ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Tank rdfs:subClassOf _:genid259 . - -_:genid259 a owl:Restriction ; - owl:onProperty s4bldg:secondCurvatureRadius ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Tank rdfs:subClassOf _:genid260 . - -_:genid260 a owl:Restriction ; - owl:onProperty s4bldg:accessType ; - owl:allValuesFrom xsd:string . - -s4bldg:Tank rdfs:subClassOf _:genid261 . - -_:genid261 a owl:Restriction ; - owl:onProperty s4bldg:endShapeType ; - owl:allValuesFrom xsd:string . - -s4bldg:Tank rdfs:subClassOf _:genid262 . - -_:genid262 a owl:Restriction ; - owl:onProperty s4bldg:numberOfSections ; - owl:allValuesFrom xsd:integer . - -s4bldg:Tank rdfs:subClassOf _:genid263 . - -_:genid263 a owl:Restriction ; - owl:onProperty s4bldg:patternType ; - owl:allValuesFrom xsd:string . - -s4bldg:Tank rdfs:subClassOf _:genid264 . - -_:genid264 a owl:Restriction ; - owl:onProperty s4bldg:storageType ; - owl:allValuesFrom xsd:string . - -s4bldg:Tank rdfs:comment "A tank is a vessel or container in which a fluid or gas is stored for later use."@en ; - rdfs:label "Tank"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcTank" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Transformer - -s4bldg:Transformer a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid265 . - -_:genid265 a owl:Restriction ; - owl:onProperty s4bldg:apparentPowerMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid266 . - -_:genid266 a owl:Restriction ; - owl:onProperty s4bldg:imaginaryImpedanceRatio ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid267 . - -_:genid267 a owl:Restriction ; - owl:onProperty s4bldg:primaryApparentPower ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid268 . - -_:genid268 a owl:Restriction ; - owl:onProperty s4bldg:primaryCurrent ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid269 . - -_:genid269 a owl:Restriction ; - owl:onProperty s4bldg:primaryFrequency ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid270 . - -_:genid270 a owl:Restriction ; - owl:onProperty s4bldg:primaryVoltage ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid271 . - -_:genid271 a owl:Restriction ; - owl:onProperty s4bldg:realImpedanceRatio ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid272 . - -_:genid272 a owl:Restriction ; - owl:onProperty s4bldg:secondaryApparentPower ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid273 . - -_:genid273 a owl:Restriction ; - owl:onProperty s4bldg:secondaryCurrent ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid274 . - -_:genid274 a owl:Restriction ; - owl:onProperty s4bldg:secondaryFrequency ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid275 . - -_:genid275 a owl:Restriction ; - owl:onProperty s4bldg:secondaryVoltage ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid276 . - -_:genid276 a owl:Restriction ; - owl:onProperty s4bldg:isNeutralPrimaryTerminalAvailable ; - owl:allValuesFrom xsd:boolean . - -s4bldg:Transformer rdfs:subClassOf _:genid277 . - -_:genid277 a owl:Restriction ; - owl:onProperty s4bldg:isNeutralSecondaryTerminalAvailable ; - owl:allValuesFrom xsd:boolean . - -s4bldg:Transformer rdfs:subClassOf _:genid278 . - -_:genid278 a owl:Restriction ; - owl:onProperty s4bldg:secondaryCurrentType ; - owl:allValuesFrom xsd:string . - -s4bldg:Transformer rdfs:subClassOf _:genid279 . - -_:genid279 a owl:Restriction ; - owl:onProperty s4bldg:transformerVectorGroup ; - owl:allValuesFrom xsd:string . - -s4bldg:Transformer rdfs:comment """A transformer is an inductive stationary device that transfers electrical energy from one circuit to another. - -Transformer is used to transform electric power; conversion of electric signals for other purposes is handled at other entities: Controller converts arbitrary signals, AudioVisualAppliance converts signals for audio or video streams, and CommunicationsAppliance converts signals for data or other communications usage."""@en ; - rdfs:label "Transformer"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcTransformer" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#TransportElement - -s4bldg:TransportElement a owl:Class ; - rdfs:subClassOf saref:Device , _:genid280 . - -_:genid280 a owl:Restriction ; - owl:onProperty s4bldg:capacityWeight ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TransportElement rdfs:subClassOf _:genid281 . - -_:genid281 a owl:Restriction ; - owl:onProperty s4bldg:capacityPeople ; - owl:allValuesFrom xsd:positiveInteger . - -s4bldg:TransportElement rdfs:subClassOf _:genid282 . - -_:genid282 a owl:Restriction ; - owl:onProperty s4bldg:fireExit ; - owl:allValuesFrom xsd:boolean . - -s4bldg:TransportElement rdfs:comment "A transport element is a generalization of all transport related objects that move people, animals or goods within a building or building complex. The TransportElement defines the occurrence of a transport element. "@en ; - rdfs:label "Transport element"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcTransportElement" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#TubeBundle - -s4bldg:TubeBundle a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid283 . - -_:genid283 a owl:Restriction ; - owl:onProperty s4bldg:foulingFactor ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid284 . - -_:genid284 a owl:Restriction ; - owl:onProperty s4bldg:horizontalSpacing ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid285 . - -_:genid285 a owl:Restriction ; - owl:onProperty s4bldg:inLineRowSpacing ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid286 . - -_:genid286 a owl:Restriction ; - owl:onProperty s4bldg:insideDiameter ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid287 . - -_:genid287 a owl:Restriction ; - owl:onProperty s4bldg:length ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid288 . - -_:genid288 a owl:Restriction ; - owl:onProperty s4bldg:nominalDiameter ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid289 . - -_:genid289 a owl:Restriction ; - owl:onProperty s4bldg:outsideDiameter ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid290 . - -_:genid290 a owl:Restriction ; - owl:onProperty s4bldg:staggeredRowSpacing ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid291 . - -_:genid291 a owl:Restriction ; - owl:onProperty s4bldg:thermalConductivity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid292 . - -_:genid292 a owl:Restriction ; - owl:onProperty s4bldg:verticalSpacing ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid293 . - -_:genid293 a owl:Restriction ; - owl:onProperty s4bldg:volumen ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid294 . - -_:genid294 a owl:Restriction ; - owl:onProperty s4bldg:hasTurbulator ; - owl:allValuesFrom xsd:boolean . - -s4bldg:TubeBundle rdfs:subClassOf _:genid295 . - -_:genid295 a owl:Restriction ; - owl:onProperty s4bldg:numberOfCircuits ; - owl:allValuesFrom xsd:integer . - -s4bldg:TubeBundle rdfs:subClassOf _:genid296 . - -_:genid296 a owl:Restriction ; - owl:onProperty s4bldg:numberOfRows ; - owl:allValuesFrom xsd:integer . - -s4bldg:TubeBundle rdfs:comment "A tube bundle is a device consisting of tubes and bundles of tubes used for heat transfer and contained typically within other energy conversion devices, such as a chiller or coil."@en ; - rdfs:label "Tube bundle"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcTubeBundle" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#UnitaryControlElement - -s4bldg:UnitaryControlElement a owl:Class ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - rdfs:comment """A unitary control element combines a number of control components into a single product, such as a thermostat or humidistat. - -A unitary control element provides a housing for an aggregation of control or electrical distribution elements that, in combination, perform a singular (unitary) purpose. Each item in the aggregation may have its own geometric representation and location."""@en ; - rdfs:label "Unitary control element"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcUnitaryControlElement" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Valve - -s4bldg:Valve a owl:Class ; - rdfs:subClassOf s4bldg:FlowController , _:genid297 . - -_:genid297 a owl:Restriction ; - owl:onProperty s4bldg:closeOffRating ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Valve rdfs:subClassOf _:genid298 . - -_:genid298 a owl:Restriction ; - owl:onProperty s4bldg:flowCoefficient ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Valve rdfs:subClassOf _:genid299 . - -_:genid299 a owl:Restriction ; - owl:onProperty s4bldg:size ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Valve rdfs:subClassOf _:genid300 . - -_:genid300 a owl:Restriction ; - owl:onProperty s4bldg:testPressure ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Valve rdfs:subClassOf _:genid301 . - -_:genid301 a owl:Restriction ; - owl:onProperty s4bldg:workingPressure ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Valve rdfs:subClassOf _:genid302 . - -_:genid302 a owl:Restriction ; - owl:onProperty s4bldg:valveMechanism ; - owl:allValuesFrom xsd:string . - -s4bldg:Valve rdfs:subClassOf _:genid303 . - -_:genid303 a owl:Restriction ; - owl:onProperty s4bldg:valveOperation ; - owl:allValuesFrom xsd:string . - -s4bldg:Valve rdfs:subClassOf _:genid304 . - -_:genid304 a owl:Restriction ; - owl:onProperty s4bldg:valvePattern ; - owl:allValuesFrom xsd:string . - -s4bldg:Valve rdfs:comment "A valve is used in a building services piping distribution system to control or modulate the flow of the fluid."@en ; - rdfs:label "Valve"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcValve" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#VibrationIsolator - -s4bldg:VibrationIsolator a owl:Class ; - rdfs:subClassOf saref:Device , _:genid305 . - -_:genid305 a owl:Restriction ; - owl:onProperty s4bldg:height ; - owl:allValuesFrom saref:Measurement . - -s4bldg:VibrationIsolator rdfs:subClassOf _:genid306 . - -_:genid306 a owl:Restriction ; - owl:onProperty s4bldg:isolatorCompressibility ; - owl:allValuesFrom saref:Measurement . - -s4bldg:VibrationIsolator rdfs:subClassOf _:genid307 . - -_:genid307 a owl:Restriction ; - owl:onProperty s4bldg:isolatorStaticDeflection ; - owl:allValuesFrom saref:Measurement . - -s4bldg:VibrationIsolator rdfs:subClassOf _:genid308 . - -_:genid308 a owl:Restriction ; - owl:onProperty s4bldg:supportedWeightMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:VibrationIsolator rdfs:subClassOf _:genid309 . - -_:genid309 a owl:Restriction ; - owl:onProperty s4bldg:vibrationTransmissibility ; - owl:allValuesFrom saref:Measurement . - -s4bldg:VibrationIsolator rdfs:comment "A vibration isolator is a device used to minimize the effects of vibration transmissibility in a building."@en ; - rdfs:label "Vibration isolator"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcVibrationIsolator" ; - prov:hadPrimarySource , . -# -# https://w3id.org/saref#Actuator - -saref:Actuator a owl:Class ; - rdfs:comment "A device responsible for moving or controlling a mechanism or system"@en ; - rdfs:isDefinedBy ; - rdfs:label "Actuator"@en . -# -# https://w3id.org/saref#Device - -saref:Device a owl:Class ; - rdfs:subClassOf s4bldg:PhysicalObject ; - rdfs:comment "A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function."@en ; - rdfs:isDefinedBy ; - rdfs:label "Device"@en . -# -# https://w3id.org/saref#Measurement - -saref:Measurement a owl:Class ; - rdfs:subClassOf _:genid310 . - -_:genid310 a owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:allValuesFrom saref:UnitOfMeasure . - -saref:Measurement rdfs:subClassOf _:genid311 . - -_:genid311 a owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:allValuesFrom saref:Property . - -saref:Measurement rdfs:subClassOf _:genid312 . - -_:genid312 a owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:UnitOfMeasure . - -saref:Measurement rdfs:subClassOf _:genid313 . - -_:genid313 a owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Property . - -saref:Measurement rdfs:subClassOf _:genid314 . - -_:genid314 a owl:Restriction ; - owl:onProperty saref:hasTimestamp ; - owl:allValuesFrom xsd:dateTime . - -saref:Measurement rdfs:subClassOf _:genid315 . - -_:genid315 a owl:Restriction ; - owl:onProperty saref:hasValue ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:float . - -saref:Measurement owl:disjointWith saref:Property , saref:UnitOfMeasure ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "Measurement"@en . -# -# https://w3id.org/saref#Property - -saref:Property a owl:Class ; - owl:disjointWith saref:UnitOfMeasure ; - rdfs:comment "An aspect of an entity that can be observable by a sensor."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "Property"@en . -# -# https://w3id.org/saref#Sensor - -saref:Sensor a owl:Class ; - rdfs:comment """A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. -A device that has category saref:Sensor and performs a saref:SensingFunction."""@en ; - rdfs:isDefinedBy ; - rdfs:label "Sensor"@en . -# -# https://w3id.org/saref#UnitOfMeasure - -saref:UnitOfMeasure a owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended."@en ; - rdfs:isDefinedBy ; - rdfs:label "Unit of measure"@en . -# -# Generated by the OWL API (version 4.2.5.20160517-0735) https://github.com/owlcs/owlapi diff --git a/src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/saref4bldg.html b/src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/saref4bldg.html deleted file mode 100644 index 33f2485..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/saref4bldg.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - SAREF extension for building devices

    -

    Official ETSI documentation for SAREF4BLDG v1.1.1
    This page will soon contain the documentation of the SAREF4BLDG ontology v1.1.1

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    The documentation of SAREF4BLDG v1.1.1 will be available here soon. The source of the ontology are available as Turtle or RDF/XML Visualize it with VOWL

    -
    -
    -
    -
    -

    This ontology extends the SAREF ontology for the building domain by defining building devices and how they are located in a building. This extension is based on the ISO 16739:2013 Industry Foundation Classes (IFC) standard for data sharing in the construction and facility management industries. The descriptions of the classes and properties extracted from IFC have been taken from the IFC documentation.

    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/saref4bldg.n3 b/src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/saref4bldg.n3 deleted file mode 100644 index 040d1f2..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/saref4bldg.n3 +++ /dev/null @@ -1,3127 +0,0 @@ -@prefix rdf: . -@prefix owl: . -@prefix xml: . -@prefix s4bldg: . -@prefix saref: . -@prefix xsd: . -@prefix dcterms: . -@prefix rdfs: . -@prefix vann: . -@prefix prov: . - -s4bldg:frameType a owl:DatatypeProperty ; - rdfs:comment "The type of frame used by the damper (e.g., Standard, Single Flange, Single Reversed Flange, Double Flange, etc.)."@en ; - rdfs:label "frame type"@en ; - rdfs:range xsd:string . - - - a owl:ObjectProperty ; - rdfs:comment "The relation between something and the point, or other geometrical thing in space, where it is. For example, the realtionship between a radio tower and a Point with a given lat and long. Or a relationship between a park and its outline as a closed arc of points, or a road and its location as a arc (a sequence of points). Clearly in practice there will be limit to the accuracy of any such statement, but one would expect an accuracy appropriate for the size of the object and uses such as mapping ."@en ; - rdfs:isDefinedBy ; - rdfs:label "location"@en . - -s4bldg:heatTransferSurfaceArea - a owl:ObjectProperty ; - rdfs:comment "Total heat transfer area of the vessel. Usually measured in square metre (m2)."@en ; - rdfs:label "heat transfer surface area"@en . - -s4bldg:idealShaftPower - a owl:ObjectProperty ; - rdfs:comment "Compressor shaft power under ideal conditions. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "ideal shaft power"@en . - -s4bldg:capacityControl - a owl:DatatypeProperty ; - rdfs:comment "FanCycling: Fan is cycled on and off to control duty. TwoSpeedFan: Fan is switched between low and high speed to control duty. VariableSpeedFan: Fan speed is varied to control duty. DampersControl: Dampers modulate the air flow to control duty. BypassValveControl: Bypass valve modulates the water flow to control duty. MultipleSeriesPumps: Turn on/off multiple series pump to control duty. TwoSpeedPump: Switch between high/low pump speed to control duty. VariableSpeedPump: vary pump speed to control duty."@en ; - rdfs:label "capacity control"@en ; - rdfs:range xsd:string . - -s4bldg:bladeThickness - a owl:ObjectProperty ; - rdfs:comment "The thickness of the damper blade. Usually measured in millimeters (mm)."@en ; - rdfs:label "blade thickness"@en . - -s4bldg:hasExteriorInsulation - a owl:DatatypeProperty ; - rdfs:comment "TRUE if the silencer has exterior insulation. FALSE if it does not."@en ; - rdfs:label "has exterior insulation"@en ; - rdfs:range xsd:boolean . - -s4bldg:ElectricMotor a owl:Class ; - rdfs:comment "An electric motor is an engine that is a machine for converting electrical energy into mechanical energy."@en ; - rdfs:label "Electric motor"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricMotor" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:teTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:lockedRotorCurrent - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:hasPartWinding - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:frameSize - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:motorEnclosureType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:startCurrentFactor - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:electricMotorEfficiency - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:powerOutputMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:isGuarded - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:startingTime - ] ; - prov:hadPrimarySource , . - -s4bldg:limitingTerminalSize - a owl:ObjectProperty ; - rdfs:comment "The maximum terminal size capacity of the device. Usually measured in square metre (m2)."@en ; - rdfs:label "limiting terminal size"@en . - -s4bldg:roughness a owl:DatatypeProperty ; - rdfs:comment "A measure of the vertical deviations of the surface."@en ; - rdfs:label "roughness"@en ; - rdfs:range xsd:string . - -s4bldg:colorRenderingIndex - a owl:DatatypeProperty ; - rdfs:comment "The CRI indicates how well a light source renders eight standard colors compared to perfect reference lamp with the same color temperature. The CRI scale ranges from 1 to 100, with 100 representing perfect rendering properties."@en ; - rdfs:label "color rendering index"@en ; - rdfs:range xsd:integer . - -s4bldg:imaginaryImpedanceRatio - a owl:ObjectProperty ; - rdfs:comment "The ratio between the imaginary part of the zero sequence impedance and the imaginary part of the positive impedance (i.e. imaginary part of the short-circuit voltage) of the transformer. Used for three-phase transformer which includes a N-conductor."@en ; - rdfs:label "imaginary impedance ratio"@en . - -s4bldg:coverWidth a owl:ObjectProperty ; - rdfs:comment "The length measured along the x-axis in the local coordinate system of the cover of the oil interceptor. Usually measured in millimeters (mm)."@en ; - rdfs:label "cover width"@en . - -s4bldg:height a owl:ObjectProperty ; - rdfs:comment "Height of the vibration isolator before tha application of load. Usually measured in millimeters (mm)."@en ; - rdfs:label "height"@en . - -s4bldg:thermalTransmittance - a owl:ObjectProperty ; - rdfs:comment "Rate at which energy is transmitted through a body. Usually measured in Watts/m2 Kelvin."@en ; - rdfs:label "thermal transmittance"@en . - -s4bldg:DuctSilencer a owl:Class ; - rdfs:comment "A duct silencer is a device that is typically installed inside a duct distribution system for the purpose of reducing the noise levels from air movement, fan noise, etc. in the adjacent space or downstream of the duct silencer device."@en ; - rdfs:label "Duct silencer"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcDuctSilencer" ; - rdfs:subClassOf s4bldg:FlowTreatmentDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:airFlowRateMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:hasExteriorInsulation - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:workingPressureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:weight - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:airFlowRateMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:length - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:workingPressureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:hydraulicDiameter - ] ; - prov:hadPrimarySource , . - -s4bldg:UnitaryControlElement - a owl:Class ; - rdfs:comment "A unitary control element combines a number of control components into a single product, such as a thermostat or humidistat.\n\nA unitary control element provides a housing for an aggregation of control or electrical distribution elements that, in combination, perform a singular (unitary) purpose. Each item in the aggregation may have its own geometric representation and location."@en ; - rdfs:label "Unitary control element"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcUnitaryControlElement" ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - prov:hadPrimarySource , . - -s4bldg:numberOfSections - a owl:DatatypeProperty ; - rdfs:comment "Number of sections used."@en ; - rdfs:label "number of sections"@en ; - rdfs:range xsd:integer . - -s4bldg:heatTransferDimension - a owl:DatatypeProperty ; - rdfs:comment "Indicates how heat is transmitted according to the shape of the space heater."@en ; - rdfs:label "heat transfer dimension"@en ; - rdfs:range xsd:string . - -s4bldg:DistributionDevice - a owl:Class ; - rdfs:comment "Generalization of all devices that participate in a distribution system. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcproductextension/lexical/ifcdistributionelement.htm)"@en ; - rdfs:label "Distribution device"@en ; - rdfs:subClassOf s4bldg:BuildingDevice . - -s4bldg:nominalCoolingCapacity - a owl:ObjectProperty ; - rdfs:comment "Nominal cooling capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal cooling capacity"@en . - -s4bldg:placementType a owl:DatatypeProperty ; - rdfs:comment "Indicates how the device is designed to be placed."@en ; - rdfs:label "placement type"@en ; - rdfs:range xsd:string . - -s4bldg:bladeAction a owl:DatatypeProperty ; - rdfs:comment "Blade action."@en ; - rdfs:label "blade action"@en ; - rdfs:range xsd:string . - -s4bldg:ambientDesignDryBulbTemperature - a owl:ObjectProperty ; - rdfs:comment "Ambient design dry bulb temperature used for selecting the cooling tower. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "ambient design dry bulb temperature"@en . - -s4bldg:bladeShape a owl:DatatypeProperty ; - rdfs:comment "Blade shape. Flat means triple V-groove."@en ; - rdfs:label "blade shape"@en ; - rdfs:range xsd:string . - -saref:Actuator a owl:Class ; - rdfs:comment "A device responsible for moving or controlling a mechanism or system"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Actuator"@en . - -s4bldg:insideDiameter - a owl:ObjectProperty ; - rdfs:comment "Actual inner diameter of the tube in the tube bundle. Usually measured in millimeters (mm)."@en ; - rdfs:label "inside diameter"@en . - -s4bldg:Pump a owl:Class ; - rdfs:comment "A pump is a device which imparts mechanical work on fluids or slurries to move them through a channel or pipeline. A typical use of a pump is to circulate chilled water or heating hot water in a building services distribution system."@en ; - rdfs:label "Pump"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcPump" ; - rdfs:subClassOf s4bldg:FlowMovingDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:netPositiveSuctionHead - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:flowResistanceMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:connectionSize - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:pumpFlowRateMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nomminalRotationSpeed - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:flowResistanceMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:pumpFlowRateMax - ] ; - prov:hadPrimarySource , . - -s4bldg:FlowController - a owl:Class ; - rdfs:comment "The distribution flow element FlowController defines the occurrence of elements of a distribution system that are used to regulate flow through a distribution system. Examples include dampers, valves, switches, and relays."@en ; - rdfs:label "Flow controller"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowController" ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - prov:hadPrimarySource . - -s4bldg:waterInletTemperatureMax - a owl:ObjectProperty ; - rdfs:comment "Allowable water inlet temperature range. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "water inlet temperature range"@en . - -s4bldg:evaporationCoolant - a owl:DatatypeProperty ; - rdfs:comment "The fluid used for the coolant in the evaporator."@en ; - rdfs:label "evaporation coolant"@en ; - rdfs:range xsd:string . - -s4bldg:TubeBundle a owl:Class ; - rdfs:comment "A tube bundle is a device consisting of tubes and bundles of tubes used for heat transfer and contained typically within other energy conversion devices, such as a chiller or coil."@en ; - rdfs:label "Tube bundle"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcTubeBundle" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:inLineRowSpacing - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalDiameter - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOfCircuits - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:thermalConductivity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:volumen - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:horizontalSpacing - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:hasTurbulator - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:foulingFactor - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:insideDiameter - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:length - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOfRows - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:verticalSpacing - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:outsideDiameter - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:staggeredRowSpacing - ] ; - prov:hadPrimarySource , . - -s4bldg:shadingDeviceType - a owl:DatatypeProperty ; - rdfs:comment "Specifies the type of shading device."@en ; - rdfs:label "shading device type"@en ; - rdfs:range xsd:string . - -s4bldg:lightEmitterNominalPower - a owl:ObjectProperty ; - rdfs:comment "Light emitter nominal power. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "light emitter nominal power"@en . - -s4bldg:Valve a owl:Class ; - rdfs:comment "A valve is used in a building services piping distribution system to control or modulate the flow of the fluid."@en ; - rdfs:label "Valve"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcValve" ; - rdfs:subClassOf s4bldg:FlowController ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:valvePattern - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:valveOperation - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:testPressure - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:workingPressure - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:flowCoefficient - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:size - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:closeOffRating - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:valveMechanism - ] ; - prov:hadPrimarySource , . - -s4bldg:Interceptor a owl:Class ; - rdfs:comment "An interceptor is a device designed and installed in order to separate and retain deleterious, hazardous or undesirable matter while permitting normal sewage or liquids to discharge into a collection system by gravity."@en ; - rdfs:label "Interceptor"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcInterceptor" ; - rdfs:subClassOf s4bldg:FlowTreatmentDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:outletConnectionSize - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:inletConnectionSize - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalBodyDepth - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:ventilatingPipeSize - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalBodyLength - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:coverLength - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalBodyWidth - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:coverWidth - ] ; - prov:hadPrimarySource , . - -s4bldg:standard a owl:DatatypeProperty ; - rdfs:comment "The designation of the standard applicable for the definition of the characteristics of the unit."@en ; - rdfs:label "standard"@en ; - rdfs:range xsd:string . - -s4bldg:finishColor a owl:DatatypeProperty ; - rdfs:comment "Finish color for cooled beam."@en ; - rdfs:label "finish color"@en ; - rdfs:range xsd:string . - -s4bldg:frameDepth a owl:ObjectProperty ; - rdfs:comment "The length (or depth) of the damper frame. Usually measured in millimeters (mm)."@en ; - rdfs:label "frame depth"@en . - -s4bldg:numberOfBlades - a owl:DatatypeProperty ; - rdfs:comment "Number of blades."@en ; - rdfs:label "number of blades"@en ; - rdfs:range xsd:integer . - -s4bldg:nominalDiameter - a owl:ObjectProperty ; - rdfs:comment "Nominal diameter or width of the tubes in the tube bundle. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal diameter"@en . - -s4bldg:visibleLightReflectance - a owl:ObjectProperty ; - rdfs:comment "Fraction of the visible light that is reflected by the glazing at normal incidence. It is a value without unit."@en ; - rdfs:label "visible light reflectance"@en . - -s4bldg:volumen a owl:ObjectProperty ; - rdfs:comment "Total volume of fluid in the tubes and their headers. Usually measured in cubic metre (m3)."@en ; - rdfs:label "volumen"@en . - -s4bldg:isPluggableOutlet - a owl:DatatypeProperty ; - rdfs:comment "Indication of whether the outlet accepts a loose plug connection (= TRUE) or whether it is directly connected (= FALSE) or whether the form of connection has not yet been determined (= UNKNOWN)."@en ; - rdfs:label "is pluggable outlet"@en ; - rdfs:range xsd:boolean . - -s4bldg:nominalDepth a owl:ObjectProperty ; - rdfs:comment "The nominal depth of the tank. Note: Not required for a horizontal cylindrical tank. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal depth"@en . - -s4bldg:Transformer a owl:Class ; - rdfs:comment "A transformer is an inductive stationary device that transfers electrical energy from one circuit to another.\n\nTransformer is used to transform electric power; conversion of electric signals for other purposes is handled at other entities: Controller converts arbitrary signals, AudioVisualAppliance converts signals for audio or video streams, and CommunicationsAppliance converts signals for data or other communications usage."@en ; - rdfs:label "Transformer"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcTransformer" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:apparentPowerMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:isNeutralPrimaryTerminalAvailable - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:primaryCurrent - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:primaryFrequency - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:primaryApparentPower - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:secondaryCurrent - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:secondaryApparentPower - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:imaginaryImpedanceRatio - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:secondaryFrequency - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:isNeutralSecondaryTerminalAvailable - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:realImpedanceRatio - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:transformerVectorGroup - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:primaryVoltage - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:secondaryVoltage - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:secondaryCurrentType - ] ; - prov:hadPrimarySource , . - -s4bldg:nominalVolumetricCapacity - a owl:ObjectProperty ; - rdfs:comment "The total nominal or design volumetric capacity of the tank. Usually measured in cubic metre (m3)."@en ; - rdfs:label "nominal volumetric capacity"@en . - -s4bldg:outsideDiameter - a owl:ObjectProperty ; - rdfs:comment "Actual outside diameter of the tube in the tube bundle. Usually measured in millimeters (mm)."@en ; - rdfs:label "outside diameter"@en . - -s4bldg:nominalLengthOrDiameter - a owl:ObjectProperty ; - rdfs:comment "The nominal length or, in the case of a vertical cylindrical tank, the nominal diameter of the tank. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal length or diameter"@en . - -s4bldg:nominalCondensingTemperature - a owl:ObjectProperty ; - rdfs:comment "Chiller condensing temperature. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal condensing temperature"@en . - -s4bldg:CooledBeam a owl:Class ; - rdfs:comment "A cooled beam (or chilled beam) is a device typically used to cool air by circulating a fluid such as chilled water through exposed finned tubes above a space. Typically mounted overhead near or within a ceiling, the cooled beam uses convection to cool the space below it by acting as a heat sink for the naturally rising warm air of the space. Once cooled, the air naturally drops back to the floor where the cycle begins again."@en ; - rdfs:label "Cooled beam"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCooledBeam" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:coilWidth - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalHeatingCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:integratedLightingType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalWaterFlowHeating - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:waterPressureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalCoolingCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalSupplyWaterTemperatureCooling - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:waterPressureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalWaterFlowCooling - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalSupplyWaterTemperatureHeating - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:waterFlowControlSystemType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalReturnWaterTemperatureCooling - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalSorroundingHumidityCooling - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalReturnWaterTemperatureHeating - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalSorroundingTemperatureCooling - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:finishColor - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:pipeConnectionEnum - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalSorroundingTemperatureHeating - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:isFreeHanging - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:coilLength - ] ; - prov:hadPrimarySource , . - -s4bldg:numberOfPanels - a owl:DatatypeProperty ; - rdfs:comment "Number of panels."@en ; - rdfs:label "number of panels"@en ; - rdfs:range xsd:integer . - -s4bldg:nominalWaterFlowCooling - a owl:ObjectProperty ; - rdfs:comment "Nominal water flow (refers to nominal cooling capacity). Usually measured in m3/s."@en ; - rdfs:label "nominal water flow cooling"@en . - -s4bldg:nominalSorroundingTemperatureCooling - a owl:ObjectProperty ; - rdfs:comment "Nominal surrounding temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal sorrounding temperature cooling"@en . - -s4bldg:flowResistanceMin - a owl:ObjectProperty ; - rdfs:comment "Allowable range of frictional resistance against which the fluid is being pumped. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "flow resistance range"@en . - -s4bldg:Condenser a owl:Class ; - rdfs:comment "A condenser is a device that is used to dissipate heat, typically by condensing a substance such as a refrigerant from its gaseous to its liquid state."@en ; - rdfs:label "Condenser"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCondenser" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalHeatTransferCoefficient - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:refrigerantClass - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalHeatTransferArea - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:internalSurfaceArea - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:internalWaterVolume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:internalRefrigerantVolume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:externalSurfaceArea - ] ; - prov:hadPrimarySource , . - -s4bldg:accessType a owl:DatatypeProperty ; - rdfs:comment "Defines the types of access (or cover) to a tank that may be specified. Note that covers are generally specified for rectangular tanks. For cylindrical tanks, access will normally be via a manhole."@en ; - rdfs:label "access type"@en ; - rdfs:range xsd:string . - -s4bldg:isNeutralSecondaryTerminalAvailable - a owl:DatatypeProperty ; - rdfs:comment "An indication of whether the neutral point of the secondary winding is available as a terminal (=TRUE) or not (= FALSE)."@en ; - rdfs:label "is neutral secondary terminal available"@en ; - rdfs:range xsd:boolean . - -s4bldg:secondaryAirFlowRateMax - a owl:ObjectProperty ; - rdfs:comment "Maximum secondary airflow that can be delivered. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "secondary air flow rate range"@en . - -s4bldg:MedicalDevice a owl:Class ; - rdfs:comment "A medical device is attached to a medical piping system and operates upon medical gases to perform a specific function. Medical gases include medical air, medical vacuum, oxygen, carbon dioxide, nitrogen, and nitrous oxide."@en ; - rdfs:label "Medical device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcMedicalDevice" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - prov:hadPrimarySource , . - -s4bldg:hasTurbulator a owl:DatatypeProperty ; - rdfs:comment "TRUE if the tube has a turbulator, FALSE if it does not."@en ; - rdfs:label "has turbulator"@en ; - rdfs:range xsd:boolean . - -s4bldg:ElectricFlowStorageDevice - a owl:Class ; - rdfs:comment "An electric flow storage device is a device in which electrical energy is stored and from which energy may be progressively released."@en ; - rdfs:label "Electric flow storage device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricFlowStorageDevice" ; - rdfs:subClassOf s4bldg:FlowStorageDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalSupplyVoltageMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalFrequency - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalSupplyVoltage - ] ; - prov:hadPrimarySource , . - -s4bldg:teTime a owl:ObjectProperty ; - rdfs:comment "The maximum time (in s) at which the motor could run with locked rotor when the motor is used in an EX-environment. The time indicates that a protective device should trip before this time when the starting current of the motor is slowing through the device."@en ; - rdfs:label "te time"@en . - -s4bldg:firstCurvatureRadius - a owl:ObjectProperty ; - rdfs:comment "FirstCurvatureRadius should be defined as the base or left side radius of curvature value. Usually measured in millimeters (mm)."@en ; - rdfs:label "first curvature radius"@en . - -s4bldg:isSpaceOf a owl:TransitiveProperty , owl:ObjectProperty ; - rdfs:comment "Relation between a building space and the building or building space it belongs to."@en ; - rdfs:label "isSpaceOf"@en . - -s4bldg:airFlowRateMax - a owl:ObjectProperty ; - rdfs:comment "Maximum allowable air flow rate. Usually measured in m3/s."@en ; - rdfs:label "air flow rate range max"@en . - -s4bldg:FireSuppressionTerminal - a owl:Class ; - rdfs:comment "A fire suppression terminal has the purpose of delivering a fluid (gas or liquid) that will suppress a fire.\n\nA fire suppression terminal provides for all forms of sprinkler, spreader and other form of terminal that is connected to a pipework system and intended to act in the role of suppressing a fire."@en ; - rdfs:label "Fire suppression terminal"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFireSuppressionTerminal" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - prov:hadPrimarySource , . - -s4bldg:Coil a owl:Class ; - rdfs:comment "A coil is a device used to provide heat transfer between non-mixing media. A common example is a cooling coil, which utilizes a finned coil in which circulates chilled water, antifreeze, or refrigerant that is used to remove heat from air moving across the surface of the coil. A coil may be used either for heating or cooling purposes by placing a series of tubes (the coil) carrying a heating or cooling fluid into an airstream. The coil may be constructed from tubes bundled in a serpentine form or from finned tubes that give a extended heat transfer surface.\n\nCoils may also be used for non-airflow cases such as embedded in a floor slab."@en ; - rdfs:label "Coil"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCoil" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:airFlowRateMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalUa - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalSensibleCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:placementType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:airFlowRateMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalLatentCapacity - ] ; - prov:hadPrimarySource , . - -s4bldg:nominalAirFlowRate - a owl:ObjectProperty ; - rdfs:comment "Nominal rate of air flow. Usually measured in m3/s."@en ; - rdfs:label "nominal air flow rate"@en . - -s4bldg:primaryVoltage - a owl:ObjectProperty ; - rdfs:comment "The voltage that is going to be transformed and that runs into the transformer on the primary side. Usually measured in Volts (V, W/A)."@en ; - rdfs:label "primary voltage"@en . - -s4bldg:numberOfCircuits - a owl:DatatypeProperty ; - rdfs:comment "Number of parallel fluid tube circuits."@en ; - rdfs:label "number of circuits"@en ; - rdfs:range xsd:integer . - -s4bldg:TransportElement - a owl:Class ; - rdfs:comment "A transport element is a generalization of all transport related objects that move people, animals or goods within a building or building complex. The TransportElement defines the occurrence of a transport element. "@en ; - rdfs:label "Transport element"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcTransportElement" ; - rdfs:subClassOf saref:Device ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:fireExit - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:capacityWeight - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:positiveInteger ; - owl:onProperty s4bldg:capacityPeople - ] ; - prov:hadPrimarySource , . - -s4bldg:colorTemperature - a owl:ObjectProperty ; - rdfs:comment "The color temperature of any source of radiation is defined as the temperature (in Kelvin) of a black-body or Planckian radiator whose radiation has the same chromaticity as the source of radiation. Often the values are only approximate color temperatures as the black-body radiator cannot emit radiation of every chromaticity value. The color temperatures of the commonest artificial light sources range from less than 3000K (warm white) to 4000K (intermediate) and over 5000K (daylight). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "color temperature"@en . - -s4bldg:spectrumMin a owl:ObjectProperty ; - rdfs:comment "The spectrum of radiation describes its composition with regard to wavelength. Light, for example, as the portion of electromagnetic radiation that is visible to the human eye, is radiation with wavelengths in the range of approx. 380 to 780 nm (1 nm = 10 m). The corresponding range of colours varies from violet to indigo, blue, green, yellow, orange, and red. These colours form a continuous spectrum, in which the various spectral sectors merge into each other."@en ; - rdfs:label "minimum spectrum"@en . - -s4bldg:numberOfCells a owl:DatatypeProperty ; - rdfs:comment "Number of cells in one cooling tower unit."@en ; - rdfs:label "number of cells"@en ; - rdfs:range xsd:integer . - -s4bldg:secondaryFrequency - a owl:ObjectProperty ; - rdfs:comment "The frequency that has been transformed and is running out of the transformer on the secondary side. Usually measured in cycles/s or Hertz (Hz)."@en ; - rdfs:label "secondary frequency"@en . - -s4bldg:SwitchingDevice - a owl:Class ; - rdfs:comment "A switch is used in a cable distribution system (electrical circuit) to control or modulate the flow of electricity.\n\nSwitches include those used for electrical power, communications, audio-visual, or other distribution system types as determined by the available ports."@en ; - rdfs:label "Switching device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSwitchingDevice" ; - rdfs:subClassOf s4bldg:FlowController ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:switchFunction - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:legend - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:isIlluminated - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOfGangs - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:hasLock - ] ; - prov:hadPrimarySource , . - -s4bldg:partLoadRatioMin - a owl:ObjectProperty ; - rdfs:comment "Minimum part load ratio as a fraction of nominal capacity."@en ; - rdfs:label "minimum part load ratio"@en . - -s4bldg:FlowTreatmentDevice - a owl:Class ; - rdfs:comment "The distribution flow element FlowTreatmentDevice defines the occurrence of a device typically used to remove unwanted matter from a fluid, either liquid or gas, and typically participates in a flow distribution system."@en ; - rdfs:label "Flow treatment device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowTreatmentDevice" ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - prov:hadPrimarySource . - -s4bldg:lockedRotorCurrent - a owl:ObjectProperty ; - rdfs:comment "Input current when a motor armature is energized but not rotating. Usually measured in Ampere (A)."@en ; - rdfs:label "locked rotor current"@en . - -s4bldg:capacityPeople - a owl:DatatypeProperty ; - rdfs:comment "Capacity of the transportation element measured in numbers of person."@en ; - rdfs:label "capacity people"@en ; - rdfs:range xsd:nonNegativeInteger . - -s4bldg:Building a owl:Class ; - rdfs:comment "A building represents a structure that provides shelter for its occupants or contents and stands in one place. The building is also used to provide a basic element within the spatial structure hierarchy for the components of a building project (together with site, storey, and space)."@en ; - rdfs:label "Building"@en ; - rdfs:seeAlso ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4bldg:BuildingSpace ; - owl:onProperty s4bldg:hasSpace - ] ; - prov:hadPrimarySource . - -s4bldg:bladeEdge a owl:DatatypeProperty ; - rdfs:comment "Blade edge."@en ; - rdfs:label "blade edge"@en ; - rdfs:range xsd:string . - -s4bldg:FlowMeter a owl:Class ; - rdfs:comment "A flow meter is a device that is used to measure the flow rate in a system."@en ; - rdfs:label "Flow meter"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowMeter" ; - rdfs:subClassOf s4bldg:FlowController ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:remoteReading - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:readOutType - ] ; - prov:hadPrimarySource , . - -s4bldg:evaporationMediumType - a owl:DatatypeProperty ; - rdfs:comment "ColdLiquid: Evaporator is using liquid type of fluid to exchange heat with refrigerant. ColdAir: Evaporator is using air to exchange heat with refrigerant."@en ; - rdfs:label "evaporation medium type"@en ; - rdfs:range xsd:string . - -s4bldg:frameSize a owl:DatatypeProperty ; - rdfs:comment "Designation of the frame size according to the named range of frame sizes designated at the place of use or according to a given standard."@en ; - rdfs:label "frame size"@en ; - rdfs:range xsd:string . - -s4bldg:audioVolume a owl:ObjectProperty ; - rdfs:comment "Indicates discrete audio volume levels and corresponding sound power offsets, if applicable. Missing values may be interpolated. Measured in watts."@en ; - rdfs:label "audio volume"@en . - -s4bldg:finalResistance - a owl:ObjectProperty ; - rdfs:comment "Filter fluid resistance when replacement is required (i.e., Pressure drop at the maximum air flowrate across the filter when the filter needs replacement per ASHRAE Standard 52.1). Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "final resistance"@en . - -s4bldg:nominalBodyWidth - a owl:ObjectProperty ; - rdfs:comment "Nominal or quoted length, measured along the y-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal body width"@en . - -s4bldg:sprayType a owl:DatatypeProperty ; - rdfs:comment "SprayFilled: Water is sprayed into airflow. SplashTypeFill: water cascades over successive rows of splash bars. FilmTypeFill: water flows in a thin layer over closely spaced sheets."@en ; - rdfs:label "spray type"@en ; - rdfs:range xsd:string . - -s4bldg:primaryAirFlowRateMax - a owl:ObjectProperty ; - rdfs:comment "Maximum primary airflow that can be delivered. Usually measured in m3/s."@en ; - rdfs:label "primary air flow rate range"@en . - -s4bldg:compressorSpeed - a owl:ObjectProperty ; - rdfs:comment "Compressor speed. Usually measured in cycles/s."@en ; - rdfs:label "compressor speed"@en . - -s4bldg:isExternal a owl:DatatypeProperty ; - rdfs:comment "Indication whether the element is designed for use in the exterior (TRUE) or not (FALSE). If (TRUE) it is an external element and faces the outside of the building."@en ; - rdfs:label "is external"@en ; - rdfs:range xsd:boolean . - -s4bldg:powerSource a owl:DatatypeProperty ; - rdfs:comment "Type of power driving the compressor."@en ; - rdfs:label "power source"@en ; - rdfs:range xsd:string . - -s4bldg:HeatExchanger a owl:Class ; - rdfs:comment "A heat exchanger is a device used to provide heat transfer between non-mixing media such as plate and shell and tube heat exchangers. HeatExchanger is commonly used on water-side distribution systems to recover energy from a liquid to another liquid (typically water-based), whereas AirToAirHeatRecovery is commonly used on air-side distribution systems to recover energy from a gas to a gas (usually air)."@en ; - rdfs:label "Heat exchanger"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcHeatExchanger" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:arrangement - ] ; - prov:hadPrimarySource , . - -s4bldg:AudioVisualAppliance - a owl:Class ; - rdfs:comment "An audio-visual appliance is a device that displays, captures, transmits, or receives audio or video.\n\nAudio-visual appliances may be fixed in place or may be able to be moved from one space to another. They may require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source. Audio-visual appliances may be connected to data circuits including specialist circuits for audio visual purposes only."@en ; - rdfs:label "Audio visual appliance"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcAudioVisualApplicance" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:mediaSource - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:audioVolume - ] ; - prov:hadPrimarySource , . - -s4bldg:thermalEfficiency - a owl:ObjectProperty ; - rdfs:comment "Overall Thermal Efficiency is defined as gross energy output of the heat transfer device divided by the energy input."@en ; - rdfs:label "thermal efficiency"@en . - -s4bldg:internalControl - a owl:DatatypeProperty ; - rdfs:comment "Internal modulation control."@en ; - rdfs:label "internal control"@en ; - rdfs:range xsd:string . - -s4bldg:valveOperation - a owl:DatatypeProperty ; - rdfs:comment "The method of valve operation where: DROPWEIGHT: A valve that is closed by the action of a weighted lever being released, the weight normally being prevented from dropping by being held by a wire, the closure normally being made by the action of heat on a fusible link in the wire FLOAT: A valve that is opened and closed by the action of a float that rises and falls with water level. The float may be a ball attached to a lever or other mechanism HYDRAULIC: A valve that is opened and closed by hydraulic actuation LEVER: A valve that is opened and closed by the action of a lever rotating the gate within the valve. LOCKSHIELD: A valve that requires the use of a special lockshield key for opening and closing, the operating mechanism being protected by a shroud during normal operation. MOTORIZED: A valve that is opened and closed by the action of an electric motor on an actuator PNEUMATIC: A valve that is opened and closed by pneumatic actuation SOLENOID: A valve that is normally held open by a magnetic field in a coil acting on the gate but that is closed immediately if the electrical current generating the magnetic field is removed. SPRING: A valve that is normally held in position by the pressure of a spring on a plate but that may be caused to open if the pressure of the fluid is sufficient to overcome the spring pressure. THERMOSTATIC: A valve in which the ports are opened or closed to maintain a required predetermined temperature. WHEEL: A valve that is opened and closed by the action of a wheel moving the gate within the valve."@en ; - rdfs:label "valve operation"@en ; - rdfs:range xsd:string . - -s4bldg:nominalSupplyVoltageMax - a owl:ObjectProperty ; - rdfs:comment "The maximum and minimum allowed voltage of the supply e.g. boundaries of 380V/440V may be applied for a nominal voltage of 400V."@en ; - rdfs:label "nominal supply voltage offset"@en . - -s4bldg:nominalSupplyWaterTemperatureHeating - a owl:ObjectProperty ; - rdfs:comment "Nominal supply water temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal supply water temperature heating"@en . - -s4bldg:externalSurfaceArea - a owl:ObjectProperty ; - rdfs:comment "External surface area (both primary and secondary area). Usually measured in square metre (m2)."@en ; - rdfs:label "external surface area"@en . - -s4bldg:PhysicalObject - a owl:Class ; - rdfs:comment "Any Object that has a proper space region. (Definition extracted from DUL ontology)"@en ; - rdfs:label "Physical object"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf [ a rdf:List ; - rdf:first s4bldg:BuildingSpace ; - rdf:rest [ a rdf:List ; - rdf:first s4bldg:PhysicalObject ; - rdf:rest () - ] - ] - ] ; - owl:onProperty s4bldg:isContainedIn - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4bldg:PhysicalObject ; - owl:onProperty s4bldg:contains - ] . - -s4bldg:isIlluminated a owl:DatatypeProperty ; - rdfs:comment "An indication of whether there is an illuminated indicator to show that the switch is on (=TRUE) or not (= FALSE)."@en ; - rdfs:label "is illuminated"@en ; - rdfs:range xsd:boolean . - -s4bldg:hasHotGasBypass - a owl:DatatypeProperty ; - rdfs:comment "Whether or not hot gas bypass is provided for the compressor. TRUE = Yes, FALSE = No."@en ; - rdfs:label "has hot gas bypass"@en ; - rdfs:range xsd:boolean . - -s4bldg:legend a owl:DatatypeProperty ; - rdfs:comment "A text inscribed or applied to the switch as a legend to indicate purpose or function."@en ; - rdfs:label "legend"@en ; - rdfs:range xsd:string . - -s4bldg:waterInletTemperatureMin - a owl:ObjectProperty ; - rdfs:comment "Allowable water inlet temperature range. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "water inlet temperature range"@en . - -s4bldg:DistributionFlowDevice - a owl:Class ; - rdfs:comment "Represents devices of a distribution system that facilitate the distribution of energy or matter, such as air, water or power. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcsharedbldgserviceelements/lexical/ifcdistributionflowelement.htm)"@en ; - rdfs:label "DistributionFlowDevice"@en ; - rdfs:subClassOf s4bldg:DistributionDevice . - -s4bldg:isContainedIn a owl:TransitiveProperty , owl:ObjectProperty ; - rdfs:comment "A relation between an object and the physical space in which it is located."@en ; - rdfs:label "is contained in"@en . - -saref:Measurement a owl:Class ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "Measurement"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:Property ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:relatesToProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onDataRange xsd:float ; - owl:onProperty saref:hasValue ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn - ] ; - owl:disjointWith saref:Property , saref:UnitOfMeasure . - -s4bldg:controlStrategy - a owl:DatatypeProperty ; - rdfs:comment "FixedExitingWaterTemp: The capacity is controlled to maintain a fixed exiting water temperature. WetBulbTempReset: The set-point is reset based on the wet-bulb temperature."@en ; - rdfs:label "control strategy"@en ; - rdfs:range xsd:string . - -s4bldg:contains a owl:TransitiveProperty , owl:ObjectProperty ; - rdfs:comment "A relation between a physical space and the objects located in such space."@en ; - rdfs:label "contains"@en ; - owl:inverseOf s4bldg:isContainedIn . - -s4bldg:coilLength a owl:ObjectProperty ; - rdfs:comment "Length of coil. Usually measured in millimeters (mm)."@en ; - rdfs:label "coil length"@en . - -s4bldg:FlowMovingDevice - a owl:Class ; - rdfs:comment "The distribution flow element FlowMovingDevice defines the occurrence of an apparatus used to distribute, circulate or perform conveyance of fluids, including liquids and gases (such as a pump or fan), and typically participates in a flow distribution system."@en ; - rdfs:label "Flow moving device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowMovingDevice" ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - prov:hadPrimarySource . - -s4bldg:startingTime a owl:ObjectProperty ; - rdfs:comment "The time (in s) needed for the motor to reach its rated speed with its driven equipment attached, starting from standstill and at the nominal voltage applied at its terminals."@en ; - rdfs:label "starting time"@en . - -s4bldg:outputCapacity - a owl:ObjectProperty ; - rdfs:comment "Total nominal heat output as listed by the manufacturer. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "output capacity"@en . - -s4bldg:secondaryCurrent - a owl:ObjectProperty ; - rdfs:comment "The current that has been transformed and is running out of the transformer on the secondary side. Usually measured in Ampere (A)."@en ; - rdfs:label "secondary current"@en . - -s4bldg:secondaryCurrentType - a owl:DatatypeProperty ; - rdfs:comment "A list of the secondary current types that can result from transformer output."@en ; - rdfs:label "secondary current type"@en ; - rdfs:range xsd:string . - -s4bldg:heatExchangeArea - a owl:ObjectProperty ; - rdfs:comment "Heat exchange area. Usually measured in square metre (m2)."@en ; - rdfs:label "heat exchange area"@en . - -s4bldg:fireExit a owl:DatatypeProperty ; - rdfs:comment "Indication whether this object is designed to serve as an exit in the case of fire (TRUE) or not (FALSE). Here whether the transport element (in case of e.g., a lift) is designed to serve as a fire exit, e.g., for fire escape purposes."@en ; - rdfs:label "fire exit"@en ; - rdfs:range xsd:boolean . - -s4bldg:numberOsSockets - a owl:DatatypeProperty ; - rdfs:comment "The number of sockets that may be connected. In case of inconsistency, sockets defined on ports take precedence."@en ; - rdfs:label "number os sockets"@en ; - rdfs:range xsd:integer . - -s4bldg:arrangement a owl:DatatypeProperty ; - rdfs:comment "Defines the basic flow arrangements for the heat exchanger: COUNTERFLOW: Counterflow heat exchanger arrangement. CROSSFLOW: Crossflow heat exchanger arrangement. PARALLELFLOW: Parallel flow heat exchanger arrangement. MULTIPASS: Multipass flow heat exchanger arrangement. OTHER: Other type of heat exchanger flow arrangement not defined above."@en ; - rdfs:label "arrangement"@en ; - rdfs:range xsd:string . - -s4bldg:Lamp a owl:Class ; - rdfs:comment "A lamp is an artificial light source such as a light bulb or tube."@en ; - rdfs:label "Lamp"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcLamp" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:lightEmitterNominalPower - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:colorTemperature - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:spectrumMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:colorAppearance - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:lampCompensationType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:lampMaintenanceFactor - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:contributedLuminousFlux - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:colorRenderingIndex - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:spectrumMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:lampBallastType - ] ; - prov:hadPrimarySource , . - -s4bldg:BuildingObject - a owl:Class ; - rdfs:comment "An object in the building that can be controlled by devices, such as a door or a window that can be automatically opened or closed by an actuator. (Definition taken from SAREF 1.0)"@en ; - rdfs:label "Building object"@en ; - rdfs:subClassOf s4bldg:PhysicalObject . - -s4bldg:powerOutputMax - a owl:ObjectProperty ; - rdfs:comment "The maximum output power rating of the engine. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "maximum power output"@en . - -s4bldg:nominalParticleGeometricStandardDeviation - a owl:ObjectProperty ; - rdfs:comment "Particle geometric standard deviation associated with nominal efficiency. "@en ; - rdfs:label "nominal particle geometric standard deviation"@en . - -s4bldg:Boiler a owl:Class ; - rdfs:comment "A boiler is a closed, pressure-rated vessel in which water or other fluid is heated using an energy source such as natural gas, heating oil, or electricity. The fluid in the vessel is then circulated out of the boiler for use in various processes or heating applications."@en ; - rdfs:label "Boiler"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcBoiler" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:isWaterStorageHeater - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:waterInletTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:heatTransferSurfaceArea - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:pressureRating - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:outletTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:waterStorageCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalEnergyConsumption - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:operatingMode - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:energySource - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:waterInletTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalPartLoadRatio - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:outletTemperatureMax - ] ; - prov:hadPrimarySource , . - -saref:relatesToProperty - a owl:ObjectProperty ; - rdfs:comment "A relation between a measurement and the property such measurement is about."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "relates to property"@en . - -s4bldg:staggeredRowSpacing - a owl:ObjectProperty ; - rdfs:comment "Staggered tube row spacing. Usually measured in millimeters (mm)."@en ; - rdfs:label "staggered row spacing"@en . - -s4bldg:nominalParticleGeometricMeanDiameter - a owl:ObjectProperty ; - rdfs:comment "Particle geometric mean diameter associated with nominal efficiency. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal particle geometric mean diameter"@en . - -s4bldg:Fan a owl:Class ; - rdfs:comment "A fan is a device which imparts mechanical work on a gas. A typical usage of a fan is to induce airflow in a building services air distribution system."@en ; - rdfs:label "Fan"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFan" ; - rdfs:subClassOf s4bldg:FlowMovingDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalTotalPressure - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalStaticPressure - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalRotationSpeed - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:capacityControlType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalPowerRate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalAirFlowRate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:motorDriveType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationalRiterial - ] ; - prov:hadPrimarySource , . - -s4bldg:internalRefrigerantVolume - a owl:ObjectProperty ; - rdfs:comment "Internal volume of evaporator (refrigerant side). Usually measured in cubic metre (m3)."@en ; - rdfs:label "internal refrigerant volume"@en . - -s4bldg:bodyMass a owl:ObjectProperty ; - rdfs:comment "Overall body mass of the heater. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "body mass"@en . - -xsd:duration a rdfs:Datatype . - -s4bldg:nominalTotalPressure - a owl:ObjectProperty ; - rdfs:comment "Nominal total pressure rise across the fan. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "nominal total pressure"@en . - -s4bldg:pipeConnectionEnum - a owl:DatatypeProperty ; - rdfs:comment "The manner in which the pipe connection is made to the cooled beam."@en ; - rdfs:label "pipe connection enum"@en ; - rdfs:range xsd:string . - -s4bldg:startCurrentFactor - a owl:ObjectProperty ; - rdfs:comment "IEC. Start current factor defines how large the peek starting current will become on the engine. StartCurrentFactor is multiplied to NominalCurrent and we get the start current."@en ; - rdfs:label "start current factor"@en . - -s4bldg:basinReserveVolume - a owl:ObjectProperty ; - rdfs:comment "Volume between operating and overflow levels in cooling tower basin. Usually measured in cubic metre (m3)."@en ; - rdfs:label "basin reserve volume"@en . - -dcterms:rightsHolder a owl:AnnotationProperty . - -s4bldg:shortCircuitVoltage - a owl:ObjectProperty ; - rdfs:comment "A complex number that specifies the real and imaginary parts of the short-circuit voltage at rated current of a transformer given in %."@en ; - rdfs:label "short circuit voltage"@en . - -s4bldg:secondaryAirFlowRateMin - a owl:ObjectProperty ; - rdfs:comment "Maximum secondary airflow that can be delivered. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "secondary air flow rate range"@en . - -s4bldg:nominalSorroundingHumidityCooling - a owl:ObjectProperty ; - rdfs:comment "Nominal surrounding humidity (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal sorrounding humidity cooling"@en . - -s4bldg:FlowInstrument - a owl:Class ; - rdfs:comment "A flow instrument reads and displays the value of a particular property of a system at a point, or displays the difference in the value of a property between two points.\n\nInstrumentation is typically for the purpose of determining the value of the property at a point in time. It is not the purpose of an instrument to record or integrate the values over time (although they may be connected to recording devices that do perform such a function). This entity provides for all forms of mechanical flow instrument (thermometers, pressure gauges etc.) and electrical flow instruments (ammeters, voltmeters etc.)"@en ; - rdfs:label "Flow instrument"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowInstrument" ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - prov:hadPrimarySource , . - -s4bldg:thermalConductivity - a owl:ObjectProperty ; - rdfs:comment "Fouling factor of the tubes in the tube bundle. Usually measured in m2 Kelvin/Watt."@en ; - rdfs:label "thermal conductivity"@en . - -s4bldg:waterRequirement - a owl:ObjectProperty ; - rdfs:comment "Make-up water requirement. Usually measured in m3/s."@en ; - rdfs:label "water requirement"@en . - -s4bldg:Chiller a owl:Class ; - rdfs:comment "A chiller is a device used to remove heat from a liquid via a vapor-compression or absorption refrigeration cycle to cool a fluid, typically water or a mixture of water and glycol. The chilled fluid is then used to cool and dehumidify air in a building."@en ; - rdfs:label "Chiller"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcChiller" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalEfficiency - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalEvaporatingTemmperature - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalCondensingTemperature - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalHeatRejectionRate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalPowerConsumption - ] ; - prov:hadPrimarySource , . - -s4bldg:Compressor a owl:Class ; - rdfs:comment "A compressor is a device that compresses a fluid typically used in a refrigeration circuit."@en ; - rdfs:label "Compressor"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCompressor" ; - rdfs:subClassOf s4bldg:FlowMovingDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:compressorSpeed - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:refrigerantClass - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:idealCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:impellerDiameter - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:idealShaftPower - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:powerSource - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:partLoadRatioMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:hasHotGasBypass - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:partLoadRatioMin - ] ; - prov:hadPrimarySource , . - -vann:preferredNamespaceUri - a owl:AnnotationProperty . - -s4bldg:nominalPowerRate - a owl:ObjectProperty ; - rdfs:comment "Nominal fan power rate.Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal power rate"@en . - -s4bldg:heatTransferMedium - a owl:DatatypeProperty ; - rdfs:comment "Enumeration defining the heat transfer medium if applicable."@en ; - rdfs:label "heat transfer medium"@en ; - rdfs:range xsd:string . - -s4bldg:patternType a owl:DatatypeProperty ; - rdfs:comment "Defines the types of pattern (or shape of a tank that may be specified."@en ; - rdfs:label "pattern type"@en ; - rdfs:range xsd:string . - -s4bldg:hasDefrost a owl:DatatypeProperty ; - rdfs:comment "Whether the heat exchanger has defrost function or not."@en ; - rdfs:label "has defrost"@en ; - rdfs:range xsd:boolean . - -s4bldg:effectiveCapacity - a owl:ObjectProperty ; - rdfs:comment "The total effective or actual volumetric capacity of the tank. Usually measured in cubic metre (m3).B3"@en ; - rdfs:label "effective capacity"@en . - -s4bldg:secondaryApparentPower - a owl:ObjectProperty ; - rdfs:comment "The power in VA (volt ampere) that has been transformed and is running out of the transformer on the secondary side. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "secondary apparent power"@en . - -s4bldg:EnergyConversionDevice - a owl:Class ; - rdfs:comment "The distribution flow element EnergyConversionDevice defines the occurrence of a device used to perform energy conversion or heat transfer and typically participates in a flow distribution system."@en ; - rdfs:label "Energy conversion device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcEnergyConversionDevice" ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - prov:hadPrimarySource . - -s4bldg:isNeutralPrimaryTerminalAvailable - a owl:DatatypeProperty ; - rdfs:comment "An indication of whether the neutral point of the primary winding is available as a terminal (=TRUE) or not (= FALSE)."@en ; - rdfs:label "is neutral primary terminal available"@en ; - rdfs:range xsd:boolean . - -s4bldg:CommunicationAppliance - a owl:Class ; - rdfs:comment "A communications appliance transmits and receives electronic or digital information as data or sound.\n\nCommunication appliances may be fixed in place or may be able to be moved from one space to another. Communication appliances require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source."@en ; - rdfs:label "Communication appliance"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCommunicationAppliance" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - prov:hadPrimarySource , . - -s4bldg:nominalHeatRejectionRate - a owl:ObjectProperty ; - rdfs:comment "Sum of the refrigeration effect and the heat equivalent of the power input to the compressor. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal heat rejection rate"@en . - -s4bldg:isWaterStorageHeater - a owl:DatatypeProperty ; - rdfs:comment "This is used to identify if the boiler has storage capacity (TRUE). If FALSE, then there is no storage capacity built into the boiler, such as an instantaneous hot water heater."@en ; - rdfs:label "is water storage heater"@en ; - rdfs:range xsd:boolean . - -s4bldg:inletConnectionSize - a owl:ObjectProperty ; - rdfs:comment "Size of the inlet connection. Usually measured in millimeters (mm)."@en ; - rdfs:label "inlet connection size"@en . - -s4bldg:weight a owl:ObjectProperty ; - rdfs:comment "The weight of the device. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "weight"@en . - -s4bldg:airFlowRateMin - a owl:ObjectProperty ; - rdfs:comment "Minimum allowable air flow rate. Usually measured in m3/s."@en ; - rdfs:label "air flow rate range min"@en . - -s4bldg:remoteReading a owl:DatatypeProperty ; - rdfs:comment "Indicates whether the meter has a connection for remote reading through connection of a communication device (set TRUE) or not (set FALSE)."@en ; - rdfs:label "remote reading"@en ; - rdfs:range xsd:boolean . - -s4bldg:circuitType a owl:DatatypeProperty ; - rdfs:comment "OpenCircuit: Exposes water directly to the cooling atmosphere. CloseCircuit: The fluid is separated from the atmosphere by a heat exchanger. Wet: The air stream or the heat exchange surface is evaporatively cooled. Dry: No evaporation into the air stream. DryWet: A combination of a dry tower and a wet tower."@en ; - rdfs:label "circuit type"@en ; - rdfs:range xsd:string . - -s4bldg:nominalSorroundingTemperatureHeating - a owl:ObjectProperty ; - rdfs:comment "Nominal surrounding temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal sorrounding temperature heating"@en . - -s4bldg:internalWaterVolume - a owl:ObjectProperty ; - rdfs:comment "Internal volume of evaporator (water side). Usually measured in cubic metre (m3)."@en ; - rdfs:label "internal water volume"@en . - -s4bldg:failPosition a owl:DatatypeProperty ; - rdfs:comment "Specifies the required fail-safe position of the actuator."@en ; - rdfs:label "fail position"@en ; - rdfs:range xsd:string . - -s4bldg:nominalBodyLength - a owl:ObjectProperty ; - rdfs:comment "Nominal or quoted length, measured along the x-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal body length"@en . - -s4bldg:operation a owl:DatatypeProperty ; - rdfs:comment "The operational mechanism for the damper operation."@en ; - rdfs:label "operation"@en ; - rdfs:range xsd:string . - -dcterms:dateCopyrighted - a owl:AnnotationProperty . - -saref:hasTimestamp a owl:FunctionalProperty , owl:DatatypeProperty ; - rdfs:comment "A relationship stating the timestamp of an entity (e.g. a measurement)."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "has timestamp"@en ; - rdfs:range xsd:dateTime . - -s4bldg:lampMaintenanceFactor - a owl:ObjectProperty ; - rdfs:comment "Non recoverable losses of luminous flux of a lamp due to lamp depreciation i.e. the decreasing of light output of a luminaire due to aging and dirt."@en ; - rdfs:label "lamp maintenance factor"@en . - -s4bldg:valvePattern a owl:DatatypeProperty ; - rdfs:comment "The configuration of the ports of a valve according to either the linear route taken by a fluid flowing through the valve or by the number of ports where: SINGLEPORT: Valve that has a single entry port from the system that it serves, the exit port being to the surrounding environment. ANGLED_2_PORT: Valve in which the direction of flow is changed through 90 degrees. STRAIGHT_2_PORT: Valve in which the flow is straight through. STRAIGHT_3_PORT: Valve with three separate ports. CROSSOVER_4_PORT: Valve with 4 separate ports."@en ; - rdfs:label "valve pattern"@en ; - rdfs:range xsd:string . - -s4bldg:pumpFlowRateMax - a owl:ObjectProperty ; - rdfs:comment "Allowable range of volume of fluid being pumped against the resistance specified. Usually measured in kg/s."@en ; - rdfs:label "pump flow rate range"@en . - -s4bldg:Sensor a owl:Class ; - rdfs:comment "A sensor is a device that measures a physical quantity and converts it into a signal which can be read by an observer or by an instrument."@en ; - rdfs:label "Sensor"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSensor" ; - rdfs:subClassOf saref:Sensor , s4bldg:DistributionControlDevice ; - prov:hadPrimarySource , . - -s4bldg:application a owl:DatatypeProperty ; - rdfs:comment "Humidifier application. Fixed: Humidifier installed in a ducted flow distribution system. Portable: Humidifier is not installed in a ducted flow distribution system."@en ; - rdfs:label "application"@en ; - rdfs:range xsd:string . - -s4bldg:nominalReturnWaterTemperatureCooling - a owl:ObjectProperty ; - rdfs:comment "Nominal return water temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal return water temperature cooling"@en . - -s4bldg: a owl:Ontology ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:contributor , , ; - dcterms:description "This ontology extends the SAREF ontology for the building domain by defining building devices and how they are located in a building. This extension is based on the ISO 16739:2013 Industry Foundation Classes (IFC) standard for data sharing in the construction and facility management industries. The descriptions of the classes and properties extracted from IFC have been taken from the IFC documentation."@en ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:publisher ; - dcterms:source , ; - dcterms:title "SAREF extension for building devices"@en ; - vann:preferredNamespacePrefix "s4bldg" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4bldg#" ; - owl:versionIRI ; - owl:versionInfo "1.1.1" . - -s4bldg:openPressureDrop - a owl:ObjectProperty ; - rdfs:comment "Total pressure drop across damper. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "open pressure drop"@en . - -s4bldg:workingPressureMax - a owl:ObjectProperty ; - rdfs:comment "Maximum working pressure. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "maximum working pressure"@en . - -s4bldg:connectionSize - a owl:ObjectProperty ; - rdfs:comment "The connection size of the to and from the pump. Usually measured in millimeters (mm)."@en ; - rdfs:label "connection size"@en . - -s4bldg:idealCapacity a owl:ObjectProperty ; - rdfs:comment "Compressor capacity under ideal conditions. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "ideal capacity"@en . - -s4bldg:fluidFlowRateMax - a owl:ObjectProperty ; - rdfs:comment "Possible range of fluid flowrate that can be delivered. Usually measured in m3/s."@en ; - rdfs:label "fluid flow rate range"@en . - -saref:Sensor a owl:Class ; - rdfs:comment "A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes.\nA device that has category saref:Sensor and performs a saref:SensingFunction."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Sensor"@en . - -s4bldg:foulingFactor a owl:ObjectProperty ; - rdfs:comment "Fouling factor of the tubes in the tube bundle. Usually measured in m2 Kelvin/Watt."@en ; - rdfs:label "fouling factor"@en . - -s4bldg:transformerVectorGroup - a owl:DatatypeProperty ; - rdfs:comment "List of the possible vector groups for the transformer from which that required may be set. Values in the enumeration list follow a standard international code where the first letter describes how the primary windings are connected, the second letter describes how the secondary windings are connected, and the numbers describe the rotation of voltages and currents from the primary to the secondary side in multiples of 30 degrees. D: means that the windings are delta-connected. Y: means that the windings are star-connected. Z: means that the windings are zig-zag connected (a special start-connected providing low reactance of the transformer). The connectivity is only relevant for three-phase transformers."@en ; - rdfs:label "transformer vector group"@en ; - rdfs:range xsd:string . - -saref:hasValue a owl:DatatypeProperty ; - rdfs:comment "A relationship defining the value of a certain property, e.g., energy or power"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has value"@en . - -s4bldg:primaryAirFlowRateMin - a owl:ObjectProperty ; - rdfs:comment "Minimum primary airflow that can be delivered. Usually measured in m3/s."@en ; - rdfs:label "primary air flow rate range"@en . - -s4bldg:supportedWeightMax - a owl:ObjectProperty ; - rdfs:comment "The maximum weight that can be carried by the vibration isolator. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "maximum supported weight"@en . - -s4bldg:EvaporativeCooler - a owl:Class ; - rdfs:comment "An evaporative cooler is a device that cools air by saturating it with water vapor."@en ; - rdfs:label "Evaporative cooler"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcEvaporativeCooler" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:flowArrangement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:heatExchangeArea - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:waterRequirement - ] ; - prov:hadPrimarySource , . - -s4bldg:nominalPowerConsumption - a owl:ObjectProperty ; - rdfs:comment "Nominal total power consumption. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal power consumption"@en . - -s4bldg:initialResistance - a owl:ObjectProperty ; - rdfs:comment "Initial new filter fluid resistance (i.e., pressure drop at the maximum air flowrate across the filter when the filter is new per ASHRAE Standard 52.1). Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "initial resistance"@en . - -s4bldg:ambientDesignWetBulbTemperature - a owl:ObjectProperty ; - rdfs:comment "Ambient design wet bulb temperature used for selecting the cooling tower. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "ambient design wet bulb temperature"@en . - -s4bldg:ShadingDevice a owl:Class ; - rdfs:comment "Shading devices are purpose built devices to protect from the sunlight, from natural light, or screening them from view. Shading devices can form part of the facade or can be mounted inside the building, they can be fixed or operable."@en ; - rdfs:label "Shading device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcShadingDevice" ; - rdfs:subClassOf s4bldg:BuildingDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:shadingDeviceType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:thermalTransmittance - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:solarReflectance - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:visibleLightTransmittance - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:solarTransmittance - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:mechanicalOperated - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:visibleLightReflectance - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:roughness - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:isExternal - ] ; - prov:hadPrimarySource , . - -s4bldg:lampBallastType - a owl:DatatypeProperty ; - rdfs:comment "The type of ballast used to stabilise gas discharge by limiting the current during operation and to deliver the necessary striking voltage for starting. Ballasts are needed to operate Discharge Lamps such as Fluorescent, Compact Fluorescent, High-pressure Mercury, Metal Halide and High-pressure Sodium Lamps. Magnetic ballasts are chokes which limit the current passing through a lamp connected in series on the principle of self-induction. The resultant current and power are decisive for the efficient operation of the lamp. A specially designed ballast is required for every type of lamp to comply with lamp rating in terms of Luminous Flux, Color Appearance and service life. The two types of magnetic ballasts for fluorescent lamps are KVG Conventional (EC-A series) and VVG Low-loss ballasts (EC-B series). Low-loss ballasts have a higher efficiency, which means reduced ballast losses and a lower thermal load. Electronic ballasts are used to run fluorescent lamps at high frequencies (approx. 35 - 40 kHz)."@en ; - rdfs:label "lamp ballast type"@en ; - rdfs:range xsd:string . - -s4bldg:valveMechanism - a owl:DatatypeProperty ; - rdfs:comment "The mechanism by which the valve function is achieved where: BALL: Valve that has a ported ball that can be turned relative to the body seat ports. BUTTERFLY: Valve in which a streamlined disc pivots about a diametric axis. CONFIGUREDGATE: Screwdown valve in which the closing gate is shaped in a configured manner to have a more precise control of pressure and flow change across the valve. GLAND: Valve with a tapered seating, in which a rotatable plug is retained by means of a gland and gland packing. GLOBE: Screwdown valve that has a spherical body. LUBRICATEDPLUG: Plug valve in which a lubricant is injected under pressure between the plug face and the body. NEEDLE: Valve for regulating the flow in or from a pipe, in which a slender cone moves along the axis of flow to close against a fixed conical seat. PARALLELSLIDE: Screwdown valve that has a machined plate that slides in formed grooves to form a seal. PLUG: Valve that has a ported plug that can be turned relative to the body seat ports. WEDGEGATE: Screwdown valve that has a wedge shaped plate fitting into tapered guides to form a seal."@en ; - rdfs:label "valve mechanism"@en ; - rdfs:range xsd:string . - -s4bldg:SanitaryTerminal - a owl:Class ; - rdfs:comment "A sanitary terminal is a fixed appliance or terminal usually supplied with water and used for drinking, cleaning or foul water disposal or that is an item of equipment directly used with such an appliance or terminal."@en ; - rdfs:label "Sanitary terminal"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSanitaryTerminal" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - prov:hadPrimarySource , . - -s4bldg:horizontalSpacing - a owl:ObjectProperty ; - rdfs:comment "Horizontal spacing between tubes in the tube bundle. Usually measured in millimeters (mm)."@en ; - rdfs:label "horizontal spacing"@en . - -s4bldg:ventilatingPipeSize - a owl:ObjectProperty ; - rdfs:comment "Size of the ventilating pipe(s). Usually measured in millimeters (mm)."@en ; - rdfs:label "ventilating pipe size"@en . - -s4bldg:primaryApparentPower - a owl:ObjectProperty ; - rdfs:comment "The power in VA (volt ampere) that has been transformed and that runs into the transformer on the primary side. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "primary apparent power"@en . - -s4bldg:nominalSupplyVoltageMin - a owl:ObjectProperty ; - rdfs:comment "The maximum and minimum allowed voltage of the supply e.g. boundaries of 380V/440V may be applied for a nominal voltage of 400V."@en ; - rdfs:label "nominal supply voltage offset"@en . - -s4bldg:internalSurfaceArea - a owl:ObjectProperty ; - rdfs:comment "Internal surface area. Usually measured in square metre (m2)."@en ; - rdfs:label "internal surface area"@en . - -s4bldg:nominalHeatingCapacity - a owl:ObjectProperty ; - rdfs:comment "Nominal heating capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal heating capacity"@en . - -s4bldg:vibrationTransmissibility - a owl:ObjectProperty ; - rdfs:comment "The vibration transmissibility percentage."@en ; - rdfs:label "vibration transmissibility"@en . - -s4bldg:hasPartWinding - a owl:DatatypeProperty ; - rdfs:comment "Indication of whether the motor is single speed, i.e. has a single winding (= FALSE) or multi-speed i.e.has part winding (= TRUE) ."@en ; - rdfs:label "has part winding"@en ; - rdfs:range xsd:boolean . - -s4bldg:workingPressure - a owl:ObjectProperty ; - rdfs:comment "The normally expected maximum working pressure of the valve. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "working pressure"@en . - -s4bldg:integratedLightingType - a owl:DatatypeProperty ; - rdfs:comment "Integrated lighting in cooled beam."@en ; - rdfs:label "integrated lighting type"@en ; - rdfs:range xsd:string . - -s4bldg:operationTemperatureMax - a owl:ObjectProperty ; - rdfs:comment "Allowable operation ambient (air, fluid) temperature range. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "operation temperature range"@en . - -s4bldg:nominalMediaSurfaceVelocity - a owl:ObjectProperty ; - rdfs:comment "Average fluid velocity at the media surface. Usually measured in m/s."@en ; - rdfs:label "nominal media surface velocity"@en . - -s4bldg:nominalMoistureGain - a owl:ObjectProperty ; - rdfs:comment "Nominal rate of water vapor added into the airstream. Usually measured in kg/s."@en ; - rdfs:label "nominal moisture gain"@en . - -s4bldg:nominalFilterFaceVelocity - a owl:ObjectProperty ; - rdfs:comment "Filter face velocity. Usually measured in m/s."@en ; - rdfs:label "nominal filter face velocity"@en . - -s4bldg:numberOfGangs a owl:DatatypeProperty ; - rdfs:comment "Number of gangs/buttons on this switch."@en ; - rdfs:label "number of gangs"@en ; - rdfs:range xsd:integer . - -s4bldg:capacityWeight - a owl:ObjectProperty ; - rdfs:comment "Capacity of the transport element measured by weight. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "capacity weight"@en . - -s4bldg:waterFlowControlSystemType - a owl:DatatypeProperty ; - rdfs:comment "Factory fitted waterflow control system."@en ; - rdfs:label "water flow control system type"@en ; - rdfs:range xsd:string . - -s4bldg:Humidifier a owl:Class ; - rdfs:comment "A humidifier is a device that adds moisture into the air."@en ; - rdfs:label "Humidifier"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcHumidifier" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:internalControl - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:waterRequirement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:application - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:weight - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalAirFlowRate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalMoistureGain - ] ; - prov:hadPrimarySource , . - -s4bldg:hasSpace a owl:TransitiveProperty , owl:ObjectProperty ; - rdfs:comment "Relation between a building or a building space and the spaces it can be divided into."@en ; - rdfs:label "has space"@en ; - owl:inverseOf s4bldg:isSpaceOf . - -s4bldg:netPositiveSuctionHead - a owl:ObjectProperty ; - rdfs:comment "Minimum liquid pressure at the pump inlet to prevent cavitation. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "net positive suction head"@en . - -s4bldg:Tank a owl:Class ; - rdfs:comment "A tank is a vessel or container in which a fluid or gas is stored for later use."@en ; - rdfs:label "Tank"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcTank" ; - rdfs:subClassOf s4bldg:FlowStorageDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalDepth - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operatingWeight - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:patternType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:endShapeType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOfSections - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalVolumetricCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:secondCurvatureRadius - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:storageType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:effectiveCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:firstCurvatureRadius - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalLengthOrDiameter - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:accessType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalWidthOrDiameter - ] ; - prov:hadPrimarySource , . - -s4bldg:hasLock a owl:DatatypeProperty ; - rdfs:comment "Indication of whether a switching device has a key operated lock (=TRUE) or not (= FALSE)."@en ; - rdfs:label "has lock"@en ; - rdfs:range xsd:boolean . - -s4bldg:length a owl:ObjectProperty ; - rdfs:comment "The finished length of the device. Usually measured in millimeters (mm)."@en ; - rdfs:label "length"@en . - -s4bldg:nominalLatentCapacity - a owl:ObjectProperty ; - rdfs:comment "Nominal latent capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal latent capacity"@en . - -s4bldg:SpaceHeater a owl:Class ; - rdfs:comment "Space heaters utilize a combination of radiation and/or natural convection using a heating source such as electricity, steam or hot water to heat a limited space or area. Examples of space heaters include radiators, convectors, baseboard and finned-tube heaters.\n\nUnitaryEquipment should be used for packaged units supporting a combination of heating, cooling, and/or dehumidification; Coil should be used for coil-based floor heating."@en ; - rdfs:label "Space heater"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSpaceHeater" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:placementType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOfSections - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:outputCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:thermalMassHeatCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:bodyMass - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:temperatureClassification - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOfPanels - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:heatTransferDimension - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:thermalEfficiency - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:heatTransferMedium - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:energySource - ] ; - prov:hadPrimarySource , . - -s4bldg:nominalPartLoadRatio - a owl:ObjectProperty ; - rdfs:comment "Allowable part load ratio range."@en ; - rdfs:label "nominal part load ratio"@en . - -s4bldg:nominalEfficiency - a owl:ObjectProperty ; - rdfs:comment "Nominal chiller efficiency under nominal conditions. "@en ; - rdfs:label "nominal efficiency"@en . - -s4bldg:temperatureClassification - a owl:DatatypeProperty ; - rdfs:comment "Enumeration defining the temperature classification of the space heater surface temperature. low temperature - surface temperature is relatively low, usually heated by hot water or electricity. high temperature - surface temperature is relatively high, usually heated by gas or steam."@en ; - rdfs:label "temperature classification"@en ; - rdfs:range xsd:string . - -s4bldg:CoolingTower a owl:Class ; - rdfs:comment "A cooling tower is a device which rejects heat to ambient air by circulating a fluid such as water through it to reduce its temperature by partial evaporation."@en ; - rdfs:label "Cooling tower"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCoolingTower" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:ambientDesignWetBulbTemperature - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:capacityControl - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:basinReserveVolume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:liftElevationDifference - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:waterRequirement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:sprayType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:flowArrangement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalCapacity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:ambientDesignDryBulbTemperature - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOfCells - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:circuitType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:controlStrategy - ] ; - prov:hadPrimarySource , . - -s4bldg:temperatureRating - a owl:ObjectProperty ; - rdfs:comment "Temperature rating. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "temperature rating"@en . - -s4bldg:outletConnectionSize - a owl:ObjectProperty ; - rdfs:comment "Size of the outlet connection. Usually measured in millimeters (mm)."@en ; - rdfs:label "outlet connection size"@en . - -s4bldg:waterPressureMax - a owl:ObjectProperty ; - rdfs:comment "Allowable water circuit working pressure range. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "water pressure range"@en . - -s4bldg:ProtectiveDeviceTrippingUnit - a owl:Class ; - rdfs:comment "A protective device tripping unit breaks an electrical circuit at a separate breaking unit when a stated electric current that passes through the unit is exceeded."@en ; - rdfs:label "Protective device tripping unit"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcProtectiveDeviceTrippingUnit" ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:standard - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:limitingTerminalSize - ] ; - prov:hadPrimarySource , . - -s4bldg:Damper a owl:Class ; - rdfs:comment "A damper typically participates in an HVAC duct distribution system and is used to control or modulate the flow of air."@en ; - rdfs:label "Damper"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcDamper" ; - rdfs:subClassOf s4bldg:FlowController ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:bladeShape - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:temperatureRating - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:airFlowRateMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:leakageFullyClosed - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:frameType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:orientation - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:closeOffRating - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOfBlades - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:faceArea - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:frameThickness - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:operation - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:workingPressureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:bladeEdge - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalAirFlowRate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:bladeThickness - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:openPressureDrop - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:frameDepth - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:bladeAction - ] ; - prov:hadPrimarySource , . - -s4bldg:ProtectiveDevice - a owl:Class ; - rdfs:comment "A protective device breaks an electrical circuit when a stated electric current that passes through it is exceeded.\n\nA protective device provides protection against electrical current only (not as a general protective device). It may be used to represent the complete set of elements including both the tripping unit and the breaking unit that provide the protection. This may be particularly useful at earlier stages of design where the approach to breaking the electrical supply may be determined but the method of tripping may not. Alternatively, this entity may be used to specifically represent the breaking unit alone (in which case the tripping unit will also be specifically identified). This entity is specific to dedicated protective devices and excludes electrical outlets that may have circuit protection."@en ; - rdfs:label "Protective device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcProtectiveDevice" ; - rdfs:subClassOf s4bldg:FlowController ; - prov:hadPrimarySource , . - -s4bldg:nominalBodyDepth - a owl:ObjectProperty ; - rdfs:comment "Nominal or quoted =length, measured along the z-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal body depth"@en . - -s4bldg:ElectricTimeControl - a owl:Class ; - rdfs:comment "An electric time control is a device that applies control to the provision or flow of electrical energy over time."@en ; - rdfs:label "Electric time control"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricTimeControl" ; - rdfs:subClassOf s4bldg:FlowController ; - prov:hadPrimarySource , . - -s4bldg:outletTemperatureMax - a owl:ObjectProperty ; - rdfs:comment "Allowable outlet temperature of either the water or the steam. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "outlet temperature range"@en . - -s4bldg:apparentPowerMax - a owl:ObjectProperty ; - rdfs:comment "Maximum apparent power/capacity in VA (volt ampere). Usually measured in Watts (W, J/s)."@en ; - rdfs:label "maximum apparent power"@en . - -s4bldg:leakageFullyClosed - a owl:ObjectProperty ; - rdfs:comment "Leakage when fully closed. Usually measured in m3/s."@en ; - rdfs:label "leakage fully closed"@en . - -s4bldg:contributedLuminousFlux - a owl:ObjectProperty ; - rdfs:comment "Luminous flux is a photometric measure of radiant flux, i.e. the volume of light emitted from a light source. Luminous flux is measured either for the interior as a whole or for a part of the interior (partial luminous flux for a solid angle). All other photometric parameters are derivatives of luminous flux. Luminous flux is measured in lumens (lm). The luminous flux is given as a nominal value for each lamp. Usually measured in Lumen (lm, Candela Steradian)."@en ; - rdfs:label "contributed luminous flux"@en . - -s4bldg:nominalHeatTransferCoefficient - a owl:ObjectProperty ; - rdfs:comment "Nominal overall heat transfer coefficient associated with nominal heat transfer area. Usually measured in Watts/m2 Kelvin."@en ; - rdfs:label "nominal heat transfer coefficient"@en . - -s4bldg:flowCoefficient - a owl:ObjectProperty ; - rdfs:comment "Flow coefficient (the quantity of fluid that passes through a fully open valve at unit pressure drop), typically expressed as the Kv or Cv value for the valve."@en ; - rdfs:label "flow coefficient"@en . - -dcterms:creator a owl:AnnotationProperty . - -s4bldg:ElectricAppliance - a owl:Class ; - rdfs:comment "An electric appliance is a device intended for consumer usage that is powered by electricity.\n\nElectric appliances may be fixed in place or may be able to be moved from one space to another. Electric appliances require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source."@en ; - rdfs:label "Electric appliance"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricAppliance" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - prov:hadPrimarySource , . - -s4bldg:AirToAirHeatRecovery - a owl:Class ; - rdfs:comment "An air-to-air heat recovery device employs a counter-flow heat exchanger between inbound and outbound air flow. It is typically used to transfer heat from warmer air in one chamber to cooler air in the second chamber (i.e., typically used to recover heat from the conditioned air being exhausted and the outside air being supplied to a building), resulting in energy savings from reduced heating (or cooling) requirements."@en ; - rdfs:label "Air to air heat recovery"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcAirToAirHeatRecovery" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:heatTransferTypeEnum - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:primaryAirFlowRateMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:primaryAirFlowRateMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:secondaryAirFlowRateMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:hasDefrost - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:secondaryAirFlowRateMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - prov:hadPrimarySource , . - -s4bldg:Burner a owl:Class ; - rdfs:comment "A burner is a device that converts fuel into heat through combustion. It includes gas, oil, and wood burners."@en ; - rdfs:label "Burner"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcBurner" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:energySource - ] ; - prov:hadPrimarySource , . - -s4bldg:primaryCurrent - a owl:ObjectProperty ; - rdfs:comment "The current that is going to be transformed and that runs into the transformer on the primary side. Usually measured in Ampere (A)."@en ; - rdfs:label "primary current"@en . - -s4bldg:VibrationIsolator - a owl:Class ; - rdfs:comment "A vibration isolator is a device used to minimize the effects of vibration transmissibility in a building."@en ; - rdfs:label "Vibration isolator"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcVibrationIsolator" ; - rdfs:subClassOf saref:Device ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:vibrationTransmissibility - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:isolatorStaticDeflection - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:isolatorCompressibility - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:height - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:supportedWeightMax - ] ; - prov:hadPrimarySource , . - -s4bldg:SolarDevice a owl:Class ; - rdfs:comment "A solar device converts solar radiation into other energy such as electric current or thermal energy."@en ; - rdfs:label "Solar device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSolarDevice" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - prov:hadPrimarySource , . - -prov:hadPrimarySource - a owl:AnnotationProperty . - -s4bldg:nominalWidthOrDiameter - a owl:ObjectProperty ; - rdfs:comment "The nominal width or, in the case of a horizontal cylindrical tank, the nominal diameter of the tank. Note: Not required for a vertical cylindrical tank. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal width or diameter"@en . - -s4bldg:nominalRotationSpeed - a owl:ObjectProperty ; - rdfs:comment "Nominal fan wheel speed. Usually measured in cycles/s."@en ; - rdfs:label "nominal rotation speed"@en . - -s4bldg:coverLength a owl:ObjectProperty ; - rdfs:comment "The length measured along the x-axis in the local coordinate system or the radius (in the case of a circular shape in plan) of the cover of the oil interceptor. Usually measured in millimeters (mm)."@en ; - rdfs:label "cover length"@en . - -s4bldg:realImpedanceRatio - a owl:ObjectProperty ; - rdfs:comment "The ratio between the real part of the zero sequence impedance and the real part of the positive impedance (i.e. real part of the short-circuit voltage) of the transformer. Used for three-phase transformer which includes a N-conductor."@en ; - rdfs:label "real impedance ratio"@en . - -s4bldg:closeOffRating - a owl:ObjectProperty ; - rdfs:comment "Close off rating. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "close off rating"@en . - -s4bldg:isFreeHanging a owl:DatatypeProperty ; - rdfs:comment "Is it free hanging type (not mounted in a false ceiling)?"@en ; - rdfs:label "is free hanging"@en ; - rdfs:range xsd:boolean . - -s4bldg:nominalSensibleCapacity - a owl:ObjectProperty ; - rdfs:comment "Nominal sensible capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal sensible capacity"@en . - -s4bldg:nominalUa a owl:ObjectProperty ; - rdfs:comment "Nominal UA value."@en ; - rdfs:label "nominal ua"@en . - -s4bldg:Filter a owl:Class ; - rdfs:comment "A filter is an apparatus used to remove particulate or gaseous matter from fluids and gases."@en ; - rdfs:label "Filter"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFilter" ; - rdfs:subClassOf s4bldg:FlowTreatmentDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:weight - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:finalResistance - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:fluidFlowRateMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:fluidFlowRateMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:operationTemperatureMin - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalParticleGeometricStandardDeviation - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalFilterFaceVelocity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalMediaSurfaceVelocity - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalParticleGeometricMeanDiameter - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalFlowRate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:initialResistance - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalPressureDrop - ] ; - prov:hadPrimarySource , . - -s4bldg:readOutType a owl:DatatypeProperty ; - rdfs:comment "Indication of the form that readout from the meter takes. In the case of a dial read out, this may comprise multiple dials that give a cumulative reading and/or a mechanical odometer."@en ; - rdfs:label "read out type"@en ; - rdfs:range xsd:string . - -s4bldg:hydraulicDiameter - a owl:ObjectProperty ; - rdfs:comment "Hydraulic diameter. Usually measured in millimeters (mm)."@en ; - rdfs:label "hydraulic diameter"@en . - -s4bldg:nominalFlowRate - a owl:ObjectProperty ; - rdfs:comment "Nominal fluid flow rate through the filter. Usually measured in m3/s."@en ; - rdfs:label "nominal flow rate"@en . - -s4bldg:liftElevationDifference - a owl:ObjectProperty ; - rdfs:comment "Elevation difference between cooling tower sump and the top of the tower. Usually measured in millimeters (mm)."@en ; - rdfs:label "lift elevation difference"@en . - -s4bldg:operationalRiterial - a owl:ObjectProperty ; - rdfs:comment "Time of operation at maximum operational ambient air temperature. Measured in seconds (s) or days (d) or other units of time."@en ; - rdfs:label "operational riterial"@en . - -saref:UnitOfMeasure a owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Unit of measure"@en . - -s4bldg:isolatorCompressibility - a owl:ObjectProperty ; - rdfs:comment "The compressibility of the vibration isolator."@en ; - rdfs:label "isolator compressibility"@en . - -s4bldg:Controller a owl:Class ; - rdfs:comment "A controller is a device that monitors inputs and controls outputs within a building automation system.\n\nA controller may be physical (having placement within a spatial structure) or logical (a software interface or aggregated within a programmable physical controller)."@en ; - rdfs:label "Controller"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcController" ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - prov:hadPrimarySource , . - -saref:Device a owl:Class ; - rdfs:comment "A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Device"@en ; - rdfs:subClassOf s4bldg:PhysicalObject . - -s4bldg:motorDriveType - a owl:DatatypeProperty ; - rdfs:comment "Motor drive type: DIRECTDRIVE: Direct drive. BELTDRIVE: Belt drive. COUPLING: Coupling. OTHER: Other type of motor drive. UNKNOWN: Unknown motor drive type. "@en ; - rdfs:label "motor drive type"@en ; - rdfs:range xsd:string . - -s4bldg:isGuarded a owl:DatatypeProperty ; - rdfs:comment "Indication of whether the motor enclosure is guarded (= TRUE) or not (= FALSE)."@en ; - rdfs:label "is guarded"@en ; - rdfs:range xsd:boolean . - -s4bldg:flowArrangement - a owl:DatatypeProperty ; - rdfs:comment "CounterFlow: Air and water flow enter in different directions. CrossFlow: Air and water flow are perpendicular. ParallelFlow: air and water flow enter in same directions."@en ; - rdfs:label "flow arrangement"@en ; - rdfs:range xsd:string . - -s4bldg:DistributionControlDevice - a owl:Class ; - rdfs:comment "Represents devices of a building automation control system that are used to impart control over elements of a distribution system. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcsharedbldgserviceelements/lexical/ifcdistributioncontrolelement.htm)"@en ; - rdfs:label "Distribution control device"@en ; - rdfs:subClassOf s4bldg:DistributionDevice . - -s4bldg:Alarm a owl:Class ; - rdfs:comment "An alarm is a device that signals the existence of a condition or situation that is outside the boundaries of normal expectation or that activates such a device.\n\nAlarms include the provision of break glass buttons and manual pull boxes that are used to activate alarms."@en ; - rdfs:label "Alarm"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcAlarm" ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - prov:hadPrimarySource , . - -s4bldg:nominalEnergyConsumption - a owl:ObjectProperty ; - rdfs:comment "Nominal fuel consumption rate required to produce the total boiler heat output. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal energy consumption"@en . - -s4bldg:inLineRowSpacing - a owl:ObjectProperty ; - rdfs:comment "In-line tube row spacing. Usually measured in millimeters (mm)."@en ; - rdfs:label "in line row spacing"@en . - -s4bldg:Engine a owl:Class ; - rdfs:comment "An engine is a device that converts fuel into mechanical energy through combustion."@en ; - rdfs:label "Engine"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcEngine" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:energySource - ] ; - prov:hadPrimarySource , . - -s4bldg:nominalStaticPressure - a owl:ObjectProperty ; - rdfs:comment "The static pressure within the air stream that the fan must overcome to insure designed circulation of air. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "nominal static pressure"@en . - -s4bldg:pressureRating - a owl:ObjectProperty ; - rdfs:comment "Nominal pressure rating of the boiler as rated by the agency having jurisdiction. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "pressure rating"@en . - -s4bldg:heatTransferTypeEnum - a owl:DatatypeProperty ; - rdfs:comment "Type of heat transfer between the two air streams."@en ; - rdfs:label "heat transfer type enum"@en ; - rdfs:range xsd:string . - -s4bldg:nominalSupplyVoltage - a owl:ObjectProperty ; - rdfs:comment "The nominal voltage of the supply. Usually measured in Volts (V, W/A)."@en ; - rdfs:label "nominal supply voltage"@en . - -s4bldg:pumpFlowRateMin - a owl:ObjectProperty ; - rdfs:comment "Allowable range of volume of fluid being pumped against the resistance specified. Usually measured in kg/s."@en ; - rdfs:label "pump flow rate range"@en . - -s4bldg:orientation a owl:DatatypeProperty ; - rdfs:comment "The intended orientation for the damper as specified by the manufacturer."@en ; - rdfs:label "orientation"@en ; - rdfs:range xsd:string . - -s4bldg:lampCompensationType - a owl:DatatypeProperty ; - rdfs:comment "Identifies the form of compensation used for power factor correction and radio suppression."@en ; - rdfs:label "lamp compensation type"@en ; - rdfs:range xsd:string . - -s4bldg:FlowTerminal a owl:Class ; - rdfs:comment "The distribution flow element FlowTerminal defines the occurrence of a permanently attached element that acts as a terminus or beginning of a distribution system (such as an air outlet, drain, water closet, or sink). A terminal is typically a point at which a system interfaces with an external environment."@en ; - rdfs:label "Flow terminal"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowTerminal" ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - prov:hadPrimarySource . - -vann:preferredNamespacePrefix - a owl:AnnotationProperty . - -s4bldg:visibleLightTransmittance - a owl:ObjectProperty ; - rdfs:comment "Fraction of the visible light that passes the shading system at normal incidence. It is a value without unit."@en ; - rdfs:label "visible light transmittance"@en . - -s4bldg:operatingMode a owl:DatatypeProperty ; - rdfs:comment "Identifies the operating mode of the boiler."@en ; - rdfs:label "operating mode"@en ; - rdfs:range xsd:string . - -s4bldg:thermalMassHeatCapacity - a owl:ObjectProperty ; - rdfs:comment "Product of component mass and specific heat."@en ; - rdfs:label "thermal mass heat capacity"@en . - -s4bldg:workingPressureMin - a owl:ObjectProperty ; - rdfs:comment "Allowable minimum working pressure (relative to ambient pressure). Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "minimum working pressure"@en . - -s4bldg:fluidFlowRateMin - a owl:ObjectProperty ; - rdfs:comment "Possible range of fluid flowrate that can be delivered. Usually measured in m3/s."@en ; - rdfs:label "fluid flow rate range"@en . - -s4bldg:electricGeneratorEfficiency - a owl:ObjectProperty ; - rdfs:comment "The ratio of output capacity to intake capacity."@en ; - rdfs:label "electric generator efficiency"@en . - -s4bldg:Actuator a owl:Class ; - rdfs:comment "An actuator is a mechanical device for moving or controlling a mechanism or system. An actuator takes energy, usually created by air, electricity, or liquid, and converts that into some kind of motion."@en ; - rdfs:label "Actuator"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcActuator" ; - rdfs:subClassOf saref:Actuator , s4bldg:DistributionControlDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:manualOverride - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:failPosition - ] ; - prov:hadPrimarySource , . - -s4bldg:waterStorageCapacity - a owl:ObjectProperty ; - rdfs:comment "Water storage capacity. Usually measured in cubic metre (m3)."@en ; - rdfs:label "water storage capacity"@en . - -s4bldg:solarTransmittance - a owl:ObjectProperty ; - rdfs:comment "(Tsol) The ratio of incident solar radiation that directly passes through a shading system (also named _e). Note the following equation Asol + Rsol + Tsol = 1"@en ; - rdfs:label "solar transmittance"@en . - -s4bldg:nominalFrequency - a owl:ObjectProperty ; - rdfs:comment "The nominal frequency of the supply. Usually measured in cycles/s or Hertz (Hz)."@en ; - rdfs:label "nominal frequency"@en . - -s4bldg:energySource a owl:DatatypeProperty ; - rdfs:comment "The source of energy."@en , "Enumeration defining the energy source or fuel cumbusted to generate heat."@en ; - rdfs:label "energy source"@en ; - rdfs:range xsd:string . - -s4bldg:secondCurvatureRadius - a owl:ObjectProperty ; - rdfs:comment "SecondCurvatureRadius should be defined as the top or right side radius of curvature value. Usually measured in millimeters (mm)."@en ; - rdfs:label "second curvature radius"@en . - -s4bldg:nominalReturnWaterTemperatureHeating - a owl:ObjectProperty ; - rdfs:comment "Nominal return water temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal return water temperature heating"@en . - -s4bldg:electricMotorEfficiency - a owl:ObjectProperty ; - rdfs:comment "The ratio of output capacity to intake capacity."@en ; - rdfs:label "electric motor efficiency"@en . - -s4bldg:coilWidth a owl:ObjectProperty ; - rdfs:comment "Width of coil. Usually measured in millimeters (mm"@en ; - rdfs:label "coil width"@en . - -s4bldg:secondaryVoltage - a owl:ObjectProperty ; - rdfs:comment "The voltage that has been transformed and is running out of the transformer on the secondary side. Usually measured in Volts (V, W/A)."@en ; - rdfs:label "secondary voltage"@en . - -s4bldg:faceArea a owl:ObjectProperty ; - rdfs:comment "Face area open to the airstream. Usually measured in square metre (m2)."@en ; - rdfs:label "face area"@en . - -s4bldg:testPressure a owl:ObjectProperty ; - rdfs:comment "The maximum pressure to which the valve has been subjected under test. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "test pressure"@en . - -s4bldg:flowResistanceMax - a owl:ObjectProperty ; - rdfs:comment "Allowable range of frictional resistance against which the fluid is being pumped. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "flow resistance range"@en . - -s4bldg:numberOfRows a owl:DatatypeProperty ; - rdfs:comment "Number of tube rows in the tube bundle assembly."@en ; - rdfs:label "number of rows"@en ; - rdfs:range xsd:integer . - -s4bldg:nominalPressureDrop - a owl:ObjectProperty ; - rdfs:comment "Total pressure drop across the filter. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "nominal pressure drop"@en . - -s4bldg:nominalHeatTransferArea - a owl:ObjectProperty ; - rdfs:comment "Nominal heat transfer surface area associated with nominal overall heat transfer coefficient. Usually measured in square metre (m2)."@en ; - rdfs:label "nominal heat transfer area"@en . - -s4bldg:mediaSource a owl:DatatypeProperty ; - rdfs:comment "Indicates media sources and corresponding names of ports (DistributionPort with FlowDirection=SINK and PredefinedType=AUDIOVISUAL) or aggregated audio/video components (AudioVisualAppliance)."@en ; - rdfs:label "media source"@en ; - rdfs:range xsd:string . - -s4bldg:operatingWeight - a owl:ObjectProperty ; - rdfs:comment "Operating weight of the tank including all of its contents. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "operating weight"@en . - -s4bldg:nominalWaterFlowHeating - a owl:ObjectProperty ; - rdfs:comment "Nominal water flow (refers to nominal heating capacity). Usually measured in m3/s."@en ; - rdfs:label "nominal water flow heating"@en . - -s4bldg:Evaporator a owl:Class ; - rdfs:comment "An evaporator is a device in which a liquid refrigerent is vaporized and absorbs heat from the surrounding fluid."@en ; - rdfs:label "Evaporator"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcEvaporator" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:evaporationCoolant - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalHeatTransferArea - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:internalSurfaceArea - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:externalSurfaceArea - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:internalWaterVolume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:refrigerantClass - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:internalRefrigerantVolume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4bldg:evaporationMediumType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:nominalHeatTransferCoefficient - ] ; - prov:hadPrimarySource , . - -s4bldg:operationTemperatureMin - a owl:ObjectProperty ; - rdfs:comment "Allowable operation ambient (air, fluid) temperature range. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "operation temperature range"@en . - -s4bldg:endShapeType a owl:DatatypeProperty ; - rdfs:comment "Defines the types of end shapes that can be used for preformed tanks. The convention for reading these enumerated values is that for a vertical cylinder, the first value is the base and the second is the top for a horizontal cylinder, the order of reading should be left to right. For a speherical tank, the value UNSET should be used.B5"@en ; - rdfs:label "end shape type"@en ; - rdfs:range xsd:string . - -s4bldg:nomminalRotationSpeed - a owl:ObjectProperty ; - rdfs:comment "Pump rotational speed under nominal conditions. Usually measured in cycles/s."@en ; - rdfs:label "nomminal rotation speed"@en . - -s4bldg:BuildingSpace a owl:Class ; - rdfs:comment "An entity used to define the physical spaces of the building. A building space contains devices or building objects."@en ; - rdfs:label "Building space"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf [ a rdf:List ; - rdf:first s4bldg:Building ; - rdf:rest [ a rdf:List ; - rdf:first s4bldg:BuildingSpace ; - rdf:rest () - ] - ] - ] ; - owl:onProperty s4bldg:isSpaceOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4bldg:BuildingSpace ; - owl:onProperty s4bldg:hasSpace - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4bldg:PhysicalObject ; - owl:onProperty s4bldg:contains - ] . - -s4bldg:size a owl:ObjectProperty ; - rdfs:comment "The size of the connection to the valve (or to each connection for faucets, mixing valves, etc.). Usually measured in millimeters (mm)."@en ; - rdfs:label "size"@en . - -s4bldg:impellerDiameter - a owl:ObjectProperty ; - rdfs:comment "Diameter of compressor impeller - used to scale performance of geometrically similar compressors. Usually measured in millimeters (mm)."@en ; - rdfs:label "impeller diameter"@en . - -s4bldg:spectrumMax a owl:ObjectProperty ; - rdfs:comment "The spectrum of radiation describes its composition with regard to wavelength. Light, for example, as the portion of electromagnetic radiation that is visible to the human eye, is radiation with wavelengths in the range of approx. 380 to 780 nm (1 nm = 10 m). The corresponding range of colours varies from violet to indigo, blue, green, yellow, orange, and red. These colours form a continuous spectrum, in which the various spectral sectors merge into each other."@en ; - rdfs:label "maximum spectrum"@en . - -s4bldg:BuildingDevice - a owl:Class ; - rdfs:comment "A tangible object designed to accomplish a particular task in a building."@en ; - rdfs:label "Building device"@en ; - rdfs:subClassOf saref:Device , s4bldg:BuildingObject . - -s4bldg:verticalSpacing - a owl:ObjectProperty ; - rdfs:comment "Vertical spacing between tubes in the tube bundle.Usually measured in millimeters (mm)."@en ; - rdfs:label "vertical spacing"@en . - -s4bldg:switchFunction - a owl:DatatypeProperty ; - rdfs:comment "Indicates types of switches which differs in functionality."@en ; - rdfs:label "switch function"@en ; - rdfs:range xsd:string . - -s4bldg:FlowStorageDevice - a owl:Class ; - rdfs:comment "The distribution flow element FlowStorageDevice defines the occurrence of a device that participates in a distribution system and is used for temporary storage (such as a tank)."@en ; - rdfs:label "Flow storage device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowStorageDevice" ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - prov:hadPrimarySource . - -s4bldg:colorAppearance - a owl:DatatypeProperty ; - rdfs:comment "In both the DIN and CIE standards, artificial light sources are classified in terms of their color appearance. To the human eye they all appear to be white the difference can only be detected by direct comparison. Visual performance is not directly affected by differences in color appearance."@en ; - rdfs:label "color appearance"@en ; - rdfs:range xsd:string . - -s4bldg:ElectricGenerator - a owl:Class ; - rdfs:comment "An electric generator is an engine that is a machine for converting mechanical energy into electrical energy."@en ; - rdfs:label "Electric generator"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricGenerator" ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:powerOutputMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:startCurrentFactor - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4bldg:electricGeneratorEfficiency - ] ; - prov:hadPrimarySource , . - -s4bldg:capacityControlType - a owl:DatatypeProperty ; - rdfs:comment "InletVane: Control by adjusting inlet vane. VariableSpeedDrive: Control by variable speed drive. BladePitchAngle: Control by adjusting blade pitch angle. TwoSpeed: Control by switch between high and low speed. DischargeDamper: Control by modulating discharge damper."@en ; - rdfs:label "capacity control type"@en ; - rdfs:range xsd:string . - -s4bldg:storageType a owl:DatatypeProperty ; - rdfs:comment "Defines the general material category intended to be stored."@en ; - rdfs:label "storage type"@en ; - rdfs:range xsd:string . - -saref:isMeasuredIn a owl:ObjectProperty ; - rdfs:comment "A relation between a measurement and the unit of measure in which the measurement value is expressed."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "is measured in"@en . - -s4bldg:nominalEvaporatingTemmperature - a owl:ObjectProperty ; - rdfs:comment "Chiller evaporating temperature.Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal evaporating temmperature"@en . - -s4bldg:partLoadRatioMax - a owl:ObjectProperty ; - rdfs:comment "Maximum part load ratio as a fraction of nominal capacity."@en ; - rdfs:label "maximum part load ratio"@en . - -s4bldg:nominalCapacity - a owl:ObjectProperty ; - rdfs:comment "Nominal capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal capacity"@en . - -s4bldg:Outlet a owl:Class ; - rdfs:comment "An outlet is a device installed at a point to receive one or more inserted plugs for electrical power or communications.\n\nPower outlets are commonly connected within a junction box; data outlets may be directly connected to a wall. For power outlets sharing the same circuit within a junction box, the ports should indicate the logical wiring relationship to the enclosing junction box, even though they may be physically connected to a cable going to another outlet, switch, or fixture."@en ; - rdfs:label "Outlet"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcOutlet" ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty s4bldg:numberOsSockets - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4bldg:isPluggableOutlet - ] ; - prov:hadPrimarySource , . - -s4bldg:mechanicalOperated - a owl:DatatypeProperty ; - rdfs:comment "Indication whether the element is operated machanically (TRUE) or not, i.e. manually (FALSE)."@en ; - rdfs:label "mechanical operated"@en ; - rdfs:range xsd:boolean . - -s4bldg:isolatorStaticDeflection - a owl:ObjectProperty ; - rdfs:comment "Static deflection of the vibration isolator. Usually measured in millimeters (mm)."@en ; - rdfs:label "isolator static deflection"@en . - -s4bldg:waterPressureMin - a owl:ObjectProperty ; - rdfs:comment "Allowable water circuit working pressure range. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "water pressure range"@en . - -s4bldg:motorEnclosureType - a owl:DatatypeProperty ; - rdfs:comment "A list of the available types of motor enclosure from which that required may be selected."@en ; - rdfs:label "motor enclosure type"@en ; - rdfs:range xsd:string . - -s4bldg:refrigerantClass - a owl:DatatypeProperty ; - rdfs:comment "Refrigerant class used by the compressor. CFC: Chlorofluorocarbons. HCFC: Hydrochlorofluorocarbons. HFC: Hydrofluorocarbons."@en ; - rdfs:label "refrigerant class"@en ; - rdfs:range xsd:string . - -s4bldg:outletTemperatureMin - a owl:ObjectProperty ; - rdfs:comment "Allowable outlet temperature of either the water or the steam. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "outlet temperature range"@en . - -s4bldg:frameThickness - a owl:ObjectProperty ; - rdfs:comment "The thickness of the damper frame material. Usually measured in millimeters (mm)."@en ; - rdfs:label "frame thickness"@en . - -s4bldg:manualOverride - a owl:DatatypeProperty ; - rdfs:comment "Identifies whether hand-operated operation is provided as an override (= TRUE) or not (= FALSE). Note that this value should be set to FALSE by default in the case of a Hand Operated Actuator."@en ; - rdfs:label "manual override"@en ; - rdfs:range xsd:boolean . - -s4bldg:nominalSupplyWaterTemperatureCooling - a owl:ObjectProperty ; - rdfs:comment "Nominal supply water temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal supply water temperature cooling"@en . - -s4bldg:solarReflectance - a owl:ObjectProperty ; - rdfs:comment "(Rsol): The ratio of incident solar radiation that is reflected by a shading system (also named _e). Note the following equation Asol + Rsol + Tsol = 1"@en ; - rdfs:label "solar reflectance"@en . - -s4bldg:primaryFrequency - a owl:ObjectProperty ; - rdfs:comment "The frequency that is going to be transformed and that runs into the transformer on the primary side. Usually measured in cycles/s or Hertz (Hz)."@en ; - rdfs:label "primary frequency"@en . - -saref:Property a owl:Class ; - rdfs:comment "An aspect of an entity that can be observable by a sensor."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "Property"@en ; - owl:disjointWith saref:UnitOfMeasure . diff --git a/src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/saref4bldg.rdf b/src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/saref4bldg.rdf deleted file mode 100644 index 78efafb..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/saref4bldg.rdf +++ /dev/null @@ -1,4570 +0,0 @@ - - - https://saref.etsi.org/saref4bldg# - - This ontology extends the SAREF ontology for the building domain by defining building devices and how they are located in a building. This extension is based on the ISO 16739:2013 Industry Foundation Classes (IFC) standard for data sharing in the construction and facility management industries. The descriptions of the classes and properties extracted from IFC have been taken from the IFC documentation. - - s4bldg - SAREF extension for building devices - - - This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge. - - - 2019-06-11 - 1.1.1 - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcFlowMeter - Flow meter - A flow meter is a device that is used to measure the flow rate in a system. - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcCooledBeam - - - - - - - - - - - - - - Cooled beam - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A cooled beam (or chilled beam) is a device typically used to cool air by circulating a fluid such as chilled water through exposed finned tubes above a space. Typically mounted overhead near or within a ceiling, the cooled beam uses convection to cool the space below it by acting as a heat sink for the naturally rising warm air of the space. Once cooled, the air naturally drops back to the floor where the cycle begins again. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Fan - - - - - - - - - - - - A fan is a device which imparts mechanical work on a gas. A typical usage of a fan is to induce airflow in a building services air distribution system. - https://w3id.org/ifc/IFC4_ADD1#IfcFan - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcCoolingTower - A cooling tower is a device which rejects heat to ambient air by circulating a fluid such as water through it to reduce its temperature by partial evaporation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Cooling tower - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcTubeBundle - A tube bundle is a device consisting of tubes and bundles of tubes used for heat transfer and contained typically within other energy conversion devices, such as a chiller or coil. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tube bundle - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcLamp - Lamp - - - - - - - - - - - - - - - - - - - - - - - A lamp is an artificial light source such as a light bulb or tube. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Switching device - - - A switch is used in a cable distribution system (electrical circuit) to control or modulate the flow of electricity. - -Switches include those used for electrical power, communications, audio-visual, or other distribution system types as determined by the available ports. - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcSwitchingDevice - - - Physical object - Any Object that has a proper space region. (Definition extracted from DUL ontology) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Electric motor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcElectricMotor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - An electric motor is an engine that is a machine for converting electrical energy into mechanical energy. - - - - - - - - - - - - - - - - Building - A building represents a structure that provides shelter for its occupants or contents and stands in one place. The building is also used to provide a basic element within the spatial structure hierarchy for the components of a building project (together with site, storey, and space). - - - - - - - - - - - - - Building device - A tangible object designed to accomplish a particular task in a building. - - - - - - - - - Distribution device - Generalization of all devices that participate in a distribution system. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcproductextension/lexical/ifcdistributionelement.htm) - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcAudioVisualApplicance - Audio visual appliance - An audio-visual appliance is a device that displays, captures, transmits, or receives audio or video. - -Audio-visual appliances may be fixed in place or may be able to be moved from one space to another. They may require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source. Audio-visual appliances may be connected to data circuits including specialist circuits for audio visual purposes only. - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcProtectiveDevice - Protective device - A protective device breaks an electrical circuit when a stated electric current that passes through it is exceeded. - -A protective device provides protection against electrical current only (not as a general protective device). It may be used to represent the complete set of elements including both the tripping unit and the breaking unit that provide the protection. This may be particularly useful at earlier stages of design where the approach to breaking the electrical supply may be determined but the method of tripping may not. Alternatively, this entity may be used to specifically represent the breaking unit alone (in which case the tripping unit will also be specifically identified). This entity is specific to dedicated protective devices and excludes electrical outlets that may have circuit protection. - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcProtectiveDeviceTrippingUnit - Protective device tripping unit - A protective device tripping unit breaks an electrical circuit at a separate breaking unit when a stated electric current that passes through the unit is exceeded. - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcFlowStorageDevice - Flow storage device - The distribution flow element FlowStorageDevice defines the occurrence of a device that participates in a distribution system and is used for temporary storage (such as a tank). - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcTransportElement - - - - - - - - - - - - - - - - - - - - A transport element is a generalization of all transport related objects that move people, animals or goods within a building or building complex. The TransportElement defines the occurrence of a transport element. - - - - Transport element - - - - - - - - - - - - - - - - - - - - - A compressor is a device that compresses a fluid typically used in a refrigeration circuit. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcCompressor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compressor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcInterceptor - - - - - - - - - - - - An interceptor is a device designed and installed in order to separate and retain deleterious, hazardous or undesirable matter while permitting normal sewage or liquids to discharge into a collection system by gravity. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Interceptor - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcFlowController - Flow controller - The distribution flow element FlowController defines the occurrence of elements of a distribution system that are used to regulate flow through a distribution system. Examples include dampers, valves, switches, and relays. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - An evaporator is a device in which a liquid refrigerent is vaporized and absorbs heat from the surrounding fluid. - - - - - - - - - - - - - - - - - - - - - - Evaporator - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcEvaporator - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcSensor - Sensor - A sensor is a device that measures a physical quantity and converts it into a signal which can be read by an observer or by an instrument. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A filter is an apparatus used to remove particulate or gaseous matter from fluids and gases. - - - - - Filter - - https://w3id.org/ifc/IFC4_ADD1#IfcFilter - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcController - Controller - A controller is a device that monitors inputs and controls outputs within a building automation system. - -A controller may be physical (having placement within a spatial structure) or logical (a software interface or aggregated within a programmable physical controller). - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcUnitaryControlElement - Unitary control element - A unitary control element combines a number of control components into a single product, such as a thermostat or humidistat. - -A unitary control element provides a housing for an aggregation of control or electrical distribution elements that, in combination, perform a singular (unitary) purpose. Each item in the aggregation may have its own geometric representation and location. - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcElectricFlowStorageDevice - - - - - - - - - - - Electric flow storage device - - - - - - - - - - - - - - An electric flow storage device is a device in which electrical energy is stored and from which energy may be progressively released. - - - Sensor - - A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. -A device that has category saref:Sensor and performs a saref:SensingFunction. - - - Property - https://w3id.org/saref# - An aspect of an entity that can be observable by a sensor. - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcBurner - Burner - A burner is a device that converts fuel into heat through combustion. It includes gas, oil, and wood burners. - - - - - - - - - - - - - - - - - - - - - - - - Tank - https://w3id.org/ifc/IFC4_ADD1#IfcTank - - - - - - - - - - - - - - - - - - - - - - - - - - - - A tank is a vessel or container in which a fluid or gas is stored for later use. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcMedicalDevice - Medical device - A medical device is attached to a medical piping system and operates upon medical gases to perform a specific function. Medical gases include medical air, medical vacuum, oxygen, carbon dioxide, nitrogen, and nitrous oxide. - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcElectricGenerator - - Electric generator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - An electric generator is an engine that is a machine for converting mechanical energy into electrical energy. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A pump is a device which imparts mechanical work on fluids or slurries to move them through a channel or pipeline. A typical use of a pump is to circulate chilled water or heating hot water in a building services distribution system. - - - - - - - - - - - - - - - - - - - - - - - - - - Pump - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcPump - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcOutlet - Outlet - An outlet is a device installed at a point to receive one or more inserted plugs for electrical power or communications. - -Power outlets are commonly connected within a junction box; data outlets may be directly connected to a wall. For power outlets sharing the same circuit within a junction box, the ports should indicate the logical wiring relationship to the enclosing junction box, even though they may be physically connected to a cable going to another outlet, switch, or fixture. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcCoil - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A coil is a device used to provide heat transfer between non-mixing media. A common example is a cooling coil, which utilizes a finned coil in which circulates chilled water, antifreeze, or refrigerant that is used to remove heat from air moving across the surface of the coil. A coil may be used either for heating or cooling purposes by placing a series of tubes (the coil) carrying a heating or cooling fluid into an airstream. The coil may be constructed from tubes bundled in a serpentine form or from finned tubes that give a extended heat transfer surface. - -Coils may also be used for non-airflow cases such as embedded in a floor slab. - Coil - - - - https://w3id.org/ifc/IFC4_ADD1#IfcEnergyConversionDevice - Energy conversion device - The distribution flow element EnergyConversionDevice defines the occurrence of a device used to perform energy conversion or heat transfer and typically participates in a flow distribution system. - - - - - - Actuator - - A device responsible for moving or controlling a mechanism or system - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcFlowInstrument - Flow instrument - A flow instrument reads and displays the value of a particular property of a system at a point, or displays the difference in the value of a property between two points. - -Instrumentation is typically for the purpose of determining the value of the property at a point in time. It is not the purpose of an instrument to record or integrate the values over time (although they may be connected to recording devices that do perform such a function). This entity provides for all forms of mechanical flow instrument (thermometers, pressure gauges etc.) and electrical flow instruments (ammeters, voltmeters etc.) - - - - - - Distribution control device - Represents devices of a building automation control system that are used to impart control over elements of a distribution system. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcsharedbldgserviceelements/lexical/ifcdistributioncontrolelement.htm) - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcCommunicationAppliance - Communication appliance - A communications appliance transmits and receives electronic or digital information as data or sound. - -Communication appliances may be fixed in place or may be able to be moved from one space to another. Communication appliances require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source. - - - - - - - - - 1 - - - - - - Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. - - - - - - 1 - - - - - - - - - - - - - - https://w3id.org/saref# - - - - - - - - - - - - 1 - - - - - - Measurement - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcAlarm - Alarm - An alarm is a device that signals the existence of a condition or situation that is outside the boundaries of normal expectation or that activates such a device. - -Alarms include the provision of break glass buttons and manual pull boxes that are used to activate alarms. - - - - Duct silencer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcDuctSilencer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A duct silencer is a device that is typically installed inside a duct distribution system for the purpose of reducing the noise levels from air movement, fan noise, etc. in the adjacent space or downstream of the duct silencer device. - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcEngine - Engine - An engine is a device that converts fuel into mechanical energy through combustion. - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcFlowTerminal - Flow terminal - The distribution flow element FlowTerminal defines the occurrence of a permanently attached element that acts as a terminus or beginning of a distribution system (such as an air outlet, drain, water closet, or sink). A terminal is typically a point at which a system interfaces with an external environment. - - - - - - Humidifier - - https://w3id.org/ifc/IFC4_ADD1#IfcHumidifier - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A humidifier is a device that adds moisture into the air. - - - - - - - - - - - Building space - An entity used to define the physical spaces of the building. A building space contains devices or building objects. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Transformer - https://w3id.org/ifc/IFC4_ADD1#IfcTransformer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A transformer is an inductive stationary device that transfers electrical energy from one circuit to another. - -Transformer is used to transform electric power; conversion of electric signals for other purposes is handled at other entities: Controller converts arbitrary signals, AudioVisualAppliance converts signals for audio or video streams, and CommunicationsAppliance converts signals for data or other communications usage. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcFireSuppressionTerminal - Fire suppression terminal - A fire suppression terminal has the purpose of delivering a fluid (gas or liquid) that will suppress a fire. - -A fire suppression terminal provides for all forms of sprinkler, spreader and other form of terminal that is connected to a pipework system and intended to act in the role of suppressing a fire. - - - - Unit of measure - - The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called "watt". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended. - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcElectricTimeControl - Electric time control - An electric time control is a device that applies control to the provision or flow of electrical energy over time. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Damper - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A damper typically participates in an HVAC duct distribution system and is used to control or modulate the flow of air. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcDamper - - - - - - - - - - - - Device - - A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function. - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcSanitaryTerminal - Sanitary terminal - A sanitary terminal is a fixed appliance or terminal usually supplied with water and used for drinking, cleaning or foul water disposal or that is an item of equipment directly used with such an appliance or terminal. - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcElectricAppliance - Electric appliance - An electric appliance is a device intended for consumer usage that is powered by electricity. - -Electric appliances may be fixed in place or may be able to be moved from one space to another. Electric appliances require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source. - - - - Condenser - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A condenser is a device that is used to dissipate heat, typically by condensing a substance such as a refrigerant from its gaseous to its liquid state. - https://w3id.org/ifc/IFC4_ADD1#IfcCondenser - - - Building object - An object in the building that can be controlled by devices, such as a door or a window that can be automatically opened or closed by an actuator. (Definition taken from SAREF 1.0) - - - - https://w3id.org/ifc/IFC4_ADD1#IfcChiller - - - - - - - - - - Chiller - - - - - - - - - - A chiller is a device used to remove heat from a liquid via a vapor-compression or absorption refrigeration cycle to cool a fluid, typically water or a mixture of water and glycol. The chilled fluid is then used to cool and dehumidify air in a building. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Space heater - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcSpaceHeater - Space heaters utilize a combination of radiation and/or natural convection using a heating source such as electricity, steam or hot water to heat a limited space or area. Examples of space heaters include radiators, convectors, baseboard and finned-tube heaters. - -UnitaryEquipment should be used for packaged units supporting a combination of heating, cooling, and/or dehumidification; Coil should be used for coil-based floor heating. - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcHeatExchanger - Heat exchanger - A heat exchanger is a device used to provide heat transfer between non-mixing media such as plate and shell and tube heat exchangers. HeatExchanger is commonly used on water-side distribution systems to recover energy from a liquid to another liquid (typically water-based), whereas AirToAirHeatRecovery is commonly used on air-side distribution systems to recover energy from a gas to a gas (usually air). - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcFlowMovingDevice - Flow moving device - The distribution flow element FlowMovingDevice defines the occurrence of an apparatus used to distribute, circulate or perform conveyance of fluids, including liquids and gases (such as a pump or fan), and typically participates in a flow distribution system. - - - - - - DistributionFlowDevice - Represents devices of a distribution system that facilitate the distribution of energy or matter, such as air, water or power. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcsharedbldgserviceelements/lexical/ifcdistributionflowelement.htm) - - - - - - - - - - - - - - - - - - - - - Valve - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcValve - A valve is used in a building services piping distribution system to control or modulate the flow of the fluid. - - - - - - - - - - - A vibration isolator is a device used to minimize the effects of vibration transmissibility in a building. - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcVibrationIsolator - - - - - - - - - - Vibration isolator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcSolarDevice - Solar device - A solar device converts solar radiation into other energy such as electric current or thermal energy. - - - - Air to air heat recovery - - - - - - - - - - - - - - - - - - - An air-to-air heat recovery device employs a counter-flow heat exchanger between inbound and outbound air flow. It is typically used to transfer heat from warmer air in one chamber to cooler air in the second chamber (i.e., typically used to recover heat from the conditioned air being exhausted and the outside air being supplied to a building), resulting in energy savings from reduced heating (or cooling) requirements. - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcAirToAirHeatRecovery - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - An evaporative cooler is a device that cools air by saturating it with water vapor. - - - - - - - - - - - - - - - - - Evaporative cooler - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcEvaporativeCooler - - - - https://w3id.org/ifc/IFC4_ADD1#IfcFlowTreatmentDevice - Flow treatment device - The distribution flow element FlowTreatmentDevice defines the occurrence of a device typically used to remove unwanted matter from a fluid, either liquid or gas, and typically participates in a flow distribution system. - - - - - - - - - - - - - - - - - - - - - - - - - - - - Boiler - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcBoiler - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A boiler is a closed, pressure-rated vessel in which water or other fluid is heated using an energy source such as natural gas, heating oil, or electricity. The fluid in the vessel is then circulated out of the boiler for use in various processes or heating applications. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcActuator - Actuator - An actuator is a mechanical device for moving or controlling a mechanism or system. An actuator takes energy, usually created by air, electricity, or liquid, and converts that into some kind of motion. - - - - - - - - - - - - - - - - - - - - - - - - - - - - Shading device - - - - - - - - - Shading devices are purpose built devices to protect from the sunlight, from natural light, or screening them from view. Shading devices can form part of the facade or can be mounted inside the building, they can be fixed or operable. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://w3id.org/ifc/IFC4_ADD1#IfcShadingDevice - - - - - - - - - - - lift elevation difference - Elevation difference between cooling tower sump and the top of the tower. Usually measured in millimeters (mm). - - - flow coefficient - Flow coefficient (the quantity of fluid that passes through a fully open valve at unit pressure drop), typically expressed as the Kv or Cv value for the valve. - - - secondary voltage - The voltage that has been transformed and is running out of the transformer on the secondary side. Usually measured in Volts (V, W/A). - - - nominal supply voltage offset - The maximum and minimum allowed voltage of the supply e.g. boundaries of 380V/440V may be applied for a nominal voltage of 400V. - - - frame depth - The length (or depth) of the damper frame. Usually measured in millimeters (mm). - - - horizontal spacing - Horizontal spacing between tubes in the tube bundle. Usually measured in millimeters (mm). - - - isolator static deflection - Static deflection of the vibration isolator. Usually measured in millimeters (mm). - - - nominal width or diameter - The nominal width or, in the case of a horizontal cylindrical tank, the nominal diameter of the tank. Note: Not required for a vertical cylindrical tank. Usually measured in millimeters (mm). - - - secondary air flow rate range - Maximum secondary airflow that can be delivered. Usually measured in Pascals (Pa, N/m2). - - - nominal efficiency - Nominal chiller efficiency under nominal conditions. - - - body mass - Overall body mass of the heater. Usually measured in kilograms (kg) or grams (g). - - - ventilating pipe size - Size of the ventilating pipe(s). Usually measured in millimeters (mm). - - - nominal ua - Nominal UA value. - - - vibration transmissibility - The vibration transmissibility percentage. - - - pressure rating - Nominal pressure rating of the boiler as rated by the agency having jurisdiction. Usually measured in Pascals (Pa, N/m2). - - - water storage capacity - Water storage capacity. Usually measured in cubic metre (m3). - - - flow resistance range - Allowable range of frictional resistance against which the fluid is being pumped. Usually measured in Pascals (Pa, N/m2). - - - thermal mass heat capacity - Product of component mass and specific heat. - - - minimum spectrum - The spectrum of radiation describes its composition with regard to wavelength. Light, for example, as the portion of electromagnetic radiation that is visible to the human eye, is radiation with wavelengths in the range of approx. 380 to 780 nm (1 nm = 10 m). The corresponding range of colours varies from violet to indigo, blue, green, yellow, orange, and red. These colours form a continuous spectrum, in which the various spectral sectors merge into each other. - - - primary air flow rate range - Maximum primary airflow that can be delivered. Usually measured in m3/s. - - - blade thickness - The thickness of the damper blade. Usually measured in millimeters (mm). - - - open pressure drop - Total pressure drop across damper. Usually measured in Pascals (Pa, N/m2). - - - maximum working pressure - Maximum working pressure. Usually measured in Pascals (Pa, N/m2). - - - coil length - Length of coil. Usually measured in millimeters (mm). - - - nominal length or diameter - The nominal length or, in the case of a vertical cylindrical tank, the nominal diameter of the tank. Usually measured in millimeters (mm). - - - maximum supported weight - The maximum weight that can be carried by the vibration isolator. Usually measured in kilograms (kg) or grams (g). - - - solar transmittance - (Tsol) The ratio of incident solar radiation that directly passes through a shading system (also named _e). Note the following equation Asol + Rsol + Tsol = 1 - - - ambient design wet bulb temperature - Ambient design wet bulb temperature used for selecting the cooling tower. Usually measured in degrees Kelvin (K). - - - primary air flow rate range - Minimum primary airflow that can be delivered. Usually measured in m3/s. - - - nominal condensing temperature - Chiller condensing temperature. Usually measured in degrees Kelvin (K). - - - nominal air flow rate - Nominal rate of air flow. Usually measured in m3/s. - - - nominal diameter - Nominal diameter or width of the tubes in the tube bundle. Usually measured in millimeters (mm). - - - real impedance ratio - The ratio between the real part of the zero sequence impedance and the real part of the positive impedance (i.e. real part of the short-circuit voltage) of the transformer. Used for three-phase transformer which includes a N-conductor. - - - nominal supply voltage offset - The maximum and minimum allowed voltage of the supply e.g. boundaries of 380V/440V may be applied for a nominal voltage of 400V. - - - nominal water flow cooling - Nominal water flow (refers to nominal cooling capacity). Usually measured in m3/s. - - - nominal filter face velocity - Filter face velocity. Usually measured in m/s. - - - operation temperature range - Allowable operation ambient (air, fluid) temperature range. Usually measured in degrees Kelvin (K). - - - nominal capacity - Nominal capacity. Usually measured in Watts (W, J/s). - - - is measured in - https://w3id.org/saref# - A relation between a measurement and the unit of measure in which the measurement value is expressed. - - - nominal part load ratio - Allowable part load ratio range. - - - thermal conductivity - Fouling factor of the tubes in the tube bundle. Usually measured in m2 Kelvin/Watt. - - - water pressure range - Allowable water circuit working pressure range. Usually measured in Pascals (Pa, N/m2). - - - nominal latent capacity - Nominal latent capacity. Usually measured in Watts (W, J/s). - - - nominal particle geometric mean diameter - Particle geometric mean diameter associated with nominal efficiency. Usually measured in millimeters (mm). - - - weight - The weight of the device. Usually measured in kilograms (kg) or grams (g). - - - location - - The relation between something and the point, or other geometrical thing in space, where it is. For example, the realtionship between a radio tower and a Point with a given lat and long. Or a relationship between a park and its outline as a closed arc of points, or a road and its location as a arc (a sequence of points). Clearly in practice there will be limit to the accuracy of any such statement, but one would expect an accuracy appropriate for the size of the object and uses such as mapping . - - - minimum working pressure - Allowable minimum working pressure (relative to ambient pressure). Usually measured in Pascals (Pa, N/m2). - - - nominal heat transfer area - Nominal heat transfer surface area associated with nominal overall heat transfer coefficient. Usually measured in square metre (m2). - - - contributed luminous flux - Luminous flux is a photometric measure of radiant flux, i.e. the volume of light emitted from a light source. Luminous flux is measured either for the interior as a whole or for a part of the interior (partial luminous flux for a solid angle). All other photometric parameters are derivatives of luminous flux. Luminous flux is measured in lumens (lm). The luminous flux is given as a nominal value for each lamp. Usually measured in Lumen (lm, Candela Steradian). - - - operation temperature range - Allowable operation ambient (air, fluid) temperature range. Usually measured in degrees Kelvin (K). - - - output capacity - Total nominal heat output as listed by the manufacturer. Usually measured in Watts (W, J/s). - - - visible light reflectance - Fraction of the visible light that is reflected by the glazing at normal incidence. It is a value without unit. - - - nominal rotation speed - Nominal fan wheel speed. Usually measured in cycles/s. - - - working pressure - The normally expected maximum working pressure of the valve. Usually measured in Pascals (Pa, N/m2). - - - temperature rating - Temperature rating. Usually measured in degrees Kelvin (K). - - - frame thickness - The thickness of the damper frame material. Usually measured in millimeters (mm). - - - ideal shaft power - Compressor shaft power under ideal conditions. Usually measured in Watts (W, J/s). - - - nominal cooling capacity - Nominal cooling capacity. Usually measured in Watts (W, J/s). - - - nominal body length - Nominal or quoted length, measured along the x-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm). - - - nominal supply water temperature cooling - Nominal supply water temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K). - - - secondary air flow rate range - Maximum secondary airflow that can be delivered. Usually measured in Pascals (Pa, N/m2). - - - hydraulic diameter - Hydraulic diameter. Usually measured in millimeters (mm). - - - vertical spacing - Vertical spacing between tubes in the tube bundle.Usually measured in millimeters (mm). - - - nomminal rotation speed - Pump rotational speed under nominal conditions. Usually measured in cycles/s. - - - compressor speed - Compressor speed. Usually measured in cycles/s. - - - water requirement - Make-up water requirement. Usually measured in m3/s. - - - nominal supply voltage - The nominal voltage of the supply. Usually measured in Volts (V, W/A). - - - pump flow rate range - Allowable range of volume of fluid being pumped against the resistance specified. Usually measured in kg/s. - - - outside diameter - Actual outside diameter of the tube in the tube bundle. Usually measured in millimeters (mm). - - - maximum part load ratio - Maximum part load ratio as a fraction of nominal capacity. - - - test pressure - The maximum pressure to which the valve has been subjected under test. Usually measured in Pascals (Pa, N/m2). - - - nominal water flow heating - Nominal water flow (refers to nominal heating capacity). Usually measured in m3/s. - - - nominal evaporating temmperature - Chiller evaporating temperature.Usually measured in degrees Kelvin (K). - - - visible light transmittance - Fraction of the visible light that passes the shading system at normal incidence. It is a value without unit. - - - primary apparent power - The power in VA (volt ampere) that has been transformed and that runs into the transformer on the primary side. Usually measured in Watts (W, J/s). - - - fluid flow rate range - Possible range of fluid flowrate that can be delivered. Usually measured in m3/s. - - - isolator compressibility - The compressibility of the vibration isolator. - - - face area - Face area open to the airstream. Usually measured in square metre (m2). - - - pump flow rate range - Allowable range of volume of fluid being pumped against the resistance specified. Usually measured in kg/s. - - - imaginary impedance ratio - The ratio between the imaginary part of the zero sequence impedance and the imaginary part of the positive impedance (i.e. imaginary part of the short-circuit voltage) of the transformer. Used for three-phase transformer which includes a N-conductor. - - - nominal flow rate - Nominal fluid flow rate through the filter. Usually measured in m3/s. - - - thermal efficiency - Overall Thermal Efficiency is defined as gross energy output of the heat transfer device divided by the energy input. - - - cover width - The length measured along the x-axis in the local coordinate system of the cover of the oil interceptor. Usually measured in millimeters (mm). - - - solar reflectance - (Rsol): The ratio of incident solar radiation that is reflected by a shading system (also named _e). Note the following equation Asol + Rsol + Tsol = 1 - - - nominal supply water temperature heating - Nominal supply water temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K). - - - water inlet temperature range - Allowable water inlet temperature range. Usually measured in degrees Kelvin (K). - - - second curvature radius - SecondCurvatureRadius should be defined as the top or right side radius of curvature value. Usually measured in millimeters (mm). - - - limiting terminal size - The maximum terminal size capacity of the device. Usually measured in square metre (m2). - - - fouling factor - Fouling factor of the tubes in the tube bundle. Usually measured in m2 Kelvin/Watt. - - - size - The size of the connection to the valve (or to each connection for faucets, mixing valves, etc.). Usually measured in millimeters (mm). - - - electric generator efficiency - The ratio of output capacity to intake capacity. - - - light emitter nominal power - Light emitter nominal power. Usually measured in Watts (W, J/s). - - - color temperature - The color temperature of any source of radiation is defined as the temperature (in Kelvin) of a black-body or Planckian radiator whose radiation has the same chromaticity as the source of radiation. Often the values are only approximate color temperatures as the black-body radiator cannot emit radiation of every chromaticity value. The color temperatures of the commonest artificial light sources range from less than 3000K (warm white) to 4000K (intermediate) and over 5000K (daylight). Usually measured in degrees Kelvin (K). - - - secondary current - The current that has been transformed and is running out of the transformer on the secondary side. Usually measured in Ampere (A). - - - height - Height of the vibration isolator before tha application of load. Usually measured in millimeters (mm). - - - air flow rate range max - Maximum allowable air flow rate. Usually measured in m3/s. - - - primary current - The current that is going to be transformed and that runs into the transformer on the primary side. Usually measured in Ampere (A). - - - first curvature radius - FirstCurvatureRadius should be defined as the base or left side radius of curvature value. Usually measured in millimeters (mm). - - - audio volume - Indicates discrete audio volume levels and corresponding sound power offsets, if applicable. Missing values may be interpolated. Measured in watts. - - - electric motor efficiency - The ratio of output capacity to intake capacity. - - - leakage fully closed - Leakage when fully closed. Usually measured in m3/s. - - - nominal total pressure - Nominal total pressure rise across the fan. Usually measured in Pascals (Pa, N/m2). - - - cover length - The length measured along the x-axis in the local coordinate system or the radius (in the case of a circular shape in plan) of the cover of the oil interceptor. Usually measured in millimeters (mm). - - - maximum power output - The maximum output power rating of the engine. Usually measured in Watts (W, J/s). - - - outlet connection size - Size of the outlet connection. Usually measured in millimeters (mm). - - - lamp maintenance factor - Non recoverable losses of luminous flux of a lamp due to lamp depreciation i.e. the decreasing of light output of a luminaire due to aging and dirt. - - - internal water volume - Internal volume of evaporator (water side). Usually measured in cubic metre (m3). - - - heat transfer surface area - Total heat transfer area of the vessel. Usually measured in square metre (m2). - - - basin reserve volume - Volume between operating and overflow levels in cooling tower basin. Usually measured in cubic metre (m3). - - - locked rotor current - Input current when a motor armature is energized but not rotating. Usually measured in Ampere (A). - - - inside diameter - Actual inner diameter of the tube in the tube bundle. Usually measured in millimeters (mm). - - - water inlet temperature range - Allowable water inlet temperature range. Usually measured in degrees Kelvin (K). - - - internal refrigerant volume - Internal volume of evaporator (refrigerant side). Usually measured in cubic metre (m3). - - - nominal media surface velocity - Average fluid velocity at the media surface. Usually measured in m/s. - - - volumen - Total volume of fluid in the tubes and their headers. Usually measured in cubic metre (m3). - - - nominal power rate - Nominal fan power rate.Usually measured in Watts (W, J/s). - - - in line row spacing - In-line tube row spacing. Usually measured in millimeters (mm). - - - nominal body depth - Nominal or quoted =length, measured along the z-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm). - - - nominal sorrounding humidity cooling - Nominal surrounding humidity (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K). - - - nominal frequency - The nominal frequency of the supply. Usually measured in cycles/s or Hertz (Hz). - - - coil width - Width of coil. Usually measured in millimeters (mm - - - nominal sensible capacity - Nominal sensible capacity. Usually measured in Watts (W, J/s). - - - nominal heat rejection rate - Sum of the refrigeration effect and the heat equivalent of the power input to the compressor. Usually measured in Watts (W, J/s). - - - primary frequency - The frequency that is going to be transformed and that runs into the transformer on the primary side. Usually measured in cycles/s or Hertz (Hz). - - - nominal static pressure - The static pressure within the air stream that the fan must overcome to insure designed circulation of air. Usually measured in Pascals (Pa, N/m2). - - - thermal transmittance - Rate at which energy is transmitted through a body. Usually measured in Watts/m2 Kelvin. - - - minimum part load ratio - Minimum part load ratio as a fraction of nominal capacity. - - - connection size - The connection size of the to and from the pump. Usually measured in millimeters (mm). - - - nominal body width - Nominal or quoted length, measured along the y-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm). - - - nominal pressure drop - Total pressure drop across the filter. Usually measured in Pascals (Pa, N/m2). - - - fluid flow rate range - Possible range of fluid flowrate that can be delivered. Usually measured in m3/s. - - - secondary apparent power - The power in VA (volt ampere) that has been transformed and is running out of the transformer on the secondary side. Usually measured in Watts (W, J/s). - - - nominal particle geometric standard deviation - Particle geometric standard deviation associated with nominal efficiency. - - - nominal heat transfer coefficient - Nominal overall heat transfer coefficient associated with nominal heat transfer area. Usually measured in Watts/m2 Kelvin. - - - relates to property - https://w3id.org/saref# - A relation between a measurement and the property such measurement is about. - - - secondary frequency - The frequency that has been transformed and is running out of the transformer on the secondary side. Usually measured in cycles/s or Hertz (Hz). - - - heat exchange area - Heat exchange area. Usually measured in square metre (m2). - - - air flow rate range min - Minimum allowable air flow rate. Usually measured in m3/s. - - - outlet temperature range - Allowable outlet temperature of either the water or the steam. Usually measured in degrees Kelvin (K). - - - nominal heating capacity - Nominal heating capacity. Usually measured in Watts (W, J/s). - - - nominal return water temperature cooling - Nominal return water temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K). - - - internal surface area - Internal surface area. Usually measured in square metre (m2). - - - effective capacity - The total effective or actual volumetric capacity of the tank. Usually measured in cubic metre (m3).B3 - - - nominal moisture gain - Nominal rate of water vapor added into the airstream. Usually measured in kg/s. - - - maximum apparent power - Maximum apparent power/capacity in VA (volt ampere). Usually measured in Watts (W, J/s). - - - nominal sorrounding temperature heating - Nominal surrounding temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K). - - - final resistance - Filter fluid resistance when replacement is required (i.e., Pressure drop at the maximum air flowrate across the filter when the filter needs replacement per ASHRAE Standard 52.1). Usually measured in Pascals (Pa, N/m2). - - - length - The finished length of the device. Usually measured in millimeters (mm). - - - close off rating - Close off rating. Usually measured in Pascals (Pa, N/m2). - - - operating weight - Operating weight of the tank including all of its contents. Usually measured in kilograms (kg) or grams (g). - - - ambient design dry bulb temperature - Ambient design dry bulb temperature used for selecting the cooling tower. Usually measured in degrees Kelvin (K). - - - initial resistance - Initial new filter fluid resistance (i.e., pressure drop at the maximum air flowrate across the filter when the filter is new per ASHRAE Standard 52.1). Usually measured in Pascals (Pa, N/m2). - - - inlet connection size - Size of the inlet connection. Usually measured in millimeters (mm). - - - short circuit voltage - A complex number that specifies the real and imaginary parts of the short-circuit voltage at rated current of a transformer given in %. - - - net positive suction head - Minimum liquid pressure at the pump inlet to prevent cavitation. Usually measured in Pascals (Pa, N/m2). - - - nominal volumetric capacity - The total nominal or design volumetric capacity of the tank. Usually measured in cubic metre (m3). - - - nominal energy consumption - Nominal fuel consumption rate required to produce the total boiler heat output. Usually measured in Watts (W, J/s). - - - primary voltage - The voltage that is going to be transformed and that runs into the transformer on the primary side. Usually measured in Volts (V, W/A). - - - ideal capacity - Compressor capacity under ideal conditions. Usually measured in Watts (W, J/s). - - - capacity weight - Capacity of the transport element measured by weight. Usually measured in kilograms (kg) or grams (g). - - - start current factor - IEC. Start current factor defines how large the peek starting current will become on the engine. StartCurrentFactor is multiplied to NominalCurrent and we get the start current. - - - nominal return water temperature heating - Nominal return water temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K). - - - maximum spectrum - The spectrum of radiation describes its composition with regard to wavelength. Light, for example, as the portion of electromagnetic radiation that is visible to the human eye, is radiation with wavelengths in the range of approx. 380 to 780 nm (1 nm = 10 m). The corresponding range of colours varies from violet to indigo, blue, green, yellow, orange, and red. These colours form a continuous spectrum, in which the various spectral sectors merge into each other. - - - staggered row spacing - Staggered tube row spacing. Usually measured in millimeters (mm). - - - impeller diameter - Diameter of compressor impeller - used to scale performance of geometrically similar compressors. Usually measured in millimeters (mm). - - - water pressure range - Allowable water circuit working pressure range. Usually measured in Pascals (Pa, N/m2). - - - outlet temperature range - Allowable outlet temperature of either the water or the steam. Usually measured in degrees Kelvin (K). - - - nominal sorrounding temperature cooling - Nominal surrounding temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K). - - - te time - The maximum time (in s) at which the motor could run with locked rotor when the motor is used in an EX-environment. The time indicates that a protective device should trip before this time when the starting current of the motor is slowing through the device. - - - nominal depth - The nominal depth of the tank. Note: Not required for a horizontal cylindrical tank. Usually measured in millimeters (mm). - - - flow resistance range - Allowable range of frictional resistance against which the fluid is being pumped. Usually measured in Pascals (Pa, N/m2). - - - starting time - The time (in s) needed for the motor to reach its rated speed with its driven equipment attached, starting from standstill and at the nominal voltage applied at its terminals. - - - operational riterial - Time of operation at maximum operational ambient air temperature. Measured in seconds (s) or days (d) or other units of time. - - - nominal power consumption - Nominal total power consumption. Usually measured in Watts (W, J/s). - - - external surface area - External surface area (both primary and secondary area). Usually measured in square metre (m2). - - - manual override - Identifies whether hand-operated operation is provided as an override (= TRUE) or not (= FALSE). Note that this value should be set to FALSE by default in the case of a Hand Operated Actuator. - - - - number of cells - Number of cells in one cooling tower unit. - - - - is external - Indication whether the element is designed for use in the exterior (TRUE) or not (FALSE). If (TRUE) it is an external element and faces the outside of the building. - - - - access type - Defines the types of access (or cover) to a tank that may be specified. Note that covers are generally specified for rectangular tanks. For cylindrical tanks, access will normally be via a manhole. - - - - heat transfer medium - Enumeration defining the heat transfer medium if applicable. - - - - is free hanging - Is it free hanging type (not mounted in a false ceiling)? - - - - heat transfer type enum - Type of heat transfer between the two air streams. - - - - number of sections - Number of sections used. - - - - heat transfer dimension - Indicates how heat is transmitted according to the shape of the space heater. - - - - evaporation coolant - The fluid used for the coolant in the evaporator. - - - - has hot gas bypass - Whether or not hot gas bypass is provided for the compressor. TRUE = Yes, FALSE = No. - - - - operation - The operational mechanism for the damper operation. - - - - roughness - A measure of the vertical deviations of the surface. - - - - number os sockets - The number of sockets that may be connected. In case of inconsistency, sockets defined on ports take precedence. - - - - has defrost - Whether the heat exchanger has defrost function or not. - - - - mechanical operated - Indication whether the element is operated machanically (TRUE) or not, i.e. manually (FALSE). - - - - evaporation medium type - ColdLiquid: Evaporator is using liquid type of fluid to exchange heat with refrigerant. ColdAir: Evaporator is using air to exchange heat with refrigerant. - - - - color appearance - In both the DIN and CIE standards, artificial light sources are classified in terms of their color appearance. To the human eye they all appear to be white the difference can only be detected by direct comparison. Visual performance is not directly affected by differences in color appearance. - - - - application - Humidifier application. Fixed: Humidifier installed in a ducted flow distribution system. Portable: Humidifier is not installed in a ducted flow distribution system. - - - - water flow control system type - Factory fitted waterflow control system. - - - - is guarded - Indication of whether the motor enclosure is guarded (= TRUE) or not (= FALSE). - - - - operating mode - Identifies the operating mode of the boiler. - - - - end shape type - Defines the types of end shapes that can be used for preformed tanks. The convention for reading these enumerated values is that for a vertical cylinder, the first value is the base and the second is the top for a horizontal cylinder, the order of reading should be left to right. For a speherical tank, the value UNSET should be used.B5 - - - - is neutral secondary terminal available - An indication of whether the neutral point of the secondary winding is available as a terminal (=TRUE) or not (= FALSE). - - - - finish color - Finish color for cooled beam. - - - - read out type - Indication of the form that readout from the meter takes. In the case of a dial read out, this may comprise multiple dials that give a cumulative reading and/or a mechanical odometer. - - - - integrated lighting type - Integrated lighting in cooled beam. - - - - transformer vector group - List of the possible vector groups for the transformer from which that required may be set. Values in the enumeration list follow a standard international code where the first letter describes how the primary windings are connected, the second letter describes how the secondary windings are connected, and the numbers describe the rotation of voltages and currents from the primary to the secondary side in multiples of 30 degrees. D: means that the windings are delta-connected. Y: means that the windings are star-connected. Z: means that the windings are zig-zag connected (a special start-connected providing low reactance of the transformer). The connectivity is only relevant for three-phase transformers. - - - - has exterior insulation - TRUE if the silencer has exterior insulation. FALSE if it does not. - - - - circuit type - OpenCircuit: Exposes water directly to the cooling atmosphere. CloseCircuit: The fluid is separated from the atmosphere by a heat exchanger. Wet: The air stream or the heat exchange surface is evaporatively cooled. Dry: No evaporation into the air stream. DryWet: A combination of a dry tower and a wet tower. - - - - blade shape - Blade shape. Flat means triple V-groove. - - - - valve pattern - The configuration of the ports of a valve according to either the linear route taken by a fluid flowing through the valve or by the number of ports where: SINGLEPORT: Valve that has a single entry port from the system that it serves, the exit port being to the surrounding environment. ANGLED_2_PORT: Valve in which the direction of flow is changed through 90 degrees. STRAIGHT_2_PORT: Valve in which the flow is straight through. STRAIGHT_3_PORT: Valve with three separate ports. CROSSOVER_4_PORT: Valve with 4 separate ports. - - - - standard - The designation of the standard applicable for the definition of the characteristics of the unit. - - - - frame type - The type of frame used by the damper (e.g., Standard, Single Flange, Single Reversed Flange, Double Flange, etc.). - - - - color rendering index - The CRI indicates how well a light source renders eight standard colors compared to perfect reference lamp with the same color temperature. The CRI scale ranges from 1 to 100, with 100 representing perfect rendering properties. - - - - placement type - Indicates how the device is designed to be placed. - - - - capacity people - Capacity of the transportation element measured in numbers of person. - - - - pattern type - Defines the types of pattern (or shape of a tank that may be specified. - - - - media source - Indicates media sources and corresponding names of ports (DistributionPort with FlowDirection=SINK and PredefinedType=AUDIOVISUAL) or aggregated audio/video components (AudioVisualAppliance). - - - - arrangement - Defines the basic flow arrangements for the heat exchanger: COUNTERFLOW: Counterflow heat exchanger arrangement. CROSSFLOW: Crossflow heat exchanger arrangement. PARALLELFLOW: Parallel flow heat exchanger arrangement. MULTIPASS: Multipass flow heat exchanger arrangement. OTHER: Other type of heat exchanger flow arrangement not defined above. - - - - has value - - A relationship defining the value of a certain property, e.g., energy or power - - - power source - Type of power driving the compressor. - - - - frame size - Designation of the frame size according to the named range of frame sizes designated at the place of use or according to a given standard. - - - - shading device type - Specifies the type of shading device. - - - - capacity control type - InletVane: Control by adjusting inlet vane. VariableSpeedDrive: Control by variable speed drive. BladePitchAngle: Control by adjusting blade pitch angle. TwoSpeed: Control by switch between high and low speed. DischargeDamper: Control by modulating discharge damper. - - - - control strategy - FixedExitingWaterTemp: The capacity is controlled to maintain a fixed exiting water temperature. WetBulbTempReset: The set-point is reset based on the wet-bulb temperature. - - - - fire exit - Indication whether this object is designed to serve as an exit in the case of fire (TRUE) or not (FALSE). Here whether the transport element (in case of e.g., a lift) is designed to serve as a fire exit, e.g., for fire escape purposes. - - - - number of blades - Number of blades. - - - - orientation - The intended orientation for the damper as specified by the manufacturer. - - - - motor drive type - Motor drive type: DIRECTDRIVE: Direct drive. BELTDRIVE: Belt drive. COUPLING: Coupling. OTHER: Other type of motor drive. UNKNOWN: Unknown motor drive type. - - - - number of rows - Number of tube rows in the tube bundle assembly. - - - - energy source - The source of energy. - Enumeration defining the energy source or fuel cumbusted to generate heat. - - - - valve operation - The method of valve operation where: DROPWEIGHT: A valve that is closed by the action of a weighted lever being released, the weight normally being prevented from dropping by being held by a wire, the closure normally being made by the action of heat on a fusible link in the wire FLOAT: A valve that is opened and closed by the action of a float that rises and falls with water level. The float may be a ball attached to a lever or other mechanism HYDRAULIC: A valve that is opened and closed by hydraulic actuation LEVER: A valve that is opened and closed by the action of a lever rotating the gate within the valve. LOCKSHIELD: A valve that requires the use of a special lockshield key for opening and closing, the operating mechanism being protected by a shroud during normal operation. MOTORIZED: A valve that is opened and closed by the action of an electric motor on an actuator PNEUMATIC: A valve that is opened and closed by pneumatic actuation SOLENOID: A valve that is normally held open by a magnetic field in a coil acting on the gate but that is closed immediately if the electrical current generating the magnetic field is removed. SPRING: A valve that is normally held in position by the pressure of a spring on a plate but that may be caused to open if the pressure of the fluid is sufficient to overcome the spring pressure. THERMOSTATIC: A valve in which the ports are opened or closed to maintain a required predetermined temperature. WHEEL: A valve that is opened and closed by the action of a wheel moving the gate within the valve. - - - - fail position - Specifies the required fail-safe position of the actuator. - - - - is water storage heater - This is used to identify if the boiler has storage capacity (TRUE). If FALSE, then there is no storage capacity built into the boiler, such as an instantaneous hot water heater. - - - - lamp compensation type - Identifies the form of compensation used for power factor correction and radio suppression. - - - - internal control - Internal modulation control. - - - - temperature classification - Enumeration defining the temperature classification of the space heater surface temperature. low temperature - surface temperature is relatively low, usually heated by hot water or electricity. high temperature - surface temperature is relatively high, usually heated by gas or steam. - - - - valve mechanism - The mechanism by which the valve function is achieved where: BALL: Valve that has a ported ball that can be turned relative to the body seat ports. BUTTERFLY: Valve in which a streamlined disc pivots about a diametric axis. CONFIGUREDGATE: Screwdown valve in which the closing gate is shaped in a configured manner to have a more precise control of pressure and flow change across the valve. GLAND: Valve with a tapered seating, in which a rotatable plug is retained by means of a gland and gland packing. GLOBE: Screwdown valve that has a spherical body. LUBRICATEDPLUG: Plug valve in which a lubricant is injected under pressure between the plug face and the body. NEEDLE: Valve for regulating the flow in or from a pipe, in which a slender cone moves along the axis of flow to close against a fixed conical seat. PARALLELSLIDE: Screwdown valve that has a machined plate that slides in formed grooves to form a seal. PLUG: Valve that has a ported plug that can be turned relative to the body seat ports. WEDGEGATE: Screwdown valve that has a wedge shaped plate fitting into tapered guides to form a seal. - - - - has lock - Indication of whether a switching device has a key operated lock (=TRUE) or not (= FALSE). - - - - number of panels - Number of panels. - - - - has part winding - Indication of whether the motor is single speed, i.e. has a single winding (= FALSE) or multi-speed i.e.has part winding (= TRUE) . - - - - pipe connection enum - The manner in which the pipe connection is made to the cooled beam. - - - - capacity control - FanCycling: Fan is cycled on and off to control duty. TwoSpeedFan: Fan is switched between low and high speed to control duty. VariableSpeedFan: Fan speed is varied to control duty. DampersControl: Dampers modulate the air flow to control duty. BypassValveControl: Bypass valve modulates the water flow to control duty. MultipleSeriesPumps: Turn on/off multiple series pump to control duty. TwoSpeedPump: Switch between high/low pump speed to control duty. VariableSpeedPump: vary pump speed to control duty. - - - - flow arrangement - CounterFlow: Air and water flow enter in different directions. CrossFlow: Air and water flow are perpendicular. ParallelFlow: air and water flow enter in same directions. - - - - switch function - Indicates types of switches which differs in functionality. - - - - number of circuits - Number of parallel fluid tube circuits. - - - - storage type - Defines the general material category intended to be stored. - - - - is pluggable outlet - Indication of whether the outlet accepts a loose plug connection (= TRUE) or whether it is directly connected (= FALSE) or whether the form of connection has not yet been determined (= UNKNOWN). - - - - spray type - SprayFilled: Water is sprayed into airflow. SplashTypeFill: water cascades over successive rows of splash bars. FilmTypeFill: water flows in a thin layer over closely spaced sheets. - - - - blade edge - Blade edge. - - - - refrigerant class - Refrigerant class used by the compressor. CFC: Chlorofluorocarbons. HCFC: Hydrochlorofluorocarbons. HFC: Hydrofluorocarbons. - - - - has turbulator - TRUE if the tube has a turbulator, FALSE if it does not. - - - - lamp ballast type - The type of ballast used to stabilise gas discharge by limiting the current during operation and to deliver the necessary striking voltage for starting. Ballasts are needed to operate Discharge Lamps such as Fluorescent, Compact Fluorescent, High-pressure Mercury, Metal Halide and High-pressure Sodium Lamps. Magnetic ballasts are chokes which limit the current passing through a lamp connected in series on the principle of self-induction. The resultant current and power are decisive for the efficient operation of the lamp. A specially designed ballast is required for every type of lamp to comply with lamp rating in terms of Luminous Flux, Color Appearance and service life. The two types of magnetic ballasts for fluorescent lamps are KVG Conventional (EC-A series) and VVG Low-loss ballasts (EC-B series). Low-loss ballasts have a higher efficiency, which means reduced ballast losses and a lower thermal load. Electronic ballasts are used to run fluorescent lamps at high frequencies (approx. 35 - 40 kHz). - - - - legend - A text inscribed or applied to the switch as a legend to indicate purpose or function. - - - - motor enclosure type - A list of the available types of motor enclosure from which that required may be selected. - - - - remote reading - Indicates whether the meter has a connection for remote reading through connection of a communication device (set TRUE) or not (set FALSE). - - - - is illuminated - An indication of whether there is an illuminated indicator to show that the switch is on (=TRUE) or not (= FALSE). - - - - blade action - Blade action. - - - - number of gangs - Number of gangs/buttons on this switch. - - - - is neutral primary terminal available - An indication of whether the neutral point of the primary winding is available as a terminal (=TRUE) or not (= FALSE). - - - - secondary current type - A list of the secondary current types that can result from transformer output. - - - - contains - A relation between a physical space and the objects located in such space. - - - - - - - has space - Relation between a building or a building space and the spaces it can be divided into. - - - - - - - isSpaceOf - Relation between a building space and the building or building space it belongs to. - - - - is contained in - A relation between an object and the physical space in which it is located. - - - - has timestamp - https://w3id.org/saref# - A relationship stating the timestamp of an entity (e.g. a measurement). - - - - - - - - - - diff --git a/src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/saref4bldg.ttl b/src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/saref4bldg.ttl deleted file mode 100644 index 9842012..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/saref4bldg.ttl +++ /dev/null @@ -1,4248 +0,0 @@ -@prefix s4bldg: . -@prefix owl: . -@prefix rdf: . -@prefix xml: . -@prefix xsd: . -@prefix prov: . -@prefix rdfs: . -@prefix vann: . -@prefix saref: . -@prefix dcterms: . - - a owl:Ontology ; - dcterms:title "SAREF extension for building devices"@en ; - owl:versionInfo "1.1.1" ; - owl:versionIRI ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4bldg#" ; - vann:preferredNamespacePrefix "s4bldg" ; - dcterms:license ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:source ; - dcterms:source ; - dcterms:description "This ontology extends the SAREF ontology for the building domain by defining building devices and how they are located in a building. This extension is based on the ISO 16739:2013 Industry Foundation Classes (IFC) standard for data sharing in the construction and facility management industries. The descriptions of the classes and properties extracted from IFC have been taken from the IFC documentation."@en ; - dcterms:publisher . - -# -# -# ################################################################# -# # -# # Annotation properties -# # -# ################################################################# -# -# -# http://purl.org/dc/terms/creator - -dcterms:creator a owl:AnnotationProperty . -# -# http://purl.org/dc/terms/dateCopyrighted - -dcterms:dateCopyrighted a owl:AnnotationProperty . -# -# http://purl.org/dc/terms/rightsHolder - -dcterms:rightsHolder a owl:AnnotationProperty . -# -# http://purl.org/vocab/vann/preferredNamespacePrefix - -vann:preferredNamespacePrefix a owl:AnnotationProperty . -# -# http://purl.org/vocab/vann/preferredNamespaceUri - -vann:preferredNamespaceUri a owl:AnnotationProperty . -# -# http://www.w3.org/ns/prov#hadPrimarySource - -prov:hadPrimarySource a owl:AnnotationProperty . -# -# -# -# ################################################################# -# # -# # Datatypes -# # -# ################################################################# -# -# -# http://www.w3.org/2001/XMLSchema#duration - -xsd:duration a rdfs:Datatype . -# -# -# -# ################################################################# -# # -# # Object Properties -# # -# ################################################################# -# -# -# http://www.w3.org/2003/01/geo/wgs84_pos#location - - a owl:ObjectProperty ; - rdfs:comment "The relation between something and the point, or other geometrical thing in space, where it is. For example, the realtionship between a radio tower and a Point with a given lat and long. Or a relationship between a park and its outline as a closed arc of points, or a road and its location as a arc (a sequence of points). Clearly in practice there will be limit to the accuracy of any such statement, but one would expect an accuracy appropriate for the size of the object and uses such as mapping ."@en ; - rdfs:isDefinedBy ; - rdfs:label "location"@en . -# -# https://saref.etsi.org/saref4bldg#airFlowRateMax - -s4bldg:airFlowRateMax a owl:ObjectProperty ; - rdfs:comment "Maximum allowable air flow rate. Usually measured in m3/s."@en ; - rdfs:label "air flow rate range max"@en . -# -# https://saref.etsi.org/saref4bldg#airFlowRateMin - -s4bldg:airFlowRateMin a owl:ObjectProperty ; - rdfs:comment "Minimum allowable air flow rate. Usually measured in m3/s."@en ; - rdfs:label "air flow rate range min"@en . -# -# https://saref.etsi.org/saref4bldg#ambientDesignDryBulbTemperature - -s4bldg:ambientDesignDryBulbTemperature a owl:ObjectProperty ; - rdfs:comment "Ambient design dry bulb temperature used for selecting the cooling tower. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "ambient design dry bulb temperature"@en . -# -# https://saref.etsi.org/saref4bldg#ambientDesignWetBulbTemperature - -s4bldg:ambientDesignWetBulbTemperature a owl:ObjectProperty ; - rdfs:comment "Ambient design wet bulb temperature used for selecting the cooling tower. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "ambient design wet bulb temperature"@en . -# -# https://saref.etsi.org/saref4bldg#apparentPowerMax - -s4bldg:apparentPowerMax a owl:ObjectProperty ; - rdfs:comment "Maximum apparent power/capacity in VA (volt ampere). Usually measured in Watts (W, J/s)."@en ; - rdfs:label "maximum apparent power"@en . -# -# https://saref.etsi.org/saref4bldg#audioVolume - -s4bldg:audioVolume a owl:ObjectProperty ; - rdfs:comment "Indicates discrete audio volume levels and corresponding sound power offsets, if applicable. Missing values may be interpolated. Measured in watts."@en ; - rdfs:label "audio volume"@en . -# -# https://saref.etsi.org/saref4bldg#basinReserveVolume - -s4bldg:basinReserveVolume a owl:ObjectProperty ; - rdfs:comment "Volume between operating and overflow levels in cooling tower basin. Usually measured in cubic metre (m3)."@en ; - rdfs:label "basin reserve volume"@en . -# -# https://saref.etsi.org/saref4bldg#bladeThickness - -s4bldg:bladeThickness a owl:ObjectProperty ; - rdfs:comment "The thickness of the damper blade. Usually measured in millimeters (mm)."@en ; - rdfs:label "blade thickness"@en . -# -# https://saref.etsi.org/saref4bldg#bodyMass - -s4bldg:bodyMass a owl:ObjectProperty ; - rdfs:comment "Overall body mass of the heater. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "body mass"@en . -# -# https://saref.etsi.org/saref4bldg#capacityWeight - -s4bldg:capacityWeight a owl:ObjectProperty ; - rdfs:comment "Capacity of the transport element measured by weight. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "capacity weight"@en . -# -# https://saref.etsi.org/saref4bldg#closeOffRating - -s4bldg:closeOffRating a owl:ObjectProperty ; - rdfs:comment "Close off rating. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "close off rating"@en . -# -# https://saref.etsi.org/saref4bldg#coilLength - -s4bldg:coilLength a owl:ObjectProperty ; - rdfs:comment "Length of coil. Usually measured in millimeters (mm)."@en ; - rdfs:label "coil length"@en . -# -# https://saref.etsi.org/saref4bldg#coilWidth - -s4bldg:coilWidth a owl:ObjectProperty ; - rdfs:comment "Width of coil. Usually measured in millimeters (mm"@en ; - rdfs:label "coil width"@en . -# -# https://saref.etsi.org/saref4bldg#colorTemperature - -s4bldg:colorTemperature a owl:ObjectProperty ; - rdfs:comment "The color temperature of any source of radiation is defined as the temperature (in Kelvin) of a black-body or Planckian radiator whose radiation has the same chromaticity as the source of radiation. Often the values are only approximate color temperatures as the black-body radiator cannot emit radiation of every chromaticity value. The color temperatures of the commonest artificial light sources range from less than 3000K (warm white) to 4000K (intermediate) and over 5000K (daylight). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "color temperature"@en . -# -# https://saref.etsi.org/saref4bldg#compressorSpeed - -s4bldg:compressorSpeed a owl:ObjectProperty ; - rdfs:comment "Compressor speed. Usually measured in cycles/s."@en ; - rdfs:label "compressor speed"@en . -# -# https://saref.etsi.org/saref4bldg#connectionSize - -s4bldg:connectionSize a owl:ObjectProperty ; - rdfs:comment "The connection size of the to and from the pump. Usually measured in millimeters (mm)."@en ; - rdfs:label "connection size"@en . -# -# https://saref.etsi.org/saref4bldg#contains - -s4bldg:contains a owl:ObjectProperty ; - owl:inverseOf s4bldg:isContainedIn ; - a owl:TransitiveProperty ; - rdfs:comment "A relation between a physical space and the objects located in such space."@en ; - rdfs:label "contains"@en . -# -# https://saref.etsi.org/saref4bldg#contributedLuminousFlux - -s4bldg:contributedLuminousFlux a owl:ObjectProperty ; - rdfs:comment "Luminous flux is a photometric measure of radiant flux, i.e. the volume of light emitted from a light source. Luminous flux is measured either for the interior as a whole or for a part of the interior (partial luminous flux for a solid angle). All other photometric parameters are derivatives of luminous flux. Luminous flux is measured in lumens (lm). The luminous flux is given as a nominal value for each lamp. Usually measured in Lumen (lm, Candela Steradian)."@en ; - rdfs:label "contributed luminous flux"@en . -# -# https://saref.etsi.org/saref4bldg#coverLength - -s4bldg:coverLength a owl:ObjectProperty ; - rdfs:comment "The length measured along the x-axis in the local coordinate system or the radius (in the case of a circular shape in plan) of the cover of the oil interceptor. Usually measured in millimeters (mm)."@en ; - rdfs:label "cover length"@en . -# -# https://saref.etsi.org/saref4bldg#coverWidth - -s4bldg:coverWidth a owl:ObjectProperty ; - rdfs:comment "The length measured along the x-axis in the local coordinate system of the cover of the oil interceptor. Usually measured in millimeters (mm)."@en ; - rdfs:label "cover width"@en . -# -# https://saref.etsi.org/saref4bldg#effectiveCapacity - -s4bldg:effectiveCapacity a owl:ObjectProperty ; - rdfs:comment "The total effective or actual volumetric capacity of the tank. Usually measured in cubic metre (m3).B3"@en ; - rdfs:label "effective capacity"@en . -# -# https://saref.etsi.org/saref4bldg#electricGeneratorEfficiency - -s4bldg:electricGeneratorEfficiency a owl:ObjectProperty ; - rdfs:comment "The ratio of output capacity to intake capacity."@en ; - rdfs:label "electric generator efficiency"@en . -# -# https://saref.etsi.org/saref4bldg#electricMotorEfficiency - -s4bldg:electricMotorEfficiency a owl:ObjectProperty ; - rdfs:comment "The ratio of output capacity to intake capacity."@en ; - rdfs:label "electric motor efficiency"@en . -# -# https://saref.etsi.org/saref4bldg#externalSurfaceArea - -s4bldg:externalSurfaceArea a owl:ObjectProperty ; - rdfs:comment "External surface area (both primary and secondary area). Usually measured in square metre (m2)."@en ; - rdfs:label "external surface area"@en . -# -# https://saref.etsi.org/saref4bldg#faceArea - -s4bldg:faceArea a owl:ObjectProperty ; - rdfs:comment "Face area open to the airstream. Usually measured in square metre (m2)."@en ; - rdfs:label "face area"@en . -# -# https://saref.etsi.org/saref4bldg#finalResistance - -s4bldg:finalResistance a owl:ObjectProperty ; - rdfs:comment "Filter fluid resistance when replacement is required (i.e., Pressure drop at the maximum air flowrate across the filter when the filter needs replacement per ASHRAE Standard 52.1). Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "final resistance"@en . -# -# https://saref.etsi.org/saref4bldg#firstCurvatureRadius - -s4bldg:firstCurvatureRadius a owl:ObjectProperty ; - rdfs:comment "FirstCurvatureRadius should be defined as the base or left side radius of curvature value. Usually measured in millimeters (mm)."@en ; - rdfs:label "first curvature radius"@en . -# -# https://saref.etsi.org/saref4bldg#flowCoefficient - -s4bldg:flowCoefficient a owl:ObjectProperty ; - rdfs:comment "Flow coefficient (the quantity of fluid that passes through a fully open valve at unit pressure drop), typically expressed as the Kv or Cv value for the valve."@en ; - rdfs:label "flow coefficient"@en . -# -# https://saref.etsi.org/saref4bldg#flowResistanceMax - -s4bldg:flowResistanceMax a owl:ObjectProperty ; - rdfs:comment "Allowable range of frictional resistance against which the fluid is being pumped. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "flow resistance range"@en . -# -# https://saref.etsi.org/saref4bldg#flowResistanceMin - -s4bldg:flowResistanceMin a owl:ObjectProperty ; - rdfs:comment "Allowable range of frictional resistance against which the fluid is being pumped. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "flow resistance range"@en . -# -# https://saref.etsi.org/saref4bldg#fluidFlowRateMax - -s4bldg:fluidFlowRateMax a owl:ObjectProperty ; - rdfs:comment "Possible range of fluid flowrate that can be delivered. Usually measured in m3/s."@en ; - rdfs:label "fluid flow rate range"@en . -# -# https://saref.etsi.org/saref4bldg#fluidFlowRateMin - -s4bldg:fluidFlowRateMin a owl:ObjectProperty ; - rdfs:comment "Possible range of fluid flowrate that can be delivered. Usually measured in m3/s."@en ; - rdfs:label "fluid flow rate range"@en . -# -# https://saref.etsi.org/saref4bldg#foulingFactor - -s4bldg:foulingFactor a owl:ObjectProperty ; - rdfs:comment "Fouling factor of the tubes in the tube bundle. Usually measured in m2 Kelvin/Watt."@en ; - rdfs:label "fouling factor"@en . -# -# https://saref.etsi.org/saref4bldg#frameDepth - -s4bldg:frameDepth a owl:ObjectProperty ; - rdfs:comment "The length (or depth) of the damper frame. Usually measured in millimeters (mm)."@en ; - rdfs:label "frame depth"@en . -# -# https://saref.etsi.org/saref4bldg#frameThickness - -s4bldg:frameThickness a owl:ObjectProperty ; - rdfs:comment "The thickness of the damper frame material. Usually measured in millimeters (mm)."@en ; - rdfs:label "frame thickness"@en . -# -# https://saref.etsi.org/saref4bldg#hasSpace - -s4bldg:hasSpace a owl:ObjectProperty ; - owl:inverseOf s4bldg:isSpaceOf ; - a owl:TransitiveProperty ; - rdfs:comment "Relation between a building or a building space and the spaces it can be divided into."@en ; - rdfs:label "has space"@en . -# -# https://saref.etsi.org/saref4bldg#heatExchangeArea - -s4bldg:heatExchangeArea a owl:ObjectProperty ; - rdfs:comment "Heat exchange area. Usually measured in square metre (m2)."@en ; - rdfs:label "heat exchange area"@en . -# -# https://saref.etsi.org/saref4bldg#heatTransferSurfaceArea - -s4bldg:heatTransferSurfaceArea a owl:ObjectProperty ; - rdfs:comment "Total heat transfer area of the vessel. Usually measured in square metre (m2)."@en ; - rdfs:label "heat transfer surface area"@en . -# -# https://saref.etsi.org/saref4bldg#height - -s4bldg:height a owl:ObjectProperty ; - rdfs:comment "Height of the vibration isolator before tha application of load. Usually measured in millimeters (mm)."@en ; - rdfs:label "height"@en . -# -# https://saref.etsi.org/saref4bldg#horizontalSpacing - -s4bldg:horizontalSpacing a owl:ObjectProperty ; - rdfs:comment "Horizontal spacing between tubes in the tube bundle. Usually measured in millimeters (mm)."@en ; - rdfs:label "horizontal spacing"@en . -# -# https://saref.etsi.org/saref4bldg#hydraulicDiameter - -s4bldg:hydraulicDiameter a owl:ObjectProperty ; - rdfs:comment "Hydraulic diameter. Usually measured in millimeters (mm)."@en ; - rdfs:label "hydraulic diameter"@en . -# -# https://saref.etsi.org/saref4bldg#idealCapacity - -s4bldg:idealCapacity a owl:ObjectProperty ; - rdfs:comment "Compressor capacity under ideal conditions. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "ideal capacity"@en . -# -# https://saref.etsi.org/saref4bldg#idealShaftPower - -s4bldg:idealShaftPower a owl:ObjectProperty ; - rdfs:comment "Compressor shaft power under ideal conditions. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "ideal shaft power"@en . -# -# https://saref.etsi.org/saref4bldg#imaginaryImpedanceRatio - -s4bldg:imaginaryImpedanceRatio a owl:ObjectProperty ; - rdfs:comment "The ratio between the imaginary part of the zero sequence impedance and the imaginary part of the positive impedance (i.e. imaginary part of the short-circuit voltage) of the transformer. Used for three-phase transformer which includes a N-conductor."@en ; - rdfs:label "imaginary impedance ratio"@en . -# -# https://saref.etsi.org/saref4bldg#impellerDiameter - -s4bldg:impellerDiameter a owl:ObjectProperty ; - rdfs:comment "Diameter of compressor impeller - used to scale performance of geometrically similar compressors. Usually measured in millimeters (mm)."@en ; - rdfs:label "impeller diameter"@en . -# -# https://saref.etsi.org/saref4bldg#inLineRowSpacing - -s4bldg:inLineRowSpacing a owl:ObjectProperty ; - rdfs:comment "In-line tube row spacing. Usually measured in millimeters (mm)."@en ; - rdfs:label "in line row spacing"@en . -# -# https://saref.etsi.org/saref4bldg#initialResistance - -s4bldg:initialResistance a owl:ObjectProperty ; - rdfs:comment "Initial new filter fluid resistance (i.e., pressure drop at the maximum air flowrate across the filter when the filter is new per ASHRAE Standard 52.1). Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "initial resistance"@en . -# -# https://saref.etsi.org/saref4bldg#inletConnectionSize - -s4bldg:inletConnectionSize a owl:ObjectProperty ; - rdfs:comment "Size of the inlet connection. Usually measured in millimeters (mm)."@en ; - rdfs:label "inlet connection size"@en . -# -# https://saref.etsi.org/saref4bldg#insideDiameter - -s4bldg:insideDiameter a owl:ObjectProperty ; - rdfs:comment "Actual inner diameter of the tube in the tube bundle. Usually measured in millimeters (mm)."@en ; - rdfs:label "inside diameter"@en . -# -# https://saref.etsi.org/saref4bldg#internalRefrigerantVolume - -s4bldg:internalRefrigerantVolume a owl:ObjectProperty ; - rdfs:comment "Internal volume of evaporator (refrigerant side). Usually measured in cubic metre (m3)."@en ; - rdfs:label "internal refrigerant volume"@en . -# -# https://saref.etsi.org/saref4bldg#internalSurfaceArea - -s4bldg:internalSurfaceArea a owl:ObjectProperty ; - rdfs:comment "Internal surface area. Usually measured in square metre (m2)."@en ; - rdfs:label "internal surface area"@en . -# -# https://saref.etsi.org/saref4bldg#internalWaterVolume - -s4bldg:internalWaterVolume a owl:ObjectProperty ; - rdfs:comment "Internal volume of evaporator (water side). Usually measured in cubic metre (m3)."@en ; - rdfs:label "internal water volume"@en . -# -# https://saref.etsi.org/saref4bldg#isContainedIn - -s4bldg:isContainedIn a owl:ObjectProperty , owl:TransitiveProperty ; - rdfs:comment "A relation between an object and the physical space in which it is located."@en ; - rdfs:label "is contained in"@en . -# -# https://saref.etsi.org/saref4bldg#isSpaceOf - -s4bldg:isSpaceOf a owl:ObjectProperty , owl:TransitiveProperty ; - rdfs:comment "Relation between a building space and the building or building space it belongs to."@en ; - rdfs:label "isSpaceOf"@en . -# -# https://saref.etsi.org/saref4bldg#isolatorCompressibility - -s4bldg:isolatorCompressibility a owl:ObjectProperty ; - rdfs:comment "The compressibility of the vibration isolator."@en ; - rdfs:label "isolator compressibility"@en . -# -# https://saref.etsi.org/saref4bldg#isolatorStaticDeflection - -s4bldg:isolatorStaticDeflection a owl:ObjectProperty ; - rdfs:comment "Static deflection of the vibration isolator. Usually measured in millimeters (mm)."@en ; - rdfs:label "isolator static deflection"@en . -# -# https://saref.etsi.org/saref4bldg#lampMaintenanceFactor - -s4bldg:lampMaintenanceFactor a owl:ObjectProperty ; - rdfs:comment "Non recoverable losses of luminous flux of a lamp due to lamp depreciation i.e. the decreasing of light output of a luminaire due to aging and dirt."@en ; - rdfs:label "lamp maintenance factor"@en . -# -# https://saref.etsi.org/saref4bldg#leakageFullyClosed - -s4bldg:leakageFullyClosed a owl:ObjectProperty ; - rdfs:comment "Leakage when fully closed. Usually measured in m3/s."@en ; - rdfs:label "leakage fully closed"@en . -# -# https://saref.etsi.org/saref4bldg#length - -s4bldg:length a owl:ObjectProperty ; - rdfs:comment "The finished length of the device. Usually measured in millimeters (mm)."@en ; - rdfs:label "length"@en . -# -# https://saref.etsi.org/saref4bldg#liftElevationDifference - -s4bldg:liftElevationDifference a owl:ObjectProperty ; - rdfs:comment "Elevation difference between cooling tower sump and the top of the tower. Usually measured in millimeters (mm)."@en ; - rdfs:label "lift elevation difference"@en . -# -# https://saref.etsi.org/saref4bldg#lightEmitterNominalPower - -s4bldg:lightEmitterNominalPower a owl:ObjectProperty ; - rdfs:comment "Light emitter nominal power. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "light emitter nominal power"@en . -# -# https://saref.etsi.org/saref4bldg#limitingTerminalSize - -s4bldg:limitingTerminalSize a owl:ObjectProperty ; - rdfs:comment "The maximum terminal size capacity of the device. Usually measured in square metre (m2)."@en ; - rdfs:label "limiting terminal size"@en . -# -# https://saref.etsi.org/saref4bldg#lockedRotorCurrent - -s4bldg:lockedRotorCurrent a owl:ObjectProperty ; - rdfs:comment "Input current when a motor armature is energized but not rotating. Usually measured in Ampere (A)."@en ; - rdfs:label "locked rotor current"@en . -# -# https://saref.etsi.org/saref4bldg#netPositiveSuctionHead - -s4bldg:netPositiveSuctionHead a owl:ObjectProperty ; - rdfs:comment "Minimum liquid pressure at the pump inlet to prevent cavitation. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "net positive suction head"@en . -# -# https://saref.etsi.org/saref4bldg#nominalAirFlowRate - -s4bldg:nominalAirFlowRate a owl:ObjectProperty ; - rdfs:comment "Nominal rate of air flow. Usually measured in m3/s."@en ; - rdfs:label "nominal air flow rate"@en . -# -# https://saref.etsi.org/saref4bldg#nominalBodyDepth - -s4bldg:nominalBodyDepth a owl:ObjectProperty ; - rdfs:comment "Nominal or quoted =length, measured along the z-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal body depth"@en . -# -# https://saref.etsi.org/saref4bldg#nominalBodyLength - -s4bldg:nominalBodyLength a owl:ObjectProperty ; - rdfs:comment "Nominal or quoted length, measured along the x-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal body length"@en . -# -# https://saref.etsi.org/saref4bldg#nominalBodyWidth - -s4bldg:nominalBodyWidth a owl:ObjectProperty ; - rdfs:comment "Nominal or quoted length, measured along the y-axis of the local coordinate system of the object, of the body of the object. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal body width"@en . -# -# https://saref.etsi.org/saref4bldg#nominalCapacity - -s4bldg:nominalCapacity a owl:ObjectProperty ; - rdfs:comment "Nominal capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal capacity"@en . -# -# https://saref.etsi.org/saref4bldg#nominalCondensingTemperature - -s4bldg:nominalCondensingTemperature a owl:ObjectProperty ; - rdfs:comment "Chiller condensing temperature. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal condensing temperature"@en . -# -# https://saref.etsi.org/saref4bldg#nominalCoolingCapacity - -s4bldg:nominalCoolingCapacity a owl:ObjectProperty ; - rdfs:comment "Nominal cooling capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal cooling capacity"@en . -# -# https://saref.etsi.org/saref4bldg#nominalDepth - -s4bldg:nominalDepth a owl:ObjectProperty ; - rdfs:comment "The nominal depth of the tank. Note: Not required for a horizontal cylindrical tank. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal depth"@en . -# -# https://saref.etsi.org/saref4bldg#nominalDiameter - -s4bldg:nominalDiameter a owl:ObjectProperty ; - rdfs:comment "Nominal diameter or width of the tubes in the tube bundle. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal diameter"@en . -# -# https://saref.etsi.org/saref4bldg#nominalEfficiency - -s4bldg:nominalEfficiency a owl:ObjectProperty ; - rdfs:comment "Nominal chiller efficiency under nominal conditions. "@en ; - rdfs:label "nominal efficiency"@en . -# -# https://saref.etsi.org/saref4bldg#nominalEnergyConsumption - -s4bldg:nominalEnergyConsumption a owl:ObjectProperty ; - rdfs:comment "Nominal fuel consumption rate required to produce the total boiler heat output. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal energy consumption"@en . -# -# https://saref.etsi.org/saref4bldg#nominalEvaporatingTemmperature - -s4bldg:nominalEvaporatingTemmperature a owl:ObjectProperty ; - rdfs:comment "Chiller evaporating temperature.Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal evaporating temmperature"@en . -# -# https://saref.etsi.org/saref4bldg#nominalFilterFaceVelocity - -s4bldg:nominalFilterFaceVelocity a owl:ObjectProperty ; - rdfs:comment "Filter face velocity. Usually measured in m/s."@en ; - rdfs:label "nominal filter face velocity"@en . -# -# https://saref.etsi.org/saref4bldg#nominalFlowRate - -s4bldg:nominalFlowRate a owl:ObjectProperty ; - rdfs:comment "Nominal fluid flow rate through the filter. Usually measured in m3/s."@en ; - rdfs:label "nominal flow rate"@en . -# -# https://saref.etsi.org/saref4bldg#nominalFrequency - -s4bldg:nominalFrequency a owl:ObjectProperty ; - rdfs:comment "The nominal frequency of the supply. Usually measured in cycles/s or Hertz (Hz)."@en ; - rdfs:label "nominal frequency"@en . -# -# https://saref.etsi.org/saref4bldg#nominalHeatRejectionRate - -s4bldg:nominalHeatRejectionRate a owl:ObjectProperty ; - rdfs:comment "Sum of the refrigeration effect and the heat equivalent of the power input to the compressor. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal heat rejection rate"@en . -# -# https://saref.etsi.org/saref4bldg#nominalHeatTransferArea - -s4bldg:nominalHeatTransferArea a owl:ObjectProperty ; - rdfs:comment "Nominal heat transfer surface area associated with nominal overall heat transfer coefficient. Usually measured in square metre (m2)."@en ; - rdfs:label "nominal heat transfer area"@en . -# -# https://saref.etsi.org/saref4bldg#nominalHeatTransferCoefficient - -s4bldg:nominalHeatTransferCoefficient a owl:ObjectProperty ; - rdfs:comment "Nominal overall heat transfer coefficient associated with nominal heat transfer area. Usually measured in Watts/m2 Kelvin."@en ; - rdfs:label "nominal heat transfer coefficient"@en . -# -# https://saref.etsi.org/saref4bldg#nominalHeatingCapacity - -s4bldg:nominalHeatingCapacity a owl:ObjectProperty ; - rdfs:comment "Nominal heating capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal heating capacity"@en . -# -# https://saref.etsi.org/saref4bldg#nominalLatentCapacity - -s4bldg:nominalLatentCapacity a owl:ObjectProperty ; - rdfs:comment "Nominal latent capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal latent capacity"@en . -# -# https://saref.etsi.org/saref4bldg#nominalLengthOrDiameter - -s4bldg:nominalLengthOrDiameter a owl:ObjectProperty ; - rdfs:comment "The nominal length or, in the case of a vertical cylindrical tank, the nominal diameter of the tank. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal length or diameter"@en . -# -# https://saref.etsi.org/saref4bldg#nominalMediaSurfaceVelocity - -s4bldg:nominalMediaSurfaceVelocity a owl:ObjectProperty ; - rdfs:comment "Average fluid velocity at the media surface. Usually measured in m/s."@en ; - rdfs:label "nominal media surface velocity"@en . -# -# https://saref.etsi.org/saref4bldg#nominalMoistureGain - -s4bldg:nominalMoistureGain a owl:ObjectProperty ; - rdfs:comment "Nominal rate of water vapor added into the airstream. Usually measured in kg/s."@en ; - rdfs:label "nominal moisture gain"@en . -# -# https://saref.etsi.org/saref4bldg#nominalPartLoadRatio - -s4bldg:nominalPartLoadRatio a owl:ObjectProperty ; - rdfs:comment "Allowable part load ratio range."@en ; - rdfs:label "nominal part load ratio"@en . -# -# https://saref.etsi.org/saref4bldg#nominalParticleGeometricMeanDiameter - -s4bldg:nominalParticleGeometricMeanDiameter a owl:ObjectProperty ; - rdfs:comment "Particle geometric mean diameter associated with nominal efficiency. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal particle geometric mean diameter"@en . -# -# https://saref.etsi.org/saref4bldg#nominalParticleGeometricStandardDeviation - -s4bldg:nominalParticleGeometricStandardDeviation a owl:ObjectProperty ; - rdfs:comment "Particle geometric standard deviation associated with nominal efficiency. "@en ; - rdfs:label "nominal particle geometric standard deviation"@en . -# -# https://saref.etsi.org/saref4bldg#nominalPowerConsumption - -s4bldg:nominalPowerConsumption a owl:ObjectProperty ; - rdfs:comment "Nominal total power consumption. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal power consumption"@en . -# -# https://saref.etsi.org/saref4bldg#nominalPowerRate - -s4bldg:nominalPowerRate a owl:ObjectProperty ; - rdfs:comment "Nominal fan power rate.Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal power rate"@en . -# -# https://saref.etsi.org/saref4bldg#nominalPressureDrop - -s4bldg:nominalPressureDrop a owl:ObjectProperty ; - rdfs:comment "Total pressure drop across the filter. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "nominal pressure drop"@en . -# -# https://saref.etsi.org/saref4bldg#nominalReturnWaterTemperatureCooling - -s4bldg:nominalReturnWaterTemperatureCooling a owl:ObjectProperty ; - rdfs:comment "Nominal return water temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal return water temperature cooling"@en . -# -# https://saref.etsi.org/saref4bldg#nominalReturnWaterTemperatureHeating - -s4bldg:nominalReturnWaterTemperatureHeating a owl:ObjectProperty ; - rdfs:comment "Nominal return water temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal return water temperature heating"@en . -# -# https://saref.etsi.org/saref4bldg#nominalRotationSpeed - -s4bldg:nominalRotationSpeed a owl:ObjectProperty ; - rdfs:comment "Nominal fan wheel speed. Usually measured in cycles/s."@en ; - rdfs:label "nominal rotation speed"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSensibleCapacity - -s4bldg:nominalSensibleCapacity a owl:ObjectProperty ; - rdfs:comment "Nominal sensible capacity. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "nominal sensible capacity"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSorroundingHumidityCooling - -s4bldg:nominalSorroundingHumidityCooling a owl:ObjectProperty ; - rdfs:comment "Nominal surrounding humidity (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal sorrounding humidity cooling"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSorroundingTemperatureCooling - -s4bldg:nominalSorroundingTemperatureCooling a owl:ObjectProperty ; - rdfs:comment "Nominal surrounding temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal sorrounding temperature cooling"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSorroundingTemperatureHeating - -s4bldg:nominalSorroundingTemperatureHeating a owl:ObjectProperty ; - rdfs:comment "Nominal surrounding temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal sorrounding temperature heating"@en . -# -# https://saref.etsi.org/saref4bldg#nominalStaticPressure - -s4bldg:nominalStaticPressure a owl:ObjectProperty ; - rdfs:comment "The static pressure within the air stream that the fan must overcome to insure designed circulation of air. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "nominal static pressure"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSupplyVoltage - -s4bldg:nominalSupplyVoltage a owl:ObjectProperty ; - rdfs:comment "The nominal voltage of the supply. Usually measured in Volts (V, W/A)."@en ; - rdfs:label "nominal supply voltage"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSupplyVoltageMax - -s4bldg:nominalSupplyVoltageMax a owl:ObjectProperty ; - rdfs:comment "The maximum and minimum allowed voltage of the supply e.g. boundaries of 380V/440V may be applied for a nominal voltage of 400V."@en ; - rdfs:label "nominal supply voltage offset"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSupplyVoltageMin - -s4bldg:nominalSupplyVoltageMin a owl:ObjectProperty ; - rdfs:comment "The maximum and minimum allowed voltage of the supply e.g. boundaries of 380V/440V may be applied for a nominal voltage of 400V."@en ; - rdfs:label "nominal supply voltage offset"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSupplyWaterTemperatureCooling - -s4bldg:nominalSupplyWaterTemperatureCooling a owl:ObjectProperty ; - rdfs:comment "Nominal supply water temperature (refers to nominal cooling capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal supply water temperature cooling"@en . -# -# https://saref.etsi.org/saref4bldg#nominalSupplyWaterTemperatureHeating - -s4bldg:nominalSupplyWaterTemperatureHeating a owl:ObjectProperty ; - rdfs:comment "Nominal supply water temperature (refers to nominal heating capacity). Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "nominal supply water temperature heating"@en . -# -# https://saref.etsi.org/saref4bldg#nominalTotalPressure - -s4bldg:nominalTotalPressure a owl:ObjectProperty ; - rdfs:comment "Nominal total pressure rise across the fan. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "nominal total pressure"@en . -# -# https://saref.etsi.org/saref4bldg#nominalUa - -s4bldg:nominalUa a owl:ObjectProperty ; - rdfs:comment "Nominal UA value."@en ; - rdfs:label "nominal ua"@en . -# -# https://saref.etsi.org/saref4bldg#nominalVolumetricCapacity - -s4bldg:nominalVolumetricCapacity a owl:ObjectProperty ; - rdfs:comment "The total nominal or design volumetric capacity of the tank. Usually measured in cubic metre (m3)."@en ; - rdfs:label "nominal volumetric capacity"@en . -# -# https://saref.etsi.org/saref4bldg#nominalWaterFlowCooling - -s4bldg:nominalWaterFlowCooling a owl:ObjectProperty ; - rdfs:comment "Nominal water flow (refers to nominal cooling capacity). Usually measured in m3/s."@en ; - rdfs:label "nominal water flow cooling"@en . -# -# https://saref.etsi.org/saref4bldg#nominalWaterFlowHeating - -s4bldg:nominalWaterFlowHeating a owl:ObjectProperty ; - rdfs:comment "Nominal water flow (refers to nominal heating capacity). Usually measured in m3/s."@en ; - rdfs:label "nominal water flow heating"@en . -# -# https://saref.etsi.org/saref4bldg#nominalWidthOrDiameter - -s4bldg:nominalWidthOrDiameter a owl:ObjectProperty ; - rdfs:comment "The nominal width or, in the case of a horizontal cylindrical tank, the nominal diameter of the tank. Note: Not required for a vertical cylindrical tank. Usually measured in millimeters (mm)."@en ; - rdfs:label "nominal width or diameter"@en . -# -# https://saref.etsi.org/saref4bldg#nomminalRotationSpeed - -s4bldg:nomminalRotationSpeed a owl:ObjectProperty ; - rdfs:comment "Pump rotational speed under nominal conditions. Usually measured in cycles/s."@en ; - rdfs:label "nomminal rotation speed"@en . -# -# https://saref.etsi.org/saref4bldg#openPressureDrop - -s4bldg:openPressureDrop a owl:ObjectProperty ; - rdfs:comment "Total pressure drop across damper. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "open pressure drop"@en . -# -# https://saref.etsi.org/saref4bldg#operatingWeight - -s4bldg:operatingWeight a owl:ObjectProperty ; - rdfs:comment "Operating weight of the tank including all of its contents. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "operating weight"@en . -# -# https://saref.etsi.org/saref4bldg#operationTemperatureMax - -s4bldg:operationTemperatureMax a owl:ObjectProperty ; - rdfs:comment "Allowable operation ambient (air, fluid) temperature range. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "operation temperature range"@en . -# -# https://saref.etsi.org/saref4bldg#operationTemperatureMin - -s4bldg:operationTemperatureMin a owl:ObjectProperty ; - rdfs:comment "Allowable operation ambient (air, fluid) temperature range. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "operation temperature range"@en . -# -# https://saref.etsi.org/saref4bldg#operationalRiterial - -s4bldg:operationalRiterial a owl:ObjectProperty ; - rdfs:comment "Time of operation at maximum operational ambient air temperature. Measured in seconds (s) or days (d) or other units of time."@en ; - rdfs:label "operational riterial"@en . -# -# https://saref.etsi.org/saref4bldg#outletConnectionSize - -s4bldg:outletConnectionSize a owl:ObjectProperty ; - rdfs:comment "Size of the outlet connection. Usually measured in millimeters (mm)."@en ; - rdfs:label "outlet connection size"@en . -# -# https://saref.etsi.org/saref4bldg#outletTemperatureMax - -s4bldg:outletTemperatureMax a owl:ObjectProperty ; - rdfs:comment "Allowable outlet temperature of either the water or the steam. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "outlet temperature range"@en . -# -# https://saref.etsi.org/saref4bldg#outletTemperatureMin - -s4bldg:outletTemperatureMin a owl:ObjectProperty ; - rdfs:comment "Allowable outlet temperature of either the water or the steam. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "outlet temperature range"@en . -# -# https://saref.etsi.org/saref4bldg#outputCapacity - -s4bldg:outputCapacity a owl:ObjectProperty ; - rdfs:comment "Total nominal heat output as listed by the manufacturer. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "output capacity"@en . -# -# https://saref.etsi.org/saref4bldg#outsideDiameter - -s4bldg:outsideDiameter a owl:ObjectProperty ; - rdfs:comment "Actual outside diameter of the tube in the tube bundle. Usually measured in millimeters (mm)."@en ; - rdfs:label "outside diameter"@en . -# -# https://saref.etsi.org/saref4bldg#partLoadRatioMax - -s4bldg:partLoadRatioMax a owl:ObjectProperty ; - rdfs:comment "Maximum part load ratio as a fraction of nominal capacity."@en ; - rdfs:label "maximum part load ratio"@en . -# -# https://saref.etsi.org/saref4bldg#partLoadRatioMin - -s4bldg:partLoadRatioMin a owl:ObjectProperty ; - rdfs:comment "Minimum part load ratio as a fraction of nominal capacity."@en ; - rdfs:label "minimum part load ratio"@en . -# -# https://saref.etsi.org/saref4bldg#powerOutputMax - -s4bldg:powerOutputMax a owl:ObjectProperty ; - rdfs:comment "The maximum output power rating of the engine. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "maximum power output"@en . -# -# https://saref.etsi.org/saref4bldg#pressureRating - -s4bldg:pressureRating a owl:ObjectProperty ; - rdfs:comment "Nominal pressure rating of the boiler as rated by the agency having jurisdiction. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "pressure rating"@en . -# -# https://saref.etsi.org/saref4bldg#primaryAirFlowRateMax - -s4bldg:primaryAirFlowRateMax a owl:ObjectProperty ; - rdfs:comment "Maximum primary airflow that can be delivered. Usually measured in m3/s."@en ; - rdfs:label "primary air flow rate range"@en . -# -# https://saref.etsi.org/saref4bldg#primaryAirFlowRateMin - -s4bldg:primaryAirFlowRateMin a owl:ObjectProperty ; - rdfs:comment "Minimum primary airflow that can be delivered. Usually measured in m3/s."@en ; - rdfs:label "primary air flow rate range"@en . -# -# https://saref.etsi.org/saref4bldg#primaryApparentPower - -s4bldg:primaryApparentPower a owl:ObjectProperty ; - rdfs:comment "The power in VA (volt ampere) that has been transformed and that runs into the transformer on the primary side. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "primary apparent power"@en . -# -# https://saref.etsi.org/saref4bldg#primaryCurrent - -s4bldg:primaryCurrent a owl:ObjectProperty ; - rdfs:comment "The current that is going to be transformed and that runs into the transformer on the primary side. Usually measured in Ampere (A)."@en ; - rdfs:label "primary current"@en . -# -# https://saref.etsi.org/saref4bldg#primaryFrequency - -s4bldg:primaryFrequency a owl:ObjectProperty ; - rdfs:comment "The frequency that is going to be transformed and that runs into the transformer on the primary side. Usually measured in cycles/s or Hertz (Hz)."@en ; - rdfs:label "primary frequency"@en . -# -# https://saref.etsi.org/saref4bldg#primaryVoltage - -s4bldg:primaryVoltage a owl:ObjectProperty ; - rdfs:comment "The voltage that is going to be transformed and that runs into the transformer on the primary side. Usually measured in Volts (V, W/A)."@en ; - rdfs:label "primary voltage"@en . -# -# https://saref.etsi.org/saref4bldg#pumpFlowRateMax - -s4bldg:pumpFlowRateMax a owl:ObjectProperty ; - rdfs:comment "Allowable range of volume of fluid being pumped against the resistance specified. Usually measured in kg/s."@en ; - rdfs:label "pump flow rate range"@en . -# -# https://saref.etsi.org/saref4bldg#pumpFlowRateMin - -s4bldg:pumpFlowRateMin a owl:ObjectProperty ; - rdfs:comment "Allowable range of volume of fluid being pumped against the resistance specified. Usually measured in kg/s."@en ; - rdfs:label "pump flow rate range"@en . -# -# https://saref.etsi.org/saref4bldg#realImpedanceRatio - -s4bldg:realImpedanceRatio a owl:ObjectProperty ; - rdfs:comment "The ratio between the real part of the zero sequence impedance and the real part of the positive impedance (i.e. real part of the short-circuit voltage) of the transformer. Used for three-phase transformer which includes a N-conductor."@en ; - rdfs:label "real impedance ratio"@en . -# -# https://saref.etsi.org/saref4bldg#secondCurvatureRadius - -s4bldg:secondCurvatureRadius a owl:ObjectProperty ; - rdfs:comment "SecondCurvatureRadius should be defined as the top or right side radius of curvature value. Usually measured in millimeters (mm)."@en ; - rdfs:label "second curvature radius"@en . -# -# https://saref.etsi.org/saref4bldg#secondaryAirFlowRateMax - -s4bldg:secondaryAirFlowRateMax a owl:ObjectProperty ; - rdfs:comment "Maximum secondary airflow that can be delivered. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "secondary air flow rate range"@en . -# -# https://saref.etsi.org/saref4bldg#secondaryAirFlowRateMin - -s4bldg:secondaryAirFlowRateMin a owl:ObjectProperty ; - rdfs:comment "Maximum secondary airflow that can be delivered. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "secondary air flow rate range"@en . -# -# https://saref.etsi.org/saref4bldg#secondaryApparentPower - -s4bldg:secondaryApparentPower a owl:ObjectProperty ; - rdfs:comment "The power in VA (volt ampere) that has been transformed and is running out of the transformer on the secondary side. Usually measured in Watts (W, J/s)."@en ; - rdfs:label "secondary apparent power"@en . -# -# https://saref.etsi.org/saref4bldg#secondaryCurrent - -s4bldg:secondaryCurrent a owl:ObjectProperty ; - rdfs:comment "The current that has been transformed and is running out of the transformer on the secondary side. Usually measured in Ampere (A)."@en ; - rdfs:label "secondary current"@en . -# -# https://saref.etsi.org/saref4bldg#secondaryFrequency - -s4bldg:secondaryFrequency a owl:ObjectProperty ; - rdfs:comment "The frequency that has been transformed and is running out of the transformer on the secondary side. Usually measured in cycles/s or Hertz (Hz)."@en ; - rdfs:label "secondary frequency"@en . -# -# https://saref.etsi.org/saref4bldg#secondaryVoltage - -s4bldg:secondaryVoltage a owl:ObjectProperty ; - rdfs:comment "The voltage that has been transformed and is running out of the transformer on the secondary side. Usually measured in Volts (V, W/A)."@en ; - rdfs:label "secondary voltage"@en . -# -# https://saref.etsi.org/saref4bldg#shortCircuitVoltage - -s4bldg:shortCircuitVoltage a owl:ObjectProperty ; - rdfs:comment "A complex number that specifies the real and imaginary parts of the short-circuit voltage at rated current of a transformer given in %."@en ; - rdfs:label "short circuit voltage"@en . -# -# https://saref.etsi.org/saref4bldg#size - -s4bldg:size a owl:ObjectProperty ; - rdfs:comment "The size of the connection to the valve (or to each connection for faucets, mixing valves, etc.). Usually measured in millimeters (mm)."@en ; - rdfs:label "size"@en . -# -# https://saref.etsi.org/saref4bldg#solarReflectance - -s4bldg:solarReflectance a owl:ObjectProperty ; - rdfs:comment "(Rsol): The ratio of incident solar radiation that is reflected by a shading system (also named _e). Note the following equation Asol + Rsol + Tsol = 1"@en ; - rdfs:label "solar reflectance"@en . -# -# https://saref.etsi.org/saref4bldg#solarTransmittance - -s4bldg:solarTransmittance a owl:ObjectProperty ; - rdfs:comment "(Tsol) The ratio of incident solar radiation that directly passes through a shading system (also named _e). Note the following equation Asol + Rsol + Tsol = 1"@en ; - rdfs:label "solar transmittance"@en . -# -# https://saref.etsi.org/saref4bldg#spectrumMax - -s4bldg:spectrumMax a owl:ObjectProperty ; - rdfs:comment "The spectrum of radiation describes its composition with regard to wavelength. Light, for example, as the portion of electromagnetic radiation that is visible to the human eye, is radiation with wavelengths in the range of approx. 380 to 780 nm (1 nm = 10 m). The corresponding range of colours varies from violet to indigo, blue, green, yellow, orange, and red. These colours form a continuous spectrum, in which the various spectral sectors merge into each other."@en ; - rdfs:label "maximum spectrum"@en . -# -# https://saref.etsi.org/saref4bldg#spectrumMin - -s4bldg:spectrumMin a owl:ObjectProperty ; - rdfs:comment "The spectrum of radiation describes its composition with regard to wavelength. Light, for example, as the portion of electromagnetic radiation that is visible to the human eye, is radiation with wavelengths in the range of approx. 380 to 780 nm (1 nm = 10 m). The corresponding range of colours varies from violet to indigo, blue, green, yellow, orange, and red. These colours form a continuous spectrum, in which the various spectral sectors merge into each other."@en ; - rdfs:label "minimum spectrum"@en . -# -# https://saref.etsi.org/saref4bldg#staggeredRowSpacing - -s4bldg:staggeredRowSpacing a owl:ObjectProperty ; - rdfs:comment "Staggered tube row spacing. Usually measured in millimeters (mm)."@en ; - rdfs:label "staggered row spacing"@en . -# -# https://saref.etsi.org/saref4bldg#startCurrentFactor - -s4bldg:startCurrentFactor a owl:ObjectProperty ; - rdfs:comment "IEC. Start current factor defines how large the peek starting current will become on the engine. StartCurrentFactor is multiplied to NominalCurrent and we get the start current."@en ; - rdfs:label "start current factor"@en . -# -# https://saref.etsi.org/saref4bldg#startingTime - -s4bldg:startingTime a owl:ObjectProperty ; - rdfs:comment "The time (in s) needed for the motor to reach its rated speed with its driven equipment attached, starting from standstill and at the nominal voltage applied at its terminals."@en ; - rdfs:label "starting time"@en . -# -# https://saref.etsi.org/saref4bldg#supportedWeightMax - -s4bldg:supportedWeightMax a owl:ObjectProperty ; - rdfs:comment "The maximum weight that can be carried by the vibration isolator. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "maximum supported weight"@en . -# -# https://saref.etsi.org/saref4bldg#teTime - -s4bldg:teTime a owl:ObjectProperty ; - rdfs:comment "The maximum time (in s) at which the motor could run with locked rotor when the motor is used in an EX-environment. The time indicates that a protective device should trip before this time when the starting current of the motor is slowing through the device."@en ; - rdfs:label "te time"@en . -# -# https://saref.etsi.org/saref4bldg#temperatureRating - -s4bldg:temperatureRating a owl:ObjectProperty ; - rdfs:comment "Temperature rating. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "temperature rating"@en . -# -# https://saref.etsi.org/saref4bldg#testPressure - -s4bldg:testPressure a owl:ObjectProperty ; - rdfs:comment "The maximum pressure to which the valve has been subjected under test. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "test pressure"@en . -# -# https://saref.etsi.org/saref4bldg#thermalConductivity - -s4bldg:thermalConductivity a owl:ObjectProperty ; - rdfs:comment "Fouling factor of the tubes in the tube bundle. Usually measured in m2 Kelvin/Watt."@en ; - rdfs:label "thermal conductivity"@en . -# -# https://saref.etsi.org/saref4bldg#thermalEfficiency - -s4bldg:thermalEfficiency a owl:ObjectProperty ; - rdfs:comment "Overall Thermal Efficiency is defined as gross energy output of the heat transfer device divided by the energy input."@en ; - rdfs:label "thermal efficiency"@en . -# -# https://saref.etsi.org/saref4bldg#thermalMassHeatCapacity - -s4bldg:thermalMassHeatCapacity a owl:ObjectProperty ; - rdfs:comment "Product of component mass and specific heat."@en ; - rdfs:label "thermal mass heat capacity"@en . -# -# https://saref.etsi.org/saref4bldg#thermalTransmittance - -s4bldg:thermalTransmittance a owl:ObjectProperty ; - rdfs:comment "Rate at which energy is transmitted through a body. Usually measured in Watts/m2 Kelvin."@en ; - rdfs:label "thermal transmittance"@en . -# -# https://saref.etsi.org/saref4bldg#ventilatingPipeSize - -s4bldg:ventilatingPipeSize a owl:ObjectProperty ; - rdfs:comment "Size of the ventilating pipe(s). Usually measured in millimeters (mm)."@en ; - rdfs:label "ventilating pipe size"@en . -# -# https://saref.etsi.org/saref4bldg#verticalSpacing - -s4bldg:verticalSpacing a owl:ObjectProperty ; - rdfs:comment "Vertical spacing between tubes in the tube bundle.Usually measured in millimeters (mm)."@en ; - rdfs:label "vertical spacing"@en . -# -# https://saref.etsi.org/saref4bldg#vibrationTransmissibility - -s4bldg:vibrationTransmissibility a owl:ObjectProperty ; - rdfs:comment "The vibration transmissibility percentage."@en ; - rdfs:label "vibration transmissibility"@en . -# -# https://saref.etsi.org/saref4bldg#visibleLightReflectance - -s4bldg:visibleLightReflectance a owl:ObjectProperty ; - rdfs:comment "Fraction of the visible light that is reflected by the glazing at normal incidence. It is a value without unit."@en ; - rdfs:label "visible light reflectance"@en . -# -# https://saref.etsi.org/saref4bldg#visibleLightTransmittance - -s4bldg:visibleLightTransmittance a owl:ObjectProperty ; - rdfs:comment "Fraction of the visible light that passes the shading system at normal incidence. It is a value without unit."@en ; - rdfs:label "visible light transmittance"@en . -# -# https://saref.etsi.org/saref4bldg#volumen - -s4bldg:volumen a owl:ObjectProperty ; - rdfs:comment "Total volume of fluid in the tubes and their headers. Usually measured in cubic metre (m3)."@en ; - rdfs:label "volumen"@en . -# -# https://saref.etsi.org/saref4bldg#waterInletTemperatureMax - -s4bldg:waterInletTemperatureMax a owl:ObjectProperty ; - rdfs:comment "Allowable water inlet temperature range. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "water inlet temperature range"@en . -# -# https://saref.etsi.org/saref4bldg#waterInletTemperatureMin - -s4bldg:waterInletTemperatureMin a owl:ObjectProperty ; - rdfs:comment "Allowable water inlet temperature range. Usually measured in degrees Kelvin (K)."@en ; - rdfs:label "water inlet temperature range"@en . -# -# https://saref.etsi.org/saref4bldg#waterPressureMax - -s4bldg:waterPressureMax a owl:ObjectProperty ; - rdfs:comment "Allowable water circuit working pressure range. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "water pressure range"@en . -# -# https://saref.etsi.org/saref4bldg#waterPressureMin - -s4bldg:waterPressureMin a owl:ObjectProperty ; - rdfs:comment "Allowable water circuit working pressure range. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "water pressure range"@en . -# -# https://saref.etsi.org/saref4bldg#waterRequirement - -s4bldg:waterRequirement a owl:ObjectProperty ; - rdfs:comment "Make-up water requirement. Usually measured in m3/s."@en ; - rdfs:label "water requirement"@en . -# -# https://saref.etsi.org/saref4bldg#waterStorageCapacity - -s4bldg:waterStorageCapacity a owl:ObjectProperty ; - rdfs:comment "Water storage capacity. Usually measured in cubic metre (m3)."@en ; - rdfs:label "water storage capacity"@en . -# -# https://saref.etsi.org/saref4bldg#weight - -s4bldg:weight a owl:ObjectProperty ; - rdfs:comment "The weight of the device. Usually measured in kilograms (kg) or grams (g)."@en ; - rdfs:label "weight"@en . -# -# https://saref.etsi.org/saref4bldg#workingPressure - -s4bldg:workingPressure a owl:ObjectProperty ; - rdfs:comment "The normally expected maximum working pressure of the valve. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "working pressure"@en . -# -# https://saref.etsi.org/saref4bldg#workingPressureMax - -s4bldg:workingPressureMax a owl:ObjectProperty ; - rdfs:comment "Maximum working pressure. Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "maximum working pressure"@en . -# -# https://saref.etsi.org/saref4bldg#workingPressureMin - -s4bldg:workingPressureMin a owl:ObjectProperty ; - rdfs:comment "Allowable minimum working pressure (relative to ambient pressure). Usually measured in Pascals (Pa, N/m2)."@en ; - rdfs:label "minimum working pressure"@en . -# -# https://w3id.org/saref#isMeasuredIn - -saref:isMeasuredIn a owl:ObjectProperty ; - rdfs:comment "A relation between a measurement and the unit of measure in which the measurement value is expressed."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "is measured in"@en . -# -# https://w3id.org/saref#relatesToProperty - -saref:relatesToProperty a owl:ObjectProperty ; - rdfs:comment "A relation between a measurement and the property such measurement is about."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "relates to property"@en . -# -# -# -# ################################################################# -# # -# # Data properties -# # -# ################################################################# -# -# -# https://saref.etsi.org/saref4bldg#accessType - -s4bldg:accessType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Defines the types of access (or cover) to a tank that may be specified. Note that covers are generally specified for rectangular tanks. For cylindrical tanks, access will normally be via a manhole."@en ; - rdfs:label "access type"@en . -# -# https://saref.etsi.org/saref4bldg#application - -s4bldg:application a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Humidifier application. Fixed: Humidifier installed in a ducted flow distribution system. Portable: Humidifier is not installed in a ducted flow distribution system."@en ; - rdfs:label "application"@en . -# -# https://saref.etsi.org/saref4bldg#arrangement - -s4bldg:arrangement a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Defines the basic flow arrangements for the heat exchanger: COUNTERFLOW: Counterflow heat exchanger arrangement. CROSSFLOW: Crossflow heat exchanger arrangement. PARALLELFLOW: Parallel flow heat exchanger arrangement. MULTIPASS: Multipass flow heat exchanger arrangement. OTHER: Other type of heat exchanger flow arrangement not defined above."@en ; - rdfs:label "arrangement"@en . -# -# https://saref.etsi.org/saref4bldg#bladeAction - -s4bldg:bladeAction a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Blade action."@en ; - rdfs:label "blade action"@en . -# -# https://saref.etsi.org/saref4bldg#bladeEdge - -s4bldg:bladeEdge a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Blade edge."@en ; - rdfs:label "blade edge"@en . -# -# https://saref.etsi.org/saref4bldg#bladeShape - -s4bldg:bladeShape a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Blade shape. Flat means triple V-groove."@en ; - rdfs:label "blade shape"@en . -# -# https://saref.etsi.org/saref4bldg#capacityControl - -s4bldg:capacityControl a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "FanCycling: Fan is cycled on and off to control duty. TwoSpeedFan: Fan is switched between low and high speed to control duty. VariableSpeedFan: Fan speed is varied to control duty. DampersControl: Dampers modulate the air flow to control duty. BypassValveControl: Bypass valve modulates the water flow to control duty. MultipleSeriesPumps: Turn on/off multiple series pump to control duty. TwoSpeedPump: Switch between high/low pump speed to control duty. VariableSpeedPump: vary pump speed to control duty."@en ; - rdfs:label "capacity control"@en . -# -# https://saref.etsi.org/saref4bldg#capacityControlType - -s4bldg:capacityControlType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "InletVane: Control by adjusting inlet vane. VariableSpeedDrive: Control by variable speed drive. BladePitchAngle: Control by adjusting blade pitch angle. TwoSpeed: Control by switch between high and low speed. DischargeDamper: Control by modulating discharge damper."@en ; - rdfs:label "capacity control type"@en . -# -# https://saref.etsi.org/saref4bldg#capacityPeople - -s4bldg:capacityPeople a owl:DatatypeProperty ; - rdfs:range xsd:nonNegativeInteger ; - rdfs:comment "Capacity of the transportation element measured in numbers of person."@en ; - rdfs:label "capacity people"@en . -# -# https://saref.etsi.org/saref4bldg#circuitType - -s4bldg:circuitType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "OpenCircuit: Exposes water directly to the cooling atmosphere. CloseCircuit: The fluid is separated from the atmosphere by a heat exchanger. Wet: The air stream or the heat exchange surface is evaporatively cooled. Dry: No evaporation into the air stream. DryWet: A combination of a dry tower and a wet tower."@en ; - rdfs:label "circuit type"@en . -# -# https://saref.etsi.org/saref4bldg#colorAppearance - -s4bldg:colorAppearance a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "In both the DIN and CIE standards, artificial light sources are classified in terms of their color appearance. To the human eye they all appear to be white the difference can only be detected by direct comparison. Visual performance is not directly affected by differences in color appearance."@en ; - rdfs:label "color appearance"@en . -# -# https://saref.etsi.org/saref4bldg#colorRenderingIndex - -s4bldg:colorRenderingIndex a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "The CRI indicates how well a light source renders eight standard colors compared to perfect reference lamp with the same color temperature. The CRI scale ranges from 1 to 100, with 100 representing perfect rendering properties."@en ; - rdfs:label "color rendering index"@en . -# -# https://saref.etsi.org/saref4bldg#controlStrategy - -s4bldg:controlStrategy a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "FixedExitingWaterTemp: The capacity is controlled to maintain a fixed exiting water temperature. WetBulbTempReset: The set-point is reset based on the wet-bulb temperature."@en ; - rdfs:label "control strategy"@en . -# -# https://saref.etsi.org/saref4bldg#endShapeType - -s4bldg:endShapeType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Defines the types of end shapes that can be used for preformed tanks. The convention for reading these enumerated values is that for a vertical cylinder, the first value is the base and the second is the top for a horizontal cylinder, the order of reading should be left to right. For a speherical tank, the value UNSET should be used.B5"@en ; - rdfs:label "end shape type"@en . -# -# https://saref.etsi.org/saref4bldg#energySource - -s4bldg:energySource a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Enumeration defining the energy source or fuel cumbusted to generate heat."@en , "The source of energy."@en ; - rdfs:label "energy source"@en . -# -# https://saref.etsi.org/saref4bldg#evaporationCoolant - -s4bldg:evaporationCoolant a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The fluid used for the coolant in the evaporator."@en ; - rdfs:label "evaporation coolant"@en . -# -# https://saref.etsi.org/saref4bldg#evaporationMediumType - -s4bldg:evaporationMediumType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "ColdLiquid: Evaporator is using liquid type of fluid to exchange heat with refrigerant. ColdAir: Evaporator is using air to exchange heat with refrigerant."@en ; - rdfs:label "evaporation medium type"@en . -# -# https://saref.etsi.org/saref4bldg#failPosition - -s4bldg:failPosition a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Specifies the required fail-safe position of the actuator."@en ; - rdfs:label "fail position"@en . -# -# https://saref.etsi.org/saref4bldg#finishColor - -s4bldg:finishColor a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Finish color for cooled beam."@en ; - rdfs:label "finish color"@en . -# -# https://saref.etsi.org/saref4bldg#fireExit - -s4bldg:fireExit a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Indication whether this object is designed to serve as an exit in the case of fire (TRUE) or not (FALSE). Here whether the transport element (in case of e.g., a lift) is designed to serve as a fire exit, e.g., for fire escape purposes."@en ; - rdfs:label "fire exit"@en . -# -# https://saref.etsi.org/saref4bldg#flowArrangement - -s4bldg:flowArrangement a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "CounterFlow: Air and water flow enter in different directions. CrossFlow: Air and water flow are perpendicular. ParallelFlow: air and water flow enter in same directions."@en ; - rdfs:label "flow arrangement"@en . -# -# https://saref.etsi.org/saref4bldg#frameSize - -s4bldg:frameSize a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Designation of the frame size according to the named range of frame sizes designated at the place of use or according to a given standard."@en ; - rdfs:label "frame size"@en . -# -# https://saref.etsi.org/saref4bldg#frameType - -s4bldg:frameType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The type of frame used by the damper (e.g., Standard, Single Flange, Single Reversed Flange, Double Flange, etc.)."@en ; - rdfs:label "frame type"@en . -# -# https://saref.etsi.org/saref4bldg#hasDefrost - -s4bldg:hasDefrost a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Whether the heat exchanger has defrost function or not."@en ; - rdfs:label "has defrost"@en . -# -# https://saref.etsi.org/saref4bldg#hasExteriorInsulation - -s4bldg:hasExteriorInsulation a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "TRUE if the silencer has exterior insulation. FALSE if it does not."@en ; - rdfs:label "has exterior insulation"@en . -# -# https://saref.etsi.org/saref4bldg#hasHotGasBypass - -s4bldg:hasHotGasBypass a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Whether or not hot gas bypass is provided for the compressor. TRUE = Yes, FALSE = No."@en ; - rdfs:label "has hot gas bypass"@en . -# -# https://saref.etsi.org/saref4bldg#hasLock - -s4bldg:hasLock a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Indication of whether a switching device has a key operated lock (=TRUE) or not (= FALSE)."@en ; - rdfs:label "has lock"@en . -# -# https://saref.etsi.org/saref4bldg#hasPartWinding - -s4bldg:hasPartWinding a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Indication of whether the motor is single speed, i.e. has a single winding (= FALSE) or multi-speed i.e.has part winding (= TRUE) ."@en ; - rdfs:label "has part winding"@en . -# -# https://saref.etsi.org/saref4bldg#hasTurbulator - -s4bldg:hasTurbulator a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "TRUE if the tube has a turbulator, FALSE if it does not."@en ; - rdfs:label "has turbulator"@en . -# -# https://saref.etsi.org/saref4bldg#heatTransferDimension - -s4bldg:heatTransferDimension a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Indicates how heat is transmitted according to the shape of the space heater."@en ; - rdfs:label "heat transfer dimension"@en . -# -# https://saref.etsi.org/saref4bldg#heatTransferMedium - -s4bldg:heatTransferMedium a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Enumeration defining the heat transfer medium if applicable."@en ; - rdfs:label "heat transfer medium"@en . -# -# https://saref.etsi.org/saref4bldg#heatTransferTypeEnum - -s4bldg:heatTransferTypeEnum a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Type of heat transfer between the two air streams."@en ; - rdfs:label "heat transfer type enum"@en . -# -# https://saref.etsi.org/saref4bldg#integratedLightingType - -s4bldg:integratedLightingType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Integrated lighting in cooled beam."@en ; - rdfs:label "integrated lighting type"@en . -# -# https://saref.etsi.org/saref4bldg#internalControl - -s4bldg:internalControl a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Internal modulation control."@en ; - rdfs:label "internal control"@en . -# -# https://saref.etsi.org/saref4bldg#isExternal - -s4bldg:isExternal a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Indication whether the element is designed for use in the exterior (TRUE) or not (FALSE). If (TRUE) it is an external element and faces the outside of the building."@en ; - rdfs:label "is external"@en . -# -# https://saref.etsi.org/saref4bldg#isFreeHanging - -s4bldg:isFreeHanging a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Is it free hanging type (not mounted in a false ceiling)?"@en ; - rdfs:label "is free hanging"@en . -# -# https://saref.etsi.org/saref4bldg#isGuarded - -s4bldg:isGuarded a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Indication of whether the motor enclosure is guarded (= TRUE) or not (= FALSE)."@en ; - rdfs:label "is guarded"@en . -# -# https://saref.etsi.org/saref4bldg#isIlluminated - -s4bldg:isIlluminated a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "An indication of whether there is an illuminated indicator to show that the switch is on (=TRUE) or not (= FALSE)."@en ; - rdfs:label "is illuminated"@en . -# -# https://saref.etsi.org/saref4bldg#isNeutralPrimaryTerminalAvailable - -s4bldg:isNeutralPrimaryTerminalAvailable a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "An indication of whether the neutral point of the primary winding is available as a terminal (=TRUE) or not (= FALSE)."@en ; - rdfs:label "is neutral primary terminal available"@en . -# -# https://saref.etsi.org/saref4bldg#isNeutralSecondaryTerminalAvailable - -s4bldg:isNeutralSecondaryTerminalAvailable a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "An indication of whether the neutral point of the secondary winding is available as a terminal (=TRUE) or not (= FALSE)."@en ; - rdfs:label "is neutral secondary terminal available"@en . -# -# https://saref.etsi.org/saref4bldg#isPluggableOutlet - -s4bldg:isPluggableOutlet a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Indication of whether the outlet accepts a loose plug connection (= TRUE) or whether it is directly connected (= FALSE) or whether the form of connection has not yet been determined (= UNKNOWN)."@en ; - rdfs:label "is pluggable outlet"@en . -# -# https://saref.etsi.org/saref4bldg#isWaterStorageHeater - -s4bldg:isWaterStorageHeater a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "This is used to identify if the boiler has storage capacity (TRUE). If FALSE, then there is no storage capacity built into the boiler, such as an instantaneous hot water heater."@en ; - rdfs:label "is water storage heater"@en . -# -# https://saref.etsi.org/saref4bldg#lampBallastType - -s4bldg:lampBallastType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The type of ballast used to stabilise gas discharge by limiting the current during operation and to deliver the necessary striking voltage for starting. Ballasts are needed to operate Discharge Lamps such as Fluorescent, Compact Fluorescent, High-pressure Mercury, Metal Halide and High-pressure Sodium Lamps. Magnetic ballasts are chokes which limit the current passing through a lamp connected in series on the principle of self-induction. The resultant current and power are decisive for the efficient operation of the lamp. A specially designed ballast is required for every type of lamp to comply with lamp rating in terms of Luminous Flux, Color Appearance and service life. The two types of magnetic ballasts for fluorescent lamps are KVG Conventional (EC-A series) and VVG Low-loss ballasts (EC-B series). Low-loss ballasts have a higher efficiency, which means reduced ballast losses and a lower thermal load. Electronic ballasts are used to run fluorescent lamps at high frequencies (approx. 35 - 40 kHz)."@en ; - rdfs:label "lamp ballast type"@en . -# -# https://saref.etsi.org/saref4bldg#lampCompensationType - -s4bldg:lampCompensationType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Identifies the form of compensation used for power factor correction and radio suppression."@en ; - rdfs:label "lamp compensation type"@en . -# -# https://saref.etsi.org/saref4bldg#legend - -s4bldg:legend a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A text inscribed or applied to the switch as a legend to indicate purpose or function."@en ; - rdfs:label "legend"@en . -# -# https://saref.etsi.org/saref4bldg#manualOverride - -s4bldg:manualOverride a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Identifies whether hand-operated operation is provided as an override (= TRUE) or not (= FALSE). Note that this value should be set to FALSE by default in the case of a Hand Operated Actuator."@en ; - rdfs:label "manual override"@en . -# -# https://saref.etsi.org/saref4bldg#mechanicalOperated - -s4bldg:mechanicalOperated a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Indication whether the element is operated machanically (TRUE) or not, i.e. manually (FALSE)."@en ; - rdfs:label "mechanical operated"@en . -# -# https://saref.etsi.org/saref4bldg#mediaSource - -s4bldg:mediaSource a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Indicates media sources and corresponding names of ports (DistributionPort with FlowDirection=SINK and PredefinedType=AUDIOVISUAL) or aggregated audio/video components (AudioVisualAppliance)."@en ; - rdfs:label "media source"@en . -# -# https://saref.etsi.org/saref4bldg#motorDriveType - -s4bldg:motorDriveType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Motor drive type: DIRECTDRIVE: Direct drive. BELTDRIVE: Belt drive. COUPLING: Coupling. OTHER: Other type of motor drive. UNKNOWN: Unknown motor drive type. "@en ; - rdfs:label "motor drive type"@en . -# -# https://saref.etsi.org/saref4bldg#motorEnclosureType - -s4bldg:motorEnclosureType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A list of the available types of motor enclosure from which that required may be selected."@en ; - rdfs:label "motor enclosure type"@en . -# -# https://saref.etsi.org/saref4bldg#numberOfBlades - -s4bldg:numberOfBlades a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "Number of blades."@en ; - rdfs:label "number of blades"@en . -# -# https://saref.etsi.org/saref4bldg#numberOfCells - -s4bldg:numberOfCells a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "Number of cells in one cooling tower unit."@en ; - rdfs:label "number of cells"@en . -# -# https://saref.etsi.org/saref4bldg#numberOfCircuits - -s4bldg:numberOfCircuits a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "Number of parallel fluid tube circuits."@en ; - rdfs:label "number of circuits"@en . -# -# https://saref.etsi.org/saref4bldg#numberOfGangs - -s4bldg:numberOfGangs a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "Number of gangs/buttons on this switch."@en ; - rdfs:label "number of gangs"@en . -# -# https://saref.etsi.org/saref4bldg#numberOfPanels - -s4bldg:numberOfPanels a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "Number of panels."@en ; - rdfs:label "number of panels"@en . -# -# https://saref.etsi.org/saref4bldg#numberOfRows - -s4bldg:numberOfRows a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "Number of tube rows in the tube bundle assembly."@en ; - rdfs:label "number of rows"@en . -# -# https://saref.etsi.org/saref4bldg#numberOfSections - -s4bldg:numberOfSections a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "Number of sections used."@en ; - rdfs:label "number of sections"@en . -# -# https://saref.etsi.org/saref4bldg#numberOsSockets - -s4bldg:numberOsSockets a owl:DatatypeProperty ; - rdfs:range xsd:integer ; - rdfs:comment "The number of sockets that may be connected. In case of inconsistency, sockets defined on ports take precedence."@en ; - rdfs:label "number os sockets"@en . -# -# https://saref.etsi.org/saref4bldg#operatingMode - -s4bldg:operatingMode a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Identifies the operating mode of the boiler."@en ; - rdfs:label "operating mode"@en . -# -# https://saref.etsi.org/saref4bldg#operation - -s4bldg:operation a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The operational mechanism for the damper operation."@en ; - rdfs:label "operation"@en . -# -# https://saref.etsi.org/saref4bldg#orientation - -s4bldg:orientation a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The intended orientation for the damper as specified by the manufacturer."@en ; - rdfs:label "orientation"@en . -# -# https://saref.etsi.org/saref4bldg#patternType - -s4bldg:patternType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Defines the types of pattern (or shape of a tank that may be specified."@en ; - rdfs:label "pattern type"@en . -# -# https://saref.etsi.org/saref4bldg#pipeConnectionEnum - -s4bldg:pipeConnectionEnum a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The manner in which the pipe connection is made to the cooled beam."@en ; - rdfs:label "pipe connection enum"@en . -# -# https://saref.etsi.org/saref4bldg#placementType - -s4bldg:placementType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Indicates how the device is designed to be placed."@en ; - rdfs:label "placement type"@en . -# -# https://saref.etsi.org/saref4bldg#powerSource - -s4bldg:powerSource a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Type of power driving the compressor."@en ; - rdfs:label "power source"@en . -# -# https://saref.etsi.org/saref4bldg#readOutType - -s4bldg:readOutType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Indication of the form that readout from the meter takes. In the case of a dial read out, this may comprise multiple dials that give a cumulative reading and/or a mechanical odometer."@en ; - rdfs:label "read out type"@en . -# -# https://saref.etsi.org/saref4bldg#refrigerantClass - -s4bldg:refrigerantClass a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Refrigerant class used by the compressor. CFC: Chlorofluorocarbons. HCFC: Hydrochlorofluorocarbons. HFC: Hydrofluorocarbons."@en ; - rdfs:label "refrigerant class"@en . -# -# https://saref.etsi.org/saref4bldg#remoteReading - -s4bldg:remoteReading a owl:DatatypeProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "Indicates whether the meter has a connection for remote reading through connection of a communication device (set TRUE) or not (set FALSE)."@en ; - rdfs:label "remote reading"@en . -# -# https://saref.etsi.org/saref4bldg#roughness - -s4bldg:roughness a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A measure of the vertical deviations of the surface."@en ; - rdfs:label "roughness"@en . -# -# https://saref.etsi.org/saref4bldg#secondaryCurrentType - -s4bldg:secondaryCurrentType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A list of the secondary current types that can result from transformer output."@en ; - rdfs:label "secondary current type"@en . -# -# https://saref.etsi.org/saref4bldg#shadingDeviceType - -s4bldg:shadingDeviceType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Specifies the type of shading device."@en ; - rdfs:label "shading device type"@en . -# -# https://saref.etsi.org/saref4bldg#sprayType - -s4bldg:sprayType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "SprayFilled: Water is sprayed into airflow. SplashTypeFill: water cascades over successive rows of splash bars. FilmTypeFill: water flows in a thin layer over closely spaced sheets."@en ; - rdfs:label "spray type"@en . -# -# https://saref.etsi.org/saref4bldg#standard - -s4bldg:standard a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The designation of the standard applicable for the definition of the characteristics of the unit."@en ; - rdfs:label "standard"@en . -# -# https://saref.etsi.org/saref4bldg#storageType - -s4bldg:storageType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Defines the general material category intended to be stored."@en ; - rdfs:label "storage type"@en . -# -# https://saref.etsi.org/saref4bldg#switchFunction - -s4bldg:switchFunction a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Indicates types of switches which differs in functionality."@en ; - rdfs:label "switch function"@en . -# -# https://saref.etsi.org/saref4bldg#temperatureClassification - -s4bldg:temperatureClassification a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Enumeration defining the temperature classification of the space heater surface temperature. low temperature - surface temperature is relatively low, usually heated by hot water or electricity. high temperature - surface temperature is relatively high, usually heated by gas or steam."@en ; - rdfs:label "temperature classification"@en . -# -# https://saref.etsi.org/saref4bldg#transformerVectorGroup - -s4bldg:transformerVectorGroup a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "List of the possible vector groups for the transformer from which that required may be set. Values in the enumeration list follow a standard international code where the first letter describes how the primary windings are connected, the second letter describes how the secondary windings are connected, and the numbers describe the rotation of voltages and currents from the primary to the secondary side in multiples of 30 degrees. D: means that the windings are delta-connected. Y: means that the windings are star-connected. Z: means that the windings are zig-zag connected (a special start-connected providing low reactance of the transformer). The connectivity is only relevant for three-phase transformers."@en ; - rdfs:label "transformer vector group"@en . -# -# https://saref.etsi.org/saref4bldg#valveMechanism - -s4bldg:valveMechanism a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The mechanism by which the valve function is achieved where: BALL: Valve that has a ported ball that can be turned relative to the body seat ports. BUTTERFLY: Valve in which a streamlined disc pivots about a diametric axis. CONFIGUREDGATE: Screwdown valve in which the closing gate is shaped in a configured manner to have a more precise control of pressure and flow change across the valve. GLAND: Valve with a tapered seating, in which a rotatable plug is retained by means of a gland and gland packing. GLOBE: Screwdown valve that has a spherical body. LUBRICATEDPLUG: Plug valve in which a lubricant is injected under pressure between the plug face and the body. NEEDLE: Valve for regulating the flow in or from a pipe, in which a slender cone moves along the axis of flow to close against a fixed conical seat. PARALLELSLIDE: Screwdown valve that has a machined plate that slides in formed grooves to form a seal. PLUG: Valve that has a ported plug that can be turned relative to the body seat ports. WEDGEGATE: Screwdown valve that has a wedge shaped plate fitting into tapered guides to form a seal."@en ; - rdfs:label "valve mechanism"@en . -# -# https://saref.etsi.org/saref4bldg#valveOperation - -s4bldg:valveOperation a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The method of valve operation where: DROPWEIGHT: A valve that is closed by the action of a weighted lever being released, the weight normally being prevented from dropping by being held by a wire, the closure normally being made by the action of heat on a fusible link in the wire FLOAT: A valve that is opened and closed by the action of a float that rises and falls with water level. The float may be a ball attached to a lever or other mechanism HYDRAULIC: A valve that is opened and closed by hydraulic actuation LEVER: A valve that is opened and closed by the action of a lever rotating the gate within the valve. LOCKSHIELD: A valve that requires the use of a special lockshield key for opening and closing, the operating mechanism being protected by a shroud during normal operation. MOTORIZED: A valve that is opened and closed by the action of an electric motor on an actuator PNEUMATIC: A valve that is opened and closed by pneumatic actuation SOLENOID: A valve that is normally held open by a magnetic field in a coil acting on the gate but that is closed immediately if the electrical current generating the magnetic field is removed. SPRING: A valve that is normally held in position by the pressure of a spring on a plate but that may be caused to open if the pressure of the fluid is sufficient to overcome the spring pressure. THERMOSTATIC: A valve in which the ports are opened or closed to maintain a required predetermined temperature. WHEEL: A valve that is opened and closed by the action of a wheel moving the gate within the valve."@en ; - rdfs:label "valve operation"@en . -# -# https://saref.etsi.org/saref4bldg#valvePattern - -s4bldg:valvePattern a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The configuration of the ports of a valve according to either the linear route taken by a fluid flowing through the valve or by the number of ports where: SINGLEPORT: Valve that has a single entry port from the system that it serves, the exit port being to the surrounding environment. ANGLED_2_PORT: Valve in which the direction of flow is changed through 90 degrees. STRAIGHT_2_PORT: Valve in which the flow is straight through. STRAIGHT_3_PORT: Valve with three separate ports. CROSSOVER_4_PORT: Valve with 4 separate ports."@en ; - rdfs:label "valve pattern"@en . -# -# https://saref.etsi.org/saref4bldg#waterFlowControlSystemType - -s4bldg:waterFlowControlSystemType a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "Factory fitted waterflow control system."@en ; - rdfs:label "water flow control system type"@en . -# -# https://w3id.org/saref#hasTimestamp - -saref:hasTimestamp a owl:DatatypeProperty , owl:FunctionalProperty ; - rdfs:range xsd:dateTime ; - rdfs:comment "A relationship stating the timestamp of an entity (e.g. a measurement)."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "has timestamp"@en . -# -# https://w3id.org/saref#hasValue - -saref:hasValue a owl:DatatypeProperty ; - rdfs:comment "A relationship defining the value of a certain property, e.g., energy or power"@en ; - rdfs:isDefinedBy ; - rdfs:label "has value"@en . -# -# -# -# ################################################################# -# # -# # Classes -# # -# ################################################################# -# -# -# https://saref.etsi.org/saref4bldg#Actuator - -s4bldg:Actuator a owl:Class ; - rdfs:subClassOf s4bldg:DistributionControlDevice , saref:Actuator , _:genid1 . - -_:genid1 a owl:Restriction ; - owl:onProperty s4bldg:failPosition ; - owl:allValuesFrom xsd:string . - -s4bldg:Actuator rdfs:subClassOf _:genid2 . - -_:genid2 a owl:Restriction ; - owl:onProperty s4bldg:manualOverride ; - owl:allValuesFrom xsd:boolean . - -s4bldg:Actuator rdfs:comment "An actuator is a mechanical device for moving or controlling a mechanism or system. An actuator takes energy, usually created by air, electricity, or liquid, and converts that into some kind of motion."@en ; - rdfs:label "Actuator"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcActuator" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#AirToAirHeatRecovery - -s4bldg:AirToAirHeatRecovery a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid3 . - -_:genid3 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:AirToAirHeatRecovery rdfs:subClassOf _:genid4 . - -_:genid4 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:AirToAirHeatRecovery rdfs:subClassOf _:genid5 . - -_:genid5 a owl:Restriction ; - owl:onProperty s4bldg:primaryAirFlowRateMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:AirToAirHeatRecovery rdfs:subClassOf _:genid6 . - -_:genid6 a owl:Restriction ; - owl:onProperty s4bldg:primaryAirFlowRateMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:AirToAirHeatRecovery rdfs:subClassOf _:genid7 . - -_:genid7 a owl:Restriction ; - owl:onProperty s4bldg:secondaryAirFlowRateMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:AirToAirHeatRecovery rdfs:subClassOf _:genid8 . - -_:genid8 a owl:Restriction ; - owl:onProperty s4bldg:secondaryAirFlowRateMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:AirToAirHeatRecovery rdfs:subClassOf _:genid9 . - -_:genid9 a owl:Restriction ; - owl:onProperty s4bldg:hasDefrost ; - owl:allValuesFrom xsd:boolean . - -s4bldg:AirToAirHeatRecovery rdfs:subClassOf _:genid10 . - -_:genid10 a owl:Restriction ; - owl:onProperty s4bldg:heatTransferTypeEnum ; - owl:allValuesFrom xsd:string . - -s4bldg:AirToAirHeatRecovery rdfs:comment "An air-to-air heat recovery device employs a counter-flow heat exchanger between inbound and outbound air flow. It is typically used to transfer heat from warmer air in one chamber to cooler air in the second chamber (i.e., typically used to recover heat from the conditioned air being exhausted and the outside air being supplied to a building), resulting in energy savings from reduced heating (or cooling) requirements."@en ; - rdfs:label "Air to air heat recovery"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcAirToAirHeatRecovery" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Alarm - -s4bldg:Alarm a owl:Class ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - rdfs:comment """An alarm is a device that signals the existence of a condition or situation that is outside the boundaries of normal expectation or that activates such a device. - -Alarms include the provision of break glass buttons and manual pull boxes that are used to activate alarms."""@en ; - rdfs:label "Alarm"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcAlarm" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#AudioVisualAppliance - -s4bldg:AudioVisualAppliance a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal , _:genid11 . - -_:genid11 a owl:Restriction ; - owl:onProperty s4bldg:audioVolume ; - owl:allValuesFrom saref:Measurement . - -s4bldg:AudioVisualAppliance rdfs:subClassOf _:genid12 . - -_:genid12 a owl:Restriction ; - owl:onProperty s4bldg:mediaSource ; - owl:allValuesFrom xsd:string . - -s4bldg:AudioVisualAppliance rdfs:comment """An audio-visual appliance is a device that displays, captures, transmits, or receives audio or video. - -Audio-visual appliances may be fixed in place or may be able to be moved from one space to another. They may require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source. Audio-visual appliances may be connected to data circuits including specialist circuits for audio visual purposes only."""@en ; - rdfs:label "Audio visual appliance"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcAudioVisualApplicance" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Boiler - -s4bldg:Boiler a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid13 . - -_:genid13 a owl:Restriction ; - owl:onProperty s4bldg:heatTransferSurfaceArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid14 . - -_:genid14 a owl:Restriction ; - owl:onProperty s4bldg:nominalEnergyConsumption ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid15 . - -_:genid15 a owl:Restriction ; - owl:onProperty s4bldg:nominalPartLoadRatio ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid16 . - -_:genid16 a owl:Restriction ; - owl:onProperty s4bldg:outletTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid17 . - -_:genid17 a owl:Restriction ; - owl:onProperty s4bldg:outletTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid18 . - -_:genid18 a owl:Restriction ; - owl:onProperty s4bldg:pressureRating ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid19 . - -_:genid19 a owl:Restriction ; - owl:onProperty s4bldg:waterInletTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid20 . - -_:genid20 a owl:Restriction ; - owl:onProperty s4bldg:waterInletTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid21 . - -_:genid21 a owl:Restriction ; - owl:onProperty s4bldg:waterStorageCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Boiler rdfs:subClassOf _:genid22 . - -_:genid22 a owl:Restriction ; - owl:onProperty s4bldg:energySource ; - owl:allValuesFrom xsd:string . - -s4bldg:Boiler rdfs:subClassOf _:genid23 . - -_:genid23 a owl:Restriction ; - owl:onProperty s4bldg:isWaterStorageHeater ; - owl:allValuesFrom xsd:boolean . - -s4bldg:Boiler rdfs:subClassOf _:genid24 . - -_:genid24 a owl:Restriction ; - owl:onProperty s4bldg:operatingMode ; - owl:allValuesFrom xsd:string . - -s4bldg:Boiler rdfs:comment "A boiler is a closed, pressure-rated vessel in which water or other fluid is heated using an energy source such as natural gas, heating oil, or electricity. The fluid in the vessel is then circulated out of the boiler for use in various processes or heating applications."@en ; - rdfs:label "Boiler"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcBoiler" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Building - -s4bldg:Building a owl:Class ; - rdfs:subClassOf _:genid25 . - -_:genid25 a owl:Restriction ; - owl:onProperty s4bldg:hasSpace ; - owl:allValuesFrom s4bldg:BuildingSpace . - -s4bldg:Building rdfs:comment "A building represents a structure that provides shelter for its occupants or contents and stands in one place. The building is also used to provide a basic element within the spatial structure hierarchy for the components of a building project (together with site, storey, and space)."@en ; - rdfs:label "Building"@en ; - rdfs:seeAlso ; - prov:hadPrimarySource . -# -# https://saref.etsi.org/saref4bldg#BuildingDevice - -s4bldg:BuildingDevice a owl:Class ; - rdfs:subClassOf s4bldg:BuildingObject , saref:Device ; - rdfs:comment "A tangible object designed to accomplish a particular task in a building."@en ; - rdfs:label "Building device"@en . -# -# https://saref.etsi.org/saref4bldg#BuildingObject - -s4bldg:BuildingObject a owl:Class ; - rdfs:subClassOf s4bldg:PhysicalObject ; - rdfs:comment "An object in the building that can be controlled by devices, such as a door or a window that can be automatically opened or closed by an actuator. (Definition taken from SAREF 1.0)"@en ; - rdfs:label "Building object"@en . -# -# https://saref.etsi.org/saref4bldg#BuildingSpace - -s4bldg:BuildingSpace a owl:Class ; - rdfs:subClassOf _:genid26 . - -_:genid26 a owl:Restriction ; - owl:onProperty s4bldg:contains ; - owl:allValuesFrom s4bldg:PhysicalObject . - -s4bldg:BuildingSpace rdfs:subClassOf _:genid27 . - -_:genid27 a owl:Restriction ; - owl:onProperty s4bldg:hasSpace ; - owl:allValuesFrom s4bldg:BuildingSpace . - -s4bldg:BuildingSpace rdfs:subClassOf _:genid28 . - -_:genid28 a owl:Restriction ; - owl:onProperty s4bldg:isSpaceOf ; - owl:allValuesFrom _:genid29 . - -_:genid29 a owl:Class ; - owl:unionOf _:genid31 . - -_:genid31 a rdf:List ; - rdf:first s4bldg:Building ; - rdf:rest _:genid30 . - -_:genid30 a rdf:List ; - rdf:first s4bldg:BuildingSpace ; - rdf:rest rdf:nil . - -s4bldg:BuildingSpace rdfs:comment "An entity used to define the physical spaces of the building. A building space contains devices or building objects."@en ; - rdfs:label "Building space"@en . -# -# https://saref.etsi.org/saref4bldg#Burner - -s4bldg:Burner a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid32 . - -_:genid32 a owl:Restriction ; - owl:onProperty s4bldg:energySource ; - owl:allValuesFrom xsd:string . - -s4bldg:Burner rdfs:comment "A burner is a device that converts fuel into heat through combustion. It includes gas, oil, and wood burners."@en ; - rdfs:label "Burner"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcBurner" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Chiller - -s4bldg:Chiller a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid33 . - -_:genid33 a owl:Restriction ; - owl:onProperty s4bldg:nominalCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Chiller rdfs:subClassOf _:genid34 . - -_:genid34 a owl:Restriction ; - owl:onProperty s4bldg:nominalCondensingTemperature ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Chiller rdfs:subClassOf _:genid35 . - -_:genid35 a owl:Restriction ; - owl:onProperty s4bldg:nominalEfficiency ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Chiller rdfs:subClassOf _:genid36 . - -_:genid36 a owl:Restriction ; - owl:onProperty s4bldg:nominalEvaporatingTemmperature ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Chiller rdfs:subClassOf _:genid37 . - -_:genid37 a owl:Restriction ; - owl:onProperty s4bldg:nominalHeatRejectionRate ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Chiller rdfs:subClassOf _:genid38 . - -_:genid38 a owl:Restriction ; - owl:onProperty s4bldg:nominalPowerConsumption ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Chiller rdfs:comment "A chiller is a device used to remove heat from a liquid via a vapor-compression or absorption refrigeration cycle to cool a fluid, typically water or a mixture of water and glycol. The chilled fluid is then used to cool and dehumidify air in a building."@en ; - rdfs:label "Chiller"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcChiller" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Coil - -s4bldg:Coil a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid39 . - -_:genid39 a owl:Restriction ; - owl:onProperty s4bldg:airFlowRateMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Coil rdfs:subClassOf _:genid40 . - -_:genid40 a owl:Restriction ; - owl:onProperty s4bldg:airFlowRateMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Coil rdfs:subClassOf _:genid41 . - -_:genid41 a owl:Restriction ; - owl:onProperty s4bldg:nominalLatentCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Coil rdfs:subClassOf _:genid42 . - -_:genid42 a owl:Restriction ; - owl:onProperty s4bldg:nominalSensibleCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Coil rdfs:subClassOf _:genid43 . - -_:genid43 a owl:Restriction ; - owl:onProperty s4bldg:nominalUa ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Coil rdfs:subClassOf _:genid44 . - -_:genid44 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Coil rdfs:subClassOf _:genid45 . - -_:genid45 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Coil rdfs:subClassOf _:genid46 . - -_:genid46 a owl:Restriction ; - owl:onProperty s4bldg:placementType ; - owl:allValuesFrom xsd:string . - -s4bldg:Coil rdfs:comment """A coil is a device used to provide heat transfer between non-mixing media. A common example is a cooling coil, which utilizes a finned coil in which circulates chilled water, antifreeze, or refrigerant that is used to remove heat from air moving across the surface of the coil. A coil may be used either for heating or cooling purposes by placing a series of tubes (the coil) carrying a heating or cooling fluid into an airstream. The coil may be constructed from tubes bundled in a serpentine form or from finned tubes that give a extended heat transfer surface. - -Coils may also be used for non-airflow cases such as embedded in a floor slab."""@en ; - rdfs:label "Coil"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCoil" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#CommunicationAppliance - -s4bldg:CommunicationAppliance a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:comment """A communications appliance transmits and receives electronic or digital information as data or sound. - -Communication appliances may be fixed in place or may be able to be moved from one space to another. Communication appliances require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source."""@en ; - rdfs:label "Communication appliance"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCommunicationAppliance" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Compressor - -s4bldg:Compressor a owl:Class ; - rdfs:subClassOf s4bldg:FlowMovingDevice , _:genid47 . - -_:genid47 a owl:Restriction ; - owl:onProperty s4bldg:compressorSpeed ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Compressor rdfs:subClassOf _:genid48 . - -_:genid48 a owl:Restriction ; - owl:onProperty s4bldg:idealCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Compressor rdfs:subClassOf _:genid49 . - -_:genid49 a owl:Restriction ; - owl:onProperty s4bldg:idealShaftPower ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Compressor rdfs:subClassOf _:genid50 . - -_:genid50 a owl:Restriction ; - owl:onProperty s4bldg:impellerDiameter ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Compressor rdfs:subClassOf _:genid51 . - -_:genid51 a owl:Restriction ; - owl:onProperty s4bldg:nominalCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Compressor rdfs:subClassOf _:genid52 . - -_:genid52 a owl:Restriction ; - owl:onProperty s4bldg:partLoadRatioMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Compressor rdfs:subClassOf _:genid53 . - -_:genid53 a owl:Restriction ; - owl:onProperty s4bldg:partLoadRatioMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Compressor rdfs:subClassOf _:genid54 . - -_:genid54 a owl:Restriction ; - owl:onProperty s4bldg:hasHotGasBypass ; - owl:allValuesFrom xsd:boolean . - -s4bldg:Compressor rdfs:subClassOf _:genid55 . - -_:genid55 a owl:Restriction ; - owl:onProperty s4bldg:powerSource ; - owl:allValuesFrom xsd:string . - -s4bldg:Compressor rdfs:subClassOf _:genid56 . - -_:genid56 a owl:Restriction ; - owl:onProperty s4bldg:refrigerantClass ; - owl:allValuesFrom xsd:string . - -s4bldg:Compressor rdfs:comment "A compressor is a device that compresses a fluid typically used in a refrigeration circuit."@en ; - rdfs:label "Compressor"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCompressor" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Condenser - -s4bldg:Condenser a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid57 . - -_:genid57 a owl:Restriction ; - owl:onProperty s4bldg:externalSurfaceArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Condenser rdfs:subClassOf _:genid58 . - -_:genid58 a owl:Restriction ; - owl:onProperty s4bldg:internalRefrigerantVolume ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Condenser rdfs:subClassOf _:genid59 . - -_:genid59 a owl:Restriction ; - owl:onProperty s4bldg:internalSurfaceArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Condenser rdfs:subClassOf _:genid60 . - -_:genid60 a owl:Restriction ; - owl:onProperty s4bldg:internalWaterVolume ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Condenser rdfs:subClassOf _:genid61 . - -_:genid61 a owl:Restriction ; - owl:onProperty s4bldg:nominalHeatTransferArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Condenser rdfs:subClassOf _:genid62 . - -_:genid62 a owl:Restriction ; - owl:onProperty s4bldg:nominalHeatTransferCoefficient ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Condenser rdfs:subClassOf _:genid63 . - -_:genid63 a owl:Restriction ; - owl:onProperty s4bldg:refrigerantClass ; - owl:allValuesFrom xsd:string . - -s4bldg:Condenser rdfs:comment "A condenser is a device that is used to dissipate heat, typically by condensing a substance such as a refrigerant from its gaseous to its liquid state."@en ; - rdfs:label "Condenser"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCondenser" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Controller - -s4bldg:Controller a owl:Class ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - rdfs:comment """A controller is a device that monitors inputs and controls outputs within a building automation system. - -A controller may be physical (having placement within a spatial structure) or logical (a software interface or aggregated within a programmable physical controller)."""@en ; - rdfs:label "Controller"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcController" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#CooledBeam - -s4bldg:CooledBeam a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid64 . - -_:genid64 a owl:Restriction ; - owl:onProperty s4bldg:coilLength ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid65 . - -_:genid65 a owl:Restriction ; - owl:onProperty s4bldg:coilWidth ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid66 . - -_:genid66 a owl:Restriction ; - owl:onProperty s4bldg:nominalCoolingCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid67 . - -_:genid67 a owl:Restriction ; - owl:onProperty s4bldg:nominalHeatingCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid68 . - -_:genid68 a owl:Restriction ; - owl:onProperty s4bldg:nominalReturnWaterTemperatureCooling ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid69 . - -_:genid69 a owl:Restriction ; - owl:onProperty s4bldg:nominalReturnWaterTemperatureHeating ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid70 . - -_:genid70 a owl:Restriction ; - owl:onProperty s4bldg:nominalSorroundingHumidityCooling ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid71 . - -_:genid71 a owl:Restriction ; - owl:onProperty s4bldg:nominalSorroundingTemperatureCooling ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid72 . - -_:genid72 a owl:Restriction ; - owl:onProperty s4bldg:nominalSorroundingTemperatureHeating ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid73 . - -_:genid73 a owl:Restriction ; - owl:onProperty s4bldg:nominalSupplyWaterTemperatureCooling ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid74 . - -_:genid74 a owl:Restriction ; - owl:onProperty s4bldg:nominalSupplyWaterTemperatureHeating ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid75 . - -_:genid75 a owl:Restriction ; - owl:onProperty s4bldg:nominalWaterFlowCooling ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid76 . - -_:genid76 a owl:Restriction ; - owl:onProperty s4bldg:nominalWaterFlowHeating ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid77 . - -_:genid77 a owl:Restriction ; - owl:onProperty s4bldg:waterPressureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid78 . - -_:genid78 a owl:Restriction ; - owl:onProperty s4bldg:waterPressureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CooledBeam rdfs:subClassOf _:genid79 . - -_:genid79 a owl:Restriction ; - owl:onProperty s4bldg:finishColor ; - owl:allValuesFrom xsd:string . - -s4bldg:CooledBeam rdfs:subClassOf _:genid80 . - -_:genid80 a owl:Restriction ; - owl:onProperty s4bldg:integratedLightingType ; - owl:allValuesFrom xsd:string . - -s4bldg:CooledBeam rdfs:subClassOf _:genid81 . - -_:genid81 a owl:Restriction ; - owl:onProperty s4bldg:isFreeHanging ; - owl:allValuesFrom xsd:boolean . - -s4bldg:CooledBeam rdfs:subClassOf _:genid82 . - -_:genid82 a owl:Restriction ; - owl:onProperty s4bldg:pipeConnectionEnum ; - owl:allValuesFrom xsd:string . - -s4bldg:CooledBeam rdfs:subClassOf _:genid83 . - -_:genid83 a owl:Restriction ; - owl:onProperty s4bldg:waterFlowControlSystemType ; - owl:allValuesFrom xsd:string . - -s4bldg:CooledBeam rdfs:comment "A cooled beam (or chilled beam) is a device typically used to cool air by circulating a fluid such as chilled water through exposed finned tubes above a space. Typically mounted overhead near or within a ceiling, the cooled beam uses convection to cool the space below it by acting as a heat sink for the naturally rising warm air of the space. Once cooled, the air naturally drops back to the floor where the cycle begins again."@en ; - rdfs:label "Cooled beam"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCooledBeam" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#CoolingTower - -s4bldg:CoolingTower a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid84 . - -_:genid84 a owl:Restriction ; - owl:onProperty s4bldg:ambientDesignDryBulbTemperature ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CoolingTower rdfs:subClassOf _:genid85 . - -_:genid85 a owl:Restriction ; - owl:onProperty s4bldg:ambientDesignWetBulbTemperature ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CoolingTower rdfs:subClassOf _:genid86 . - -_:genid86 a owl:Restriction ; - owl:onProperty s4bldg:basinReserveVolume ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CoolingTower rdfs:subClassOf _:genid87 . - -_:genid87 a owl:Restriction ; - owl:onProperty s4bldg:liftElevationDifference ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CoolingTower rdfs:subClassOf _:genid88 . - -_:genid88 a owl:Restriction ; - owl:onProperty s4bldg:nominalCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CoolingTower rdfs:subClassOf _:genid89 . - -_:genid89 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CoolingTower rdfs:subClassOf _:genid90 . - -_:genid90 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CoolingTower rdfs:subClassOf _:genid91 . - -_:genid91 a owl:Restriction ; - owl:onProperty s4bldg:waterRequirement ; - owl:allValuesFrom saref:Measurement . - -s4bldg:CoolingTower rdfs:subClassOf _:genid92 . - -_:genid92 a owl:Restriction ; - owl:onProperty s4bldg:capacityControl ; - owl:allValuesFrom xsd:string . - -s4bldg:CoolingTower rdfs:subClassOf _:genid93 . - -_:genid93 a owl:Restriction ; - owl:onProperty s4bldg:circuitType ; - owl:allValuesFrom xsd:string . - -s4bldg:CoolingTower rdfs:subClassOf _:genid94 . - -_:genid94 a owl:Restriction ; - owl:onProperty s4bldg:controlStrategy ; - owl:allValuesFrom xsd:string . - -s4bldg:CoolingTower rdfs:subClassOf _:genid95 . - -_:genid95 a owl:Restriction ; - owl:onProperty s4bldg:flowArrangement ; - owl:allValuesFrom xsd:string . - -s4bldg:CoolingTower rdfs:subClassOf _:genid96 . - -_:genid96 a owl:Restriction ; - owl:onProperty s4bldg:numberOfCells ; - owl:allValuesFrom xsd:integer . - -s4bldg:CoolingTower rdfs:subClassOf _:genid97 . - -_:genid97 a owl:Restriction ; - owl:onProperty s4bldg:sprayType ; - owl:allValuesFrom xsd:string . - -s4bldg:CoolingTower rdfs:comment "A cooling tower is a device which rejects heat to ambient air by circulating a fluid such as water through it to reduce its temperature by partial evaporation."@en ; - rdfs:label "Cooling tower"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcCoolingTower" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Damper - -s4bldg:Damper a owl:Class ; - rdfs:subClassOf s4bldg:FlowController , _:genid98 . - -_:genid98 a owl:Restriction ; - owl:onProperty s4bldg:airFlowRateMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid99 . - -_:genid99 a owl:Restriction ; - owl:onProperty s4bldg:bladeThickness ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid100 . - -_:genid100 a owl:Restriction ; - owl:onProperty s4bldg:closeOffRating ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid101 . - -_:genid101 a owl:Restriction ; - owl:onProperty s4bldg:faceArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid102 . - -_:genid102 a owl:Restriction ; - owl:onProperty s4bldg:frameDepth ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid103 . - -_:genid103 a owl:Restriction ; - owl:onProperty s4bldg:frameThickness ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid104 . - -_:genid104 a owl:Restriction ; - owl:onProperty s4bldg:leakageFullyClosed ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid105 . - -_:genid105 a owl:Restriction ; - owl:onProperty s4bldg:nominalAirFlowRate ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid106 . - -_:genid106 a owl:Restriction ; - owl:onProperty s4bldg:openPressureDrop ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid107 . - -_:genid107 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid108 . - -_:genid108 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid109 . - -_:genid109 a owl:Restriction ; - owl:onProperty s4bldg:temperatureRating ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid110 . - -_:genid110 a owl:Restriction ; - owl:onProperty s4bldg:workingPressureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Damper rdfs:subClassOf _:genid111 . - -_:genid111 a owl:Restriction ; - owl:onProperty s4bldg:bladeAction ; - owl:allValuesFrom xsd:string . - -s4bldg:Damper rdfs:subClassOf _:genid112 . - -_:genid112 a owl:Restriction ; - owl:onProperty s4bldg:bladeEdge ; - owl:allValuesFrom xsd:string . - -s4bldg:Damper rdfs:subClassOf _:genid113 . - -_:genid113 a owl:Restriction ; - owl:onProperty s4bldg:bladeShape ; - owl:allValuesFrom xsd:string . - -s4bldg:Damper rdfs:subClassOf _:genid114 . - -_:genid114 a owl:Restriction ; - owl:onProperty s4bldg:frameType ; - owl:allValuesFrom xsd:string . - -s4bldg:Damper rdfs:subClassOf _:genid115 . - -_:genid115 a owl:Restriction ; - owl:onProperty s4bldg:numberOfBlades ; - owl:allValuesFrom xsd:integer . - -s4bldg:Damper rdfs:subClassOf _:genid116 . - -_:genid116 a owl:Restriction ; - owl:onProperty s4bldg:operation ; - owl:allValuesFrom xsd:string . - -s4bldg:Damper rdfs:subClassOf _:genid117 . - -_:genid117 a owl:Restriction ; - owl:onProperty s4bldg:orientation ; - owl:allValuesFrom xsd:string . - -s4bldg:Damper rdfs:comment "A damper typically participates in an HVAC duct distribution system and is used to control or modulate the flow of air."@en ; - rdfs:label "Damper"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcDamper" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#DistributionControlDevice - -s4bldg:DistributionControlDevice a owl:Class ; - rdfs:subClassOf s4bldg:DistributionDevice ; - rdfs:comment "Represents devices of a building automation control system that are used to impart control over elements of a distribution system. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcsharedbldgserviceelements/lexical/ifcdistributioncontrolelement.htm)"@en ; - rdfs:label "Distribution control device"@en . -# -# https://saref.etsi.org/saref4bldg#DistributionDevice - -s4bldg:DistributionDevice a owl:Class ; - rdfs:subClassOf s4bldg:BuildingDevice ; - rdfs:comment "Generalization of all devices that participate in a distribution system. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcproductextension/lexical/ifcdistributionelement.htm)"@en ; - rdfs:label "Distribution device"@en . -# -# https://saref.etsi.org/saref4bldg#DistributionFlowDevice - -s4bldg:DistributionFlowDevice a owl:Class ; - rdfs:subClassOf s4bldg:DistributionDevice ; - rdfs:comment "Represents devices of a distribution system that facilitate the distribution of energy or matter, such as air, water or power. (Definition adapated from http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/schema/ifcsharedbldgserviceelements/lexical/ifcdistributionflowelement.htm)"@en ; - rdfs:label "DistributionFlowDevice"@en . -# -# https://saref.etsi.org/saref4bldg#DuctSilencer - -s4bldg:DuctSilencer a owl:Class ; - rdfs:subClassOf s4bldg:FlowTreatmentDevice , _:genid118 . - -_:genid118 a owl:Restriction ; - owl:onProperty s4bldg:airFlowRateMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid119 . - -_:genid119 a owl:Restriction ; - owl:onProperty s4bldg:airFlowRateMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid120 . - -_:genid120 a owl:Restriction ; - owl:onProperty s4bldg:hydraulicDiameter ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid121 . - -_:genid121 a owl:Restriction ; - owl:onProperty s4bldg:length ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid122 . - -_:genid122 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid123 . - -_:genid123 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid124 . - -_:genid124 a owl:Restriction ; - owl:onProperty s4bldg:weight ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid125 . - -_:genid125 a owl:Restriction ; - owl:onProperty s4bldg:workingPressureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid126 . - -_:genid126 a owl:Restriction ; - owl:onProperty s4bldg:workingPressureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:DuctSilencer rdfs:subClassOf _:genid127 . - -_:genid127 a owl:Restriction ; - owl:onProperty s4bldg:hasExteriorInsulation ; - owl:allValuesFrom xsd:boolean . - -s4bldg:DuctSilencer rdfs:comment "A duct silencer is a device that is typically installed inside a duct distribution system for the purpose of reducing the noise levels from air movement, fan noise, etc. in the adjacent space or downstream of the duct silencer device."@en ; - rdfs:label "Duct silencer"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcDuctSilencer" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#ElectricAppliance - -s4bldg:ElectricAppliance a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:comment """An electric appliance is a device intended for consumer usage that is powered by electricity. - -Electric appliances may be fixed in place or may be able to be moved from one space to another. Electric appliances require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source."""@en ; - rdfs:label "Electric appliance"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricAppliance" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#ElectricFlowStorageDevice - -s4bldg:ElectricFlowStorageDevice a owl:Class ; - rdfs:subClassOf s4bldg:FlowStorageDevice , _:genid128 . - -_:genid128 a owl:Restriction ; - owl:onProperty s4bldg:nominalFrequency ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricFlowStorageDevice rdfs:subClassOf _:genid129 . - -_:genid129 a owl:Restriction ; - owl:onProperty s4bldg:nominalSupplyVoltage ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricFlowStorageDevice rdfs:subClassOf _:genid130 . - -_:genid130 a owl:Restriction ; - owl:onProperty s4bldg:nominalSupplyVoltageMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricFlowStorageDevice rdfs:comment "An electric flow storage device is a device in which electrical energy is stored and from which energy may be progressively released."@en ; - rdfs:label "Electric flow storage device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricFlowStorageDevice" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#ElectricGenerator - -s4bldg:ElectricGenerator a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid131 . - -_:genid131 a owl:Restriction ; - owl:onProperty s4bldg:electricGeneratorEfficiency ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricGenerator rdfs:subClassOf _:genid132 . - -_:genid132 a owl:Restriction ; - owl:onProperty s4bldg:powerOutputMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricGenerator rdfs:subClassOf _:genid133 . - -_:genid133 a owl:Restriction ; - owl:onProperty s4bldg:startCurrentFactor ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricGenerator rdfs:comment "An electric generator is an engine that is a machine for converting mechanical energy into electrical energy."@en ; - rdfs:label "Electric generator"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricGenerator" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#ElectricMotor - -s4bldg:ElectricMotor a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid134 . - -_:genid134 a owl:Restriction ; - owl:onProperty s4bldg:electricMotorEfficiency ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid135 . - -_:genid135 a owl:Restriction ; - owl:onProperty s4bldg:lockedRotorCurrent ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid136 . - -_:genid136 a owl:Restriction ; - owl:onProperty s4bldg:powerOutputMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid137 . - -_:genid137 a owl:Restriction ; - owl:onProperty s4bldg:startCurrentFactor ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid138 . - -_:genid138 a owl:Restriction ; - owl:onProperty s4bldg:startingTime ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid139 . - -_:genid139 a owl:Restriction ; - owl:onProperty s4bldg:teTime ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid140 . - -_:genid140 a owl:Restriction ; - owl:onProperty s4bldg:frameSize ; - owl:allValuesFrom xsd:string . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid141 . - -_:genid141 a owl:Restriction ; - owl:onProperty s4bldg:hasPartWinding ; - owl:allValuesFrom xsd:boolean . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid142 . - -_:genid142 a owl:Restriction ; - owl:onProperty s4bldg:isGuarded ; - owl:allValuesFrom xsd:boolean . - -s4bldg:ElectricMotor rdfs:subClassOf _:genid143 . - -_:genid143 a owl:Restriction ; - owl:onProperty s4bldg:motorEnclosureType ; - owl:allValuesFrom xsd:string . - -s4bldg:ElectricMotor rdfs:comment "An electric motor is an engine that is a machine for converting electrical energy into mechanical energy."@en ; - rdfs:label "Electric motor"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricMotor" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#ElectricTimeControl - -s4bldg:ElectricTimeControl a owl:Class ; - rdfs:subClassOf s4bldg:FlowController ; - rdfs:comment "An electric time control is a device that applies control to the provision or flow of electrical energy over time."@en ; - rdfs:label "Electric time control"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcElectricTimeControl" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#EnergyConversionDevice - -s4bldg:EnergyConversionDevice a owl:Class ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - rdfs:comment "The distribution flow element EnergyConversionDevice defines the occurrence of a device used to perform energy conversion or heat transfer and typically participates in a flow distribution system."@en ; - rdfs:label "Energy conversion device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcEnergyConversionDevice" ; - prov:hadPrimarySource . -# -# https://saref.etsi.org/saref4bldg#Engine - -s4bldg:Engine a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid144 . - -_:genid144 a owl:Restriction ; - owl:onProperty s4bldg:energySource ; - owl:allValuesFrom xsd:string . - -s4bldg:Engine rdfs:comment "An engine is a device that converts fuel into mechanical energy through combustion."@en ; - rdfs:label "Engine"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcEngine" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#EvaporativeCooler - -s4bldg:EvaporativeCooler a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid145 . - -_:genid145 a owl:Restriction ; - owl:onProperty s4bldg:heatExchangeArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:EvaporativeCooler rdfs:subClassOf _:genid146 . - -_:genid146 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:EvaporativeCooler rdfs:subClassOf _:genid147 . - -_:genid147 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:EvaporativeCooler rdfs:subClassOf _:genid148 . - -_:genid148 a owl:Restriction ; - owl:onProperty s4bldg:waterRequirement ; - owl:allValuesFrom saref:Measurement . - -s4bldg:EvaporativeCooler rdfs:subClassOf _:genid149 . - -_:genid149 a owl:Restriction ; - owl:onProperty s4bldg:flowArrangement ; - owl:allValuesFrom xsd:string . - -s4bldg:EvaporativeCooler rdfs:comment "An evaporative cooler is a device that cools air by saturating it with water vapor."@en ; - rdfs:label "Evaporative cooler"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcEvaporativeCooler" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Evaporator - -s4bldg:Evaporator a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid150 . - -_:genid150 a owl:Restriction ; - owl:onProperty s4bldg:externalSurfaceArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Evaporator rdfs:subClassOf _:genid151 . - -_:genid151 a owl:Restriction ; - owl:onProperty s4bldg:internalRefrigerantVolume ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Evaporator rdfs:subClassOf _:genid152 . - -_:genid152 a owl:Restriction ; - owl:onProperty s4bldg:internalSurfaceArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Evaporator rdfs:subClassOf _:genid153 . - -_:genid153 a owl:Restriction ; - owl:onProperty s4bldg:internalWaterVolume ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Evaporator rdfs:subClassOf _:genid154 . - -_:genid154 a owl:Restriction ; - owl:onProperty s4bldg:nominalHeatTransferArea ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Evaporator rdfs:subClassOf _:genid155 . - -_:genid155 a owl:Restriction ; - owl:onProperty s4bldg:nominalHeatTransferCoefficient ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Evaporator rdfs:subClassOf _:genid156 . - -_:genid156 a owl:Restriction ; - owl:onProperty s4bldg:evaporationCoolant ; - owl:allValuesFrom xsd:string . - -s4bldg:Evaporator rdfs:subClassOf _:genid157 . - -_:genid157 a owl:Restriction ; - owl:onProperty s4bldg:evaporationMediumType ; - owl:allValuesFrom xsd:string . - -s4bldg:Evaporator rdfs:subClassOf _:genid158 . - -_:genid158 a owl:Restriction ; - owl:onProperty s4bldg:refrigerantClass ; - owl:allValuesFrom xsd:string . - -s4bldg:Evaporator rdfs:comment "An evaporator is a device in which a liquid refrigerent is vaporized and absorbs heat from the surrounding fluid."@en ; - rdfs:label "Evaporator"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcEvaporator" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Fan - -s4bldg:Fan a owl:Class ; - rdfs:subClassOf s4bldg:FlowMovingDevice , _:genid159 . - -_:genid159 a owl:Restriction ; - owl:onProperty s4bldg:nominalAirFlowRate ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Fan rdfs:subClassOf _:genid160 . - -_:genid160 a owl:Restriction ; - owl:onProperty s4bldg:nominalPowerRate ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Fan rdfs:subClassOf _:genid161 . - -_:genid161 a owl:Restriction ; - owl:onProperty s4bldg:nominalRotationSpeed ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Fan rdfs:subClassOf _:genid162 . - -_:genid162 a owl:Restriction ; - owl:onProperty s4bldg:nominalStaticPressure ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Fan rdfs:subClassOf _:genid163 . - -_:genid163 a owl:Restriction ; - owl:onProperty s4bldg:nominalTotalPressure ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Fan rdfs:subClassOf _:genid164 . - -_:genid164 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Fan rdfs:subClassOf _:genid165 . - -_:genid165 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Fan rdfs:subClassOf _:genid166 . - -_:genid166 a owl:Restriction ; - owl:onProperty s4bldg:operationalRiterial ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Fan rdfs:subClassOf _:genid167 . - -_:genid167 a owl:Restriction ; - owl:onProperty s4bldg:capacityControlType ; - owl:allValuesFrom xsd:string . - -s4bldg:Fan rdfs:subClassOf _:genid168 . - -_:genid168 a owl:Restriction ; - owl:onProperty s4bldg:motorDriveType ; - owl:allValuesFrom xsd:string . - -s4bldg:Fan rdfs:comment "A fan is a device which imparts mechanical work on a gas. A typical usage of a fan is to induce airflow in a building services air distribution system."@en ; - rdfs:label "Fan"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFan" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Filter - -s4bldg:Filter a owl:Class ; - rdfs:subClassOf s4bldg:FlowTreatmentDevice , _:genid169 . - -_:genid169 a owl:Restriction ; - owl:onProperty s4bldg:finalResistance ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid170 . - -_:genid170 a owl:Restriction ; - owl:onProperty s4bldg:fluidFlowRateMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid171 . - -_:genid171 a owl:Restriction ; - owl:onProperty s4bldg:fluidFlowRateMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid172 . - -_:genid172 a owl:Restriction ; - owl:onProperty s4bldg:initialResistance ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid173 . - -_:genid173 a owl:Restriction ; - owl:onProperty s4bldg:nominalFilterFaceVelocity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid174 . - -_:genid174 a owl:Restriction ; - owl:onProperty s4bldg:nominalFlowRate ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid175 . - -_:genid175 a owl:Restriction ; - owl:onProperty s4bldg:nominalMediaSurfaceVelocity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid176 . - -_:genid176 a owl:Restriction ; - owl:onProperty s4bldg:nominalParticleGeometricMeanDiameter ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid177 . - -_:genid177 a owl:Restriction ; - owl:onProperty s4bldg:nominalParticleGeometricStandardDeviation ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid178 . - -_:genid178 a owl:Restriction ; - owl:onProperty s4bldg:nominalPressureDrop ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid179 . - -_:genid179 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid180 . - -_:genid180 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:subClassOf _:genid181 . - -_:genid181 a owl:Restriction ; - owl:onProperty s4bldg:weight ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Filter rdfs:comment "A filter is an apparatus used to remove particulate or gaseous matter from fluids and gases."@en ; - rdfs:label "Filter"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFilter" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#FireSuppressionTerminal - -s4bldg:FireSuppressionTerminal a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:comment """A fire suppression terminal has the purpose of delivering a fluid (gas or liquid) that will suppress a fire. - -A fire suppression terminal provides for all forms of sprinkler, spreader and other form of terminal that is connected to a pipework system and intended to act in the role of suppressing a fire."""@en ; - rdfs:label "Fire suppression terminal"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFireSuppressionTerminal" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#FlowController - -s4bldg:FlowController a owl:Class ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - rdfs:comment "The distribution flow element FlowController defines the occurrence of elements of a distribution system that are used to regulate flow through a distribution system. Examples include dampers, valves, switches, and relays."@en ; - rdfs:label "Flow controller"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowController" ; - prov:hadPrimarySource . -# -# https://saref.etsi.org/saref4bldg#FlowInstrument - -s4bldg:FlowInstrument a owl:Class ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - rdfs:comment """A flow instrument reads and displays the value of a particular property of a system at a point, or displays the difference in the value of a property between two points. - -Instrumentation is typically for the purpose of determining the value of the property at a point in time. It is not the purpose of an instrument to record or integrate the values over time (although they may be connected to recording devices that do perform such a function). This entity provides for all forms of mechanical flow instrument (thermometers, pressure gauges etc.) and electrical flow instruments (ammeters, voltmeters etc.)"""@en ; - rdfs:label "Flow instrument"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowInstrument" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#FlowMeter - -s4bldg:FlowMeter a owl:Class ; - rdfs:subClassOf s4bldg:FlowController , _:genid182 . - -_:genid182 a owl:Restriction ; - owl:onProperty s4bldg:readOutType ; - owl:allValuesFrom xsd:string . - -s4bldg:FlowMeter rdfs:subClassOf _:genid183 . - -_:genid183 a owl:Restriction ; - owl:onProperty s4bldg:remoteReading ; - owl:allValuesFrom xsd:boolean . - -s4bldg:FlowMeter rdfs:comment "A flow meter is a device that is used to measure the flow rate in a system."@en ; - rdfs:label "Flow meter"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowMeter" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#FlowMovingDevice - -s4bldg:FlowMovingDevice a owl:Class ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - rdfs:comment "The distribution flow element FlowMovingDevice defines the occurrence of an apparatus used to distribute, circulate or perform conveyance of fluids, including liquids and gases (such as a pump or fan), and typically participates in a flow distribution system."@en ; - rdfs:label "Flow moving device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowMovingDevice" ; - prov:hadPrimarySource . -# -# https://saref.etsi.org/saref4bldg#FlowStorageDevice - -s4bldg:FlowStorageDevice a owl:Class ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - rdfs:comment "The distribution flow element FlowStorageDevice defines the occurrence of a device that participates in a distribution system and is used for temporary storage (such as a tank)."@en ; - rdfs:label "Flow storage device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowStorageDevice" ; - prov:hadPrimarySource . -# -# https://saref.etsi.org/saref4bldg#FlowTerminal - -s4bldg:FlowTerminal a owl:Class ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - rdfs:comment "The distribution flow element FlowTerminal defines the occurrence of a permanently attached element that acts as a terminus or beginning of a distribution system (such as an air outlet, drain, water closet, or sink). A terminal is typically a point at which a system interfaces with an external environment."@en ; - rdfs:label "Flow terminal"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowTerminal" ; - prov:hadPrimarySource . -# -# https://saref.etsi.org/saref4bldg#FlowTreatmentDevice - -s4bldg:FlowTreatmentDevice a owl:Class ; - rdfs:subClassOf s4bldg:DistributionFlowDevice ; - rdfs:comment "The distribution flow element FlowTreatmentDevice defines the occurrence of a device typically used to remove unwanted matter from a fluid, either liquid or gas, and typically participates in a flow distribution system."@en ; - rdfs:label "Flow treatment device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcFlowTreatmentDevice" ; - prov:hadPrimarySource . -# -# https://saref.etsi.org/saref4bldg#HeatExchanger - -s4bldg:HeatExchanger a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid184 . - -_:genid184 a owl:Restriction ; - owl:onProperty s4bldg:arrangement ; - owl:allValuesFrom xsd:string . - -s4bldg:HeatExchanger rdfs:comment "A heat exchanger is a device used to provide heat transfer between non-mixing media such as plate and shell and tube heat exchangers. HeatExchanger is commonly used on water-side distribution systems to recover energy from a liquid to another liquid (typically water-based), whereas AirToAirHeatRecovery is commonly used on air-side distribution systems to recover energy from a gas to a gas (usually air)."@en ; - rdfs:label "Heat exchanger"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcHeatExchanger" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Humidifier - -s4bldg:Humidifier a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid185 . - -_:genid185 a owl:Restriction ; - owl:onProperty s4bldg:nominalAirFlowRate ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Humidifier rdfs:subClassOf _:genid186 . - -_:genid186 a owl:Restriction ; - owl:onProperty s4bldg:nominalMoistureGain ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Humidifier rdfs:subClassOf _:genid187 . - -_:genid187 a owl:Restriction ; - owl:onProperty s4bldg:waterRequirement ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Humidifier rdfs:subClassOf _:genid188 . - -_:genid188 a owl:Restriction ; - owl:onProperty s4bldg:weight ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Humidifier rdfs:subClassOf _:genid189 . - -_:genid189 a owl:Restriction ; - owl:onProperty s4bldg:application ; - owl:allValuesFrom xsd:string . - -s4bldg:Humidifier rdfs:subClassOf _:genid190 . - -_:genid190 a owl:Restriction ; - owl:onProperty s4bldg:internalControl ; - owl:allValuesFrom xsd:string . - -s4bldg:Humidifier rdfs:comment "A humidifier is a device that adds moisture into the air."@en ; - rdfs:label "Humidifier"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcHumidifier" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Interceptor - -s4bldg:Interceptor a owl:Class ; - rdfs:subClassOf s4bldg:FlowTreatmentDevice , _:genid191 . - -_:genid191 a owl:Restriction ; - owl:onProperty s4bldg:coverLength ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Interceptor rdfs:subClassOf _:genid192 . - -_:genid192 a owl:Restriction ; - owl:onProperty s4bldg:coverWidth ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Interceptor rdfs:subClassOf _:genid193 . - -_:genid193 a owl:Restriction ; - owl:onProperty s4bldg:inletConnectionSize ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Interceptor rdfs:subClassOf _:genid194 . - -_:genid194 a owl:Restriction ; - owl:onProperty s4bldg:nominalBodyDepth ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Interceptor rdfs:subClassOf _:genid195 . - -_:genid195 a owl:Restriction ; - owl:onProperty s4bldg:nominalBodyLength ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Interceptor rdfs:subClassOf _:genid196 . - -_:genid196 a owl:Restriction ; - owl:onProperty s4bldg:nominalBodyWidth ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Interceptor rdfs:subClassOf _:genid197 . - -_:genid197 a owl:Restriction ; - owl:onProperty s4bldg:outletConnectionSize ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Interceptor rdfs:subClassOf _:genid198 . - -_:genid198 a owl:Restriction ; - owl:onProperty s4bldg:ventilatingPipeSize ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Interceptor rdfs:comment "An interceptor is a device designed and installed in order to separate and retain deleterious, hazardous or undesirable matter while permitting normal sewage or liquids to discharge into a collection system by gravity."@en ; - rdfs:label "Interceptor"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcInterceptor" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Lamp - -s4bldg:Lamp a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal , _:genid199 . - -_:genid199 a owl:Restriction ; - owl:onProperty s4bldg:colorTemperature ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Lamp rdfs:subClassOf _:genid200 . - -_:genid200 a owl:Restriction ; - owl:onProperty s4bldg:contributedLuminousFlux ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Lamp rdfs:subClassOf _:genid201 . - -_:genid201 a owl:Restriction ; - owl:onProperty s4bldg:lampMaintenanceFactor ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Lamp rdfs:subClassOf _:genid202 . - -_:genid202 a owl:Restriction ; - owl:onProperty s4bldg:lightEmitterNominalPower ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Lamp rdfs:subClassOf _:genid203 . - -_:genid203 a owl:Restriction ; - owl:onProperty s4bldg:spectrumMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Lamp rdfs:subClassOf _:genid204 . - -_:genid204 a owl:Restriction ; - owl:onProperty s4bldg:spectrumMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Lamp rdfs:subClassOf _:genid205 . - -_:genid205 a owl:Restriction ; - owl:onProperty s4bldg:colorAppearance ; - owl:allValuesFrom xsd:string . - -s4bldg:Lamp rdfs:subClassOf _:genid206 . - -_:genid206 a owl:Restriction ; - owl:onProperty s4bldg:colorRenderingIndex ; - owl:allValuesFrom xsd:integer . - -s4bldg:Lamp rdfs:subClassOf _:genid207 . - -_:genid207 a owl:Restriction ; - owl:onProperty s4bldg:lampBallastType ; - owl:allValuesFrom xsd:string . - -s4bldg:Lamp rdfs:subClassOf _:genid208 . - -_:genid208 a owl:Restriction ; - owl:onProperty s4bldg:lampCompensationType ; - owl:allValuesFrom xsd:string . - -s4bldg:Lamp rdfs:comment "A lamp is an artificial light source such as a light bulb or tube."@en ; - rdfs:label "Lamp"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcLamp" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#MedicalDevice - -s4bldg:MedicalDevice a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:comment "A medical device is attached to a medical piping system and operates upon medical gases to perform a specific function. Medical gases include medical air, medical vacuum, oxygen, carbon dioxide, nitrogen, and nitrous oxide."@en ; - rdfs:label "Medical device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcMedicalDevice" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Outlet - -s4bldg:Outlet a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal , _:genid209 . - -_:genid209 a owl:Restriction ; - owl:onProperty s4bldg:isPluggableOutlet ; - owl:allValuesFrom xsd:boolean . - -s4bldg:Outlet rdfs:subClassOf _:genid210 . - -_:genid210 a owl:Restriction ; - owl:onProperty s4bldg:numberOsSockets ; - owl:allValuesFrom xsd:integer . - -s4bldg:Outlet rdfs:comment """An outlet is a device installed at a point to receive one or more inserted plugs for electrical power or communications. - -Power outlets are commonly connected within a junction box; data outlets may be directly connected to a wall. For power outlets sharing the same circuit within a junction box, the ports should indicate the logical wiring relationship to the enclosing junction box, even though they may be physically connected to a cable going to another outlet, switch, or fixture."""@en ; - rdfs:label "Outlet"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcOutlet" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#PhysicalObject - -s4bldg:PhysicalObject a owl:Class ; - rdfs:subClassOf _:genid211 . - -_:genid211 a owl:Restriction ; - owl:onProperty s4bldg:contains ; - owl:allValuesFrom s4bldg:PhysicalObject . - -s4bldg:PhysicalObject rdfs:subClassOf _:genid212 . - -_:genid212 a owl:Restriction ; - owl:onProperty s4bldg:isContainedIn ; - owl:allValuesFrom _:genid213 . - -_:genid213 a owl:Class ; - owl:unionOf _:genid215 . - -_:genid215 a rdf:List ; - rdf:first s4bldg:BuildingSpace ; - rdf:rest _:genid214 . - -_:genid214 a rdf:List ; - rdf:first s4bldg:PhysicalObject ; - rdf:rest rdf:nil . - -s4bldg:PhysicalObject rdfs:comment "Any Object that has a proper space region. (Definition extracted from DUL ontology)"@en ; - rdfs:label "Physical object"@en . -# -# https://saref.etsi.org/saref4bldg#ProtectiveDevice - -s4bldg:ProtectiveDevice a owl:Class ; - rdfs:subClassOf s4bldg:FlowController ; - rdfs:comment """A protective device breaks an electrical circuit when a stated electric current that passes through it is exceeded. - -A protective device provides protection against electrical current only (not as a general protective device). It may be used to represent the complete set of elements including both the tripping unit and the breaking unit that provide the protection. This may be particularly useful at earlier stages of design where the approach to breaking the electrical supply may be determined but the method of tripping may not. Alternatively, this entity may be used to specifically represent the breaking unit alone (in which case the tripping unit will also be specifically identified). This entity is specific to dedicated protective devices and excludes electrical outlets that may have circuit protection."""@en ; - rdfs:label "Protective device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcProtectiveDevice" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#ProtectiveDeviceTrippingUnit - -s4bldg:ProtectiveDeviceTrippingUnit a owl:Class ; - rdfs:subClassOf s4bldg:DistributionControlDevice , _:genid216 . - -_:genid216 a owl:Restriction ; - owl:onProperty s4bldg:limitingTerminalSize ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ProtectiveDeviceTrippingUnit rdfs:subClassOf _:genid217 . - -_:genid217 a owl:Restriction ; - owl:onProperty s4bldg:standard ; - owl:allValuesFrom xsd:string . - -s4bldg:ProtectiveDeviceTrippingUnit rdfs:comment "A protective device tripping unit breaks an electrical circuit at a separate breaking unit when a stated electric current that passes through the unit is exceeded."@en ; - rdfs:label "Protective device tripping unit"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcProtectiveDeviceTrippingUnit" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Pump - -s4bldg:Pump a owl:Class ; - rdfs:subClassOf s4bldg:FlowMovingDevice , _:genid218 . - -_:genid218 a owl:Restriction ; - owl:onProperty s4bldg:connectionSize ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:subClassOf _:genid219 . - -_:genid219 a owl:Restriction ; - owl:onProperty s4bldg:flowResistanceMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:subClassOf _:genid220 . - -_:genid220 a owl:Restriction ; - owl:onProperty s4bldg:flowResistanceMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:subClassOf _:genid221 . - -_:genid221 a owl:Restriction ; - owl:onProperty s4bldg:netPositiveSuctionHead ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:subClassOf _:genid222 . - -_:genid222 a owl:Restriction ; - owl:onProperty s4bldg:nomminalRotationSpeed ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:subClassOf _:genid223 . - -_:genid223 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:subClassOf _:genid224 . - -_:genid224 a owl:Restriction ; - owl:onProperty s4bldg:operationTemperatureMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:subClassOf _:genid225 . - -_:genid225 a owl:Restriction ; - owl:onProperty s4bldg:pumpFlowRateMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:subClassOf _:genid226 . - -_:genid226 a owl:Restriction ; - owl:onProperty s4bldg:pumpFlowRateMin ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Pump rdfs:comment "A pump is a device which imparts mechanical work on fluids or slurries to move them through a channel or pipeline. A typical use of a pump is to circulate chilled water or heating hot water in a building services distribution system."@en ; - rdfs:label "Pump"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcPump" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#SanitaryTerminal - -s4bldg:SanitaryTerminal a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal ; - rdfs:comment "A sanitary terminal is a fixed appliance or terminal usually supplied with water and used for drinking, cleaning or foul water disposal or that is an item of equipment directly used with such an appliance or terminal."@en ; - rdfs:label "Sanitary terminal"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSanitaryTerminal" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Sensor - -s4bldg:Sensor a owl:Class ; - rdfs:subClassOf s4bldg:DistributionControlDevice , saref:Sensor ; - rdfs:comment "A sensor is a device that measures a physical quantity and converts it into a signal which can be read by an observer or by an instrument."@en ; - rdfs:label "Sensor"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSensor" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#ShadingDevice - -s4bldg:ShadingDevice a owl:Class ; - rdfs:subClassOf s4bldg:BuildingDevice , _:genid227 . - -_:genid227 a owl:Restriction ; - owl:onProperty s4bldg:solarReflectance ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ShadingDevice rdfs:subClassOf _:genid228 . - -_:genid228 a owl:Restriction ; - owl:onProperty s4bldg:solarTransmittance ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ShadingDevice rdfs:subClassOf _:genid229 . - -_:genid229 a owl:Restriction ; - owl:onProperty s4bldg:thermalTransmittance ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ShadingDevice rdfs:subClassOf _:genid230 . - -_:genid230 a owl:Restriction ; - owl:onProperty s4bldg:visibleLightReflectance ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ShadingDevice rdfs:subClassOf _:genid231 . - -_:genid231 a owl:Restriction ; - owl:onProperty s4bldg:visibleLightTransmittance ; - owl:allValuesFrom saref:Measurement . - -s4bldg:ShadingDevice rdfs:subClassOf _:genid232 . - -_:genid232 a owl:Restriction ; - owl:onProperty s4bldg:isExternal ; - owl:allValuesFrom xsd:boolean . - -s4bldg:ShadingDevice rdfs:subClassOf _:genid233 . - -_:genid233 a owl:Restriction ; - owl:onProperty s4bldg:mechanicalOperated ; - owl:allValuesFrom xsd:boolean . - -s4bldg:ShadingDevice rdfs:subClassOf _:genid234 . - -_:genid234 a owl:Restriction ; - owl:onProperty s4bldg:roughness ; - owl:allValuesFrom xsd:string . - -s4bldg:ShadingDevice rdfs:subClassOf _:genid235 . - -_:genid235 a owl:Restriction ; - owl:onProperty s4bldg:shadingDeviceType ; - owl:allValuesFrom xsd:string . - -s4bldg:ShadingDevice rdfs:comment "Shading devices are purpose built devices to protect from the sunlight, from natural light, or screening them from view. Shading devices can form part of the facade or can be mounted inside the building, they can be fixed or operable."@en ; - rdfs:label "Shading device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcShadingDevice" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#SolarDevice - -s4bldg:SolarDevice a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice ; - rdfs:comment "A solar device converts solar radiation into other energy such as electric current or thermal energy."@en ; - rdfs:label "Solar device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSolarDevice" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#SpaceHeater - -s4bldg:SpaceHeater a owl:Class ; - rdfs:subClassOf s4bldg:FlowTerminal , _:genid236 . - -_:genid236 a owl:Restriction ; - owl:onProperty s4bldg:bodyMass ; - owl:allValuesFrom saref:Measurement . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid237 . - -_:genid237 a owl:Restriction ; - owl:onProperty s4bldg:outputCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid238 . - -_:genid238 a owl:Restriction ; - owl:onProperty s4bldg:thermalEfficiency ; - owl:allValuesFrom saref:Measurement . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid239 . - -_:genid239 a owl:Restriction ; - owl:onProperty s4bldg:thermalMassHeatCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid240 . - -_:genid240 a owl:Restriction ; - owl:onProperty s4bldg:energySource ; - owl:allValuesFrom xsd:string . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid241 . - -_:genid241 a owl:Restriction ; - owl:onProperty s4bldg:heatTransferDimension ; - owl:allValuesFrom xsd:string . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid242 . - -_:genid242 a owl:Restriction ; - owl:onProperty s4bldg:heatTransferMedium ; - owl:allValuesFrom xsd:string . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid243 . - -_:genid243 a owl:Restriction ; - owl:onProperty s4bldg:numberOfPanels ; - owl:allValuesFrom xsd:integer . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid244 . - -_:genid244 a owl:Restriction ; - owl:onProperty s4bldg:numberOfSections ; - owl:allValuesFrom xsd:integer . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid245 . - -_:genid245 a owl:Restriction ; - owl:onProperty s4bldg:placementType ; - owl:allValuesFrom xsd:string . - -s4bldg:SpaceHeater rdfs:subClassOf _:genid246 . - -_:genid246 a owl:Restriction ; - owl:onProperty s4bldg:temperatureClassification ; - owl:allValuesFrom xsd:string . - -s4bldg:SpaceHeater rdfs:comment """Space heaters utilize a combination of radiation and/or natural convection using a heating source such as electricity, steam or hot water to heat a limited space or area. Examples of space heaters include radiators, convectors, baseboard and finned-tube heaters. - -UnitaryEquipment should be used for packaged units supporting a combination of heating, cooling, and/or dehumidification; Coil should be used for coil-based floor heating."""@en ; - rdfs:label "Space heater"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSpaceHeater" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#SwitchingDevice - -s4bldg:SwitchingDevice a owl:Class ; - rdfs:subClassOf s4bldg:FlowController , _:genid247 . - -_:genid247 a owl:Restriction ; - owl:onProperty s4bldg:hasLock ; - owl:allValuesFrom xsd:boolean . - -s4bldg:SwitchingDevice rdfs:subClassOf _:genid248 . - -_:genid248 a owl:Restriction ; - owl:onProperty s4bldg:isIlluminated ; - owl:allValuesFrom xsd:boolean . - -s4bldg:SwitchingDevice rdfs:subClassOf _:genid249 . - -_:genid249 a owl:Restriction ; - owl:onProperty s4bldg:legend ; - owl:allValuesFrom xsd:string . - -s4bldg:SwitchingDevice rdfs:subClassOf _:genid250 . - -_:genid250 a owl:Restriction ; - owl:onProperty s4bldg:numberOfGangs ; - owl:allValuesFrom xsd:integer . - -s4bldg:SwitchingDevice rdfs:subClassOf _:genid251 . - -_:genid251 a owl:Restriction ; - owl:onProperty s4bldg:switchFunction ; - owl:allValuesFrom xsd:string . - -s4bldg:SwitchingDevice rdfs:comment """A switch is used in a cable distribution system (electrical circuit) to control or modulate the flow of electricity. - -Switches include those used for electrical power, communications, audio-visual, or other distribution system types as determined by the available ports."""@en ; - rdfs:label "Switching device"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcSwitchingDevice" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Tank - -s4bldg:Tank a owl:Class ; - rdfs:subClassOf s4bldg:FlowStorageDevice , _:genid252 . - -_:genid252 a owl:Restriction ; - owl:onProperty s4bldg:effectiveCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Tank rdfs:subClassOf _:genid253 . - -_:genid253 a owl:Restriction ; - owl:onProperty s4bldg:firstCurvatureRadius ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Tank rdfs:subClassOf _:genid254 . - -_:genid254 a owl:Restriction ; - owl:onProperty s4bldg:nominalDepth ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Tank rdfs:subClassOf _:genid255 . - -_:genid255 a owl:Restriction ; - owl:onProperty s4bldg:nominalLengthOrDiameter ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Tank rdfs:subClassOf _:genid256 . - -_:genid256 a owl:Restriction ; - owl:onProperty s4bldg:nominalVolumetricCapacity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Tank rdfs:subClassOf _:genid257 . - -_:genid257 a owl:Restriction ; - owl:onProperty s4bldg:nominalWidthOrDiameter ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Tank rdfs:subClassOf _:genid258 . - -_:genid258 a owl:Restriction ; - owl:onProperty s4bldg:operatingWeight ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Tank rdfs:subClassOf _:genid259 . - -_:genid259 a owl:Restriction ; - owl:onProperty s4bldg:secondCurvatureRadius ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Tank rdfs:subClassOf _:genid260 . - -_:genid260 a owl:Restriction ; - owl:onProperty s4bldg:accessType ; - owl:allValuesFrom xsd:string . - -s4bldg:Tank rdfs:subClassOf _:genid261 . - -_:genid261 a owl:Restriction ; - owl:onProperty s4bldg:endShapeType ; - owl:allValuesFrom xsd:string . - -s4bldg:Tank rdfs:subClassOf _:genid262 . - -_:genid262 a owl:Restriction ; - owl:onProperty s4bldg:numberOfSections ; - owl:allValuesFrom xsd:integer . - -s4bldg:Tank rdfs:subClassOf _:genid263 . - -_:genid263 a owl:Restriction ; - owl:onProperty s4bldg:patternType ; - owl:allValuesFrom xsd:string . - -s4bldg:Tank rdfs:subClassOf _:genid264 . - -_:genid264 a owl:Restriction ; - owl:onProperty s4bldg:storageType ; - owl:allValuesFrom xsd:string . - -s4bldg:Tank rdfs:comment "A tank is a vessel or container in which a fluid or gas is stored for later use."@en ; - rdfs:label "Tank"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcTank" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Transformer - -s4bldg:Transformer a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid265 . - -_:genid265 a owl:Restriction ; - owl:onProperty s4bldg:apparentPowerMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid266 . - -_:genid266 a owl:Restriction ; - owl:onProperty s4bldg:imaginaryImpedanceRatio ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid267 . - -_:genid267 a owl:Restriction ; - owl:onProperty s4bldg:primaryApparentPower ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid268 . - -_:genid268 a owl:Restriction ; - owl:onProperty s4bldg:primaryCurrent ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid269 . - -_:genid269 a owl:Restriction ; - owl:onProperty s4bldg:primaryFrequency ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid270 . - -_:genid270 a owl:Restriction ; - owl:onProperty s4bldg:primaryVoltage ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid271 . - -_:genid271 a owl:Restriction ; - owl:onProperty s4bldg:realImpedanceRatio ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid272 . - -_:genid272 a owl:Restriction ; - owl:onProperty s4bldg:secondaryApparentPower ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid273 . - -_:genid273 a owl:Restriction ; - owl:onProperty s4bldg:secondaryCurrent ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid274 . - -_:genid274 a owl:Restriction ; - owl:onProperty s4bldg:secondaryFrequency ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid275 . - -_:genid275 a owl:Restriction ; - owl:onProperty s4bldg:secondaryVoltage ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Transformer rdfs:subClassOf _:genid276 . - -_:genid276 a owl:Restriction ; - owl:onProperty s4bldg:isNeutralPrimaryTerminalAvailable ; - owl:allValuesFrom xsd:boolean . - -s4bldg:Transformer rdfs:subClassOf _:genid277 . - -_:genid277 a owl:Restriction ; - owl:onProperty s4bldg:isNeutralSecondaryTerminalAvailable ; - owl:allValuesFrom xsd:boolean . - -s4bldg:Transformer rdfs:subClassOf _:genid278 . - -_:genid278 a owl:Restriction ; - owl:onProperty s4bldg:secondaryCurrentType ; - owl:allValuesFrom xsd:string . - -s4bldg:Transformer rdfs:subClassOf _:genid279 . - -_:genid279 a owl:Restriction ; - owl:onProperty s4bldg:transformerVectorGroup ; - owl:allValuesFrom xsd:string . - -s4bldg:Transformer rdfs:comment """A transformer is an inductive stationary device that transfers electrical energy from one circuit to another. - -Transformer is used to transform electric power; conversion of electric signals for other purposes is handled at other entities: Controller converts arbitrary signals, AudioVisualAppliance converts signals for audio or video streams, and CommunicationsAppliance converts signals for data or other communications usage."""@en ; - rdfs:label "Transformer"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcTransformer" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#TransportElement - -s4bldg:TransportElement a owl:Class ; - rdfs:subClassOf saref:Device , _:genid280 . - -_:genid280 a owl:Restriction ; - owl:onProperty s4bldg:capacityWeight ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TransportElement rdfs:subClassOf _:genid281 . - -_:genid281 a owl:Restriction ; - owl:onProperty s4bldg:capacityPeople ; - owl:allValuesFrom xsd:positiveInteger . - -s4bldg:TransportElement rdfs:subClassOf _:genid282 . - -_:genid282 a owl:Restriction ; - owl:onProperty s4bldg:fireExit ; - owl:allValuesFrom xsd:boolean . - -s4bldg:TransportElement rdfs:comment "A transport element is a generalization of all transport related objects that move people, animals or goods within a building or building complex. The TransportElement defines the occurrence of a transport element. "@en ; - rdfs:label "Transport element"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcTransportElement" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#TubeBundle - -s4bldg:TubeBundle a owl:Class ; - rdfs:subClassOf s4bldg:EnergyConversionDevice , _:genid283 . - -_:genid283 a owl:Restriction ; - owl:onProperty s4bldg:foulingFactor ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid284 . - -_:genid284 a owl:Restriction ; - owl:onProperty s4bldg:horizontalSpacing ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid285 . - -_:genid285 a owl:Restriction ; - owl:onProperty s4bldg:inLineRowSpacing ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid286 . - -_:genid286 a owl:Restriction ; - owl:onProperty s4bldg:insideDiameter ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid287 . - -_:genid287 a owl:Restriction ; - owl:onProperty s4bldg:length ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid288 . - -_:genid288 a owl:Restriction ; - owl:onProperty s4bldg:nominalDiameter ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid289 . - -_:genid289 a owl:Restriction ; - owl:onProperty s4bldg:outsideDiameter ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid290 . - -_:genid290 a owl:Restriction ; - owl:onProperty s4bldg:staggeredRowSpacing ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid291 . - -_:genid291 a owl:Restriction ; - owl:onProperty s4bldg:thermalConductivity ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid292 . - -_:genid292 a owl:Restriction ; - owl:onProperty s4bldg:verticalSpacing ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid293 . - -_:genid293 a owl:Restriction ; - owl:onProperty s4bldg:volumen ; - owl:allValuesFrom saref:Measurement . - -s4bldg:TubeBundle rdfs:subClassOf _:genid294 . - -_:genid294 a owl:Restriction ; - owl:onProperty s4bldg:hasTurbulator ; - owl:allValuesFrom xsd:boolean . - -s4bldg:TubeBundle rdfs:subClassOf _:genid295 . - -_:genid295 a owl:Restriction ; - owl:onProperty s4bldg:numberOfCircuits ; - owl:allValuesFrom xsd:integer . - -s4bldg:TubeBundle rdfs:subClassOf _:genid296 . - -_:genid296 a owl:Restriction ; - owl:onProperty s4bldg:numberOfRows ; - owl:allValuesFrom xsd:integer . - -s4bldg:TubeBundle rdfs:comment "A tube bundle is a device consisting of tubes and bundles of tubes used for heat transfer and contained typically within other energy conversion devices, such as a chiller or coil."@en ; - rdfs:label "Tube bundle"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcTubeBundle" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#UnitaryControlElement - -s4bldg:UnitaryControlElement a owl:Class ; - rdfs:subClassOf s4bldg:DistributionControlDevice ; - rdfs:comment """A unitary control element combines a number of control components into a single product, such as a thermostat or humidistat. - -A unitary control element provides a housing for an aggregation of control or electrical distribution elements that, in combination, perform a singular (unitary) purpose. Each item in the aggregation may have its own geometric representation and location."""@en ; - rdfs:label "Unitary control element"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcUnitaryControlElement" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#Valve - -s4bldg:Valve a owl:Class ; - rdfs:subClassOf s4bldg:FlowController , _:genid297 . - -_:genid297 a owl:Restriction ; - owl:onProperty s4bldg:closeOffRating ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Valve rdfs:subClassOf _:genid298 . - -_:genid298 a owl:Restriction ; - owl:onProperty s4bldg:flowCoefficient ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Valve rdfs:subClassOf _:genid299 . - -_:genid299 a owl:Restriction ; - owl:onProperty s4bldg:size ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Valve rdfs:subClassOf _:genid300 . - -_:genid300 a owl:Restriction ; - owl:onProperty s4bldg:testPressure ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Valve rdfs:subClassOf _:genid301 . - -_:genid301 a owl:Restriction ; - owl:onProperty s4bldg:workingPressure ; - owl:allValuesFrom saref:Measurement . - -s4bldg:Valve rdfs:subClassOf _:genid302 . - -_:genid302 a owl:Restriction ; - owl:onProperty s4bldg:valveMechanism ; - owl:allValuesFrom xsd:string . - -s4bldg:Valve rdfs:subClassOf _:genid303 . - -_:genid303 a owl:Restriction ; - owl:onProperty s4bldg:valveOperation ; - owl:allValuesFrom xsd:string . - -s4bldg:Valve rdfs:subClassOf _:genid304 . - -_:genid304 a owl:Restriction ; - owl:onProperty s4bldg:valvePattern ; - owl:allValuesFrom xsd:string . - -s4bldg:Valve rdfs:comment "A valve is used in a building services piping distribution system to control or modulate the flow of the fluid."@en ; - rdfs:label "Valve"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcValve" ; - prov:hadPrimarySource , . -# -# https://saref.etsi.org/saref4bldg#VibrationIsolator - -s4bldg:VibrationIsolator a owl:Class ; - rdfs:subClassOf saref:Device , _:genid305 . - -_:genid305 a owl:Restriction ; - owl:onProperty s4bldg:height ; - owl:allValuesFrom saref:Measurement . - -s4bldg:VibrationIsolator rdfs:subClassOf _:genid306 . - -_:genid306 a owl:Restriction ; - owl:onProperty s4bldg:isolatorCompressibility ; - owl:allValuesFrom saref:Measurement . - -s4bldg:VibrationIsolator rdfs:subClassOf _:genid307 . - -_:genid307 a owl:Restriction ; - owl:onProperty s4bldg:isolatorStaticDeflection ; - owl:allValuesFrom saref:Measurement . - -s4bldg:VibrationIsolator rdfs:subClassOf _:genid308 . - -_:genid308 a owl:Restriction ; - owl:onProperty s4bldg:supportedWeightMax ; - owl:allValuesFrom saref:Measurement . - -s4bldg:VibrationIsolator rdfs:subClassOf _:genid309 . - -_:genid309 a owl:Restriction ; - owl:onProperty s4bldg:vibrationTransmissibility ; - owl:allValuesFrom saref:Measurement . - -s4bldg:VibrationIsolator rdfs:comment "A vibration isolator is a device used to minimize the effects of vibration transmissibility in a building."@en ; - rdfs:label "Vibration isolator"@en ; - rdfs:seeAlso "https://w3id.org/ifc/IFC4_ADD1#IfcVibrationIsolator" ; - prov:hadPrimarySource , . -# -# https://w3id.org/saref#Actuator - -saref:Actuator a owl:Class ; - rdfs:comment "A device responsible for moving or controlling a mechanism or system"@en ; - rdfs:isDefinedBy ; - rdfs:label "Actuator"@en . -# -# https://w3id.org/saref#Device - -saref:Device a owl:Class ; - rdfs:subClassOf s4bldg:PhysicalObject ; - rdfs:comment "A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function."@en ; - rdfs:isDefinedBy ; - rdfs:label "Device"@en . -# -# https://w3id.org/saref#Measurement - -saref:Measurement a owl:Class ; - rdfs:subClassOf _:genid310 . - -_:genid310 a owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:allValuesFrom saref:UnitOfMeasure . - -saref:Measurement rdfs:subClassOf _:genid311 . - -_:genid311 a owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:allValuesFrom saref:Property . - -saref:Measurement rdfs:subClassOf _:genid312 . - -_:genid312 a owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:UnitOfMeasure . - -saref:Measurement rdfs:subClassOf _:genid313 . - -_:genid313 a owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Property . - -saref:Measurement rdfs:subClassOf _:genid314 . - -_:genid314 a owl:Restriction ; - owl:onProperty saref:hasTimestamp ; - owl:allValuesFrom xsd:dateTime . - -saref:Measurement rdfs:subClassOf _:genid315 . - -_:genid315 a owl:Restriction ; - owl:onProperty saref:hasValue ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:float . - -saref:Measurement owl:disjointWith saref:Property , saref:UnitOfMeasure ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "Measurement"@en . -# -# https://w3id.org/saref#Property - -saref:Property a owl:Class ; - owl:disjointWith saref:UnitOfMeasure ; - rdfs:comment "An aspect of an entity that can be observable by a sensor."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "Property"@en . -# -# https://w3id.org/saref#Sensor - -saref:Sensor a owl:Class ; - rdfs:comment """A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. -A device that has category saref:Sensor and performs a saref:SensingFunction."""@en ; - rdfs:isDefinedBy ; - rdfs:label "Sensor"@en . -# -# https://w3id.org/saref#UnitOfMeasure - -saref:UnitOfMeasure a owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended."@en ; - rdfs:isDefinedBy ; - rdfs:label "Unit of measure"@en . -# -# Generated by the OWL API (version 4.2.5.20160517-0735) https://github.com/owlcs/owlapi diff --git a/src/main/resources/saref-portal-generator/public/saref4city/latest/saref4city.html b/src/main/resources/saref-portal-generator/public/saref4city/latest/saref4city.html deleted file mode 100644 index cb126aa..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4city/latest/saref4city.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - SAREF extension for Smart City

    -

    Official ETSI documentation for SAREF4CITY v1.1.1
    This page will soon contain the documentation of the SAREF4CITY ontology v1.1.1

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    The documentation of SAREF4CITY v1.1.1 will be available here soon. The source of the ontology are available as Turtle or RDF/XML Visualize it with VOWL

    -
    -
    -
    -
    -

    This ontology extends the SAREF ontology for the Smart City domain. This work has been developed in the context of the STF 534 (https://portal.etsi.org/STF/STFs/STFHomePages/STF534.aspx), which was established with the goal to create three SAREF extensions, one of them for the Smart City domain.

    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4city/latest/saref4city.n3 b/src/main/resources/saref-portal-generator/public/saref4city/latest/saref4city.n3 deleted file mode 100644 index d1c4356..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4city/latest/saref4city.n3 +++ /dev/null @@ -1,608 +0,0 @@ -@prefix s4city: . -@prefix owl: . -@prefix saref: . -@prefix xsd: . -@prefix rdfs: . -@prefix geo: . -@prefix geosp: . -@prefix rdf: . -@prefix xml: . -@prefix dcterms: . -@prefix time: . -@prefix vann: . -@prefix prov: . -@prefix cpsv: . - -s4city:isAvailableInLanguage - a owl:ObjectProperty ; - rdfs:label "is available in language"@en . - -s4city: a owl:Ontology ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:contributor , , ; - dcterms:description "This ontology extends the SAREF ontology for the Smart City domain. This work has been developed in the context of the STF 534 (https://portal.etsi.org/STF/STFs/STFHomePages/STF534.aspx), which was established with the goal to create three SAREF extensions, one of them for the Smart City domain."@en ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:publisher ; - dcterms:source , ; - dcterms:title "SAREF extension for Smart City"@en ; - vann:preferredNamespacePrefix "s4city" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4city#" ; - owl:versionIRI ; - owl:versionInfo "1.1.1" . - -s4city:CityObject a owl:Class ; - rdfs:comment "Generic class for describing city objects."@en ; - rdfs:label "City object"@en ; - rdfs:subClassOf geosp:Feature . - -saref:isMeasuredIn a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is measured in"@en . - -s4city:PublicAdministration - a owl:Class ; - rdfs:comment "Public leadership of public affairs directly responsible for executive action. (Definition taken from wikidata)"@en ; - rdfs:label "Public administration"@en ; - rdfs:seeAlso ; - rdfs:subClassOf . - -saref:makesMeasurement - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "makes measurement"@en ; - owl:inverseOf saref:measurementMadeBy . - -geosp:sfWithin a owl:ObjectProperty ; - rdfs:comment "Exists if the subject SpatialObject is spatially within the object SpatialObject. DE-9IM: T*F**F***"@en ; - rdfs:isDefinedBy ; - rdfs:label "within"@en . - -time:Instant a owl:Class ; - rdfs:comment "A temporal entity with zero extent or duration"@en ; - rdfs:isDefinedBy time: ; - rdfs:label "Instant"@en ; - rdfs:subClassOf time:TemporalEntity . - -s4city:isOrganizedBy a owl:ObjectProperty ; - rdfs:label "is organized by"@en . - -saref:isPropertyOf a owl:ObjectProperty ; - rdfs:label "is property of"@en . - -saref:Measurement a owl:Class ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Measurement"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:relatesToProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasValue - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Device ; - owl:onProperty saref:measurementMadeBy - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:FeatureOfInterest ; - owl:onProperty saref:hasFeatureOfInterest - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:Property ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - owl:disjointWith saref:Property , saref:UnitOfMeasure . - -s4city:isDerivedFrom a owl:ObjectProperty ; - rdfs:label "is derived from"@en . - -saref:isMeasuredByDevice - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is measured by device"@en . - -s4city:Event a owl:Class ; - rdfs:comment "Temporary and scheduled event, like a festival or competition. (Definition taken from Wikidata)"@en ; - rdfs:label "Event"@en ; - rdfs:seeAlso ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:Event ; - owl:onProperty s4city:isSubEventOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:Agent ; - owl:onProperty s4city:isOrganizedBy - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom rdfs:Literal ; - owl:onProperty saref:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:Facility ; - owl:onProperty s4city:takesPlaceAtFacility - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom time:TemporalEntity ; - owl:onProperty s4city:takesPlaceAtTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom ; - owl:onProperty s4city:hasAccesibility - ] . - -s4city:hasKPI a owl:ObjectProperty ; - rdfs:label "has key performance indicator"@en ; - owl:inverseOf s4city:isKPIOf . - -vann:preferredNamespaceUri - a owl:AnnotationProperty . - -geosp:Feature a owl:Class ; - rdfs:comment "This class represents the top-level feature type. This class is equivalent to GFI_Feature defined in ISO 19156:2011, and it is superclass of all feature types."@en ; - rdfs:isDefinedBy ; - rdfs:label "Feature"@en ; - rdfs:subClassOf geosp:SpatialObject ; - owl:disjointWith geosp:Geometry . - -s4city:hasCalculationPeriod - a owl:ObjectProperty ; - rdfs:label "has calculation period"@en . - -cpsv:provides a owl:ObjectProperty ; - rdfs:comment "The provides property links an Agent to a Public Service for which it is responsible. Whether it provides the service directly or outsources it is not relevant, the Agent that provides the service is the one that is ultimately responsible for its provision."@en ; - rdfs:isDefinedBy cpsv: ; - rdfs:label "provides"@en . - -s4city:takesPlaceAtFacility - a owl:ObjectProperty ; - rdfs:label "takes place at facility"@en . - -geo:lat a rdf:Property ; - rdfs:comment "The WGS84 latitude of a SpatialThing (decimal degrees)." ; - rdfs:domain geo:SpatialThing ; - rdfs:label "latitude" . - -geo:Point a owl:Class ; - rdfs:comment "A point, typically described using a coordinate system relative to Earth, such as WGS84." , " \nUniquely identified by lat/long/alt. i.e.\n\nspaciallyIntersects(P1, P2) :- lat(P1, LAT), long(P1, LONG), alt(P1, ALT),\n lat(P2, LAT), long(P2, LONG), alt(P2, ALT).\n\nsameThing(P1, P2) :- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2).\n " ; - rdfs:isDefinedBy geo: ; - rdfs:label "Point"@en ; - rdfs:subClassOf geosp:Geometry . - -s4city:Facility a owl:Class ; - rdfs:comment "A place, amenity, or piece of equipment provided for a particular purpose. (Definition taken from https://en.oxforddictionaries.com/definition/facility)"@en ; - rdfs:label "Facility"@en ; - rdfs:subClassOf geosp:Feature . - -dcterms:creator a owl:AnnotationProperty . - -s4city:hasExpirationDate - a owl:DatatypeProperty ; - rdfs:label "has expiration date"@en ; - rdfs:range xsd:dateTime . - -saref:hasTimestamp a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has timestamp"@en . - -dcterms:title a owl:AnnotationProperty . - -cpsv:PublicService a owl:Class ; - rdfs:comment "This class represents the service itself. A public service is the capacity to carry out a procedure and exists whether it is used or not. It is a set of deeds and acts performed by or on behalf of a public agency for the benefit of a citizen, a business or another public agency."@en ; - rdfs:isDefinedBy cpsv: ; - rdfs:label "Public Service"@en . - -geosp:hasGeometry a owl:ObjectProperty ; - rdfs:comment "A spatial representation for a given feature."@en ; - rdfs:isDefinedBy geosp: ; - rdfs:label "has geometry"@en . - -geosp:sfContains a owl:ObjectProperty ; - rdfs:comment "Exists if the subject SpatialObject spatially contains the object SpatialObject. DE-9IM: T*****FF*"@en ; - rdfs:isDefinedBy ; - rdfs:label "contains"@en . - -s4city:assesses a owl:ObjectProperty ; - rdfs:label "assesses"@en . - -s4city:refersToTime a owl:ObjectProperty ; - rdfs:label "refers to time"@en . - -geo:location a owl:ObjectProperty , rdf:Property ; - rdfs:comment "The relation between something and the point, \n or other geometrical thing in space, where it is. For example, the realtionship between\n a radio tower and a Point with a given lat and long.\n Or a relationship between a park and its outline as a closed arc of points, or a road and\n its location as a arc (a sequence of points).\n Clearly in practice there will be limit to the accuracy of any such statement, but one would expect\n an accuracy appropriate for the size of the object and uses such as mapping .\n " ; - rdfs:label "location"@en . - -saref:measuresProperty - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "measures property"@en . - -dcterms:contributor a owl:AnnotationProperty . - - - a owl:Class ; - rdfs:isDefinedBy . - -s4city:Neighbourhood a owl:Class ; - rdfs:comment "A neighbourhood (British English), or neighborhood (American English; see spelling differences), is a geographically localised community within a larger city, town, suburb or rural area. (https://en.wikipedia.org/wiki/Neighbourhood)"@en ; - rdfs:label "Neighbourhood"@en ; - rdfs:subClassOf s4city:AdministrativeArea . - - - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Organization"@en ; - rdfs:subClassOf . - -s4city:hasAccesibility - a owl:ObjectProperty ; - rdfs:label "has accesibility"@en . - -s4city:refersToFeature - a owl:ObjectProperty ; - rdfs:comment "Relation between a KPI assessment and the geographical feature it refers to"@en ; - rdfs:label "refers to feature"@en . - -s4city:isKPIOf a owl:ObjectProperty ; - rdfs:label "is key performance indicator of"@en . - -saref:hasValue a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has value"@en . - -geo:long a rdf:Property ; - rdfs:comment "The WGS84 longitude of a SpatialThing (decimal degrees)." ; - rdfs:domain geo:SpatialThing ; - rdfs:label "longitude" . - -s4city:KeyPerformanceIndicator - a owl:Class ; - rdfs:comment "A Key Performance Indicator (KPI) is a type of performance measurement. KPIs evaluate the success of an organization or of a particular activity in which it engages. (Definition taken from FIWARE)"@en ; - rdfs:label "Key Performance Indicator"@en ; - rdfs:seeAlso ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom rdfs:Literal ; - owl:onProperty saref:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom rdfs:Literal ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:FeatureOfInterest ; - owl:onProperty s4city:isKPIOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom time:TemporalEntity ; - owl:onProperty s4city:hasCalculationPeriod - ] . - -s4city:involvesFacility - a owl:ObjectProperty ; - rdfs:label "involves facility"@en . - -time:TemporalEntity a owl:Class ; - rdfs:comment "A temporal interval or instant."@en ; - rdfs:isDefinedBy time: ; - rdfs:label "Temporal entity"@en . - -saref:hasProperty a owl:ObjectProperty ; - rdfs:label "has property"@en ; - owl:inverseOf saref:isPropertyOf . - -saref:FeatureOfInterest - a owl:Class ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:isFeatureOfInterestOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:hasProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:KeyPerformanceIndicator ; - owl:onProperty s4city:hasKPI - ] . - -geo:alt a rdf:Property ; - rdfs:comment "The WGS84 altitude of a SpatialThing (decimal meters above the local reference ellipsoid)." ; - rdfs:domain geo:SpatialThing ; - rdfs:label "altitude" . - -saref:hasDescription a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has description"@en . - -saref:isFeatureOfInterestOf - a owl:ObjectProperty ; - rdfs:label "is feature of interest of"@en . - - - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Agent"@en . - -s4city:AdministrativeArea - a owl:Class ; - rdfs:comment "An administrative division, unit, entity, area or region, also referred to as a subnational entity, constituent unit, or country subdivision, is a portion of a country or other region delineated for the purpose of administration. (https://en.wikipedia.org/wiki/Administrative_division)"@en ; - rdfs:label "Administrative area"@en ; - rdfs:subClassOf geosp:Feature . - -saref:controlsProperty - a owl:ObjectProperty ; - rdfs:label "controls property"@en . - -saref:hasFeatureOfInterest - a owl:ObjectProperty ; - rdfs:label "has feature of interest"@en ; - owl:inverseOf saref:isFeatureOfInterestOf . - -saref:relatesToMeasurement - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "relates to measurement"@en . - -s4city:Agent a owl:Class ; - rdfs:comment "An agent making an action in the context of a city. An agent could be a person, software, etc."@en ; - rdfs:label "Agent"@en ; - rdfs:subClassOf ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:PublicService ; - owl:onProperty cpsv:uses - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:PublicService ; - owl:onProperty cpsv:provides - ] . - -s4city:quantifiesKPI a owl:ObjectProperty ; - rdfs:label "quantifies KPI"@en . - -saref:UnitOfMeasure a owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Unit of measure"@en . - -saref:relatesToProperty - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "relates to property"@en . - -cpsv:physicallyAvailableAt - a owl:ObjectProperty ; - rdfs:comment "A physical location at which a user may interact with the Public Service."@en ; - rdfs:isDefinedBy cpsv: ; - rdfs:label "physically available at"@en . - -geosp:Geometry a owl:Class ; - rdfs:comment "The class represents the top-level geometry type. This class is equivalent to the UML class GM_Object defined in ISO 19107, and it is superclass of all geometry types."@en ; - rdfs:isDefinedBy ; - rdfs:label "Geometry"@en ; - rdfs:subClassOf geosp:SpatialObject . - -s4city:hasLastUpdateDate - a owl:DatatypeProperty ; - rdfs:label "has last update date"@en ; - rdfs:range xsd:dateTime . - -vann:preferredNamespacePrefix - a owl:AnnotationProperty . - -saref:hasName a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has name"@en . - -time:Interval a owl:Class ; - rdfs:isDefinedBy time: ; - rdfs:label "Time interval"@en , "A temporal entity with an extent or duration"@en ; - rdfs:subClassOf time:TemporalEntity . - - - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Person"@en ; - rdfs:subClassOf . - -s4city:Country a owl:Class ; - rdfs:comment "A country is a region that is identified as a distinct national entity in political geography. (https://en.wikipedia.org/wiki/Country)"@en ; - rdfs:label "Country"@en ; - rdfs:subClassOf s4city:AdministrativeArea . - -s4city:takesPlaceAtTime - a owl:ObjectProperty ; - rdfs:label "takes place at time"@en . - -s4city:City a owl:Class ; - rdfs:comment "A city is a large human settlement. A city is distinguished from other human settlements by its relatively great size, but also by its functions and its special symbolic status, which may be conferred by a central authority. (https://en.wikipedia.org/wiki/City)"@en ; - rdfs:label "City"@en ; - rdfs:subClassOf s4city:AdministrativeArea . - -s4city:hasCreationDate - a owl:DatatypeProperty ; - rdfs:label "has creation date"@en ; - rdfs:range xsd:dateTime . - -geosp:SpatialObject a owl:Class ; - rdfs:comment "The class spatial-object represents everything that can have a spatial representation. It is superclass of feature and geometry."@en ; - rdfs:isDefinedBy ; - rdfs:label "SpatialObject"@en . - -dcterms:description a owl:AnnotationProperty . - -s4city:isSubEventOf a owl:ObjectProperty ; - rdfs:label "is subevent of"@en . - -saref:Sensor a owl:Class ; - rdfs:comment "A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes.\nA device that has category saref:Sensor and performs a saref:SensingFunction."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Sensor"@en ; - rdfs:subClassOf saref:Device . - -saref:Property a owl:Class ; - rdfs:comment "Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended." , "An aspect of an entity that can be observable by a sensor."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Property"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Device ; - owl:onProperty saref:isMeasuredByDevice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:relatesToMeasurement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Device ; - owl:onProperty saref:isControlledByDevice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:FeatureOfInterest ; - owl:onProperty saref:isPropertyOf - ] ; - owl:disjointWith saref:UnitOfMeasure . - -s4city:District a owl:Class ; - rdfs:comment "A district is a type of administrative division that, in some countries, is managed by local government. Across the world, areas known as \"districts\" vary greatly in size, spanning regions or counties, several municipalities, subdivisions of municipalities, school district, or political district. (https://en.wikipedia.org/wiki/District)"@en ; - rdfs:label "District"@en ; - rdfs:subClassOf s4city:AdministrativeArea . - -s4city:KeyPerformanceIndicatorAssessment - a owl:Class ; - rdfs:comment "A Key Performance Indicator assessment represents the assessment of a KPI calculated by a given agent in a given time."@en ; - rdfs:label "Key performance indicator assessment"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom rdfs:Literal ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasValue - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty s4city:hasCreationDate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:Agent ; - owl:onProperty s4city:isAssessedBy - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4city:isDerivedFrom - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty s4city:hasExpirationDate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:KeyPerformanceIndicator ; - owl:onProperty s4city:quantifiesKPI - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom time:TemporalEntity ; - owl:onProperty s4city:refersToTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom rdfs:Literal ; - owl:onProperty saref:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty s4city:hasLastUpdateDate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:FeatureOfInterest ; - owl:onProperty s4city:assesses - ] . - -s4city:PublicService a owl:Class ; - rdfs:comment "Public service is a service which is provided by government either directly (through the public sector) or by financing provision of services. (Definition taken from Wikipedia)"@en ; - rdfs:label "Public service"@en ; - rdfs:seeAlso ; - rdfs:subClassOf cpsv:PublicService ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom rdfs:Literal ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:AdministrativeArea ; - owl:onProperty cpsv:physicallyAvailableAt - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom dcterms:LinguisticSystem ; - owl:onProperty s4city:isAvailableInLanguage - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:Facility ; - owl:onProperty s4city:involvesFacility - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom rdfs:Literal ; - owl:onProperty saref:hasName - ] . - -dcterms:LinguisticSystem - a owl:Class . - -saref:measurementMadeBy - a owl:ObjectProperty . - -saref:Actuator a owl:Class ; - rdfs:comment "A device responsible for moving or controlling a mechanism or system"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Actuator"@en ; - rdfs:subClassOf saref:Device . - -cpsv:uses a owl:ObjectProperty ; - rdfs:comment "The uses property links an Agent to a Public Service in which it plays the specific role of user, meaning that it provides the input and receives the output but does not play any direct role in providing the service. This will typically be an individual citizen or an outside organisation."@en ; - rdfs:isDefinedBy cpsv: ; - rdfs:label "uses"@en . - -s4city:isAssessedBy a owl:ObjectProperty ; - rdfs:label "is assessed by"@en . - -saref:isControlledByDevice - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is controlled by device"@en . - -saref:Device a owl:Class ; - rdfs:comment "A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function. Devices can be structured in categories (subclasses) that reflect the different domain in which a device is used, e.g., smart appliances domain (subclass FunctionRelated) vs. building domain (subclass BuildingRelated) vs. smart grid domain (subclass EnergyRelated). New categories can be defined,if needed, to reflect other differences, for example different points of view, such as the point of view of the device's user vs. the point of view of the device's manufacturer. We propose a list of devices that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "Device" ; - rdfs:subClassOf geosp:Feature ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:measuresProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:makesMeasurement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:controlsProperty - ] . diff --git a/src/main/resources/saref-portal-generator/public/saref4city/latest/saref4city.rdf b/src/main/resources/saref-portal-generator/public/saref4city/latest/saref4city.rdf deleted file mode 100644 index 32cdf95..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4city/latest/saref4city.rdf +++ /dev/null @@ -1,857 +0,0 @@ - - - - - - - - - s4city - This ontology extends the SAREF ontology for the Smart City domain. This work has been developed in the context of the STF 534 (https://portal.etsi.org/STF/STFs/STFHomePages/STF534.aspx), which was established with the goal to create three SAREF extensions, one of them for the Smart City domain. - - 1.1.1 - https://saref.etsi.org/saref4city# - This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge. - - SAREF extension for Smart City - 2019-06-11 - - - Public Service - - This class represents the service itself. A public service is the capacity to carry out a procedure and exists whether it is used or not. It is a set of deeds and acts performed by or on behalf of a public agency for the benefit of a citizen, a business or another public agency. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Public service is a service which is provided by government either directly (through the public sector) or by financing provision of services. (Definition taken from Wikipedia) - Public service - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Key performance indicator assessment - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A Key Performance Indicator assessment represents the assessment of a KPI calculated by a given agent in a given time. - - - - - - - - - - - - - City - A city is a large human settlement. A city is distinguished from other human settlements by its relatively great size, but also by its functions and its special symbolic status, which may be conferred by a central authority. (https://en.wikipedia.org/wiki/City) - - - - - - - Public administration - Public leadership of public affairs directly responsible for executive action. (Definition taken from wikidata) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Temporary and scheduled event, like a festival or competition. (Definition taken from Wikidata) - Event - - - Actuator - - A device responsible for moving or controlling a mechanism or system - - - - - - District - A district is a type of administrative division that, in some countries, is managed by local government. Across the world, areas known as "districts" vary greatly in size, spanning regions or counties, several municipalities, subdivisions of municipalities, school district, or political district. (https://en.wikipedia.org/wiki/District) - - - - - - Temporal entity - - A temporal interval or instant. - - - SpatialObject - - The class spatial-object represents everything that can have a spatial representation. It is superclass of feature and geometry. - - - Administrative area - An administrative division, unit, entity, area or region, also referred to as a subnational entity, constituent unit, or country subdivision, is a portion of a country or other region delineated for the purpose of administration. (https://en.wikipedia.org/wiki/Administrative_division) - - - - - - Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - Measurement - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - Time interval - A temporal entity with an extent or duration - - - - - Facility - A place, amenity, or piece of equipment provided for a particular purpose. (Definition taken from https://en.oxforddictionaries.com/definition/facility) - - - - - - Organization - - - - - - - Neighbourhood - A neighbourhood (British English), or neighborhood (American English; see spelling differences), is a geographically localised community within a larger city, town, suburb or rural area. (https://en.wikipedia.org/wiki/Neighbourhood) - - - - Unit of measure - - The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called "watt". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended. - - - Feature - - This class represents the top-level feature type. This class is equivalent to GFI_Feature defined in ISO 19156:2011, and it is superclass of all feature types. - - - - - - - Country - A country is a region that is identified as a distinct national entity in political geography. (https://en.wikipedia.org/wiki/Country) - - - - Device - A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function. Devices can be structured in categories (subclasses) that reflect the different domain in which a device is used, e.g., smart appliances domain (subclass FunctionRelated) vs. building domain (subclass BuildingRelated) vs. smart grid domain (subclass EnergyRelated). New categories can be defined,if needed, to reflect other differences, for example different points of view, such as the point of view of the device's user vs. the point of view of the device's manufacturer. We propose a list of devices that are relevant for the purpose of SAREF, but this list can be extended. - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Agent - An agent making an action in the context of a city. An agent could be a person, software, etc. - - - - - - - - - - - - - - - - - - - - - - Person - - - - - - - Geometry - - The class represents the top-level geometry type. This class is equivalent to the UML class GM_Object defined in ISO 19107, and it is superclass of all geometry types. - - - - Instant - - A temporal entity with zero extent or duration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Key Performance Indicator - A Key Performance Indicator (KPI) is a type of performance measurement. KPIs evaluate the success of an organization or of a particular activity in which it engages. (Definition taken from FIWARE) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - City object - Generic class for describing city objects. - - - - Agent - - - - Sensor - - A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. -A device that has category saref:Sensor and performs a saref:SensingFunction. - - - - Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended. - - - - - - - - - - - - - - - - - - Property - An aspect of an entity that can be observable by a sensor. - - - - - - - - - - - - - - - - - - - - Point - - A point, typically described using a coordinate system relative to Earth, such as WGS84. - -Uniquely identified by lat/long/alt. i.e. - -spaciallyIntersects(P1, P2) :- lat(P1, LAT), long(P1, LONG), alt(P1, ALT), - lat(P2, LAT), long(P2, LONG), alt(P2, ALT). - -sameThing(P1, P2) :- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2). - - - - - location - The relation between something and the point, - or other geometrical thing in space, where it is. For example, the realtionship between - a radio tower and a Point with a given lat and long. - Or a relationship between a park and its outline as a closed arc of points, or a road and - its location as a arc (a sequence of points). - Clearly in practice there will be limit to the accuracy of any such statement, but one would expect - an accuracy appropriate for the size of the object and uses such as mapping . - - - - - controls property - - - refers to feature - Relation between a KPI assessment and the geographical feature it refers to - - - is subevent of - - - involves facility - - - has geometry - - A spatial representation for a given feature. - - - measures property - - - - is key performance indicator of - - - contains - - Exists if the subject SpatialObject spatially contains the object SpatialObject. DE-9IM: T*****FF* - - - is feature of interest of - - - takes place at time - - - makes measurement - - - - - within - - Exists if the subject SpatialObject is spatially within the object SpatialObject. DE-9IM: T*F**F*** - - - is organized by - - - is available in language - - - uses - - The uses property links an Agent to a Public Service in which it plays the specific role of user, meaning that it provides the input and receives the output but does not play any direct role in providing the service. This will typically be an individual citizen or an outside organisation. - - - physically available at - - A physical location at which a user may interact with the Public Service. - - - is property of - - - takes place at facility - - - has feature of interest - - - - assesses - - - has accesibility - - - is controlled by device - - - - refers to time - - - is measured by device - - - - is measured in - - - - is derived from - - - has calculation period - - - has property - - - - provides - - The provides property links an Agent to a Public Service for which it is responsible. Whether it provides the service directly or outsources it is not relevant, the Agent that provides the service is the one that is ultimately responsible for its provision. - - - relates to measurement - - - - quantifies KPI - - - is assessed by - - - relates to property - - - - has key performance indicator - - - - - latitude - The WGS84 latitude of a SpatialThing (decimal degrees). - - - - longitude - The WGS84 longitude of a SpatialThing (decimal degrees). - - - - altitude - The WGS84 altitude of a SpatialThing (decimal meters above the local reference ellipsoid). - - - has value - - - - has expiration date - - - - has creation date - - - - has description - - - - has timestamp - - - - has last update date - - - - has name - - - - - - - - - diff --git a/src/main/resources/saref-portal-generator/public/saref4city/latest/saref4city.ttl b/src/main/resources/saref-portal-generator/public/saref4city/latest/saref4city.ttl deleted file mode 100644 index 1e640ac..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4city/latest/saref4city.ttl +++ /dev/null @@ -1,817 +0,0 @@ -@prefix geo: . -@prefix owl: . -@prefix rdf: . -@prefix xml: . -@prefix xsd: . -@prefix cpsv: . -@prefix prov: . -@prefix rdfs: . -@prefix time: . -@prefix vann: . -@prefix geosp: . -@prefix saref: . -@prefix s4city: . -@prefix dcterms: . - - a owl:Ontology ; - dcterms:title "SAREF extension for Smart City"@en ; - owl:versionInfo "1.1.1" ; - owl:versionIRI ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor ; - vann:preferredNamespacePrefix "s4city" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4city#" ; - dcterms:license ; - dcterms:source ; - dcterms:source ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:description "This ontology extends the SAREF ontology for the Smart City domain. This work has been developed in the context of the STF 534 (https://portal.etsi.org/STF/STFs/STFHomePages/STF534.aspx), which was established with the goal to create three SAREF extensions, one of them for the Smart City domain."@en ; - dcterms:publisher . - -# -# -# ################################################################# -# # -# # Annotation properties -# # -# ################################################################# -# -# -# http://purl.org/dc/elements/1.1/contributor - -dcterms:contributor a owl:AnnotationProperty . -# -# http://purl.org/dc/elements/1.1/creator - -dcterms:creator a owl:AnnotationProperty . -# -# -# http://purl.org/dc/elements/1.1/description - -dcterms:description a owl:AnnotationProperty . -# -# http://purl.org/dc/elements/1.1/title - -dcterms:title a owl:AnnotationProperty . -# -# http://purl.org/vocab/vann/preferredNamespacePrefix - -vann:preferredNamespacePrefix a owl:AnnotationProperty . -# -# http://purl.org/vocab/vann/preferredNamespaceUri - -vann:preferredNamespaceUri a owl:AnnotationProperty . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#alt - -geo:alt a rdf:Property ; - rdfs:comment "The WGS84 altitude of a SpatialThing (decimal meters above the local reference ellipsoid)." ; - rdfs:label "altitude" ; - rdfs:domain geo:SpatialThing . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#lat - -geo:lat a rdf:Property ; - rdfs:comment "The WGS84 latitude of a SpatialThing (decimal degrees)." ; - rdfs:label "latitude" ; - rdfs:domain geo:SpatialThing . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#location - -geo:location a rdf:Property . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#long - -geo:long a rdf:Property ; - rdfs:comment "The WGS84 longitude of a SpatialThing (decimal degrees)." ; - rdfs:label "longitude" ; - rdfs:domain geo:SpatialThing . -# -# -# -# -# ################################################################# -# # -# # Object Properties -# # -# ################################################################# -# -# -# http://purl.org/vocab/cpsv#physicallyAvailableAt - -cpsv:physicallyAvailableAt a owl:ObjectProperty ; - rdfs:comment "A physical location at which a user may interact with the Public Service."@en ; - rdfs:isDefinedBy ; - rdfs:label "physically available at"@en . -# -# http://purl.org/vocab/cpsv#provides - -cpsv:provides a owl:ObjectProperty ; - rdfs:comment "The provides property links an Agent to a Public Service for which it is responsible. Whether it provides the service directly or outsources it is not relevant, the Agent that provides the service is the one that is ultimately responsible for its provision."@en ; - rdfs:isDefinedBy ; - rdfs:label "provides"@en . -# -# http://purl.org/vocab/cpsv#uses - -cpsv:uses a owl:ObjectProperty ; - rdfs:comment "The uses property links an Agent to a Public Service in which it plays the specific role of user, meaning that it provides the input and receives the output but does not play any direct role in providing the service. This will typically be an individual citizen or an outside organisation."@en ; - rdfs:isDefinedBy ; - rdfs:label "uses"@en . -# -# http://www.opengis.net/ont/geosparql#hasGeometry - -geosp:hasGeometry a owl:ObjectProperty ; - rdfs:comment "A spatial representation for a given feature."@en ; - rdfs:isDefinedBy ; - rdfs:label "has geometry"@en . -# -# http://www.opengis.net/ont/geosparql#sfContains - -geosp:sfContains a owl:ObjectProperty ; - rdfs:comment "Exists if the subject SpatialObject spatially contains the object SpatialObject. DE-9IM: T*****FF*"@en ; - rdfs:isDefinedBy ; - rdfs:label "contains"@en . -# -# http://www.opengis.net/ont/geosparql#sfWithin - -geosp:sfWithin a owl:ObjectProperty ; - rdfs:comment "Exists if the subject SpatialObject is spatially within the object SpatialObject. DE-9IM: T*F**F***"@en ; - rdfs:isDefinedBy ; - rdfs:label "within"@en . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#location - -geo:location a owl:ObjectProperty . -# -# https://saref.etsi.org/saref4city#assesses - -s4city:assesses a owl:ObjectProperty ; - rdfs:label "assesses"@en . -# -# https://saref.etsi.org/saref4city#hasAccesibility - -s4city:hasAccesibility a owl:ObjectProperty ; - rdfs:label "has accesibility"@en . -# -# https://saref.etsi.org/saref4city#hasCalculationPeriod - -s4city:hasCalculationPeriod a owl:ObjectProperty ; - rdfs:label "has calculation period"@en . -# -# https://saref.etsi.org/saref4city#hasKPI - -s4city:hasKPI a owl:ObjectProperty ; - owl:inverseOf s4city:isKPIOf ; - rdfs:label "has key performance indicator"@en . -# -# https://saref.etsi.org/saref4city#involvesFacility - -s4city:involvesFacility a owl:ObjectProperty ; - rdfs:label "involves facility"@en . -# -# https://saref.etsi.org/saref4city#isAssessedBy - -s4city:isAssessedBy a owl:ObjectProperty ; - rdfs:label "is assessed by"@en . -# -# https://saref.etsi.org/saref4city#isAvailableInLanguage - -s4city:isAvailableInLanguage a owl:ObjectProperty ; - rdfs:label "is available in language"@en . -# -# https://saref.etsi.org/saref4city#isDerivedFrom - -s4city:isDerivedFrom a owl:ObjectProperty ; - rdfs:label "is derived from"@en . -# -# https://saref.etsi.org/saref4city#isKPIOf - -s4city:isKPIOf a owl:ObjectProperty ; - rdfs:label "is key performance indicator of"@en . -# -# https://saref.etsi.org/saref4city#isOrganizedBy - -s4city:isOrganizedBy a owl:ObjectProperty ; - rdfs:label "is organized by"@en . -# -# https://saref.etsi.org/saref4city#isSubEventOf - -s4city:isSubEventOf a owl:ObjectProperty ; - rdfs:label "is subevent of"@en . -# -# https://saref.etsi.org/saref4city#quantifiesKPI - -s4city:quantifiesKPI a owl:ObjectProperty ; - rdfs:label "quantifies KPI"@en . -# -# https://saref.etsi.org/saref4city#refersToFeature - -s4city:refersToFeature a owl:ObjectProperty ; - rdfs:comment "Relation between a KPI assessment and the geographical feature it refers to"@en ; - rdfs:label "refers to feature"@en . -# -# https://saref.etsi.org/saref4city#refersToTime - -s4city:refersToTime a owl:ObjectProperty ; - rdfs:label "refers to time"@en . -# -# https://saref.etsi.org/saref4city#takesPlaceAtFacility - -s4city:takesPlaceAtFacility a owl:ObjectProperty ; - rdfs:label "takes place at facility"@en . -# -# https://saref.etsi.org/saref4city#takesPlaceAtTime - -s4city:takesPlaceAtTime a owl:ObjectProperty ; - rdfs:label "takes place at time"@en . -# -# https://w3id.org/saref#controlsProperty - -saref:controlsProperty a owl:ObjectProperty ; - rdfs:label "controls property"@en . -# -# https://w3id.org/saref#hasFeatureOfInterest - -saref:hasFeatureOfInterest a owl:ObjectProperty ; - owl:inverseOf saref:isFeatureOfInterestOf ; - rdfs:label "has feature of interest"@en . -# -# https://w3id.org/saref#hasProperty - -saref:hasProperty a owl:ObjectProperty ; - owl:inverseOf saref:isPropertyOf ; - rdfs:label "has property"@en . -# -# https://w3id.org/saref#isControlledByDevice - -saref:isControlledByDevice a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "is controlled by device"@en . -# -# https://w3id.org/saref#isFeatureOfInterestOf - -saref:isFeatureOfInterestOf a owl:ObjectProperty ; - rdfs:label "is feature of interest of"@en . -# -# https://w3id.org/saref#isMeasuredByDevice - -saref:isMeasuredByDevice a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "is measured by device"@en . -# -# https://w3id.org/saref#isMeasuredIn - -saref:isMeasuredIn a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "is measured in"@en . -# -# https://w3id.org/saref#isPropertyOf - -saref:isPropertyOf a owl:ObjectProperty ; - rdfs:label "is property of"@en . -# -# https://w3id.org/saref#makesMeasurement - -saref:makesMeasurement a owl:ObjectProperty ; - owl:inverseOf saref:measurementMadeBy ; - rdfs:isDefinedBy ; - rdfs:label "makes measurement"@en . -# -# https://w3id.org/saref#measurementMadeBy - -saref:measurementMadeBy a owl:ObjectProperty . -# -# https://w3id.org/saref#measuresProperty - -saref:measuresProperty a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "measures property"@en . -# -# https://w3id.org/saref#relatesToMeasurement - -saref:relatesToMeasurement a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "relates to measurement"@en . -# -# https://w3id.org/saref#relatesToProperty - -saref:relatesToProperty a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "relates to property"@en . -# -# -# -# ################################################################# -# # -# # Data properties -# # -# ################################################################# -# -# -# https://saref.etsi.org/saref4city#hasCreationDate - -s4city:hasCreationDate a owl:DatatypeProperty ; - rdfs:range xsd:dateTime ; - rdfs:label "has creation date"@en . -# -# https://saref.etsi.org/saref4city#hasExpirationDate - -s4city:hasExpirationDate a owl:DatatypeProperty ; - rdfs:range xsd:dateTime ; - rdfs:label "has expiration date"@en . -# -# https://saref.etsi.org/saref4city#hasLastUpdateDate - -s4city:hasLastUpdateDate a owl:DatatypeProperty ; - rdfs:range xsd:dateTime ; - rdfs:label "has last update date"@en . -# -# https://w3id.org/saref#hasDescription - -saref:hasDescription a owl:DatatypeProperty ; - rdfs:isDefinedBy ; - rdfs:label "has description"@en . -# -# https://w3id.org/saref#hasName - -saref:hasName a owl:DatatypeProperty ; - rdfs:isDefinedBy ; - rdfs:label "has name"@en . -# -# https://w3id.org/saref#hasTimestamp - -saref:hasTimestamp a owl:DatatypeProperty ; - rdfs:isDefinedBy ; - rdfs:label "has timestamp"@en . -# -# https://w3id.org/saref#hasValue - -saref:hasValue a owl:DatatypeProperty ; - rdfs:isDefinedBy ; - rdfs:label "has value"@en . -# -# -# -# ################################################################# -# # -# # Classes -# # -# ################################################################# -# -# -# http://purl.org/dc/terms/LinguisticSystem - -dcterms:LinguisticSystem a owl:Class . -# -# http://purl.org/vocab/cpsv#PublicService - -cpsv:PublicService a owl:Class ; - rdfs:comment "This class represents the service itself. A public service is the capacity to carry out a procedure and exists whether it is used or not. It is a set of deeds and acts performed by or on behalf of a public agency for the benefit of a citizen, a business or another public agency."@en ; - rdfs:isDefinedBy ; - rdfs:label "Public Service"@en . -# -# http://www.opengis.net/ont/geosparql#Feature - -geosp:Feature a owl:Class ; - rdfs:subClassOf geosp:SpatialObject ; - owl:disjointWith geosp:Geometry ; - rdfs:comment "This class represents the top-level feature type. This class is equivalent to GFI_Feature defined in ISO 19156:2011, and it is superclass of all feature types."@en ; - rdfs:isDefinedBy ; - rdfs:label "Feature"@en . -# -# http://www.opengis.net/ont/geosparql#Geometry - -geosp:Geometry a owl:Class ; - rdfs:subClassOf geosp:SpatialObject ; - rdfs:comment "The class represents the top-level geometry type. This class is equivalent to the UML class GM_Object defined in ISO 19107, and it is superclass of all geometry types."@en ; - rdfs:isDefinedBy ; - rdfs:label "Geometry"@en . -# -# http://www.opengis.net/ont/geosparql#SpatialObject - -geosp:SpatialObject a owl:Class ; - rdfs:comment "The class spatial-object represents everything that can have a spatial representation. It is superclass of feature and geometry."@en ; - rdfs:isDefinedBy ; - rdfs:label "SpatialObject"@en . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#Point - -geo:Point a owl:Class ; - rdfs:subClassOf geosp:Geometry ; - rdfs:comment """ -Uniquely identified by lat/long/alt. i.e. - -spaciallyIntersects(P1, P2) :- lat(P1, LAT), long(P1, LONG), alt(P1, ALT), - lat(P2, LAT), long(P2, LONG), alt(P2, ALT). - -sameThing(P1, P2) :- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2). - """ , "A point, typically described using a coordinate system relative to Earth, such as WGS84." ; - rdfs:isDefinedBy ; - rdfs:label "Point"@en . -# -# http://www.w3.org/2004/02/skos/core#Concept - - a owl:Class ; - rdfs:isDefinedBy . -# -# http://www.w3.org/2006/time#Instant - -time:Instant a owl:Class ; - rdfs:subClassOf time:TemporalEntity ; - rdfs:comment "A temporal entity with zero extent or duration"@en ; - rdfs:isDefinedBy ; - rdfs:label "Instant"@en . -# -# http://www.w3.org/2006/time#Interval - -time:Interval a owl:Class ; - rdfs:subClassOf time:TemporalEntity ; - rdfs:isDefinedBy ; - rdfs:label "A temporal entity with an extent or duration"@en , "Time interval"@en . -# -# http://www.w3.org/2006/time#TemporalEntity - -time:TemporalEntity a owl:Class ; - rdfs:comment "A temporal interval or instant."@en ; - rdfs:isDefinedBy ; - rdfs:label "Temporal entity"@en . -# -# http://www.w3.org/ns/org#Organization - - a owl:Class ; - rdfs:subClassOf ; - rdfs:isDefinedBy ; - rdfs:label "Organization"@en . -# -# http://xmlns.com/foaf/0.1/Agent - - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Agent"@en . -# -# http://xmlns.com/foaf/0.1/Person - - a owl:Class ; - rdfs:subClassOf ; - rdfs:isDefinedBy ; - rdfs:label "Person"@en . -# -# https://saref.etsi.org/saref4city#AdministrativeArea - -s4city:AdministrativeArea a owl:Class ; - rdfs:subClassOf geosp:Feature ; - rdfs:comment "An administrative division, unit, entity, area or region, also referred to as a subnational entity, constituent unit, or country subdivision, is a portion of a country or other region delineated for the purpose of administration. (https://en.wikipedia.org/wiki/Administrative_division)"@en ; - rdfs:label "Administrative area"@en . -# -# https://saref.etsi.org/saref4city#Agent - -s4city:Agent a owl:Class ; - rdfs:subClassOf , - [ a owl:Restriction ; - owl:onProperty cpsv:provides ; - owl:allValuesFrom s4city:PublicService - ] , - - [ a owl:Restriction ; - owl:onProperty cpsv:uses ; - owl:allValuesFrom s4city:PublicService ] . - -s4city:Agent rdfs:comment "An agent making an action in the context of a city. An agent could be a person, software, etc."@en ; - rdfs:label "Agent"@en . -# -# https://saref.etsi.org/saref4city#City - -s4city:City a owl:Class ; - rdfs:subClassOf s4city:AdministrativeArea ; - rdfs:comment "A city is a large human settlement. A city is distinguished from other human settlements by its relatively great size, but also by its functions and its special symbolic status, which may be conferred by a central authority. (https://en.wikipedia.org/wiki/City)"@en ; - rdfs:label "City"@en . -# -# https://saref.etsi.org/saref4city#CityObject - -s4city:CityObject a owl:Class ; - rdfs:subClassOf geosp:Feature ; - rdfs:comment "Generic class for describing city objects."@en ; - rdfs:label "City object"@en . -# -# https://saref.etsi.org/saref4city#Country - -s4city:Country a owl:Class ; - rdfs:subClassOf s4city:AdministrativeArea ; - rdfs:comment "A country is a region that is identified as a distinct national entity in political geography. (https://en.wikipedia.org/wiki/Country)"@en ; - rdfs:label "Country"@en . -# -# https://saref.etsi.org/saref4city#District - -s4city:District a owl:Class ; - rdfs:subClassOf s4city:AdministrativeArea ; - rdfs:comment "A district is a type of administrative division that, in some countries, is managed by local government. Across the world, areas known as \"districts\" vary greatly in size, spanning regions or counties, several municipalities, subdivisions of municipalities, school district, or political district. (https://en.wikipedia.org/wiki/District)"@en ; - rdfs:label "District"@en . -# -# https://saref.etsi.org/saref4city#Event - -s4city:Event a owl:Class ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4city:hasAccesibility ; - owl:allValuesFrom ] , - - [ a owl:Restriction ; - owl:onProperty s4city:isOrganizedBy ; - owl:allValuesFrom s4city:Agent ] , - - [ a owl:Restriction ; - owl:onProperty s4city:isSubEventOf ; - owl:allValuesFrom s4city:Event ] , - - [ a owl:Restriction ; - owl:onProperty s4city:takesPlaceAtFacility ; - owl:allValuesFrom s4city:Facility ] , - - [ a owl:Restriction ; - owl:onProperty s4city:takesPlaceAtTime ; - owl:allValuesFrom time:TemporalEntity ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasName ; - owl:allValuesFrom rdfs:Literal ]. - -s4city:Event rdfs:comment "Temporary and scheduled event, like a festival or competition. (Definition taken from Wikidata)"@en ; - rdfs:label "Event"@en ; - rdfs:seeAlso . -# -# https://saref.etsi.org/saref4city#Facility - -s4city:Facility a owl:Class ; - rdfs:subClassOf geosp:Feature ; - rdfs:comment "A place, amenity, or piece of equipment provided for a particular purpose. (Definition taken from https://en.oxforddictionaries.com/definition/facility)"@en ; - rdfs:label "Facility"@en . -# -# https://saref.etsi.org/saref4city#KeyPerformanceIndicator - -s4city:KeyPerformanceIndicator a owl:Class ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4city:hasCalculationPeriod ; - owl:allValuesFrom time:TemporalEntity ] , - - [ a owl:Restriction ; - owl:onProperty s4city:isKPIOf ; - owl:allValuesFrom saref:FeatureOfInterest ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:allValuesFrom rdfs:Literal ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasName ; - owl:allValuesFrom rdfs:Literal ] . - -s4city:KeyPerformanceIndicator rdfs:comment "A Key Performance Indicator (KPI) is a type of performance measurement. KPIs evaluate the success of an organization or of a particular activity in which it engages. (Definition taken from FIWARE)"@en ; - rdfs:label "Key Performance Indicator"@en ; - rdfs:seeAlso . -# -# https://saref.etsi.org/saref4city#KeyPerformanceIndicatorAssessment - -s4city:KeyPerformanceIndicatorAssessment a owl:Class ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4city:assesses ; - owl:allValuesFrom saref:FeatureOfInterest ] , - - [ a owl:Restriction ; - owl:onProperty s4city:isAssessedBy ; - owl:allValuesFrom s4city:Agent ] , - - [ a owl:Restriction ; - owl:onProperty s4city:isDerivedFrom ; - owl:allValuesFrom saref:Measurement ] , - - [ a owl:Restriction ; - owl:onProperty s4city:quantifiesKPI ; - owl:allValuesFrom s4city:KeyPerformanceIndicator ] , - - [ a owl:Restriction ; - owl:onProperty s4city:refersToTime ; - owl:allValuesFrom time:TemporalEntity ] , - - [ a owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:allValuesFrom saref:UnitOfMeasure ] , - - [ a owl:Restriction ; - owl:onProperty s4city:hasCreationDate ; - owl:allValuesFrom xsd:dateTime ] , - - [ a owl:Restriction ; - owl:onProperty s4city:hasExpirationDate ; - owl:allValuesFrom xsd:dateTime ] , - - [ a owl:Restriction ; - owl:onProperty s4city:hasLastUpdateDate ; - owl:allValuesFrom xsd:dateTime ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:allValuesFrom rdfs:Literal ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasName ; - owl:allValuesFrom rdfs:Literal ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasValue ; - owl:cardinality "1"^^xsd:nonNegativeInteger ] . - -s4city:KeyPerformanceIndicatorAssessment rdfs:comment "A Key Performance Indicator assessment represents the assessment of a KPI calculated by a given agent in a given time."@en ; - rdfs:label "Key performance indicator assessment"@en . -# -# https://saref.etsi.org/saref4city#Neighbourhood - -s4city:Neighbourhood a owl:Class ; - rdfs:subClassOf s4city:AdministrativeArea ; - rdfs:comment "A neighbourhood (British English), or neighborhood (American English; see spelling differences), is a geographically localised community within a larger city, town, suburb or rural area. (https://en.wikipedia.org/wiki/Neighbourhood)"@en ; - rdfs:label "Neighbourhood"@en . -# -# https://saref.etsi.org/saref4city#PublicAdministration - -s4city:PublicAdministration a owl:Class ; - rdfs:subClassOf ; - rdfs:comment "Public leadership of public affairs directly responsible for executive action. (Definition taken from wikidata)"@en ; - rdfs:label "Public administration"@en ; - rdfs:seeAlso . -# -# https://saref.etsi.org/saref4city#PublicService - -s4city:PublicService a owl:Class ; - rdfs:subClassOf cpsv:PublicService , - [ a owl:Restriction ; - owl:onProperty cpsv:physicallyAvailableAt ; - owl:allValuesFrom s4city:AdministrativeArea ] , - - [ a owl:Restriction ; - owl:onProperty s4city:involvesFacility ; - owl:allValuesFrom s4city:Facility ] , - - [ a owl:Restriction ; - owl:onProperty s4city:isAvailableInLanguage ; - owl:allValuesFrom dcterms:LinguisticSystem ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:allValuesFrom rdfs:Literal ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasName ; - owl:allValuesFrom rdfs:Literal ] . - -s4city:PublicService rdfs:comment "Public service is a service which is provided by government either directly (through the public sector) or by financing provision of services. (Definition taken from Wikipedia)"@en ; - rdfs:label "Public service"@en ; - rdfs:seeAlso . -# -# https://w3id.org/saref#Actuator - -saref:Actuator a owl:Class ; - rdfs:subClassOf saref:Device ; - rdfs:comment "A device responsible for moving or controlling a mechanism or system"@en ; - rdfs:isDefinedBy ; - rdfs:label "Actuator"@en . -# -# https://w3id.org/saref#Device - -saref:Device a owl:Class ; - rdfs:subClassOf geosp:Feature , - [ a owl:Restriction ; - owl:onProperty saref:controlsProperty ; - owl:allValuesFrom saref:Property ] , - - [ a owl:Restriction ; - owl:onProperty saref:makesMeasurement ; - owl:allValuesFrom saref:Measurement ] , - - [ a owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:allValuesFrom saref:Property ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ] . - -saref:Device rdfs:comment "A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function. Devices can be structured in categories (subclasses) that reflect the different domain in which a device is used, e.g., smart appliances domain (subclass FunctionRelated) vs. building domain (subclass BuildingRelated) vs. smart grid domain (subclass EnergyRelated). New categories can be defined,if needed, to reflect other differences, for example different points of view, such as the point of view of the device's user vs. the point of view of the device's manufacturer. We propose a list of devices that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "Device"^^xsd:string . -# -# https://w3id.org/saref#FeatureOfInterest - -saref:FeatureOfInterest a owl:Class ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4city:hasKPI ; - owl:allValuesFrom s4city:KeyPerformanceIndicator ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasProperty ; - owl:allValuesFrom saref:Property ] , - - [ a owl:Restriction ; - owl:onProperty saref:isFeatureOfInterestOf ; - owl:allValuesFrom saref:Measurement ] . -# -# https://w3id.org/saref#Measurement - -saref:Measurement a owl:Class ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFeatureOfInterest ; - owl:allValuesFrom saref:FeatureOfInterest ] , - - [ a owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:allValuesFrom saref:UnitOfMeasure ] , - - [ a owl:Restriction ; - owl:onProperty saref:measurementMadeBy ; - owl:allValuesFrom saref:Device ] , - - [ a owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:allValuesFrom saref:Property ] , - - [ a owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:UnitOfMeasure ] , - - [ a owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Property ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasTimestamp ; - owl:allValuesFrom xsd:dateTime ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasValue ; - owl:cardinality "1"^^xsd:nonNegativeInteger ] . -# -saref:Measurement owl:disjointWith saref:Property , saref:UnitOfMeasure ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:isDefinedBy ; - rdfs:label "Measurement"@en . -# -# https://w3id.org/saref#Property - -saref:Property a owl:Class ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:isControlledByDevice ; - owl:allValuesFrom saref:Device ] , - - [ a owl:Restriction ; - owl:onProperty saref:isMeasuredByDevice ; - owl:allValuesFrom saref:Device ] , - - [ a owl:Restriction ; - owl:onProperty saref:isPropertyOf ; - owl:allValuesFrom saref:FeatureOfInterest ] , - - [ a owl:Restriction ; - owl:onProperty saref:relatesToMeasurement ; - owl:allValuesFrom saref:Measurement ] . - -saref:Property owl:disjointWith saref:UnitOfMeasure ; - rdfs:comment "An aspect of an entity that can be observable by a sensor."@en , "Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:isDefinedBy ; - rdfs:label "Property"@en . -# -# https://w3id.org/saref#Sensor - -saref:Sensor a owl:Class ; - rdfs:subClassOf saref:Device ; - rdfs:comment """A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. -A device that has category saref:Sensor and performs a saref:SensingFunction."""@en ; - rdfs:isDefinedBy ; - rdfs:label "Sensor"@en . -# -# https://w3id.org/saref#UnitOfMeasure - -saref:UnitOfMeasure a owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended."@en ; - rdfs:isDefinedBy ; - rdfs:label "Unit of measure"@en . -# -# -# -# ################################################################# -# # -# # Annotations -# # -# ################################################################# -# -# - -geo:location rdfs:comment """The relation between something and the point, - or other geometrical thing in space, where it is. For example, the realtionship between - a radio tower and a Point with a given lat and long. - Or a relationship between a park and its outline as a closed arc of points, or a road and - its location as a arc (a sequence of points). - Clearly in practice there will be limit to the accuracy of any such statement, but one would expect - an accuracy appropriate for the size of the object and uses such as mapping . - """ ; - rdfs:label "location"@en . - diff --git a/src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/saref4city.html b/src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/saref4city.html deleted file mode 100644 index cb126aa..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/saref4city.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - SAREF extension for Smart City

    -

    Official ETSI documentation for SAREF4CITY v1.1.1
    This page will soon contain the documentation of the SAREF4CITY ontology v1.1.1

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    The documentation of SAREF4CITY v1.1.1 will be available here soon. The source of the ontology are available as Turtle or RDF/XML Visualize it with VOWL

    -
    -
    -
    -
    -

    This ontology extends the SAREF ontology for the Smart City domain. This work has been developed in the context of the STF 534 (https://portal.etsi.org/STF/STFs/STFHomePages/STF534.aspx), which was established with the goal to create three SAREF extensions, one of them for the Smart City domain.

    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/saref4city.n3 b/src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/saref4city.n3 deleted file mode 100644 index d1c4356..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/saref4city.n3 +++ /dev/null @@ -1,608 +0,0 @@ -@prefix s4city: . -@prefix owl: . -@prefix saref: . -@prefix xsd: . -@prefix rdfs: . -@prefix geo: . -@prefix geosp: . -@prefix rdf: . -@prefix xml: . -@prefix dcterms: . -@prefix time: . -@prefix vann: . -@prefix prov: . -@prefix cpsv: . - -s4city:isAvailableInLanguage - a owl:ObjectProperty ; - rdfs:label "is available in language"@en . - -s4city: a owl:Ontology ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:contributor , , ; - dcterms:description "This ontology extends the SAREF ontology for the Smart City domain. This work has been developed in the context of the STF 534 (https://portal.etsi.org/STF/STFs/STFHomePages/STF534.aspx), which was established with the goal to create three SAREF extensions, one of them for the Smart City domain."@en ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:publisher ; - dcterms:source , ; - dcterms:title "SAREF extension for Smart City"@en ; - vann:preferredNamespacePrefix "s4city" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4city#" ; - owl:versionIRI ; - owl:versionInfo "1.1.1" . - -s4city:CityObject a owl:Class ; - rdfs:comment "Generic class for describing city objects."@en ; - rdfs:label "City object"@en ; - rdfs:subClassOf geosp:Feature . - -saref:isMeasuredIn a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is measured in"@en . - -s4city:PublicAdministration - a owl:Class ; - rdfs:comment "Public leadership of public affairs directly responsible for executive action. (Definition taken from wikidata)"@en ; - rdfs:label "Public administration"@en ; - rdfs:seeAlso ; - rdfs:subClassOf . - -saref:makesMeasurement - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "makes measurement"@en ; - owl:inverseOf saref:measurementMadeBy . - -geosp:sfWithin a owl:ObjectProperty ; - rdfs:comment "Exists if the subject SpatialObject is spatially within the object SpatialObject. DE-9IM: T*F**F***"@en ; - rdfs:isDefinedBy ; - rdfs:label "within"@en . - -time:Instant a owl:Class ; - rdfs:comment "A temporal entity with zero extent or duration"@en ; - rdfs:isDefinedBy time: ; - rdfs:label "Instant"@en ; - rdfs:subClassOf time:TemporalEntity . - -s4city:isOrganizedBy a owl:ObjectProperty ; - rdfs:label "is organized by"@en . - -saref:isPropertyOf a owl:ObjectProperty ; - rdfs:label "is property of"@en . - -saref:Measurement a owl:Class ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Measurement"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:relatesToProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasValue - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Device ; - owl:onProperty saref:measurementMadeBy - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:FeatureOfInterest ; - owl:onProperty saref:hasFeatureOfInterest - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:Property ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - owl:disjointWith saref:Property , saref:UnitOfMeasure . - -s4city:isDerivedFrom a owl:ObjectProperty ; - rdfs:label "is derived from"@en . - -saref:isMeasuredByDevice - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is measured by device"@en . - -s4city:Event a owl:Class ; - rdfs:comment "Temporary and scheduled event, like a festival or competition. (Definition taken from Wikidata)"@en ; - rdfs:label "Event"@en ; - rdfs:seeAlso ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:Event ; - owl:onProperty s4city:isSubEventOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:Agent ; - owl:onProperty s4city:isOrganizedBy - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom rdfs:Literal ; - owl:onProperty saref:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:Facility ; - owl:onProperty s4city:takesPlaceAtFacility - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom time:TemporalEntity ; - owl:onProperty s4city:takesPlaceAtTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom ; - owl:onProperty s4city:hasAccesibility - ] . - -s4city:hasKPI a owl:ObjectProperty ; - rdfs:label "has key performance indicator"@en ; - owl:inverseOf s4city:isKPIOf . - -vann:preferredNamespaceUri - a owl:AnnotationProperty . - -geosp:Feature a owl:Class ; - rdfs:comment "This class represents the top-level feature type. This class is equivalent to GFI_Feature defined in ISO 19156:2011, and it is superclass of all feature types."@en ; - rdfs:isDefinedBy ; - rdfs:label "Feature"@en ; - rdfs:subClassOf geosp:SpatialObject ; - owl:disjointWith geosp:Geometry . - -s4city:hasCalculationPeriod - a owl:ObjectProperty ; - rdfs:label "has calculation period"@en . - -cpsv:provides a owl:ObjectProperty ; - rdfs:comment "The provides property links an Agent to a Public Service for which it is responsible. Whether it provides the service directly or outsources it is not relevant, the Agent that provides the service is the one that is ultimately responsible for its provision."@en ; - rdfs:isDefinedBy cpsv: ; - rdfs:label "provides"@en . - -s4city:takesPlaceAtFacility - a owl:ObjectProperty ; - rdfs:label "takes place at facility"@en . - -geo:lat a rdf:Property ; - rdfs:comment "The WGS84 latitude of a SpatialThing (decimal degrees)." ; - rdfs:domain geo:SpatialThing ; - rdfs:label "latitude" . - -geo:Point a owl:Class ; - rdfs:comment "A point, typically described using a coordinate system relative to Earth, such as WGS84." , " \nUniquely identified by lat/long/alt. i.e.\n\nspaciallyIntersects(P1, P2) :- lat(P1, LAT), long(P1, LONG), alt(P1, ALT),\n lat(P2, LAT), long(P2, LONG), alt(P2, ALT).\n\nsameThing(P1, P2) :- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2).\n " ; - rdfs:isDefinedBy geo: ; - rdfs:label "Point"@en ; - rdfs:subClassOf geosp:Geometry . - -s4city:Facility a owl:Class ; - rdfs:comment "A place, amenity, or piece of equipment provided for a particular purpose. (Definition taken from https://en.oxforddictionaries.com/definition/facility)"@en ; - rdfs:label "Facility"@en ; - rdfs:subClassOf geosp:Feature . - -dcterms:creator a owl:AnnotationProperty . - -s4city:hasExpirationDate - a owl:DatatypeProperty ; - rdfs:label "has expiration date"@en ; - rdfs:range xsd:dateTime . - -saref:hasTimestamp a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has timestamp"@en . - -dcterms:title a owl:AnnotationProperty . - -cpsv:PublicService a owl:Class ; - rdfs:comment "This class represents the service itself. A public service is the capacity to carry out a procedure and exists whether it is used or not. It is a set of deeds and acts performed by or on behalf of a public agency for the benefit of a citizen, a business or another public agency."@en ; - rdfs:isDefinedBy cpsv: ; - rdfs:label "Public Service"@en . - -geosp:hasGeometry a owl:ObjectProperty ; - rdfs:comment "A spatial representation for a given feature."@en ; - rdfs:isDefinedBy geosp: ; - rdfs:label "has geometry"@en . - -geosp:sfContains a owl:ObjectProperty ; - rdfs:comment "Exists if the subject SpatialObject spatially contains the object SpatialObject. DE-9IM: T*****FF*"@en ; - rdfs:isDefinedBy ; - rdfs:label "contains"@en . - -s4city:assesses a owl:ObjectProperty ; - rdfs:label "assesses"@en . - -s4city:refersToTime a owl:ObjectProperty ; - rdfs:label "refers to time"@en . - -geo:location a owl:ObjectProperty , rdf:Property ; - rdfs:comment "The relation between something and the point, \n or other geometrical thing in space, where it is. For example, the realtionship between\n a radio tower and a Point with a given lat and long.\n Or a relationship between a park and its outline as a closed arc of points, or a road and\n its location as a arc (a sequence of points).\n Clearly in practice there will be limit to the accuracy of any such statement, but one would expect\n an accuracy appropriate for the size of the object and uses such as mapping .\n " ; - rdfs:label "location"@en . - -saref:measuresProperty - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "measures property"@en . - -dcterms:contributor a owl:AnnotationProperty . - - - a owl:Class ; - rdfs:isDefinedBy . - -s4city:Neighbourhood a owl:Class ; - rdfs:comment "A neighbourhood (British English), or neighborhood (American English; see spelling differences), is a geographically localised community within a larger city, town, suburb or rural area. (https://en.wikipedia.org/wiki/Neighbourhood)"@en ; - rdfs:label "Neighbourhood"@en ; - rdfs:subClassOf s4city:AdministrativeArea . - - - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Organization"@en ; - rdfs:subClassOf . - -s4city:hasAccesibility - a owl:ObjectProperty ; - rdfs:label "has accesibility"@en . - -s4city:refersToFeature - a owl:ObjectProperty ; - rdfs:comment "Relation between a KPI assessment and the geographical feature it refers to"@en ; - rdfs:label "refers to feature"@en . - -s4city:isKPIOf a owl:ObjectProperty ; - rdfs:label "is key performance indicator of"@en . - -saref:hasValue a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has value"@en . - -geo:long a rdf:Property ; - rdfs:comment "The WGS84 longitude of a SpatialThing (decimal degrees)." ; - rdfs:domain geo:SpatialThing ; - rdfs:label "longitude" . - -s4city:KeyPerformanceIndicator - a owl:Class ; - rdfs:comment "A Key Performance Indicator (KPI) is a type of performance measurement. KPIs evaluate the success of an organization or of a particular activity in which it engages. (Definition taken from FIWARE)"@en ; - rdfs:label "Key Performance Indicator"@en ; - rdfs:seeAlso ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom rdfs:Literal ; - owl:onProperty saref:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom rdfs:Literal ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:FeatureOfInterest ; - owl:onProperty s4city:isKPIOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom time:TemporalEntity ; - owl:onProperty s4city:hasCalculationPeriod - ] . - -s4city:involvesFacility - a owl:ObjectProperty ; - rdfs:label "involves facility"@en . - -time:TemporalEntity a owl:Class ; - rdfs:comment "A temporal interval or instant."@en ; - rdfs:isDefinedBy time: ; - rdfs:label "Temporal entity"@en . - -saref:hasProperty a owl:ObjectProperty ; - rdfs:label "has property"@en ; - owl:inverseOf saref:isPropertyOf . - -saref:FeatureOfInterest - a owl:Class ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:isFeatureOfInterestOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:hasProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:KeyPerformanceIndicator ; - owl:onProperty s4city:hasKPI - ] . - -geo:alt a rdf:Property ; - rdfs:comment "The WGS84 altitude of a SpatialThing (decimal meters above the local reference ellipsoid)." ; - rdfs:domain geo:SpatialThing ; - rdfs:label "altitude" . - -saref:hasDescription a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has description"@en . - -saref:isFeatureOfInterestOf - a owl:ObjectProperty ; - rdfs:label "is feature of interest of"@en . - - - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Agent"@en . - -s4city:AdministrativeArea - a owl:Class ; - rdfs:comment "An administrative division, unit, entity, area or region, also referred to as a subnational entity, constituent unit, or country subdivision, is a portion of a country or other region delineated for the purpose of administration. (https://en.wikipedia.org/wiki/Administrative_division)"@en ; - rdfs:label "Administrative area"@en ; - rdfs:subClassOf geosp:Feature . - -saref:controlsProperty - a owl:ObjectProperty ; - rdfs:label "controls property"@en . - -saref:hasFeatureOfInterest - a owl:ObjectProperty ; - rdfs:label "has feature of interest"@en ; - owl:inverseOf saref:isFeatureOfInterestOf . - -saref:relatesToMeasurement - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "relates to measurement"@en . - -s4city:Agent a owl:Class ; - rdfs:comment "An agent making an action in the context of a city. An agent could be a person, software, etc."@en ; - rdfs:label "Agent"@en ; - rdfs:subClassOf ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:PublicService ; - owl:onProperty cpsv:uses - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:PublicService ; - owl:onProperty cpsv:provides - ] . - -s4city:quantifiesKPI a owl:ObjectProperty ; - rdfs:label "quantifies KPI"@en . - -saref:UnitOfMeasure a owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Unit of measure"@en . - -saref:relatesToProperty - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "relates to property"@en . - -cpsv:physicallyAvailableAt - a owl:ObjectProperty ; - rdfs:comment "A physical location at which a user may interact with the Public Service."@en ; - rdfs:isDefinedBy cpsv: ; - rdfs:label "physically available at"@en . - -geosp:Geometry a owl:Class ; - rdfs:comment "The class represents the top-level geometry type. This class is equivalent to the UML class GM_Object defined in ISO 19107, and it is superclass of all geometry types."@en ; - rdfs:isDefinedBy ; - rdfs:label "Geometry"@en ; - rdfs:subClassOf geosp:SpatialObject . - -s4city:hasLastUpdateDate - a owl:DatatypeProperty ; - rdfs:label "has last update date"@en ; - rdfs:range xsd:dateTime . - -vann:preferredNamespacePrefix - a owl:AnnotationProperty . - -saref:hasName a owl:DatatypeProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "has name"@en . - -time:Interval a owl:Class ; - rdfs:isDefinedBy time: ; - rdfs:label "Time interval"@en , "A temporal entity with an extent or duration"@en ; - rdfs:subClassOf time:TemporalEntity . - - - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Person"@en ; - rdfs:subClassOf . - -s4city:Country a owl:Class ; - rdfs:comment "A country is a region that is identified as a distinct national entity in political geography. (https://en.wikipedia.org/wiki/Country)"@en ; - rdfs:label "Country"@en ; - rdfs:subClassOf s4city:AdministrativeArea . - -s4city:takesPlaceAtTime - a owl:ObjectProperty ; - rdfs:label "takes place at time"@en . - -s4city:City a owl:Class ; - rdfs:comment "A city is a large human settlement. A city is distinguished from other human settlements by its relatively great size, but also by its functions and its special symbolic status, which may be conferred by a central authority. (https://en.wikipedia.org/wiki/City)"@en ; - rdfs:label "City"@en ; - rdfs:subClassOf s4city:AdministrativeArea . - -s4city:hasCreationDate - a owl:DatatypeProperty ; - rdfs:label "has creation date"@en ; - rdfs:range xsd:dateTime . - -geosp:SpatialObject a owl:Class ; - rdfs:comment "The class spatial-object represents everything that can have a spatial representation. It is superclass of feature and geometry."@en ; - rdfs:isDefinedBy ; - rdfs:label "SpatialObject"@en . - -dcterms:description a owl:AnnotationProperty . - -s4city:isSubEventOf a owl:ObjectProperty ; - rdfs:label "is subevent of"@en . - -saref:Sensor a owl:Class ; - rdfs:comment "A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes.\nA device that has category saref:Sensor and performs a saref:SensingFunction."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Sensor"@en ; - rdfs:subClassOf saref:Device . - -saref:Property a owl:Class ; - rdfs:comment "Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended." , "An aspect of an entity that can be observable by a sensor."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Property"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Device ; - owl:onProperty saref:isMeasuredByDevice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:relatesToMeasurement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Device ; - owl:onProperty saref:isControlledByDevice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:FeatureOfInterest ; - owl:onProperty saref:isPropertyOf - ] ; - owl:disjointWith saref:UnitOfMeasure . - -s4city:District a owl:Class ; - rdfs:comment "A district is a type of administrative division that, in some countries, is managed by local government. Across the world, areas known as \"districts\" vary greatly in size, spanning regions or counties, several municipalities, subdivisions of municipalities, school district, or political district. (https://en.wikipedia.org/wiki/District)"@en ; - rdfs:label "District"@en ; - rdfs:subClassOf s4city:AdministrativeArea . - -s4city:KeyPerformanceIndicatorAssessment - a owl:Class ; - rdfs:comment "A Key Performance Indicator assessment represents the assessment of a KPI calculated by a given agent in a given time."@en ; - rdfs:label "Key performance indicator assessment"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom rdfs:Literal ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasValue - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty s4city:hasCreationDate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:Agent ; - owl:onProperty s4city:isAssessedBy - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty s4city:isDerivedFrom - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty s4city:hasExpirationDate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:KeyPerformanceIndicator ; - owl:onProperty s4city:quantifiesKPI - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom time:TemporalEntity ; - owl:onProperty s4city:refersToTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom rdfs:Literal ; - owl:onProperty saref:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty s4city:hasLastUpdateDate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:FeatureOfInterest ; - owl:onProperty s4city:assesses - ] . - -s4city:PublicService a owl:Class ; - rdfs:comment "Public service is a service which is provided by government either directly (through the public sector) or by financing provision of services. (Definition taken from Wikipedia)"@en ; - rdfs:label "Public service"@en ; - rdfs:seeAlso ; - rdfs:subClassOf cpsv:PublicService ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom rdfs:Literal ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:AdministrativeArea ; - owl:onProperty cpsv:physicallyAvailableAt - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom dcterms:LinguisticSystem ; - owl:onProperty s4city:isAvailableInLanguage - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4city:Facility ; - owl:onProperty s4city:involvesFacility - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom rdfs:Literal ; - owl:onProperty saref:hasName - ] . - -dcterms:LinguisticSystem - a owl:Class . - -saref:measurementMadeBy - a owl:ObjectProperty . - -saref:Actuator a owl:Class ; - rdfs:comment "A device responsible for moving or controlling a mechanism or system"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Actuator"@en ; - rdfs:subClassOf saref:Device . - -cpsv:uses a owl:ObjectProperty ; - rdfs:comment "The uses property links an Agent to a Public Service in which it plays the specific role of user, meaning that it provides the input and receives the output but does not play any direct role in providing the service. This will typically be an individual citizen or an outside organisation."@en ; - rdfs:isDefinedBy cpsv: ; - rdfs:label "uses"@en . - -s4city:isAssessedBy a owl:ObjectProperty ; - rdfs:label "is assessed by"@en . - -saref:isControlledByDevice - a owl:ObjectProperty ; - rdfs:isDefinedBy saref: ; - rdfs:label "is controlled by device"@en . - -saref:Device a owl:Class ; - rdfs:comment "A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function. Devices can be structured in categories (subclasses) that reflect the different domain in which a device is used, e.g., smart appliances domain (subclass FunctionRelated) vs. building domain (subclass BuildingRelated) vs. smart grid domain (subclass EnergyRelated). New categories can be defined,if needed, to reflect other differences, for example different points of view, such as the point of view of the device's user vs. the point of view of the device's manufacturer. We propose a list of devices that are relevant for the purpose of SAREF, but this list can be extended." ; - rdfs:label "Device" ; - rdfs:subClassOf geosp:Feature ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:measuresProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:makesMeasurement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:controlsProperty - ] . diff --git a/src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/saref4city.rdf b/src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/saref4city.rdf deleted file mode 100644 index 32cdf95..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/saref4city.rdf +++ /dev/null @@ -1,857 +0,0 @@ - - - - - - - - - s4city - This ontology extends the SAREF ontology for the Smart City domain. This work has been developed in the context of the STF 534 (https://portal.etsi.org/STF/STFs/STFHomePages/STF534.aspx), which was established with the goal to create three SAREF extensions, one of them for the Smart City domain. - - 1.1.1 - https://saref.etsi.org/saref4city# - This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge. - - SAREF extension for Smart City - 2019-06-11 - - - Public Service - - This class represents the service itself. A public service is the capacity to carry out a procedure and exists whether it is used or not. It is a set of deeds and acts performed by or on behalf of a public agency for the benefit of a citizen, a business or another public agency. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Public service is a service which is provided by government either directly (through the public sector) or by financing provision of services. (Definition taken from Wikipedia) - Public service - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Key performance indicator assessment - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A Key Performance Indicator assessment represents the assessment of a KPI calculated by a given agent in a given time. - - - - - - - - - - - - - City - A city is a large human settlement. A city is distinguished from other human settlements by its relatively great size, but also by its functions and its special symbolic status, which may be conferred by a central authority. (https://en.wikipedia.org/wiki/City) - - - - - - - Public administration - Public leadership of public affairs directly responsible for executive action. (Definition taken from wikidata) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Temporary and scheduled event, like a festival or competition. (Definition taken from Wikidata) - Event - - - Actuator - - A device responsible for moving or controlling a mechanism or system - - - - - - District - A district is a type of administrative division that, in some countries, is managed by local government. Across the world, areas known as "districts" vary greatly in size, spanning regions or counties, several municipalities, subdivisions of municipalities, school district, or political district. (https://en.wikipedia.org/wiki/District) - - - - - - Temporal entity - - A temporal interval or instant. - - - SpatialObject - - The class spatial-object represents everything that can have a spatial representation. It is superclass of feature and geometry. - - - Administrative area - An administrative division, unit, entity, area or region, also referred to as a subnational entity, constituent unit, or country subdivision, is a portion of a country or other region delineated for the purpose of administration. (https://en.wikipedia.org/wiki/Administrative_division) - - - - - - Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - Measurement - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - Time interval - A temporal entity with an extent or duration - - - - - Facility - A place, amenity, or piece of equipment provided for a particular purpose. (Definition taken from https://en.oxforddictionaries.com/definition/facility) - - - - - - Organization - - - - - - - Neighbourhood - A neighbourhood (British English), or neighborhood (American English; see spelling differences), is a geographically localised community within a larger city, town, suburb or rural area. (https://en.wikipedia.org/wiki/Neighbourhood) - - - - Unit of measure - - The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called "watt". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended. - - - Feature - - This class represents the top-level feature type. This class is equivalent to GFI_Feature defined in ISO 19156:2011, and it is superclass of all feature types. - - - - - - - Country - A country is a region that is identified as a distinct national entity in political geography. (https://en.wikipedia.org/wiki/Country) - - - - Device - A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function. Devices can be structured in categories (subclasses) that reflect the different domain in which a device is used, e.g., smart appliances domain (subclass FunctionRelated) vs. building domain (subclass BuildingRelated) vs. smart grid domain (subclass EnergyRelated). New categories can be defined,if needed, to reflect other differences, for example different points of view, such as the point of view of the device's user vs. the point of view of the device's manufacturer. We propose a list of devices that are relevant for the purpose of SAREF, but this list can be extended. - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Agent - An agent making an action in the context of a city. An agent could be a person, software, etc. - - - - - - - - - - - - - - - - - - - - - - Person - - - - - - - Geometry - - The class represents the top-level geometry type. This class is equivalent to the UML class GM_Object defined in ISO 19107, and it is superclass of all geometry types. - - - - Instant - - A temporal entity with zero extent or duration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Key Performance Indicator - A Key Performance Indicator (KPI) is a type of performance measurement. KPIs evaluate the success of an organization or of a particular activity in which it engages. (Definition taken from FIWARE) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - City object - Generic class for describing city objects. - - - - Agent - - - - Sensor - - A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. -A device that has category saref:Sensor and performs a saref:SensingFunction. - - - - Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended. - - - - - - - - - - - - - - - - - - Property - An aspect of an entity that can be observable by a sensor. - - - - - - - - - - - - - - - - - - - - Point - - A point, typically described using a coordinate system relative to Earth, such as WGS84. - -Uniquely identified by lat/long/alt. i.e. - -spaciallyIntersects(P1, P2) :- lat(P1, LAT), long(P1, LONG), alt(P1, ALT), - lat(P2, LAT), long(P2, LONG), alt(P2, ALT). - -sameThing(P1, P2) :- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2). - - - - - location - The relation between something and the point, - or other geometrical thing in space, where it is. For example, the realtionship between - a radio tower and a Point with a given lat and long. - Or a relationship between a park and its outline as a closed arc of points, or a road and - its location as a arc (a sequence of points). - Clearly in practice there will be limit to the accuracy of any such statement, but one would expect - an accuracy appropriate for the size of the object and uses such as mapping . - - - - - controls property - - - refers to feature - Relation between a KPI assessment and the geographical feature it refers to - - - is subevent of - - - involves facility - - - has geometry - - A spatial representation for a given feature. - - - measures property - - - - is key performance indicator of - - - contains - - Exists if the subject SpatialObject spatially contains the object SpatialObject. DE-9IM: T*****FF* - - - is feature of interest of - - - takes place at time - - - makes measurement - - - - - within - - Exists if the subject SpatialObject is spatially within the object SpatialObject. DE-9IM: T*F**F*** - - - is organized by - - - is available in language - - - uses - - The uses property links an Agent to a Public Service in which it plays the specific role of user, meaning that it provides the input and receives the output but does not play any direct role in providing the service. This will typically be an individual citizen or an outside organisation. - - - physically available at - - A physical location at which a user may interact with the Public Service. - - - is property of - - - takes place at facility - - - has feature of interest - - - - assesses - - - has accesibility - - - is controlled by device - - - - refers to time - - - is measured by device - - - - is measured in - - - - is derived from - - - has calculation period - - - has property - - - - provides - - The provides property links an Agent to a Public Service for which it is responsible. Whether it provides the service directly or outsources it is not relevant, the Agent that provides the service is the one that is ultimately responsible for its provision. - - - relates to measurement - - - - quantifies KPI - - - is assessed by - - - relates to property - - - - has key performance indicator - - - - - latitude - The WGS84 latitude of a SpatialThing (decimal degrees). - - - - longitude - The WGS84 longitude of a SpatialThing (decimal degrees). - - - - altitude - The WGS84 altitude of a SpatialThing (decimal meters above the local reference ellipsoid). - - - has value - - - - has expiration date - - - - has creation date - - - - has description - - - - has timestamp - - - - has last update date - - - - has name - - - - - - - - - diff --git a/src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/saref4city.ttl b/src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/saref4city.ttl deleted file mode 100644 index 1e640ac..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/saref4city.ttl +++ /dev/null @@ -1,817 +0,0 @@ -@prefix geo: . -@prefix owl: . -@prefix rdf: . -@prefix xml: . -@prefix xsd: . -@prefix cpsv: . -@prefix prov: . -@prefix rdfs: . -@prefix time: . -@prefix vann: . -@prefix geosp: . -@prefix saref: . -@prefix s4city: . -@prefix dcterms: . - - a owl:Ontology ; - dcterms:title "SAREF extension for Smart City"@en ; - owl:versionInfo "1.1.1" ; - owl:versionIRI ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor ; - vann:preferredNamespacePrefix "s4city" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4city#" ; - dcterms:license ; - dcterms:source ; - dcterms:source ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:description "This ontology extends the SAREF ontology for the Smart City domain. This work has been developed in the context of the STF 534 (https://portal.etsi.org/STF/STFs/STFHomePages/STF534.aspx), which was established with the goal to create three SAREF extensions, one of them for the Smart City domain."@en ; - dcterms:publisher . - -# -# -# ################################################################# -# # -# # Annotation properties -# # -# ################################################################# -# -# -# http://purl.org/dc/elements/1.1/contributor - -dcterms:contributor a owl:AnnotationProperty . -# -# http://purl.org/dc/elements/1.1/creator - -dcterms:creator a owl:AnnotationProperty . -# -# -# http://purl.org/dc/elements/1.1/description - -dcterms:description a owl:AnnotationProperty . -# -# http://purl.org/dc/elements/1.1/title - -dcterms:title a owl:AnnotationProperty . -# -# http://purl.org/vocab/vann/preferredNamespacePrefix - -vann:preferredNamespacePrefix a owl:AnnotationProperty . -# -# http://purl.org/vocab/vann/preferredNamespaceUri - -vann:preferredNamespaceUri a owl:AnnotationProperty . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#alt - -geo:alt a rdf:Property ; - rdfs:comment "The WGS84 altitude of a SpatialThing (decimal meters above the local reference ellipsoid)." ; - rdfs:label "altitude" ; - rdfs:domain geo:SpatialThing . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#lat - -geo:lat a rdf:Property ; - rdfs:comment "The WGS84 latitude of a SpatialThing (decimal degrees)." ; - rdfs:label "latitude" ; - rdfs:domain geo:SpatialThing . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#location - -geo:location a rdf:Property . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#long - -geo:long a rdf:Property ; - rdfs:comment "The WGS84 longitude of a SpatialThing (decimal degrees)." ; - rdfs:label "longitude" ; - rdfs:domain geo:SpatialThing . -# -# -# -# -# ################################################################# -# # -# # Object Properties -# # -# ################################################################# -# -# -# http://purl.org/vocab/cpsv#physicallyAvailableAt - -cpsv:physicallyAvailableAt a owl:ObjectProperty ; - rdfs:comment "A physical location at which a user may interact with the Public Service."@en ; - rdfs:isDefinedBy ; - rdfs:label "physically available at"@en . -# -# http://purl.org/vocab/cpsv#provides - -cpsv:provides a owl:ObjectProperty ; - rdfs:comment "The provides property links an Agent to a Public Service for which it is responsible. Whether it provides the service directly or outsources it is not relevant, the Agent that provides the service is the one that is ultimately responsible for its provision."@en ; - rdfs:isDefinedBy ; - rdfs:label "provides"@en . -# -# http://purl.org/vocab/cpsv#uses - -cpsv:uses a owl:ObjectProperty ; - rdfs:comment "The uses property links an Agent to a Public Service in which it plays the specific role of user, meaning that it provides the input and receives the output but does not play any direct role in providing the service. This will typically be an individual citizen or an outside organisation."@en ; - rdfs:isDefinedBy ; - rdfs:label "uses"@en . -# -# http://www.opengis.net/ont/geosparql#hasGeometry - -geosp:hasGeometry a owl:ObjectProperty ; - rdfs:comment "A spatial representation for a given feature."@en ; - rdfs:isDefinedBy ; - rdfs:label "has geometry"@en . -# -# http://www.opengis.net/ont/geosparql#sfContains - -geosp:sfContains a owl:ObjectProperty ; - rdfs:comment "Exists if the subject SpatialObject spatially contains the object SpatialObject. DE-9IM: T*****FF*"@en ; - rdfs:isDefinedBy ; - rdfs:label "contains"@en . -# -# http://www.opengis.net/ont/geosparql#sfWithin - -geosp:sfWithin a owl:ObjectProperty ; - rdfs:comment "Exists if the subject SpatialObject is spatially within the object SpatialObject. DE-9IM: T*F**F***"@en ; - rdfs:isDefinedBy ; - rdfs:label "within"@en . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#location - -geo:location a owl:ObjectProperty . -# -# https://saref.etsi.org/saref4city#assesses - -s4city:assesses a owl:ObjectProperty ; - rdfs:label "assesses"@en . -# -# https://saref.etsi.org/saref4city#hasAccesibility - -s4city:hasAccesibility a owl:ObjectProperty ; - rdfs:label "has accesibility"@en . -# -# https://saref.etsi.org/saref4city#hasCalculationPeriod - -s4city:hasCalculationPeriod a owl:ObjectProperty ; - rdfs:label "has calculation period"@en . -# -# https://saref.etsi.org/saref4city#hasKPI - -s4city:hasKPI a owl:ObjectProperty ; - owl:inverseOf s4city:isKPIOf ; - rdfs:label "has key performance indicator"@en . -# -# https://saref.etsi.org/saref4city#involvesFacility - -s4city:involvesFacility a owl:ObjectProperty ; - rdfs:label "involves facility"@en . -# -# https://saref.etsi.org/saref4city#isAssessedBy - -s4city:isAssessedBy a owl:ObjectProperty ; - rdfs:label "is assessed by"@en . -# -# https://saref.etsi.org/saref4city#isAvailableInLanguage - -s4city:isAvailableInLanguage a owl:ObjectProperty ; - rdfs:label "is available in language"@en . -# -# https://saref.etsi.org/saref4city#isDerivedFrom - -s4city:isDerivedFrom a owl:ObjectProperty ; - rdfs:label "is derived from"@en . -# -# https://saref.etsi.org/saref4city#isKPIOf - -s4city:isKPIOf a owl:ObjectProperty ; - rdfs:label "is key performance indicator of"@en . -# -# https://saref.etsi.org/saref4city#isOrganizedBy - -s4city:isOrganizedBy a owl:ObjectProperty ; - rdfs:label "is organized by"@en . -# -# https://saref.etsi.org/saref4city#isSubEventOf - -s4city:isSubEventOf a owl:ObjectProperty ; - rdfs:label "is subevent of"@en . -# -# https://saref.etsi.org/saref4city#quantifiesKPI - -s4city:quantifiesKPI a owl:ObjectProperty ; - rdfs:label "quantifies KPI"@en . -# -# https://saref.etsi.org/saref4city#refersToFeature - -s4city:refersToFeature a owl:ObjectProperty ; - rdfs:comment "Relation between a KPI assessment and the geographical feature it refers to"@en ; - rdfs:label "refers to feature"@en . -# -# https://saref.etsi.org/saref4city#refersToTime - -s4city:refersToTime a owl:ObjectProperty ; - rdfs:label "refers to time"@en . -# -# https://saref.etsi.org/saref4city#takesPlaceAtFacility - -s4city:takesPlaceAtFacility a owl:ObjectProperty ; - rdfs:label "takes place at facility"@en . -# -# https://saref.etsi.org/saref4city#takesPlaceAtTime - -s4city:takesPlaceAtTime a owl:ObjectProperty ; - rdfs:label "takes place at time"@en . -# -# https://w3id.org/saref#controlsProperty - -saref:controlsProperty a owl:ObjectProperty ; - rdfs:label "controls property"@en . -# -# https://w3id.org/saref#hasFeatureOfInterest - -saref:hasFeatureOfInterest a owl:ObjectProperty ; - owl:inverseOf saref:isFeatureOfInterestOf ; - rdfs:label "has feature of interest"@en . -# -# https://w3id.org/saref#hasProperty - -saref:hasProperty a owl:ObjectProperty ; - owl:inverseOf saref:isPropertyOf ; - rdfs:label "has property"@en . -# -# https://w3id.org/saref#isControlledByDevice - -saref:isControlledByDevice a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "is controlled by device"@en . -# -# https://w3id.org/saref#isFeatureOfInterestOf - -saref:isFeatureOfInterestOf a owl:ObjectProperty ; - rdfs:label "is feature of interest of"@en . -# -# https://w3id.org/saref#isMeasuredByDevice - -saref:isMeasuredByDevice a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "is measured by device"@en . -# -# https://w3id.org/saref#isMeasuredIn - -saref:isMeasuredIn a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "is measured in"@en . -# -# https://w3id.org/saref#isPropertyOf - -saref:isPropertyOf a owl:ObjectProperty ; - rdfs:label "is property of"@en . -# -# https://w3id.org/saref#makesMeasurement - -saref:makesMeasurement a owl:ObjectProperty ; - owl:inverseOf saref:measurementMadeBy ; - rdfs:isDefinedBy ; - rdfs:label "makes measurement"@en . -# -# https://w3id.org/saref#measurementMadeBy - -saref:measurementMadeBy a owl:ObjectProperty . -# -# https://w3id.org/saref#measuresProperty - -saref:measuresProperty a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "measures property"@en . -# -# https://w3id.org/saref#relatesToMeasurement - -saref:relatesToMeasurement a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "relates to measurement"@en . -# -# https://w3id.org/saref#relatesToProperty - -saref:relatesToProperty a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "relates to property"@en . -# -# -# -# ################################################################# -# # -# # Data properties -# # -# ################################################################# -# -# -# https://saref.etsi.org/saref4city#hasCreationDate - -s4city:hasCreationDate a owl:DatatypeProperty ; - rdfs:range xsd:dateTime ; - rdfs:label "has creation date"@en . -# -# https://saref.etsi.org/saref4city#hasExpirationDate - -s4city:hasExpirationDate a owl:DatatypeProperty ; - rdfs:range xsd:dateTime ; - rdfs:label "has expiration date"@en . -# -# https://saref.etsi.org/saref4city#hasLastUpdateDate - -s4city:hasLastUpdateDate a owl:DatatypeProperty ; - rdfs:range xsd:dateTime ; - rdfs:label "has last update date"@en . -# -# https://w3id.org/saref#hasDescription - -saref:hasDescription a owl:DatatypeProperty ; - rdfs:isDefinedBy ; - rdfs:label "has description"@en . -# -# https://w3id.org/saref#hasName - -saref:hasName a owl:DatatypeProperty ; - rdfs:isDefinedBy ; - rdfs:label "has name"@en . -# -# https://w3id.org/saref#hasTimestamp - -saref:hasTimestamp a owl:DatatypeProperty ; - rdfs:isDefinedBy ; - rdfs:label "has timestamp"@en . -# -# https://w3id.org/saref#hasValue - -saref:hasValue a owl:DatatypeProperty ; - rdfs:isDefinedBy ; - rdfs:label "has value"@en . -# -# -# -# ################################################################# -# # -# # Classes -# # -# ################################################################# -# -# -# http://purl.org/dc/terms/LinguisticSystem - -dcterms:LinguisticSystem a owl:Class . -# -# http://purl.org/vocab/cpsv#PublicService - -cpsv:PublicService a owl:Class ; - rdfs:comment "This class represents the service itself. A public service is the capacity to carry out a procedure and exists whether it is used or not. It is a set of deeds and acts performed by or on behalf of a public agency for the benefit of a citizen, a business or another public agency."@en ; - rdfs:isDefinedBy ; - rdfs:label "Public Service"@en . -# -# http://www.opengis.net/ont/geosparql#Feature - -geosp:Feature a owl:Class ; - rdfs:subClassOf geosp:SpatialObject ; - owl:disjointWith geosp:Geometry ; - rdfs:comment "This class represents the top-level feature type. This class is equivalent to GFI_Feature defined in ISO 19156:2011, and it is superclass of all feature types."@en ; - rdfs:isDefinedBy ; - rdfs:label "Feature"@en . -# -# http://www.opengis.net/ont/geosparql#Geometry - -geosp:Geometry a owl:Class ; - rdfs:subClassOf geosp:SpatialObject ; - rdfs:comment "The class represents the top-level geometry type. This class is equivalent to the UML class GM_Object defined in ISO 19107, and it is superclass of all geometry types."@en ; - rdfs:isDefinedBy ; - rdfs:label "Geometry"@en . -# -# http://www.opengis.net/ont/geosparql#SpatialObject - -geosp:SpatialObject a owl:Class ; - rdfs:comment "The class spatial-object represents everything that can have a spatial representation. It is superclass of feature and geometry."@en ; - rdfs:isDefinedBy ; - rdfs:label "SpatialObject"@en . -# -# http://www.w3.org/2003/01/geo/wgs84_pos#Point - -geo:Point a owl:Class ; - rdfs:subClassOf geosp:Geometry ; - rdfs:comment """ -Uniquely identified by lat/long/alt. i.e. - -spaciallyIntersects(P1, P2) :- lat(P1, LAT), long(P1, LONG), alt(P1, ALT), - lat(P2, LAT), long(P2, LONG), alt(P2, ALT). - -sameThing(P1, P2) :- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2). - """ , "A point, typically described using a coordinate system relative to Earth, such as WGS84." ; - rdfs:isDefinedBy ; - rdfs:label "Point"@en . -# -# http://www.w3.org/2004/02/skos/core#Concept - - a owl:Class ; - rdfs:isDefinedBy . -# -# http://www.w3.org/2006/time#Instant - -time:Instant a owl:Class ; - rdfs:subClassOf time:TemporalEntity ; - rdfs:comment "A temporal entity with zero extent or duration"@en ; - rdfs:isDefinedBy ; - rdfs:label "Instant"@en . -# -# http://www.w3.org/2006/time#Interval - -time:Interval a owl:Class ; - rdfs:subClassOf time:TemporalEntity ; - rdfs:isDefinedBy ; - rdfs:label "A temporal entity with an extent or duration"@en , "Time interval"@en . -# -# http://www.w3.org/2006/time#TemporalEntity - -time:TemporalEntity a owl:Class ; - rdfs:comment "A temporal interval or instant."@en ; - rdfs:isDefinedBy ; - rdfs:label "Temporal entity"@en . -# -# http://www.w3.org/ns/org#Organization - - a owl:Class ; - rdfs:subClassOf ; - rdfs:isDefinedBy ; - rdfs:label "Organization"@en . -# -# http://xmlns.com/foaf/0.1/Agent - - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Agent"@en . -# -# http://xmlns.com/foaf/0.1/Person - - a owl:Class ; - rdfs:subClassOf ; - rdfs:isDefinedBy ; - rdfs:label "Person"@en . -# -# https://saref.etsi.org/saref4city#AdministrativeArea - -s4city:AdministrativeArea a owl:Class ; - rdfs:subClassOf geosp:Feature ; - rdfs:comment "An administrative division, unit, entity, area or region, also referred to as a subnational entity, constituent unit, or country subdivision, is a portion of a country or other region delineated for the purpose of administration. (https://en.wikipedia.org/wiki/Administrative_division)"@en ; - rdfs:label "Administrative area"@en . -# -# https://saref.etsi.org/saref4city#Agent - -s4city:Agent a owl:Class ; - rdfs:subClassOf , - [ a owl:Restriction ; - owl:onProperty cpsv:provides ; - owl:allValuesFrom s4city:PublicService - ] , - - [ a owl:Restriction ; - owl:onProperty cpsv:uses ; - owl:allValuesFrom s4city:PublicService ] . - -s4city:Agent rdfs:comment "An agent making an action in the context of a city. An agent could be a person, software, etc."@en ; - rdfs:label "Agent"@en . -# -# https://saref.etsi.org/saref4city#City - -s4city:City a owl:Class ; - rdfs:subClassOf s4city:AdministrativeArea ; - rdfs:comment "A city is a large human settlement. A city is distinguished from other human settlements by its relatively great size, but also by its functions and its special symbolic status, which may be conferred by a central authority. (https://en.wikipedia.org/wiki/City)"@en ; - rdfs:label "City"@en . -# -# https://saref.etsi.org/saref4city#CityObject - -s4city:CityObject a owl:Class ; - rdfs:subClassOf geosp:Feature ; - rdfs:comment "Generic class for describing city objects."@en ; - rdfs:label "City object"@en . -# -# https://saref.etsi.org/saref4city#Country - -s4city:Country a owl:Class ; - rdfs:subClassOf s4city:AdministrativeArea ; - rdfs:comment "A country is a region that is identified as a distinct national entity in political geography. (https://en.wikipedia.org/wiki/Country)"@en ; - rdfs:label "Country"@en . -# -# https://saref.etsi.org/saref4city#District - -s4city:District a owl:Class ; - rdfs:subClassOf s4city:AdministrativeArea ; - rdfs:comment "A district is a type of administrative division that, in some countries, is managed by local government. Across the world, areas known as \"districts\" vary greatly in size, spanning regions or counties, several municipalities, subdivisions of municipalities, school district, or political district. (https://en.wikipedia.org/wiki/District)"@en ; - rdfs:label "District"@en . -# -# https://saref.etsi.org/saref4city#Event - -s4city:Event a owl:Class ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4city:hasAccesibility ; - owl:allValuesFrom ] , - - [ a owl:Restriction ; - owl:onProperty s4city:isOrganizedBy ; - owl:allValuesFrom s4city:Agent ] , - - [ a owl:Restriction ; - owl:onProperty s4city:isSubEventOf ; - owl:allValuesFrom s4city:Event ] , - - [ a owl:Restriction ; - owl:onProperty s4city:takesPlaceAtFacility ; - owl:allValuesFrom s4city:Facility ] , - - [ a owl:Restriction ; - owl:onProperty s4city:takesPlaceAtTime ; - owl:allValuesFrom time:TemporalEntity ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasName ; - owl:allValuesFrom rdfs:Literal ]. - -s4city:Event rdfs:comment "Temporary and scheduled event, like a festival or competition. (Definition taken from Wikidata)"@en ; - rdfs:label "Event"@en ; - rdfs:seeAlso . -# -# https://saref.etsi.org/saref4city#Facility - -s4city:Facility a owl:Class ; - rdfs:subClassOf geosp:Feature ; - rdfs:comment "A place, amenity, or piece of equipment provided for a particular purpose. (Definition taken from https://en.oxforddictionaries.com/definition/facility)"@en ; - rdfs:label "Facility"@en . -# -# https://saref.etsi.org/saref4city#KeyPerformanceIndicator - -s4city:KeyPerformanceIndicator a owl:Class ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4city:hasCalculationPeriod ; - owl:allValuesFrom time:TemporalEntity ] , - - [ a owl:Restriction ; - owl:onProperty s4city:isKPIOf ; - owl:allValuesFrom saref:FeatureOfInterest ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:allValuesFrom rdfs:Literal ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasName ; - owl:allValuesFrom rdfs:Literal ] . - -s4city:KeyPerformanceIndicator rdfs:comment "A Key Performance Indicator (KPI) is a type of performance measurement. KPIs evaluate the success of an organization or of a particular activity in which it engages. (Definition taken from FIWARE)"@en ; - rdfs:label "Key Performance Indicator"@en ; - rdfs:seeAlso . -# -# https://saref.etsi.org/saref4city#KeyPerformanceIndicatorAssessment - -s4city:KeyPerformanceIndicatorAssessment a owl:Class ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4city:assesses ; - owl:allValuesFrom saref:FeatureOfInterest ] , - - [ a owl:Restriction ; - owl:onProperty s4city:isAssessedBy ; - owl:allValuesFrom s4city:Agent ] , - - [ a owl:Restriction ; - owl:onProperty s4city:isDerivedFrom ; - owl:allValuesFrom saref:Measurement ] , - - [ a owl:Restriction ; - owl:onProperty s4city:quantifiesKPI ; - owl:allValuesFrom s4city:KeyPerformanceIndicator ] , - - [ a owl:Restriction ; - owl:onProperty s4city:refersToTime ; - owl:allValuesFrom time:TemporalEntity ] , - - [ a owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:allValuesFrom saref:UnitOfMeasure ] , - - [ a owl:Restriction ; - owl:onProperty s4city:hasCreationDate ; - owl:allValuesFrom xsd:dateTime ] , - - [ a owl:Restriction ; - owl:onProperty s4city:hasExpirationDate ; - owl:allValuesFrom xsd:dateTime ] , - - [ a owl:Restriction ; - owl:onProperty s4city:hasLastUpdateDate ; - owl:allValuesFrom xsd:dateTime ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:allValuesFrom rdfs:Literal ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasName ; - owl:allValuesFrom rdfs:Literal ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasValue ; - owl:cardinality "1"^^xsd:nonNegativeInteger ] . - -s4city:KeyPerformanceIndicatorAssessment rdfs:comment "A Key Performance Indicator assessment represents the assessment of a KPI calculated by a given agent in a given time."@en ; - rdfs:label "Key performance indicator assessment"@en . -# -# https://saref.etsi.org/saref4city#Neighbourhood - -s4city:Neighbourhood a owl:Class ; - rdfs:subClassOf s4city:AdministrativeArea ; - rdfs:comment "A neighbourhood (British English), or neighborhood (American English; see spelling differences), is a geographically localised community within a larger city, town, suburb or rural area. (https://en.wikipedia.org/wiki/Neighbourhood)"@en ; - rdfs:label "Neighbourhood"@en . -# -# https://saref.etsi.org/saref4city#PublicAdministration - -s4city:PublicAdministration a owl:Class ; - rdfs:subClassOf ; - rdfs:comment "Public leadership of public affairs directly responsible for executive action. (Definition taken from wikidata)"@en ; - rdfs:label "Public administration"@en ; - rdfs:seeAlso . -# -# https://saref.etsi.org/saref4city#PublicService - -s4city:PublicService a owl:Class ; - rdfs:subClassOf cpsv:PublicService , - [ a owl:Restriction ; - owl:onProperty cpsv:physicallyAvailableAt ; - owl:allValuesFrom s4city:AdministrativeArea ] , - - [ a owl:Restriction ; - owl:onProperty s4city:involvesFacility ; - owl:allValuesFrom s4city:Facility ] , - - [ a owl:Restriction ; - owl:onProperty s4city:isAvailableInLanguage ; - owl:allValuesFrom dcterms:LinguisticSystem ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:allValuesFrom rdfs:Literal ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasName ; - owl:allValuesFrom rdfs:Literal ] . - -s4city:PublicService rdfs:comment "Public service is a service which is provided by government either directly (through the public sector) or by financing provision of services. (Definition taken from Wikipedia)"@en ; - rdfs:label "Public service"@en ; - rdfs:seeAlso . -# -# https://w3id.org/saref#Actuator - -saref:Actuator a owl:Class ; - rdfs:subClassOf saref:Device ; - rdfs:comment "A device responsible for moving or controlling a mechanism or system"@en ; - rdfs:isDefinedBy ; - rdfs:label "Actuator"@en . -# -# https://w3id.org/saref#Device - -saref:Device a owl:Class ; - rdfs:subClassOf geosp:Feature , - [ a owl:Restriction ; - owl:onProperty saref:controlsProperty ; - owl:allValuesFrom saref:Property ] , - - [ a owl:Restriction ; - owl:onProperty saref:makesMeasurement ; - owl:allValuesFrom saref:Measurement ] , - - [ a owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:allValuesFrom saref:Property ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ] . - -saref:Device rdfs:comment "A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function. Devices can be structured in categories (subclasses) that reflect the different domain in which a device is used, e.g., smart appliances domain (subclass FunctionRelated) vs. building domain (subclass BuildingRelated) vs. smart grid domain (subclass EnergyRelated). New categories can be defined,if needed, to reflect other differences, for example different points of view, such as the point of view of the device's user vs. the point of view of the device's manufacturer. We propose a list of devices that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:label "Device"^^xsd:string . -# -# https://w3id.org/saref#FeatureOfInterest - -saref:FeatureOfInterest a owl:Class ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4city:hasKPI ; - owl:allValuesFrom s4city:KeyPerformanceIndicator ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasProperty ; - owl:allValuesFrom saref:Property ] , - - [ a owl:Restriction ; - owl:onProperty saref:isFeatureOfInterestOf ; - owl:allValuesFrom saref:Measurement ] . -# -# https://w3id.org/saref#Measurement - -saref:Measurement a owl:Class ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:hasFeatureOfInterest ; - owl:allValuesFrom saref:FeatureOfInterest ] , - - [ a owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:allValuesFrom saref:UnitOfMeasure ] , - - [ a owl:Restriction ; - owl:onProperty saref:measurementMadeBy ; - owl:allValuesFrom saref:Device ] , - - [ a owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:allValuesFrom saref:Property ] , - - [ a owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:UnitOfMeasure ] , - - [ a owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Property ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasTimestamp ; - owl:allValuesFrom xsd:dateTime ] , - - [ a owl:Restriction ; - owl:onProperty saref:hasValue ; - owl:cardinality "1"^^xsd:nonNegativeInteger ] . -# -saref:Measurement owl:disjointWith saref:Property , saref:UnitOfMeasure ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:isDefinedBy ; - rdfs:label "Measurement"@en . -# -# https://w3id.org/saref#Property - -saref:Property a owl:Class ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:isControlledByDevice ; - owl:allValuesFrom saref:Device ] , - - [ a owl:Restriction ; - owl:onProperty saref:isMeasuredByDevice ; - owl:allValuesFrom saref:Device ] , - - [ a owl:Restriction ; - owl:onProperty saref:isPropertyOf ; - owl:allValuesFrom saref:FeatureOfInterest ] , - - [ a owl:Restriction ; - owl:onProperty saref:relatesToMeasurement ; - owl:allValuesFrom saref:Measurement ] . - -saref:Property owl:disjointWith saref:UnitOfMeasure ; - rdfs:comment "An aspect of an entity that can be observable by a sensor."@en , "Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended."^^xsd:string ; - rdfs:isDefinedBy ; - rdfs:label "Property"@en . -# -# https://w3id.org/saref#Sensor - -saref:Sensor a owl:Class ; - rdfs:subClassOf saref:Device ; - rdfs:comment """A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. -A device that has category saref:Sensor and performs a saref:SensingFunction."""@en ; - rdfs:isDefinedBy ; - rdfs:label "Sensor"@en . -# -# https://w3id.org/saref#UnitOfMeasure - -saref:UnitOfMeasure a owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended."@en ; - rdfs:isDefinedBy ; - rdfs:label "Unit of measure"@en . -# -# -# -# ################################################################# -# # -# # Annotations -# # -# ################################################################# -# -# - -geo:location rdfs:comment """The relation between something and the point, - or other geometrical thing in space, where it is. For example, the realtionship between - a radio tower and a Point with a given lat and long. - Or a relationship between a park and its outline as a closed arc of points, or a road and - its location as a arc (a sequence of points). - Clearly in practice there will be limit to the accuracy of any such statement, but one would expect - an accuracy appropriate for the size of the object and uses such as mapping . - """ ; - rdfs:label "location"@en . - diff --git a/src/main/resources/saref-portal-generator/public/saref4ener/latest/desktop.ini b/src/main/resources/saref-portal-generator/public/saref4ener/latest/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4ener/latest/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4ener/latest/saref4ener.html b/src/main/resources/saref-portal-generator/public/saref4ener/latest/saref4ener.html deleted file mode 100644 index d5c2739..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4ener/latest/saref4ener.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - SAREF4ENER: an extension of SAREF for the energy domain created in collaboration with Energy@Home and EEBus associations

    -

    Official ETSI documentation for SAREF4ENER v1.1.1
    This page will soon contain the documentation of the SAREF4ENER ontology v1.1.1

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    The documentation of SAREF4ENER v1.1.1 will be available here soon. The source of the ontology are available as Turtle or RDF/XML Visualize it with VOWL

    -
    -
    -
    -
    -

    SAREF4ENER is an extension of SAREF for the Energy domain that was created in collaboration with Energy@Home (http://www.energy-home.it) and EEBus (http://www.eebus.org/en), the major Italy- and Germany-based industry associations, to enable the interconnection of their (different) data models. SAREF4ENER focuses on demand response scenarios, in which customers can offer flexibility to the Smart Grid to manage their smart home devices by means of a Customer Energy Manager (CEM). The CEM is a logical function for optimizing energy consumption and/or production that can reside either in the home gateway or in the cloud. SAREF4ENER is published as an ETSI tecnical specificatoion (ETSI TS 103 410-1).

    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4ener/latest/saref4ener.n3 b/src/main/resources/saref-portal-generator/public/saref4ener/latest/saref4ener.n3 deleted file mode 100644 index 7cdc6a9..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4ener/latest/saref4ener.n3 +++ /dev/null @@ -1,1254 +0,0 @@ -@prefix rdf: . -@prefix owl: . -@prefix saref: . -@prefix xsd: . -@prefix dcterms: . -@prefix rdfs: . -@prefix vann: . -@prefix s4ener: . - -s4ener:eventAccepted a s4ener:EventStateProduce , s4ener:EventStateConsume , owl:NamedIndividual ; - rdfs:comment "Load control state with value 'event accepted'" ; - rdfs:label "event accepted" . - -s4ener:PauseDurationMin - a owl:Class ; - rdfs:comment "The minimum duration a power sequence can pause after the end of an activity." ; - rdfs:label "Pause duration min" ; - rdfs:subClassOf . - -s4ener: a owl:Ontology ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:contributor ; - dcterms:created "2015-09-04"^^xsd:date ; - dcterms:description "SAREF4ENER is an extension of SAREF for the Energy domain that was created in collaboration with Energy@Home (http://www.energy-home.it) and EEBus (http://www.eebus.org/en), the major Italy- and Germany-based industry associations, to enable the interconnection of their (different) data models. SAREF4ENER focuses on demand response scenarios, in which customers can offer flexibility to the Smart Grid to manage their smart home devices by means of a Customer Energy Manager (CEM). The CEM is a logical function for optimizing energy consumption and/or production that can reside either in the home gateway or in the cloud. SAREF4ENER is published as an ETSI tecnical specificatoion (ETSI TS 103 410-1)." ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:modified "2016-12-13"^^xsd:date ; - dcterms:publisher ; - dcterms:source , ; - dcterms:title "SAREF4ENER: an extension of SAREF for the energy domain created in collaboration with Energy@Home and EEBus associations" ; - vann:preferredNamespacePrefix "s4ener" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4ener#" ; - owl:imports ; - owl:versionIRI ; - owl:versionInfo "1.1.1" . - -s4ener:activateSlot a owl:DatatypeProperty ; - rdfs:comment "Indicates whether a slot is used (activateSlot = true) or not (activateSlot = false). SHALL be present if a slot is optional (i.e., the property s4ee:optionalSlot is TRUE), otherwise SHALL be absent (i.e. in case the slot is mandatory)." ; - rdfs:label "activate slot" ; - rdfs:range xsd:boolean . - -s4ener:RemainingPauseTime - a owl:Class ; - rdfs:comment "The duration that the current slot (s4ee:activeSlotNumber) permits being paused. This element SHALL ONLY be present if the power sequence is interruptible. Otherwise, it SHALL be omitted. In case the power sequence is interruptible the following rules apply: If the element is absent this means there is no explicit pause duration restriction for the current slot; a value of 0s denoted the slot does not permit being paused." ; - rdfs:label "Remaining pause time" ; - rdfs:subClassOf . - -s4ener:pending a s4ener:PowerSequenceState , owl:NamedIndividual ; - rdfs:comment "Power sequence state with value 'pending'" ; - rdfs:label "pending" . - -s4ener:greenest a owl:DatatypeProperty ; - rdfs:comment "Indicates whether a power sequence optimises the configuration towards the maximum availability of renewable energy (if set to TRUE). MAY be present. Absence of this element is equal to the presence with value FALSE. " ; - rdfs:label "greenest" ; - rdfs:range xsd:boolean . - -s4ener:manufacturerLabel - a owl:DatatypeProperty ; - rdfs:comment "A short label of the device as defined by the manufacturer. " ; - rdfs:label "manufacturer label" ; - rdfs:range xsd:string . - -s4ener:softwareRevision - a owl:DatatypeProperty ; - rdfs:comment "Indicates the software revision of a device as defined by the manufacturer." ; - rdfs:label "software revision" ; - rdfs:range xsd:string . - -s4ener:EventStateProduce - a owl:Class ; - rdfs:label "Event state produce" ; - rdfs:subClassOf s4ener:LoadControlEventState ; - owl:oneOf ( "s4ener:eventAccepted" "s4ener:eventStarted" "s4ener:eventStopped" "s4ener:eventRejected" "s4ener:eventCancelled" "s4ener:eventError" ) . - -s4ener:cheapest a owl:DatatypeProperty ; - rdfs:comment "Indicates whether a power sequence applies a configuration that minimises the user’s energy bill (if set to TRUE). MAY be present. Absence of this element is equal to the presence with value FALSE. " ; - rdfs:label "cheapest" ; - rdfs:range xsd:boolean . - -s4ener:PauseDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the pause duration (max and min) temporal entities" ; - rdfs:label "Pause duration description" ; - rdfs:subClassOf . - -s4ener:ActuatorLevel a owl:Class ; - rdfs:comment "Independent from the ActuatorSwitch class, the ActuatorLevel class enables a user or application to model LEVEL commands (start, up, percentageAbsolute, relative, etc.). This can be used to dim a light, set the speed of an electric motor, etc." ; - rdfs:label "Actuator level" ; - rdfs:subClassOf saref:Actuator . - -s4ener:powerSource a owl:DatatypeProperty ; - rdfs:comment "Indicates the power source of a device. Possible values are e.g. mainsSinglePhase or battery " ; - rdfs:label "power source" ; - rdfs:range [ a rdfs:Datatype ; - owl:oneOf ( "unknown" "mainsSinglePhase" "mains3Phase" "battery" "dc" ) - ] . - -s4ener:maxCyclesPerDay - a owl:DatatypeProperty ; - rdfs:comment "States the maximum amount of starts a power sequence (of a device) allows per day." ; - rdfs:label "max cycles per day" ; - rdfs:range xsd:unsignedInt . - -s4ener:DurationUncertaintyDescription - a owl:Class ; - rdfs:comment "The duration description for the duration uncertainty temporal entity" ; - rdfs:label "Duration uncertainty description" ; - rdfs:subClassOf . - -s4ener:TimePeriodDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the time period duration temporal entities" ; - rdfs:label "Time period duration description" ; - rdfs:subClassOf . - -s4ener:hasValueType a owl:ObjectProperty ; - rdfs:comment "A relation representing the value type of an entity" ; - rdfs:label "has value type" . - -s4ener:increase a s4ener:EventActionProduce , s4ener:EventActionConsume , owl:NamedIndividual ; - rdfs:comment "Load control event action with value 'increase'" ; - rdfs:label "increase" . - -s4ener:supportsReselection - a owl:DatatypeProperty ; - rdfs:comment "If set toTRUE, the power profile of a device does not restrict the number of power sequence re-selections by the CEM, i.e. within a given alternative the CEM may first choose one power sequence, alter the selection by configuring another sequence later on, then alter the selection again, etc. (provided the process rules and data still permit configuration). If supportsReselection is set to FALSE, the device permits the CEM to select a power sequence of an alternative only once." ; - rdfs:label "supports reselection" ; - rdfs:range xsd:boolean . - -s4ener:PowerSkewness a owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the power skewness and its value" ; - rdfs:label "Power skewness" ; - rdfs:subClassOf s4ener:Power . - -s4ener:EndTime a owl:Class ; - rdfs:comment "The endTime of a power sequence. If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted.\r\nThe end time of a slot MAY be stated in this element. The following equation SHALL apply: endTime - startTime = defaultDuration." ; - rdfs:label "End time" ; - rdfs:subClassOf . - -s4ener:PauseTime a owl:Class ; - rdfs:comment "The pause time of a power sequence or a slot" ; - rdfs:label "Pause time" ; - rdfs:subClassOf . - -s4ener:brandName a owl:DatatypeProperty ; - rdfs:comment "Provides the name of the brand of a device. Useful where the name of the brand and the vendor differs." ; - rdfs:label "brand name" ; - rdfs:range xsd:string . - -s4ener:PowerStandardDeviation - a owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the power standard deviation and its value" ; - rdfs:label "Power standard deviation" ; - rdfs:subClassOf s4ener:Power . - -s4ener:EarliestStartTime - a owl:Class ; - rdfs:comment "The earliest possible start time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0.\r\nNote: This element applies to the first repetition of the slot number only." ; - rdfs:label "Earliest start time" ; - rdfs:subClassOf . - -s4ener:LoadControlStateData - a owl:Class ; - rdfs:comment "The representation of the state of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)." ; - rdfs:label "Load control state data" ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:EventActionConsume ; - owl:onProperty s4ener:hasAppliedEventActionConsume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:EventActionProduce ; - owl:onProperty s4ener:hasAppliedEventActionProduce - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:unsignedInt ; - owl:onProperty s4ener:eventID - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionConsume ; - owl:onProperty s4ener:hasAppliedEventActionConsume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:EventStateConsume ; - owl:onProperty s4ener:hasEventStateConsume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventStateProduce ; - owl:onProperty s4ener:hasEventStateProduce - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventStateConsume ; - owl:onProperty s4ener:hasEventStateConsume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:EventStateProduce ; - owl:onProperty s4ener:hasEventStateProduce - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionProduce ; - owl:onProperty s4ener:hasAppliedEventActionProduce - ] . - -s4ener:normal a s4ener:EventActionProduce , s4ener:EventActionConsume , owl:NamedIndividual ; - rdfs:comment "The value NORMAL used to instantiate the Load Control Event Action class and MeasurandState class" ; - rdfs:label "normal" . - -s4ener:State a owl:Class ; - rdfs:comment "An entity that represents the possible states in SAREF4EE" ; - rdfs:label "State" ; - rdfs:subClassOf saref:State . - -s4ener:ActivationDelay - a owl:Class ; - rdfs:comment "The scheduled activation delay for a slot." ; - rdfs:label "Activation delay" ; - rdfs:subClassOf . - -s4ener:hasEnergyValueType - a owl:ObjectProperty ; - rdfs:comment "A relationship representing an energy value type" ; - rdfs:label "has energy value type" ; - rdfs:subPropertyOf s4ener:hasValueType . - -s4ener:hasEnergy a owl:ObjectProperty ; - rdfs:comment "A relationship between a power sequence and its energy (in terms of value and unit of measure)" ; - rdfs:label "has energy" ; - rdfs:range s4ener:Energy . - -s4ener:resume a s4ener:EventActionProduce , s4ener:EventActionConsume , owl:NamedIndividual ; - rdfs:comment "Load control event action with value 'resume'" ; - rdfs:label "resume" . - -s4ener:taskIdentifier - a owl:DatatypeProperty ; - rdfs:label "task identifier" ; - rdfs:range xsd:unsignedInt . - -s4ener:ActiveDurationMax - a owl:Class ; - rdfs:comment "The active maximum duration a power sequence can run without interruption." ; - rdfs:label "Active duration max" ; - rdfs:subClassOf . - -s4ener:receives a owl:ObjectProperty ; - rdfs:comment "A relationship between a device (e.g., an appliance or a smart meter) and a load control event" ; - rdfs:label "receives" . - -s4ener:LoadControlEventAction - a owl:Class ; - rdfs:comment "An action type used to express the action to be performed as a consequence of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)." ; - rdfs:label "Load Control event action" . - -s4ener:inactive a s4ener:PowerSequenceState , owl:NamedIndividual ; - rdfs:comment "Power sequence state with value 'inactive'" ; - rdfs:label "inactive" . - -s4ener:eventStarted a s4ener:EventStateProduce , s4ener:EventStateConsume , owl:NamedIndividual ; - rdfs:comment "Load control state with value 'event started'" ; - rdfs:label "event started" . - -s4ener:eventRejected a s4ener:EventStateProduce , s4ener:EventStateConsume , owl:NamedIndividual ; - rdfs:comment "Load control state with value 'event rejected'" ; - rdfs:label "event rejected" . - -s4ener:manufacturerNodeIdentification - a owl:DatatypeProperty ; - rdfs:comment "Indicates a node identification for the device as defined by the manufacturer. This could be used for the identification of a device, even if it was removed from the network and rejoined later with changed node address." ; - rdfs:label "manufacturer node identification" ; - rdfs:range xsd:string . - -s4ener:sequenceID a owl:DatatypeProperty ; - rdfs:comment "Provides a unique power sequence identifier for a certain device" ; - rdfs:label "sequence ID" ; - rdfs:range xsd:unsignedInt . - -s4ener:ActiveDurationSumMin - a owl:Class ; - rdfs:comment "The active minimum duration a power sequence must run in total (summation of all active times)." ; - rdfs:label "Active duration sum min" ; - rdfs:subClassOf . - -[ a owl:Class ; - owl:unionOf ( xsd:int xsd:double ) -] . - -s4ener:EventActionConsume - a owl:Class ; - rdfs:label "Event action consume" ; - rdfs:subClassOf s4ener:LoadControlEventAction ; - owl:oneOf ( "s4ener:pause" "s4ener:resume" "s4ener:reduce" "s4ener:increase" "s4ener:emergency" "s4ener:normal" ) . - -s4ener:eventError a s4ener:EventStateProduce , s4ener:EventStateConsume , owl:NamedIndividual ; - rdfs:comment "Load control state with value 'event error'" ; - rdfs:label "event error" . - -s4ener:Energy a owl:Class ; - rdfs:comment "Energy type and value in a slot (i.e., Energy, EnergyMin, EnergyMax, EnergyExpected, EnergyStandardDeviation, EnergySkewness); or the ResumeEnergyEstimated in a power sequence, i.e., the additional energy the device will consume before resuming its normal operation (after a pause)" ; - rdfs:label "Energy" ; - rdfs:subClassOf saref:Energy . - -s4ener:hasExpression a owl:ObjectProperty ; - rdfs:comment "A relationship between an appliance parameter compatibility action and the associated expressions" ; - rdfs:label "has expression" . - -s4ener:MaxDuration a owl:Class ; - rdfs:comment "If a slot has a configurable duration, it SHALL be present and denote the maximum supported configuration. Note: This element applies to the first repetition of the slot number only" ; - rdfs:label "Max duration" ; - rdfs:subClassOf . - -[ a owl:Class ; - owl:unionOf ( xsd:int xsd:double ) -] . - -s4ener:valueSource a owl:DatatypeProperty ; - rdfs:comment "Indicates the source (origin/foundation) of the measurement forecasted values for a power sequence. If absent, the source is undefined. Remark: This element shall express the reliability of the forecast." ; - rdfs:label "value source" ; - rdfs:range [ a rdfs:Datatype ; - owl:oneOf ( "measuredValue" "calculatedValue" "empiricalValue" ) - ] . - -s4ener:eventStopped a s4ener:EventStateProduce , s4ener:EventStateConsume , owl:NamedIndividual ; - rdfs:comment "Load control state with value 'event stopped'" ; - rdfs:label "event stopped" . - -s4ener:hasConnection a owl:ObjectProperty ; - rdfs:comment "In the Remote Network Management (RemoteNWM) use case, a relationship between a node in a network (i.e., a s4ee:Device) and its connections (i.e., a s4ee:DeviceConnections). The same s4ee:Device (or node) can have multiple device connections as it can be connected to several networks at the same time." ; - rdfs:label "has connection" . - -s4ener:MinDuration a owl:Class ; - rdfs:comment "If a slot has a configurable duration, it SHALL be present and denote the minimum supported configuration. Note: This element applies to the first repetition of the slot number only." ; - rdfs:label "Min duration" ; - rdfs:subClassOf . - -s4ener:scheduled a s4ener:PowerSequenceState , owl:NamedIndividual ; - rdfs:comment "Power sequence state with value 'scheduled'" ; - rdfs:label "scheduled" . - -s4ener:ActuatorSwitch - a owl:Class ; - rdfs:comment "Basic on/off operations on a simple actuator can be modelled with the ActuatorSwitch class. Whether the function turns a device itself ON or OFF, or whether it switches a specific feature, depends on the implementation. For example, one could model the super freeze program of a freezer using ActuatorSwitch class. An ON command would then activate the super freeze program and an OFF command would deactivate it. This example shall just give an idea how ActuatorSwitch can be used for more purposes than only turning devices on and off." ; - rdfs:label "Actuator switch" ; - rdfs:subClassOf saref:Actuator . - -s4ener:alternativesGroupID - a owl:DatatypeProperty ; - rdfs:comment "The endpoint-wide unique identifier for the alternatives group instances provided by a power profile" ; - rdfs:label "alternatives group ID" ; - rdfs:range xsd:integer . - - - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:xsdDuration - ] . - -s4ener:optionalSlot a owl:DatatypeProperty ; - rdfs:comment "Indicates whether a slot is optional (if set to TRUE). Otherwise, if a slot is mandatory, SHALL be omitted or set to FALSE. Note: This element applies to every repetition of the slot number." ; - rdfs:label "optional slot" ; - rdfs:range xsd:boolean . - -s4ener:RemainingSlotTime - a owl:Class ; - rdfs:comment "If state is set to 'running' or 'paused' AND the slot is determined, this element SHALL contain the time the slot still needs to be in 'running' state (this also means the value remains constant during a 'paused' state). Otherwise it SHALL be omitted." ; - rdfs:label "Remaining slot time" ; - rdfs:subClassOf . - -s4ener:PowerProfile a owl:Class ; - rdfs:comment "A way to model curves of power and energy over time, which also provides definitions for the modelling of power scheduling including alternative plans. With a PowerProfile, a device (or power sequences server) exposes the power sequences that are potentially relevant for the CEM (or power sequences client). " ; - rdfs:label "Power profile" ; - rdfs:subClassOf saref:Profile ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:AlternativesGroup ; - owl:onProperty saref:consistsOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:Device ; - owl:onProperty s4ener:belongsTo - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:supportsSingleSlotSchedulingOnly - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass s4ener:Device ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:totalSequencesCountMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:AlternativesGroup ; - owl:onProperty saref:consistsOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:alternativesCount - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:nodeRemoteControllable - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:supportsReselection - ] . - -s4ener:PowerMax a owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the maximum power consumption and its value" ; - rdfs:label "Power max" ; - rdfs:subClassOf s4ener:Power . - -s4ener:manufacturerDescription - a owl:DatatypeProperty ; - rdfs:comment "A description for the device as defined by the manufacturer." ; - rdfs:label "manufacturer description" ; - rdfs:range xsd:string . - -s4ener:MaxActivationDelay - a owl:Class ; - rdfs:comment "Maximum delay time between the end of the previous slot and the beginning of the current slot." ; - rdfs:label "Max activation delay" ; - rdfs:subClassOf . - -s4ener:LatestEndTime a owl:Class ; - rdfs:comment "The latest possible end time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0.\r\nNote: This element applies to the first repetition of the slot number only." ; - rdfs:label "Latest end time" ; - rdfs:subClassOf . - -s4ener:EnergyStandardDeviation - a owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the energy standard deviation and its value" ; - rdfs:label "Energy Standard Deviation" ; - rdfs:subClassOf s4ener:Energy . - -s4ener:EnergyMin a owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the minimum energy consumption and its value" ; - rdfs:label "Energy min" ; - rdfs:subClassOf s4ener:Energy . - -s4ener:activeRepetitionNumber - a owl:DatatypeProperty ; - rdfs:comment "Indicates the current repetition of the sequence of slots. SHALL be present if a power sequence can repeat its sequence of slots (i.e., if s4ee:repetitionTotal is present and has a value > 1). Otherwise, it SHALL be absent. " ; - rdfs:label "active repetition number" ; - rdfs:range xsd:unsignedInt . - -s4ener:ActiveDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the active duration (min and max, sum max and sum min) temporal entities" ; - rdfs:label "Active duration description" ; - rdfs:subClassOf . - -s4ener:Slot a owl:Class ; - rdfs:comment "The single steps of a power sequence are represented by slots. A slot is associated with a slot number (while a power sequence is associated with a power sequence identifier). The slot numbers of two power sequences should be considered independent from each other, i.e., slot number 7 of sequence 1 describes a different slot than slot number 7 of sequence 2. Therefore a slot is only uniquely identified in combination with a sequence ID. " ; - rdfs:label "Slot" ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:MaxDuration ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:slotActivated - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:PowerSequence ; - owl:onProperty s4ener:belongsTo - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Time ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:DurationUncertainty ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:Power ; - owl:onProperty s4ener:hasPowerValueType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:LatestEndTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:MinDuration ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:DefaultDuration ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EarliestStartTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:Energy ; - owl:onProperty s4ener:hasEnergyValueType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass s4ener:PowerSequence ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:RemainingPauseTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:optionalSlot - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:StartTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass [ a owl:Class ; - owl:unionOf ( s4ener:Energy s4ener:Power ) - ] ; - owl:onProperty s4ener:hasValueType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:slotNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EndTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription - ] . - -s4ener:scheduledPaused - a s4ener:PowerSequenceState , owl:NamedIndividual ; - rdfs:comment "Power sequence state with value 'scheduled paused'" ; - rdfs:label "scheduled paused" . - -s4ener:EventActionProduce - a owl:Class ; - rdfs:label "Event action produce" ; - rdfs:subClassOf s4ener:LoadControlEventAction ; - owl:oneOf ( "s4ener:pause" "s4ener:resume" "s4ener:reduce" "s4ener:increase" "s4ener:emergency" "s4ener:normal" ) . - -s4ener:LoadControlEventState - a owl:Class ; - rdfs:comment "In the load control, it expresses the possible states of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)." ; - rdfs:label "Load control event state " ; - rdfs:subClassOf s4ener:State . - -s4ener:DurationUncertainty - a owl:Class ; - rdfs:comment "The uncertainty of the duration " ; - rdfs:label "Duration uncertainty" ; - rdfs:subClassOf . - -s4ener:PowerExpected a owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the expected power consumption and its value" ; - rdfs:label "Power expected " ; - rdfs:subClassOf s4ener:Power . - -s4ener:hasPowerValueType - a owl:ObjectProperty ; - rdfs:comment "A relationship representing a power value type" ; - rdfs:label "has power value type" ; - rdfs:subPropertyOf s4ener:hasValueType . - -s4ener:PauseDurationMax - a owl:Class ; - rdfs:comment "The maximum duration a power sequence can pause after the end of an activity." ; - rdfs:label "Pause duration max" ; - rdfs:subClassOf . - -s4ener:belongsTo a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the ownership of an entity. In particular, a slot belongs to a power sequence, a power sequence belongs to an alternative, an alternative belongs to a power profile, a power profile belongs to a device. " ; - rdfs:label "belongs to" . - -s4ener:ActivationDelayDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the activation delay duration temporal entity" ; - rdfs:label "Activation delay duration description" ; - rdfs:subClassOf . - -s4ener:StartTimeDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the start time duration temporal entities" ; - rdfs:label "Start time duration description" ; - rdfs:subClassOf . - -s4ener:xsdDuration a owl:DatatypeProperty ; - rdfs:comment "This property is added to the time:DurationDescription class to allow to express time duration also as xsd:duration. This is necessary because in the EEBus/E@h model time is always expressed as xsd:duration. We use this property to express the following time information in the EEBus/E@h model:\r\n- the startTime of the power sequence (in the PowerSequence class). SHALL be present\r\n- the endTime of the power sequence (in the PowerSequence class). If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted.\r\n- the startTime of measurement as absolute or relative value (in the Measurement class).\r\n- the endTime of measurement as absolute or relative value (in the Measurement class)." ; - rdfs:label "duration in xsd " ; - rdfs:range xsd:duration . - -s4ener:hasDevice a owl:ObjectProperty ; - rdfs:comment "A relationship between a load control event (used to send overload warning severity level and related load control commands) and the device interested by this event." ; - rdfs:label "has device" . - -s4ener:eventID a owl:DatatypeProperty ; - rdfs:comment "Used in the Demand Response use case to identify an event" ; - rdfs:label "event ID" ; - rdfs:range xsd:unsignedInt . - -s4ener:DefaultDuration - a owl:Class ; - rdfs:comment "The duration of a slot (SHALL be present in case of 'determined slot'). If a slot has a configurable lenght, this element SHALL reflect the currently configured lenght" ; - rdfs:label "Default duration" ; - rdfs:subClassOf . - -s4ener:PowerSequence a owl:Class ; - rdfs:comment "The specification of a task, such as wash or tumble dry, according to user preferences and/or manufacturer's settings for a certain device. It is the most 'coarse' view, a power sequence can represent all single steps of a whole task,where the single steps are represented by slots. If the power sequence is pausable by the bound power sequences client, the property 'saref:isInterruptionPossible' SHALL be present and set to true. Otherwise it SHALL be omitted. If the power sequence is stoppable by the bound power sequences client, the property 'saref:isFlexible' SHALL be present and set to true. Otherwise it SHALL be omitted." ; - rdfs:label "Power sequence" ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:ResumeEnergyEstimated ; - owl:onProperty s4ener:hasEnergy - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass s4ener:AlternativesGroup ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:activeSlotNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ResumeCostEstimated ; - owl:onProperty saref:hasPrice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ResumeEnergyEstimated ; - owl:onProperty s4ener:hasEnergy - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:sequenceRemoteControllable - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:LatestEndTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:StartTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:Slot ; - owl:onProperty saref:consistsOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:valueSource - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:RemainingSlotTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PauseDurationMax ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EarliestStartTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationSumMax ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:sequenceID - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:PowerSequenceState ; - owl:onProperty saref:hasState - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:activeRepetitionNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:Slot ; - owl:onProperty saref:consistsOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationMax ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:isPausable - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationMin ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationSumMin ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:isStoppable - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:maxCyclesPerDay - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:ResumeCostEstimated ; - owl:onProperty saref:hasPrice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PowerSequenceState ; - owl:onProperty saref:hasState - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ElapsedSlotTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PauseDurationMin ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:greenest - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:taskIdentifier - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EndTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:repetitionsTotal - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:cheapest - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:AlternativesGroup ; - owl:onProperty s4ener:belongsTo - ] . - -s4ener:EnergyExpected - a owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the expected energy consumption and its value" ; - rdfs:label "Energy expected" ; - rdfs:subClassOf s4ener:Energy . - -s4ener:activeSlotNumber - a owl:DatatypeProperty ; - rdfs:comment "Indicates the currently active slot number, if the power sequence state is set to 'running' or 'paused'. Otherwise it SHALL be omitted." ; - rdfs:label "active slot number" ; - rdfs:range xsd:unsignedInt . - -s4ener:paused a s4ener:PowerSequenceState , owl:NamedIndividual ; - rdfs:comment "Power sequence state or sensor state with value 'paused'" ; - rdfs:label "paused" . - -s4ener:isStoppable a owl:DatatypeProperty ; - rdfs:label "is stoppable" ; - rdfs:range xsd:boolean . - -s4ener:alternativesCount - a owl:DatatypeProperty ; - rdfs:comment "Indicates the number of alternatives groups provided by a power profile" ; - rdfs:label "alternatives count" ; - rdfs:range xsd:integer . - -s4ener:Device a owl:Class ; - rdfs:comment "A specialization of a saref:Device that exposes a power profile with power sequences to the CEM (note that a s4ee:Device can also be called 'power sequence server'). Most of the existing devices can expose at most 1 power profile, but there are special cases in which more than one power profiles can be exposed by the same device. For example, consider the case of a combined fridge-freezer in which there are 2 logical devices (fridge and freezer) combined in 1 physical device. This combined device can expose 2 power profiles, one for the fridge and one for the freezer. A s4ee:Device (e.g. a household appliance or a smart meter) can also receive events about overload warning severity level and related load control commands (LoadControlEventData)" ; - rdfs:label "Device" ; - rdfs:subClassOf saref:Device ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PowerProfile ; - owl:onProperty s4ener:exposes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:deviceName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:PowerProfile ; - owl:onProperty s4ener:exposes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:serialNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:softwareRevision - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:LoadControlEventData ; - owl:onProperty s4ener:receives - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:manufacturerNodeIdentification - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:deviceCode - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:vendorName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:powerSource - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:vendorCode - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:hardwareRevision - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:manufacturerLabel - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:manufacturerDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:brandName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:LoadControlEventData ; - owl:onProperty s4ener:receives - ] . - -s4ener:DefaultDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the default duration temporal entity" ; - rdfs:label "Default duration description" ; - rdfs:subClassOf . - -s4ener:AlternativesGroup - a owl:Class ; - rdfs:comment "A collection of power sequences for a certain profile" ; - rdfs:label "Alternatives group" ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onDataRange xsd:unsignedInt ; - owl:onProperty s4ener:alternativesGroupID ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass s4ener:PowerProfile ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PowerSequence ; - owl:onProperty saref:consistsOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:PowerSequence ; - owl:onProperty saref:consistsOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:PowerProfile ; - owl:onProperty s4ener:belongsTo - ] . - -s4ener:MaxAnticipation - a owl:Class ; - rdfs:comment "This field allows the anticipation of the phase if (and only if) the previous phase has the energy set to 0 Wh, each unit is a minute." ; - rdfs:label "Max anticipation" ; - rdfs:subClassOf . - -s4ener:LoadControlEventData - a owl:Class ; - rdfs:comment "An event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)." ; - rdfs:label "Load control event data" ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionConsume ; - owl:onProperty s4ener:triggersEventActionConsume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionProduce ; - owl:onProperty s4ener:triggersEventActionProduce - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:eventID - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:EventActionProduce ; - owl:onProperty s4ener:triggersEventActionProduce - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:EventActionConsume ; - owl:onProperty s4ener:triggersEventActionConsume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:Device ; - owl:onProperty s4ener:hasDevice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:Device ; - owl:onProperty s4ener:hasDevice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:TimePeriod ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:TimePeriod ; - owl:onProperty saref:hasTime - ] . - -s4ener:serialNumber a owl:DatatypeProperty ; - rdfs:comment "Indicates the serial number of a device as defined by the manufacturer. Usually the same as printed on the case." ; - rdfs:label "serial number" ; - rdfs:range xsd:string . - -s4ener:ActiveDurationMin - a owl:Class ; - rdfs:comment "The active mininum duration a power sequence can run without interruption." ; - rdfs:label "Active duration min" ; - rdfs:subClassOf . - -s4ener:AnticipationDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the anticipation duration temporal entities" ; - rdfs:label "Anticipation duration description" ; - rdfs:subClassOf . - -s4ener:nodeRemoteControllable - a owl:DatatypeProperty ; - rdfs:comment "Indicates whether the power profile of a device is configured for remote control (e.g., by an energy management system).This refers to the selection chosen by the user on the remote control feature of the device. If nodeRemoteControllable is equal to FALSE, all the supported power sequences shall set the sequenceRemoteControllable property to FALSE. If nodeRemoteControllable is equal to TRUE, at least one power sequence shall be remotely controllable by setting the sequenceRemoteControllable property to TRUE." ; - rdfs:label "node remote controllable" ; - rdfs:range xsd:boolean . - -s4ener:EndTimeDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the end time duration temporal entities" ; - rdfs:label "End time duration Description" ; - rdfs:subClassOf . - -s4ener:running a s4ener:PowerSequenceState , owl:NamedIndividual ; - rdfs:comment "Power sequence state with value 'running'" ; - rdfs:label "running" . - -s4ener:PowerSequenceState - a owl:Class ; - rdfs:comment "The current state of the power sequence. It can assume one of the values 'running', 'paused', 'scheduled', 'scheduled paused', 'pending', 'inactive', 'completed', or 'invalid'." ; - rdfs:label "Power sequence state" ; - rdfs:subClassOf s4ener:State ; - owl:oneOf ( "s4ener:running" "s4ener:paused" "s4ener:scheduled" "s4ener:scheduledPaused" "s4ener:pending" "s4ener:inactive" "s4ener:completed" "s4ener:invalid" ) . - -s4ener:slotActivated a owl:DatatypeProperty ; - rdfs:comment "If a slot is optional, represents the current status of the slot (true = the slot will be executed, false = the slot will not be executed). If the slot is not optional, this element SHALL be absent." ; - rdfs:label "slot activated" ; - rdfs:range xsd:boolean . - -s4ener:ActiveDurationSumMax - a owl:Class ; - rdfs:comment "The active maximum duration a power sequence can run in total (summation of all active times)." ; - rdfs:label "Active duration sum max" ; - rdfs:subClassOf . - -s4ener:messagingType a owl:DatatypeProperty ; - rdfs:comment "Indicates the type of the message. Possible values are:\r\n-\tlogging (used for messages, that shall be stored in a log file)\r\n-\tinformation (messages, that shall be presented to the customer on a display; lower priority)\r\n-\twarning (messages, that shall be presented to the customer on a display; medium priority)\r\n-\talarm (messages, that shall be presented to the customer on a display; high priority; if there is an alarm device in the household, it shall generate an alarm)\r\n-\temergency (messages, that shall be presented to the customer on a display; very high priority; if there is an alarm device in the household, it shall generate an alarm; additionally, if possible and configured, an emergency call shall be done)\r\n-\tobsolete (previously sent messages, that shall be marked as obsolete)" ; - rdfs:label "messaging type" ; - rdfs:range [ a rdfs:Datatype ; - owl:oneOf ( "logging" "information" "warning" "alarm" "emergency" "obsolete" ) - ] . - -s4ener:pause a s4ener:EventActionProduce , s4ener:EventActionConsume , owl:NamedIndividual ; - rdfs:comment "Load control event action with value 'pause'" ; - rdfs:label "pause" . - -s4ener:totalSequencesCountMax - a owl:DatatypeProperty ; - rdfs:comment "Represents the total number of power sequences supported by the power profile of a device" ; - rdfs:label "total sequences count max" ; - rdfs:range xsd:unsignedInt . - -s4ener:hasEventStateConsume - a owl:ObjectProperty ; - rdfs:comment "A relationship between the specification of the state of a load control event consume and the value that this state can assume." ; - rdfs:label "has event state consume" ; - rdfs:subPropertyOf saref:hasState . - -s4ener:exposes a owl:ObjectProperty ; - rdfs:comment "A relationship between a device and its power profile" ; - rdfs:label "exposes" . - -s4ener:emergency a s4ener:EventActionProduce , s4ener:EventActionConsume , owl:NamedIndividual ; - rdfs:comment "Load control event action with value 'emergency'" ; - rdfs:label "emergency" . - -s4ener:hasFunction a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the functions performed by an actuator level and an actuator switch" ; - rdfs:label "has function" . - -s4ener:Power a owl:Class ; - rdfs:comment "Power type and value in a slot (i.e. power, powerMin, powerMax, powerExpectedValue, powerStandardDeviation, powerSkewness)" ; - rdfs:label "Power" ; - rdfs:subClassOf saref:Power . - -s4ener:hasEventStateProduce - a owl:ObjectProperty ; - rdfs:comment "A relationship between the specification of the state of a load control event produce and the value that this state can assume." ; - rdfs:label "has event state produce" ; - rdfs:subPropertyOf saref:hasState . - -s4ener:completed a s4ener:PowerSequenceState , owl:NamedIndividual ; - rdfs:comment "Power sequence state with value 'completed'" ; - rdfs:label "completed" . - -s4ener:repetitionsTotal - a owl:DatatypeProperty ; - rdfs:comment "Contains the total number of repetitions, if a power sequence repeats its sequence of slots. Absence of the element is equal to a presence with a value of 0 (zero). SHALL be absent if the value is 1. " ; - rdfs:label "repetition total" ; - rdfs:range xsd:unsignedInt . - -s4ener:SlotTimeDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the slot time duration temporal entities" ; - rdfs:label "Slot time duration description" ; - rdfs:subClassOf . - -s4ener:deviceCode a owl:DatatypeProperty ; - rdfs:comment "Provides a device code for the device as defined by the manufacturer." ; - rdfs:label "device code" ; - rdfs:range xsd:string . - -s4ener:valueTendency a owl:DatatypeProperty ; - rdfs:comment "Indicates whether the tendency of a measurement is rising, stable or falling." ; - rdfs:label "value tendency" ; - rdfs:range [ a rdfs:Datatype ; - owl:oneOf ( "rising" "stable" "falling" ) - ] . - -s4ener:ResumeEnergyEstimated - a owl:Class ; - rdfs:comment "In a power sequence, the additional energy the device will consume before resuming its normal operation (after a pause). This is only an estimated value which will not be added to the value stated in any slot value information." ; - rdfs:label "Resume energy estimated" ; - rdfs:subClassOf s4ener:Energy . - -s4ener:TimePeriod a owl:Class ; - rdfs:comment "The time period associated with load control event data" ; - rdfs:label "Time period" ; - rdfs:subClassOf . - -s4ener:PowerMin a owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the minimum power consumption and its value" ; - rdfs:label "Power min" ; - rdfs:subClassOf s4ener:Power . - -s4ener:isPausable a owl:DatatypeProperty ; - rdfs:label "is pausable" ; - rdfs:range xsd:boolean . - -s4ener:ResumeCostEstimated - a owl:Class ; - rdfs:comment "In a power sequence the additional costs for the resumption of a device to its normal operation (after a pause)." ; - rdfs:label "Resume cost estimated" ; - rdfs:subClassOf saref:Price . - -s4ener:EnergySkewness - a owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the energy skewness and its value" ; - rdfs:label "Energy skewness" ; - rdfs:subClassOf s4ener:Energy . - -s4ener:vendorName a owl:DatatypeProperty ; - rdfs:comment "Provides the name of the vendor of the device as defined by the manufacturer." ; - rdfs:label "vendor name" ; - rdfs:range xsd:string . - -s4ener:measurementID a owl:DatatypeProperty ; - rdfs:comment "Enables the identification of different sensors on one EEBus address." ; - rdfs:label "measurement id" ; - rdfs:range xsd:unsignedInt . - -s4ener:hardwareRevision - a owl:DatatypeProperty ; - rdfs:comment "Indicates the hardware revision of the device as defined by the manufacturer." ; - rdfs:label "hardware revision " ; - rdfs:range xsd:string . - -s4ener:supportsSingleSlotSchedulingOnly - a owl:DatatypeProperty ; - rdfs:comment "If set toTRUE, the power profile of a device does NOT permit the modification of more than one slot per configuration command." ; - rdfs:label "supports single slot scheduling only" ; - rdfs:range xsd:boolean . - -s4ener:ElapsedSlotTime - a owl:Class ; - rdfs:comment "If state is set to 'running' or 'paused' AND the slot is determined, this element CAN contain the time the slot has already been in 'running' state (this also means the value remains constant during a 'paused' state). Otherwise it SHALL be omitted." ; - rdfs:label "Elapsed slot time" ; - rdfs:subClassOf . - -s4ener:invalid a s4ener:PowerSequenceState , owl:NamedIndividual ; - rdfs:comment "Power sequence state with value 'invalid'" ; - rdfs:label "invalid" . - -s4ener:sequenceRemoteControllable - a owl:DatatypeProperty ; - rdfs:comment "Denotes whether a power sequence is modifiable (if value is TRUE) or not (if value is FALSE). Modifiability is required to configure power sequences and slots. It is also required to change a power sequence state." ; - rdfs:label "sequence remote controllable" ; - rdfs:range xsd:boolean . - -s4ener:slotNumber a owl:DatatypeProperty ; - rdfs:comment "Provides a unique slot identifier for a certain power sequence" ; - rdfs:label "slot number" ; - rdfs:range xsd:unsignedInt . - -s4ener:hasAppliedEventActionConsume - a owl:ObjectProperty ; - rdfs:comment "A relationship between the state of a load control event consume and the action to be performed as a consequence of this event." ; - rdfs:label "has applied event action consume" . - -s4ener:StartTime a owl:Class ; - rdfs:comment "The startTime of a power sequence or slot. SHALL be present" ; - rdfs:label "Start time" ; - rdfs:subClassOf . - -s4ener:EnergyMax a owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the maximum energy consumption and its value" ; - rdfs:label "Energy max" ; - rdfs:subClassOf s4ener:Energy . - -s4ener:vendorCode a owl:DatatypeProperty ; - rdfs:comment "Provides a code for the vendor of the device as defined by the manufacturer." ; - rdfs:label "vendor code" ; - rdfs:range xsd:string . - -s4ener:hasAppliedEventActionProduce - a owl:ObjectProperty ; - rdfs:comment "A relationship between the state of a load control event produce and the action to be performed as a consequence of this event." ; - rdfs:label "has applied event action produce" . - -s4ener:triggersEventActionConsume - a owl:ObjectProperty ; - rdfs:comment "A relationship between a load control event and the consume action triggered by this event" ; - rdfs:label "triggers event action consume" . - -s4ener:deviceName a owl:DatatypeProperty ; - rdfs:comment "Provides the name of the device as defined by the manufacturer." ; - rdfs:label "device name" ; - rdfs:range xsd:string . - -s4ener:eventCancelled - a s4ener:EventStateProduce , s4ener:EventStateConsume , owl:NamedIndividual ; - rdfs:comment "Load control state with value 'event cancelled'" ; - rdfs:label "event cancelled" . - -s4ener:triggersEventActionProduce - a owl:ObjectProperty ; - rdfs:comment "A relationship between a load control event and the produce action triggered by this event" ; - rdfs:label "triggers event action produce" . - -s4ener:messagingNumber - a owl:DatatypeProperty ; - rdfs:comment "An identifier for one specific message. If a message is marked as obsolete, this number can be used to identify the original message." ; - rdfs:label "messaging number" ; - rdfs:range xsd:unsignedInt . - -s4ener:reduce a s4ener:EventActionProduce , s4ener:EventActionConsume , owl:NamedIndividual ; - rdfs:comment "Load control event action with value 'reduce'" ; - rdfs:label "reduce" . - -s4ener:EventStateConsume - a owl:Class ; - rdfs:label "Event state consume" ; - rdfs:subClassOf s4ener:LoadControlEventState ; - owl:oneOf ( "s4ener:eventAccepted" "s4ener:eventStarted" "s4ener:eventStopped" "s4ener:eventRejected" "s4ener:eventCancelled" "s4ener:eventError" ) . diff --git a/src/main/resources/saref-portal-generator/public/saref4ener/latest/saref4ener.rdf b/src/main/resources/saref-portal-generator/public/saref4ener/latest/saref4ener.rdf deleted file mode 100644 index c9cabf3..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4ener/latest/saref4ener.rdf +++ /dev/null @@ -1,1952 +0,0 @@ - - - - - - https://saref.etsi.org/saref4ener# - - - s4ener - 1.1.1 - This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge. - 2019-06-11 - - SAREF4ENER: an extension of SAREF for the energy domain created in collaboration with Energy@Home and EEBus associations - - 2015-09-04 - SAREF4ENER is an extension of SAREF for the Energy domain that was created in collaboration with Energy@Home (http://www.energy-home.it) and EEBus (http://www.eebus.org/en), the major Italy- and Germany-based industry associations, to enable the interconnection of their (different) data models. SAREF4ENER focuses on demand response scenarios, in which customers can offer flexibility to the Smart Grid to manage their smart home devices by means of a Customer Energy Manager (CEM). The CEM is a logical function for optimizing energy consumption and/or production that can reside either in the home gateway or in the cloud. SAREF4ENER is published as an ETSI tecnical specificatoion (ETSI TS 103 410-1). - 2016-12-13 - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - - - - - - - - 0 - - - - - - - - - 1 - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - 1 - - - Power sequence - - - - - - - 1 - - - - - - - - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - 1 - - - The specification of a task, such as wash or tumble dry, according to user preferences and/or manufacturer's settings for a certain device. It is the most 'coarse' view, a power sequence can represent all single steps of a whole task,where the single steps are represented by slots. If the power sequence is pausable by the bound power sequences client, the property 'saref:isInterruptionPossible' SHALL be present and set to true. Otherwise it SHALL be omitted. If the power sequence is stoppable by the bound power sequences client, the property 'saref:isFlexible' SHALL be present and set to true. Otherwise it SHALL be omitted. - - - - - - 1 - - - - - - - - - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - 0 - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - - - - - - - - - - - Power skewness - A possible type of power in a slot that represents the power skewness and its value - - - - - - Energy skewness - A possible type of energy in a slot that represents the energy skewness and its value - - - - - - Energy min - A possible type of energy in a slot that represents the minimum energy consumption and its value - - - - - - - - - - 1 - - - - - Activation delay duration description - The duration description for the activation delay duration temporal entity - - - - Energy - Energy type and value in a slot (i.e., Energy, EnergyMin, EnergyMax, EnergyExpected, EnergyStandardDeviation, EnergySkewness); or the ResumeEnergyEstimated in a power sequence, i.e., the additional energy the device will consume before resuming its normal operation (after a pause) - - - - - - - - - - - 0 - - - An event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter). - - - - - - - - - - - - - - - 0 - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - Load control event data - - - - - - - - - 1 - - - - - - - - - - - - - - - - - 1 - - - - - - - Latest end time - The latest possible end time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0. -Note: This element applies to the first repetition of the slot number only. - - - - Time period - The time period associated with load control event data - - - - - - - - - - s4ener:eventError - - s4ener:eventCancelled - - s4ener:eventRejected - - s4ener:eventStopped - - s4ener:eventStarted - - s4ener:eventAccepted - - - - - Event state produce - - - - Elapsed slot time - If state is set to 'running' or 'paused' AND the slot is determined, this element CAN contain the time the slot has already been in 'running' state (this also means the value remains constant during a 'paused' state). Otherwise it SHALL be omitted. - - - - Pause time - The pause time of a power sequence or a slot - - - - - - Power standard deviation - A possible type of power in a slot that represents the power standard deviation and its value - - - - Time period duration description - The duration description for the time period duration temporal entities - - - - - - - - - - - Power profile - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - - - - - A way to model curves of power and energy over time, which also provides definitions for the modelling of power scheduling including alternative plans. With a PowerProfile, a device (or power sequences server) exposes the power sequences that are potentially relevant for the CEM (or power sequences client). - - - - - - 1 - - - - - - - - - 0 - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - 1 - - - - - - Default duration description - The duration description for the default duration temporal entity - - - - - - - - - - - - s4ener:invalid - - s4ener:completed - - s4ener:inactive - - s4ener:pending - - s4ener:scheduledPaused - - s4ener:scheduled - - s4ener:paused - - s4ener:running - - - - - Power sequence state - The current state of the power sequence. It can assume one of the values 'running', 'paused', 'scheduled', 'scheduled paused', 'pending', 'inactive', 'completed', or 'invalid'. - - - - Default duration - The duration of a slot (SHALL be present in case of 'determined slot'). If a slot has a configurable lenght, this element SHALL reflect the currently configured lenght - - - - Start time duration description - The duration description for the start time duration temporal entities - - - - Anticipation duration description - The duration description for the anticipation duration temporal entities - - - - - - Load control event state - In the load control, it expresses the possible states of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - Load control state data - - The representation of the state of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter). - - - - - 1 - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - 0 - - - - - - Slot time duration description - The duration description for the slot time duration temporal entities - - - - Duration uncertainty description - The duration description for the duration uncertainty temporal entity - - - - Active duration description - The duration description for the active duration (min and max, sum max and sum min) temporal entities - - - - Remaining slot time - If state is set to 'running' or 'paused' AND the slot is determined, this element SHALL contain the time the slot still needs to be in 'running' state (this also means the value remains constant during a 'paused' state). Otherwise it SHALL be omitted. - - - - Active duration sum max - The active maximum duration a power sequence can run in total (summation of all active times). - - - - Pause duration min - The minimum duration a power sequence can pause after the end of an activity. - - - - - 1 - - - - - - - - - 1 - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - Alternatives group - A collection of power sequences for a certain profile - - - - Energy expected - A possible type of energy in a slot that represents the expected energy consumption and its value - - - - Active duration min - The active mininum duration a power sequence can run without interruption. - - - - - - Power min - A possible type of power in a slot that represents the minimum power consumption and its value - - - - - - Power expected - A possible type of power in a slot that represents the expected power consumption and its value - - - - Max anticipation - This field allows the anticipation of the phase if (and only if) the previous phase has the energy set to 0 Wh, each unit is a minute. - - - - Actuator switch - Basic on/off operations on a simple actuator can be modelled with the ActuatorSwitch class. Whether the function turns a device itself ON or OFF, or whether it switches a specific feature, depends on the implementation. For example, one could model the super freeze program of a freezer using ActuatorSwitch class. An ON command would then activate the super freeze program and an OFF command would deactivate it. This example shall just give an idea how ActuatorSwitch can be used for more purposes than only turning devices on and off. - - - - Earliest start time - The earliest possible start time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0. -Note: This element applies to the first repetition of the slot number only. - - - - - - - - - - s4ener:normal - - s4ener:emergency - - s4ener:increase - - s4ener:reduce - - s4ener:resume - - s4ener:pause - - - - - Event action consume - - - - State - An entity that represents the possible states in SAREF4EE - - - - - - - - - 1 - - - - - - - - 1 - - - The single steps of a power sequence are represented by slots. A slot is associated with a slot number (while a power sequence is associated with a power sequence identifier). The slot numbers of two power sequences should be considered independent from each other, i.e., slot number 7 of sequence 1 describes a different slot than slot number 7 of sequence 2. Therefore a slot is only uniquely identified in combination with a sequence ID. - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - 1 - - - - - - - - 1 - - - - - - - - - - - - - 1 - - - - - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - - - - - - - - 1 - - - - - - - - 1 - - - Slot - - - - - - - 1 - - - - - - 1 - - - - - - Energy max - A possible type of energy in a slot that represents the maximum energy consumption and its value - - - - Max duration - If a slot has a configurable duration, it SHALL be present and denote the maximum supported configuration. Note: This element applies to the first repetition of the slot number only - - - - Resume energy estimated - In a power sequence, the additional energy the device will consume before resuming its normal operation (after a pause). This is only an estimated value which will not be added to the value stated in any slot value information. - - - - - - - - - - s4ener:normal - - s4ener:emergency - - s4ener:increase - - s4ener:reduce - - s4ener:resume - - s4ener:pause - - - - - Event action produce - - - - Remaining pause time - The duration that the current slot (s4ee:activeSlotNumber) permits being paused. This element SHALL ONLY be present if the power sequence is interruptible. Otherwise, it SHALL be omitted. In case the power sequence is interruptible the following rules apply: If the element is absent this means there is no explicit pause duration restriction for the current slot; a value of 0s denoted the slot does not permit being paused. - - - - - - Power max - A possible type of power in a slot that represents the maximum power consumption and its value - - - - Duration uncertainty - The uncertainty of the duration - - - - End time - The endTime of a power sequence. If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted. -The end time of a slot MAY be stated in this element. The following equation SHALL apply: endTime - startTime = defaultDuration. - - - - - - - - - - Active duration sum min - The active minimum duration a power sequence must run in total (summation of all active times). - - - - Min duration - If a slot has a configurable duration, it SHALL be present and denote the minimum supported configuration. Note: This element applies to the first repetition of the slot number only. - - - - Max activation delay - Maximum delay time between the end of the previous slot and the beginning of the current slot. - - - - Resume cost estimated - In a power sequence the additional costs for the resumption of a device to its normal operation (after a pause). - - - - Pause duration max - The maximum duration a power sequence can pause after the end of an activity. - - - - End time duration Description - The duration description for the end time duration temporal entities - - - - Power - Power type and value in a slot (i.e. power, powerMin, powerMax, powerExpectedValue, powerStandardDeviation, powerSkewness) - - - Load Control event action - An action type used to express the action to be performed as a consequence of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter). - - - - Actuator level - Independent from the ActuatorSwitch class, the ActuatorLevel class enables a user or application to model LEVEL commands (start, up, percentageAbsolute, relative, etc.). This can be used to dim a light, set the speed of an electric motor, etc. - - - - Active duration max - The active maximum duration a power sequence can run without interruption. - - - - Energy Standard Deviation - A possible type of energy in a slot that represents the energy standard deviation and its value - - - - - - - - - 0 - - - - - - - - 1 - - - - - - - - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - - 0 - - - - - - - - 1 - - - - - - - - 1 - - - A specialization of a saref:Device that exposes a power profile with power sequences to the CEM (note that a s4ee:Device can also be called 'power sequence server'). Most of the existing devices can expose at most 1 power profile, but there are special cases in which more than one power profiles can be exposed by the same device. For example, consider the case of a combined fridge-freezer in which there are 2 logical devices (fridge and freezer) combined in 1 physical device. This combined device can expose 2 power profiles, one for the fridge and one for the freezer. A s4ee:Device (e.g. a household appliance or a smart meter) can also receive events about overload warning severity level and related load control commands (LoadControlEventData) - Device - - - - - - 1 - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - - 0 - - - - - - Start time - The startTime of a power sequence or slot. SHALL be present - - - - - - - - - - Pause duration description - The duration description for the pause duration (max and min) temporal entities - - - - - - - - - - s4ener:eventError - - s4ener:eventCancelled - - s4ener:eventRejected - - s4ener:eventStopped - - s4ener:eventStarted - - s4ener:eventAccepted - - - Event state consume - - - - Activation delay - The scheduled activation delay for a slot. - - - - has event state consume - A relationship between the specification of the state of a load control event consume and the value that this state can assume. - - - has function - A relationship identifying the functions performed by an actuator level and an actuator switch - - - - - - has power value type - A relationship representing a power value type - - - has connection - In the Remote Network Management (RemoteNWM) use case, a relationship between a node in a network (i.e., a s4ee:Device) and its connections (i.e., a s4ee:DeviceConnections). The same s4ee:Device (or node) can have multiple device connections as it can be connected to several networks at the same time. - - - has expression - A relationship between an appliance parameter compatibility action and the associated expressions - - - has applied event action produce - A relationship between the state of a load control event produce and the action to be performed as a consequence of this event. - - - has device - A relationship between a load control event (used to send overload warning severity level and related load control commands) and the device interested by this event. - - - triggers event action consume - A relationship between a load control event and the consume action triggered by this event - - - triggers event action produce - A relationship between a load control event and the produce action triggered by this event - - - - has energy - A relationship between a power sequence and its energy (in terms of value and unit of measure) - - - belongs to - A relationship identifying the ownership of an entity. In particular, a slot belongs to a power sequence, a power sequence belongs to an alternative, an alternative belongs to a power profile, a power profile belongs to a device. - - - has applied event action consume - A relationship between the state of a load control event consume and the action to be performed as a consequence of this event. - - - receives - A relationship between a device (e.g., an appliance or a smart meter) and a load control event - - - - - - has energy value type - A relationship representing an energy value type - - - - has event state produce - A relationship between the specification of the state of a load control event produce and the value that this state can assume. - - - has value type - A relation representing the value type of an entity - - - exposes - A relationship between a device and its power profile - - - - supports reselection - If set toTRUE, the power profile of a device does not restrict the number of power sequence re-selections by the CEM, i.e. within a given alternative the CEM may first choose one power sequence, alter the selection by configuring another sequence later on, then alter the selection again, etc. (provided the process rules and data still permit configuration). If supportsReselection is set to FALSE, the device permits the CEM to select a power sequence of an alternative only once. - - - - brand name - Provides the name of the brand of a device. Useful where the name of the brand and the vendor differs. - - - - event ID - Used in the Demand Response use case to identify an event - - - - repetition total - Contains the total number of repetitions, if a power sequence repeats its sequence of slots. Absence of the element is equal to a presence with a value of 0 (zero). SHALL be absent if the value is 1. - - - - device code - Provides a device code for the device as defined by the manufacturer. - - - - optional slot - Indicates whether a slot is optional (if set to TRUE). Otherwise, if a slot is mandatory, SHALL be omitted or set to FALSE. Note: This element applies to every repetition of the slot number. - - - - vendor code - Provides a code for the vendor of the device as defined by the manufacturer. - - - - supports single slot scheduling only - If set toTRUE, the power profile of a device does NOT permit the modification of more than one slot per configuration command. - - - - device name - Provides the name of the device as defined by the manufacturer. - - - - manufacturer node identification - Indicates a node identification for the device as defined by the manufacturer. This could be used for the identification of a device, even if it was removed from the network and rejoined later with changed node address. - - - - slot number - Provides a unique slot identifier for a certain power sequence - - - - active slot number - Indicates the currently active slot number, if the power sequence state is set to 'running' or 'paused'. Otherwise it SHALL be omitted. - - - - is pausable - - - - node remote controllable - Indicates whether the power profile of a device is configured for remote control (e.g., by an energy management system).This refers to the selection chosen by the user on the remote control feature of the device. If nodeRemoteControllable is equal to FALSE, all the supported power sequences shall set the sequenceRemoteControllable property to FALSE. If nodeRemoteControllable is equal to TRUE, at least one power sequence shall be remotely controllable by setting the sequenceRemoteControllable property to TRUE. - - - - - - - - - - - - obsolete - - emergency - - alarm - - warning - - information - - logging - - - - messaging type - Indicates the type of the message. Possible values are: -- logging (used for messages, that shall be stored in a log file) -- information (messages, that shall be presented to the customer on a display; lower priority) -- warning (messages, that shall be presented to the customer on a display; medium priority) -- alarm (messages, that shall be presented to the customer on a display; high priority; if there is an alarm device in the household, it shall generate an alarm) -- emergency (messages, that shall be presented to the customer on a display; very high priority; if there is an alarm device in the household, it shall generate an alarm; additionally, if possible and configured, an emergency call shall be done) -- obsolete (previously sent messages, that shall be marked as obsolete) - - - - serial number - Indicates the serial number of a device as defined by the manufacturer. Usually the same as printed on the case. - - - - cheapest - Indicates whether a power sequence applies a configuration that minimises the user’s energy bill (if set to TRUE). MAY be present. Absence of this element is equal to the presence with value FALSE. - - - - manufacturer label - A short label of the device as defined by the manufacturer. - - - - - - - - - empiricalValue - - calculatedValue - - measuredValue - - - - value source - Indicates the source (origin/foundation) of the measurement forecasted values for a power sequence. If absent, the source is undefined. Remark: This element shall express the reliability of the forecast. - - - - greenest - Indicates whether a power sequence optimises the configuration towards the maximum availability of renewable energy (if set to TRUE). MAY be present. Absence of this element is equal to the presence with value FALSE. - - - - is stoppable - - - - alternatives group ID - The endpoint-wide unique identifier for the alternatives group instances provided by a power profile - - - - total sequences count max - Represents the total number of power sequences supported by the power profile of a device - - - - activate slot - Indicates whether a slot is used (activateSlot = true) or not (activateSlot = false). SHALL be present if a slot is optional (i.e., the property s4ee:optionalSlot is TRUE), otherwise SHALL be absent (i.e. in case the slot is mandatory). - - - - sequence ID - Provides a unique power sequence identifier for a certain device - - - - manufacturer description - A description for the device as defined by the manufacturer. - - - - alternatives count - Indicates the number of alternatives groups provided by a power profile - - - - active repetition number - Indicates the current repetition of the sequence of slots. SHALL be present if a power sequence can repeat its sequence of slots (i.e., if s4ee:repetitionTotal is present and has a value > 1). Otherwise, it SHALL be absent. - - - - messaging number - An identifier for one specific message. If a message is marked as obsolete, this number can be used to identify the original message. - - - - - - - - - - - dc - - battery - - mains3Phase - - mainsSinglePhase - - unknown - - - - power source - Indicates the power source of a device. Possible values are e.g. mainsSinglePhase or battery - - - - measurement id - Enables the identification of different sensors on one EEBus address. - - - - - - - - - falling - - stable - - rising - - - - value tendency - Indicates whether the tendency of a measurement is rising, stable or falling. - - - - slot activated - If a slot is optional, represents the current status of the slot (true = the slot will be executed, false = the slot will not be executed). If the slot is not optional, this element SHALL be absent. - - - - max cycles per day - States the maximum amount of starts a power sequence (of a device) allows per day. - - - - duration in xsd - This property is added to the time:DurationDescription class to allow to express time duration also as xsd:duration. This is necessary because in the EEBus/E@h model time is always expressed as xsd:duration. We use this property to express the following time information in the EEBus/E@h model: -- the startTime of the power sequence (in the PowerSequence class). SHALL be present -- the endTime of the power sequence (in the PowerSequence class). If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted. -- the startTime of measurement as absolute or relative value (in the Measurement class). -- the endTime of measurement as absolute or relative value (in the Measurement class). - - - - hardware revision - Indicates the hardware revision of the device as defined by the manufacturer. - - - - software revision - Indicates the software revision of a device as defined by the manufacturer. - - - - vendor name - Provides the name of the vendor of the device as defined by the manufacturer. - - - - sequence remote controllable - Denotes whether a power sequence is modifiable (if value is TRUE) or not (if value is FALSE). Modifiability is required to configure power sequences and slots. It is also required to change a power sequence state. - - - - task identifier - - - reduce - Load control event action with value 'reduce' - - - - - event error - Load control state with value 'event error' - - - - - increase - Load control event action with value 'increase' - - - - - scheduled - Power sequence state with value 'scheduled' - - - - pause - Load control event action with value 'pause' - - - - - paused - Power sequence state or sensor state with value 'paused' - - - - emergency - Load control event action with value 'emergency' - - - - - resume - Load control event action with value 'resume' - - - - - inactive - Power sequence state with value 'inactive' - - - - invalid - Power sequence state with value 'invalid' - - - - running - Power sequence state with value 'running' - - - - event cancelled - Load control state with value 'event cancelled' - - - - - scheduled paused - Power sequence state with value 'scheduled paused' - - - - normal - The value NORMAL used to instantiate the Load Control Event Action class and MeasurandState class - - - - - event stopped - Load control state with value 'event stopped' - - - - - event accepted - Load control state with value 'event accepted' - - - - - completed - Power sequence state with value 'completed' - - - - pending - Power sequence state with value 'pending' - - - - event rejected - Load control state with value 'event rejected' - - - - - event started - Load control state with value 'event started' - - - - diff --git a/src/main/resources/saref-portal-generator/public/saref4ener/latest/saref4ener.ttl b/src/main/resources/saref-portal-generator/public/saref4ener/latest/saref4ener.ttl deleted file mode 100644 index 8a8e055..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4ener/latest/saref4ener.ttl +++ /dev/null @@ -1,1551 +0,0 @@ -@prefix dcterms: . -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix saref: . -@prefix xsd: . -@prefix s4ener: . -@prefix vann: . - - - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:xsdDuration ; - ] ; -. - rdf:type owl:Ontology ; - dcterms:title "SAREF4ENER: an extension of SAREF for the energy domain created in collaboration with Energy@Home and EEBus associations"^^xsd:string ; - owl:versionInfo "1.1.1" ; - owl:versionIRI ; - dcterms:created "2015-09-04"^^xsd:date ; - dcterms:modified "2016-12-13"^^xsd:date ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:contributor ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4ener#" ; - vann:preferredNamespacePrefix "s4ener" ; - dcterms:license ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:source ; - dcterms:source ; - dcterms:description "SAREF4ENER is an extension of SAREF for the Energy domain that was created in collaboration with Energy@Home (http://www.energy-home.it) and EEBus (http://www.eebus.org/en), the major Italy- and Germany-based industry associations, to enable the interconnection of their (different) data models. SAREF4ENER focuses on demand response scenarios, in which customers can offer flexibility to the Smart Grid to manage their smart home devices by means of a Customer Energy Manager (CEM). The CEM is a logical function for optimizing energy consumption and/or production that can reside either in the home gateway or in the cloud. SAREF4ENER is published as an ETSI tecnical specificatoion (ETSI TS 103 410-1)."^^xsd:string ; - owl:imports ; - dcterms:publisher . - - -s4ener:ActivationDelay - rdf:type owl:Class ; - rdfs:comment "The scheduled activation delay for a slot."^^xsd:string ; - rdfs:label "Activation delay"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ActivationDelayDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the activation delay duration temporal entity"^^xsd:string ; - rdfs:label "Activation delay duration description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ActiveDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the active duration (min and max, sum max and sum min) temporal entities"^^xsd:string ; - rdfs:label "Active duration description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ActiveDurationMax - rdf:type owl:Class ; - rdfs:comment "The active maximum duration a power sequence can run without interruption."^^xsd:string ; - rdfs:label "Active duration max"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ActiveDurationMin - rdf:type owl:Class ; - rdfs:comment "The active mininum duration a power sequence can run without interruption."^^xsd:string ; - rdfs:label "Active duration min"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ActiveDurationSumMax - rdf:type owl:Class ; - rdfs:comment "The active maximum duration a power sequence can run in total (summation of all active times)."^^xsd:string ; - rdfs:label "Active duration sum max"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ActiveDurationSumMin - rdf:type owl:Class ; - rdfs:comment "The active minimum duration a power sequence must run in total (summation of all active times)."^^xsd:string ; - rdfs:label "Active duration sum min"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ActuatorLevel - rdf:type owl:Class ; - rdfs:comment "Independent from the ActuatorSwitch class, the ActuatorLevel class enables a user or application to model LEVEL commands (start, up, percentageAbsolute, relative, etc.). This can be used to dim a light, set the speed of an electric motor, etc."^^xsd:string ; - rdfs:label "Actuator level"^^xsd:string ; - rdfs:subClassOf saref:Actuator ; -. -s4ener:ActuatorSwitch - rdf:type owl:Class ; - rdfs:comment "Basic on/off operations on a simple actuator can be modelled with the ActuatorSwitch class. Whether the function turns a device itself ON or OFF, or whether it switches a specific feature, depends on the implementation. For example, one could model the super freeze program of a freezer using ActuatorSwitch class. An ON command would then activate the super freeze program and an OFF command would deactivate it. This example shall just give an idea how ActuatorSwitch can be used for more purposes than only turning devices on and off."^^xsd:string ; - rdfs:label "Actuator switch"^^xsd:string ; - rdfs:subClassOf saref:Actuator ; -. -s4ener:AlternativesGroup - rdf:type owl:Class ; - rdfs:comment "A collection of power sequences for a certain profile"^^xsd:string ; - rdfs:label "Alternatives group"^^xsd:string ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:PowerProfile ; - owl:onProperty s4ener:belongsTo ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:PowerSequence ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PowerSequence ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:onClass s4ener:PowerProfile ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:onDataRange xsd:unsignedInt ; - owl:onProperty s4ener:alternativesGroupID ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - ] ; -. -s4ener:AnticipationDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the anticipation duration temporal entities"^^xsd:string ; - rdfs:label "Anticipation duration description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:DefaultDuration - rdf:type owl:Class ; - rdfs:comment "The duration of a slot (SHALL be present in case of 'determined slot'). If a slot has a configurable lenght, this element SHALL reflect the currently configured lenght"^^xsd:string ; - rdfs:label "Default duration"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:DefaultDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the default duration temporal entity"^^xsd:string ; - rdfs:label "Default duration description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:Device - rdf:type owl:Class ; - rdfs:comment "A specialization of a saref:Device that exposes a power profile with power sequences to the CEM (note that a s4ee:Device can also be called 'power sequence server'). Most of the existing devices can expose at most 1 power profile, but there are special cases in which more than one power profiles can be exposed by the same device. For example, consider the case of a combined fridge-freezer in which there are 2 logical devices (fridge and freezer) combined in 1 physical device. This combined device can expose 2 power profiles, one for the fridge and one for the freezer. A s4ee:Device (e.g. a household appliance or a smart meter) can also receive events about overload warning severity level and related load control commands (LoadControlEventData)"^^xsd:string ; - rdfs:label "Device"^^xsd:string ; - rdfs:subClassOf saref:Device ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:LoadControlEventData ; - owl:onProperty s4ener:receives ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:PowerProfile ; - owl:onProperty s4ener:exposes ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:brandName ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:deviceCode ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:deviceName ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:hardwareRevision ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:manufacturerDescription ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:manufacturerLabel ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:manufacturerNodeIdentification ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:serialNumber ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:softwareRevision ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:vendorCode ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:vendorName ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:powerSource ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:LoadControlEventData ; - owl:onProperty s4ener:receives ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PowerProfile ; - owl:onProperty s4ener:exposes ; - ] ; -. -s4ener:DurationUncertainty - rdf:type owl:Class ; - rdfs:comment "The uncertainty of the duration "^^xsd:string ; - rdfs:label "Duration uncertainty"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:DurationUncertaintyDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the duration uncertainty temporal entity"^^xsd:string ; - rdfs:label "Duration uncertainty description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:EarliestStartTime - rdf:type owl:Class ; - rdfs:comment """The earliest possible start time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0. -Note: This element applies to the first repetition of the slot number only."""^^xsd:string ; - rdfs:label "Earliest start time"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ElapsedSlotTime - rdf:type owl:Class ; - rdfs:comment "If state is set to 'running' or 'paused' AND the slot is determined, this element CAN contain the time the slot has already been in 'running' state (this also means the value remains constant during a 'paused' state). Otherwise it SHALL be omitted."^^xsd:string ; - rdfs:label "Elapsed slot time"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:EndTime - rdf:type owl:Class ; - rdfs:comment """The endTime of a power sequence. If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted. -The end time of a slot MAY be stated in this element. The following equation SHALL apply: endTime - startTime = defaultDuration."""^^xsd:string ; - rdfs:label "End time"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:EndTimeDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the end time duration temporal entities"^^xsd:string ; - rdfs:label "End time duration Description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:Energy - rdf:type owl:Class ; - rdfs:comment "Energy type and value in a slot (i.e., Energy, EnergyMin, EnergyMax, EnergyExpected, EnergyStandardDeviation, EnergySkewness); or the ResumeEnergyEstimated in a power sequence, i.e., the additional energy the device will consume before resuming its normal operation (after a pause)"^^xsd:string ; - rdfs:label "Energy"^^xsd:string ; - rdfs:subClassOf saref:Energy ; -. -s4ener:EnergyExpected - rdf:type owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the expected energy consumption and its value"^^xsd:string ; - rdfs:label "Energy expected"^^xsd:string ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:EnergyMax - rdf:type owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the maximum energy consumption and its value"^^xsd:string ; - rdfs:label "Energy max"^^xsd:string ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:EnergyMin - rdf:type owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the minimum energy consumption and its value"^^xsd:string ; - rdfs:label "Energy min"^^xsd:string ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:EnergySkewness - rdf:type owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the energy skewness and its value"^^xsd:string ; - rdfs:label "Energy skewness"^^xsd:string ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:EnergyStandardDeviation - rdf:type owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the energy standard deviation and its value"^^xsd:string ; - rdfs:label "Energy Standard Deviation"^^xsd:string ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:EventActionConsume - rdf:type owl:Class ; - rdfs:label "Event action consume"^^xsd:string ; - rdfs:subClassOf s4ener:LoadControlEventAction ; - owl:oneOf ( - "s4ener:pause"^^xsd:string - "s4ener:resume"^^xsd:string - "s4ener:reduce"^^xsd:string - "s4ener:increase"^^xsd:string - "s4ener:emergency"^^xsd:string - "s4ener:normal"^^xsd:string - ) ; -. -s4ener:EventActionProduce - rdf:type owl:Class ; - rdfs:label "Event action produce"^^xsd:string ; - rdfs:subClassOf s4ener:LoadControlEventAction ; - owl:oneOf ( - "s4ener:pause"^^xsd:string - "s4ener:resume"^^xsd:string - "s4ener:reduce"^^xsd:string - "s4ener:increase"^^xsd:string - "s4ener:emergency"^^xsd:string - "s4ener:normal"^^xsd:string - ) ; -. -s4ener:EventStateConsume - rdf:type owl:Class ; - rdfs:label "Event state consume"^^xsd:string ; - rdfs:subClassOf s4ener:LoadControlEventState ; - owl:oneOf ( - "s4ener:eventAccepted"^^xsd:string - "s4ener:eventStarted"^^xsd:string - "s4ener:eventStopped"^^xsd:string - "s4ener:eventRejected"^^xsd:string - "s4ener:eventCancelled"^^xsd:string - "s4ener:eventError"^^xsd:string - ) ; -. -s4ener:EventStateProduce - rdf:type owl:Class ; - rdfs:label "Event state produce"^^xsd:string ; - rdfs:subClassOf s4ener:LoadControlEventState ; - owl:oneOf ( - "s4ener:eventAccepted"^^xsd:string - "s4ener:eventStarted"^^xsd:string - "s4ener:eventStopped"^^xsd:string - "s4ener:eventRejected"^^xsd:string - "s4ener:eventCancelled"^^xsd:string - "s4ener:eventError"^^xsd:string - ) ; -. -s4ener:LatestEndTime - rdf:type owl:Class ; - rdfs:comment """The latest possible end time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0. -Note: This element applies to the first repetition of the slot number only."""^^xsd:string ; - rdfs:label "Latest end time"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:LoadControlEventAction - rdf:type owl:Class ; - rdfs:comment "An action type used to express the action to be performed as a consequence of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."^^xsd:string ; - rdfs:label "Load Control event action"^^xsd:string ; -. -s4ener:LoadControlEventData - rdf:type owl:Class ; - rdfs:comment "An event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."^^xsd:string ; - rdfs:label "Load control event data"^^xsd:string ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:Device ; - owl:onProperty s4ener:hasDevice ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:EventActionConsume ; - owl:onProperty s4ener:triggersEventActionConsume ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:EventActionProduce ; - owl:onProperty s4ener:triggersEventActionProduce ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:TimePeriod ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:eventID ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionConsume ; - owl:onProperty s4ener:triggersEventActionConsume ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionProduce ; - owl:onProperty s4ener:triggersEventActionProduce ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:Device ; - owl:onProperty s4ener:hasDevice ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:TimePeriod ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime ; - owl:onProperty saref:hasTimestamp ; - ] ; -. -s4ener:LoadControlEventState - rdf:type owl:Class ; - rdfs:comment "In the load control, it expresses the possible states of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."^^xsd:string ; - rdfs:label "Load control event state "^^xsd:string ; - rdfs:subClassOf s4ener:State ; -. -s4ener:LoadControlStateData - rdf:type owl:Class ; - rdfs:comment "The representation of the state of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."^^xsd:string ; - rdfs:label "Load control state data"^^xsd:string ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:EventActionConsume ; - owl:onProperty s4ener:hasAppliedEventActionConsume ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:EventActionProduce ; - owl:onProperty s4ener:hasAppliedEventActionProduce ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:EventStateConsume ; - owl:onProperty s4ener:hasEventStateConsume ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:EventStateProduce ; - owl:onProperty s4ener:hasEventStateProduce ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionConsume ; - owl:onProperty s4ener:hasAppliedEventActionConsume ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionProduce ; - owl:onProperty s4ener:hasAppliedEventActionProduce ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventStateConsume ; - owl:onProperty s4ener:hasEventStateConsume ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventStateProduce ; - owl:onProperty s4ener:hasEventStateProduce ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:unsignedInt ; - owl:onProperty s4ener:eventID ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime ; - owl:onProperty saref:hasTimestamp ; - ] ; -. -s4ener:MaxActivationDelay - rdf:type owl:Class ; - rdfs:comment "Maximum delay time between the end of the previous slot and the beginning of the current slot."^^xsd:string ; - rdfs:label "Max activation delay"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:MaxAnticipation - rdf:type owl:Class ; - rdfs:comment "This field allows the anticipation of the phase if (and only if) the previous phase has the energy set to 0 Wh, each unit is a minute."^^xsd:string ; - rdfs:label "Max anticipation"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:MaxDuration - rdf:type owl:Class ; - rdfs:comment "If a slot has a configurable duration, it SHALL be present and denote the maximum supported configuration. Note: This element applies to the first repetition of the slot number only"^^xsd:string ; - rdfs:label "Max duration"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:MinDuration - rdf:type owl:Class ; - rdfs:comment "If a slot has a configurable duration, it SHALL be present and denote the minimum supported configuration. Note: This element applies to the first repetition of the slot number only."^^xsd:string ; - rdfs:label "Min duration"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:PauseDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the pause duration (max and min) temporal entities"^^xsd:string ; - rdfs:label "Pause duration description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:PauseDurationMax - rdf:type owl:Class ; - rdfs:comment "The maximum duration a power sequence can pause after the end of an activity."^^xsd:string ; - rdfs:label "Pause duration max"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:PauseDurationMin - rdf:type owl:Class ; - rdfs:comment "The minimum duration a power sequence can pause after the end of an activity."^^xsd:string ; - rdfs:label "Pause duration min"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:PauseTime - rdf:type owl:Class ; - rdfs:comment "The pause time of a power sequence or a slot"^^xsd:string ; - rdfs:label "Pause time"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:Power - rdf:type owl:Class ; - rdfs:comment "Power type and value in a slot (i.e. power, powerMin, powerMax, powerExpectedValue, powerStandardDeviation, powerSkewness)"^^xsd:string ; - rdfs:label "Power"^^xsd:string ; - rdfs:subClassOf saref:Power ; -. -s4ener:PowerExpected - rdf:type owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the expected power consumption and its value"^^xsd:string ; - rdfs:label "Power expected "^^xsd:string ; - rdfs:subClassOf s4ener:Power ; -. -s4ener:PowerMax - rdf:type owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the maximum power consumption and its value"^^xsd:string ; - rdfs:label "Power max"^^xsd:string ; - rdfs:subClassOf s4ener:Power ; -. -s4ener:PowerMin - rdf:type owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the minimum power consumption and its value"^^xsd:string ; - rdfs:label "Power min"^^xsd:string ; - rdfs:subClassOf s4ener:Power ; -. -s4ener:PowerProfile - rdf:type owl:Class ; - rdfs:comment "A way to model curves of power and energy over time, which also provides definitions for the modelling of power scheduling including alternative plans. With a PowerProfile, a device (or power sequences server) exposes the power sequences that are potentially relevant for the CEM (or power sequences client). "^^xsd:string ; - rdfs:label "Power profile"^^xsd:string ; - rdfs:subClassOf saref:Profile ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:AlternativesGroup ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:Device ; - owl:onProperty s4ener:belongsTo ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:alternativesCount ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:nodeRemoteControllable ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:supportsReselection ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:supportsSingleSlotSchedulingOnly ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:totalSequencesCountMax ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:AlternativesGroup ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:onClass s4ener:Device ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - ] ; -. -s4ener:PowerSequence - rdf:type owl:Class ; - rdfs:comment "The specification of a task, such as wash or tumble dry, according to user preferences and/or manufacturer's settings for a certain device. It is the most 'coarse' view, a power sequence can represent all single steps of a whole task,where the single steps are represented by slots. If the power sequence is pausable by the bound power sequences client, the property 'saref:isInterruptionPossible' SHALL be present and set to true. Otherwise it SHALL be omitted. If the power sequence is stoppable by the bound power sequences client, the property 'saref:isFlexible' SHALL be present and set to true. Otherwise it SHALL be omitted."^^xsd:string ; - rdfs:label "Power sequence"^^xsd:string ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:AlternativesGroup ; - owl:onProperty s4ener:belongsTo ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:PowerSequenceState ; - owl:onProperty saref:hasState ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:ResumeCostEstimated ; - owl:onProperty saref:hasPrice ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:ResumeEnergyEstimated ; - owl:onProperty s4ener:hasEnergy ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:Slot ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:sequenceID ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:sequenceRemoteControllable ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:activeRepetitionNumber ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:activeSlotNumber ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:cheapest ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:greenest ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:isPausable ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:isStoppable ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:maxCyclesPerDay ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:repetitionsTotal ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationMax ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationMin ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationSumMax ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationSumMin ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EarliestStartTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ElapsedSlotTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EndTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:LatestEndTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PauseDurationMax ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PauseDurationMin ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:RemainingSlotTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ResumeCostEstimated ; - owl:onProperty saref:hasPrice ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ResumeEnergyEstimated ; - owl:onProperty s4ener:hasEnergy ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:taskIdentifier ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:valueSource ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PowerSequenceState ; - owl:onProperty saref:hasState ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:Slot ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:StartTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:onClass s4ener:AlternativesGroup ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - ] ; -. -s4ener:PowerSequenceState - rdf:type owl:Class ; - rdfs:comment "The current state of the power sequence. It can assume one of the values 'running', 'paused', 'scheduled', 'scheduled paused', 'pending', 'inactive', 'completed', or 'invalid'."^^xsd:string ; - rdfs:label "Power sequence state"^^xsd:string ; - rdfs:subClassOf s4ener:State ; - owl:oneOf ( - "s4ener:running"^^xsd:string - "s4ener:paused"^^xsd:string - "s4ener:scheduled"^^xsd:string - "s4ener:scheduledPaused"^^xsd:string - "s4ener:pending"^^xsd:string - "s4ener:inactive"^^xsd:string - "s4ener:completed"^^xsd:string - "s4ener:invalid"^^xsd:string - ) ; -. -s4ener:PowerSkewness - rdf:type owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the power skewness and its value"^^xsd:string ; - rdfs:label "Power skewness"^^xsd:string ; - rdfs:subClassOf s4ener:Power ; -. -s4ener:PowerStandardDeviation - rdf:type owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the power standard deviation and its value"^^xsd:string ; - rdfs:label "Power standard deviation"^^xsd:string ; - rdfs:subClassOf s4ener:Power ; -. -s4ener:RemainingPauseTime - rdf:type owl:Class ; - rdfs:comment "The duration that the current slot (s4ee:activeSlotNumber) permits being paused. This element SHALL ONLY be present if the power sequence is interruptible. Otherwise, it SHALL be omitted. In case the power sequence is interruptible the following rules apply: If the element is absent this means there is no explicit pause duration restriction for the current slot; a value of 0s denoted the slot does not permit being paused."^^xsd:string ; - rdfs:label "Remaining pause time"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:RemainingSlotTime - rdf:type owl:Class ; - rdfs:comment "If state is set to 'running' or 'paused' AND the slot is determined, this element SHALL contain the time the slot still needs to be in 'running' state (this also means the value remains constant during a 'paused' state). Otherwise it SHALL be omitted."^^xsd:string ; - rdfs:label "Remaining slot time"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ResumeCostEstimated - rdf:type owl:Class ; - rdfs:comment "In a power sequence the additional costs for the resumption of a device to its normal operation (after a pause)."^^xsd:string ; - rdfs:label "Resume cost estimated"^^xsd:string ; - rdfs:subClassOf saref:Price ; -. -s4ener:ResumeEnergyEstimated - rdf:type owl:Class ; - rdfs:comment "In a power sequence, the additional energy the device will consume before resuming its normal operation (after a pause). This is only an estimated value which will not be added to the value stated in any slot value information."^^xsd:string ; - rdfs:label "Resume energy estimated"^^xsd:string ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:Slot - rdf:type owl:Class ; - rdfs:comment "The single steps of a power sequence are represented by slots. A slot is associated with a slot number (while a power sequence is associated with a power sequence identifier). The slot numbers of two power sequences should be considered independent from each other, i.e., slot number 7 of sequence 1 describes a different slot than slot number 7 of sequence 2. Therefore a slot is only uniquely identified in combination with a sequence ID. "^^xsd:string ; - rdfs:label "Slot"^^xsd:string ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom saref:Time ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:Energy ; - owl:onProperty s4ener:hasEnergyValueType ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:Power ; - owl:onProperty s4ener:hasPowerValueType ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:PowerSequence ; - owl:onProperty s4ener:belongsTo ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:slotNumber ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:optionalSlot ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:slotActivated ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:DefaultDuration ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:DurationUncertainty ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EarliestStartTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EndTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:LatestEndTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:MaxDuration ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:MinDuration ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:RemainingPauseTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:StartTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass [ - rdf:type owl:Class ; - owl:unionOf ( - s4ener:Energy - s4ener:Power - ) ; - ] ; - owl:onProperty s4ener:hasValueType ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:onClass s4ener:PowerSequence ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - ] ; -. -s4ener:SlotTimeDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the slot time duration temporal entities"^^xsd:string ; - rdfs:label "Slot time duration description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:StartTime - rdf:type owl:Class ; - rdfs:comment "The startTime of a power sequence or slot. SHALL be present"^^xsd:string ; - rdfs:label "Start time"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:StartTimeDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the start time duration temporal entities"^^xsd:string ; - rdfs:label "Start time duration description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:State - rdf:type owl:Class ; - rdfs:comment "An entity that represents the possible states in SAREF4EE"^^xsd:string ; - rdfs:label "State"^^xsd:string ; - rdfs:subClassOf saref:State ; -. -s4ener:TimePeriod - rdf:type owl:Class ; - rdfs:comment "The time period associated with load control event data"^^xsd:string ; - rdfs:label "Time period"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:TimePeriodDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the time period duration temporal entities"^^xsd:string ; - rdfs:label "Time period duration description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:activateSlot - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates whether a slot is used (activateSlot = true) or not (activateSlot = false). SHALL be present if a slot is optional (i.e., the property s4ee:optionalSlot is TRUE), otherwise SHALL be absent (i.e. in case the slot is mandatory)."^^xsd:string ; - rdfs:label "activate slot"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:activeRepetitionNumber - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates the current repetition of the sequence of slots. SHALL be present if a power sequence can repeat its sequence of slots (i.e., if s4ee:repetitionTotal is present and has a value > 1). Otherwise, it SHALL be absent. "^^xsd:string ; - rdfs:label "active repetition number"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:activeSlotNumber - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates the currently active slot number, if the power sequence state is set to 'running' or 'paused'. Otherwise it SHALL be omitted."^^xsd:string ; - rdfs:label "active slot number"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:alternativesCount - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates the number of alternatives groups provided by a power profile"^^xsd:string ; - rdfs:label "alternatives count"^^xsd:string ; - rdfs:range xsd:integer ; -. -s4ener:alternativesGroupID - rdf:type owl:DatatypeProperty ; - rdfs:comment "The endpoint-wide unique identifier for the alternatives group instances provided by a power profile"^^xsd:string ; - rdfs:label "alternatives group ID"^^xsd:string ; - rdfs:range xsd:integer ; -. -s4ener:belongsTo - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying the ownership of an entity. In particular, a slot belongs to a power sequence, a power sequence belongs to an alternative, an alternative belongs to a power profile, a power profile belongs to a device. "^^xsd:string ; - rdfs:label "belongs to"^^xsd:string ; -. -s4ener:brandName - rdf:type owl:DatatypeProperty ; - rdfs:comment "Provides the name of the brand of a device. Useful where the name of the brand and the vendor differs."^^xsd:string ; - rdfs:label "brand name"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:cheapest - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates whether a power sequence applies a configuration that minimises the user’s energy bill (if set to TRUE). MAY be present. Absence of this element is equal to the presence with value FALSE. "^^xsd:string ; - rdfs:label "cheapest"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:completed - rdf:type owl:NamedIndividual ; - rdf:type s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'completed'"^^xsd:string ; - rdfs:label "completed"^^xsd:string ; -. -s4ener:deviceCode - rdf:type owl:DatatypeProperty ; - rdfs:comment "Provides a device code for the device as defined by the manufacturer."^^xsd:string ; - rdfs:label "device code"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:deviceName - rdf:type owl:DatatypeProperty ; - rdfs:comment "Provides the name of the device as defined by the manufacturer."^^xsd:string ; - rdfs:label "device name"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:emergency - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventActionConsume ; - rdf:type s4ener:EventActionProduce ; - rdfs:comment "Load control event action with value 'emergency'"^^xsd:string ; - rdfs:label "emergency"^^xsd:string ; -. -s4ener:eventAccepted - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventStateConsume ; - rdf:type s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event accepted'"^^xsd:string ; - rdfs:label "event accepted"^^xsd:string ; -. -s4ener:eventCancelled - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventStateConsume ; - rdf:type s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event cancelled'"^^xsd:string ; - rdfs:label "event cancelled"^^xsd:string ; -. -s4ener:eventError - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventStateConsume ; - rdf:type s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event error'"^^xsd:string ; - rdfs:label "event error"^^xsd:string ; -. -s4ener:eventID - rdf:type owl:DatatypeProperty ; - rdfs:comment "Used in the Demand Response use case to identify an event"^^xsd:string ; - rdfs:label "event ID"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:eventRejected - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventStateConsume ; - rdf:type s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event rejected'"^^xsd:string ; - rdfs:label "event rejected"^^xsd:string ; -. -s4ener:eventStarted - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventStateConsume ; - rdf:type s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event started'"^^xsd:string ; - rdfs:label "event started"^^xsd:string ; -. -s4ener:eventStopped - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventStateConsume ; - rdf:type s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event stopped'"^^xsd:string ; - rdfs:label "event stopped"^^xsd:string ; -. -s4ener:exposes - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a device and its power profile"^^xsd:string ; - rdfs:label "exposes"^^xsd:string ; -. -s4ener:greenest - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates whether a power sequence optimises the configuration towards the maximum availability of renewable energy (if set to TRUE). MAY be present. Absence of this element is equal to the presence with value FALSE. "^^xsd:string ; - rdfs:label "greenest"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:hardwareRevision - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates the hardware revision of the device as defined by the manufacturer."^^xsd:string ; - rdfs:label "hardware revision "^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:hasAppliedEventActionConsume - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between the state of a load control event consume and the action to be performed as a consequence of this event."^^xsd:string ; - rdfs:label "has applied event action consume"^^xsd:string ; -. -s4ener:hasAppliedEventActionProduce - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between the state of a load control event produce and the action to be performed as a consequence of this event."^^xsd:string ; - rdfs:label "has applied event action produce"^^xsd:string ; -. -s4ener:hasConnection - rdf:type owl:ObjectProperty ; - rdfs:comment "In the Remote Network Management (RemoteNWM) use case, a relationship between a node in a network (i.e., a s4ee:Device) and its connections (i.e., a s4ee:DeviceConnections). The same s4ee:Device (or node) can have multiple device connections as it can be connected to several networks at the same time."^^xsd:string ; - rdfs:label "has connection"^^xsd:string ; -. -s4ener:hasDevice - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a load control event (used to send overload warning severity level and related load control commands) and the device interested by this event."^^xsd:string ; - rdfs:label "has device"^^xsd:string ; -. -s4ener:hasEnergy - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a power sequence and its energy (in terms of value and unit of measure)"^^xsd:string ; - rdfs:label "has energy"^^xsd:string ; - rdfs:range s4ener:Energy ; -. -s4ener:hasEnergyValueType - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship representing an energy value type"^^xsd:string ; - rdfs:label "has energy value type"^^xsd:string ; - rdfs:subPropertyOf s4ener:hasValueType ; -. -s4ener:hasEventStateConsume - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between the specification of the state of a load control event consume and the value that this state can assume."^^xsd:string ; - rdfs:label "has event state consume"^^xsd:string ; - rdfs:subPropertyOf saref:hasState ; -. -s4ener:hasEventStateProduce - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between the specification of the state of a load control event produce and the value that this state can assume."^^xsd:string ; - rdfs:label "has event state produce"^^xsd:string ; - rdfs:subPropertyOf saref:hasState ; -. -s4ener:hasExpression - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between an appliance parameter compatibility action and the associated expressions"^^xsd:string ; - rdfs:label "has expression"^^xsd:string ; -. -s4ener:hasFunction - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying the functions performed by an actuator level and an actuator switch"^^xsd:string ; - rdfs:label "has function"^^xsd:string ; -. -s4ener:hasPowerValueType - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship representing a power value type"^^xsd:string ; - rdfs:label "has power value type"^^xsd:string ; - rdfs:subPropertyOf s4ener:hasValueType ; -. -s4ener:hasValueType - rdf:type owl:ObjectProperty ; - rdfs:comment "A relation representing the value type of an entity"^^xsd:string ; - rdfs:label "has value type"^^xsd:string ; -. -s4ener:inactive - rdf:type owl:NamedIndividual ; - rdf:type s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'inactive'"^^xsd:string ; - rdfs:label "inactive"^^xsd:string ; -. -s4ener:increase - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventActionConsume ; - rdf:type s4ener:EventActionProduce ; - rdfs:comment "Load control event action with value 'increase'"^^xsd:string ; - rdfs:label "increase"^^xsd:string ; -. -s4ener:invalid - rdf:type owl:NamedIndividual ; - rdf:type s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'invalid'"^^xsd:string ; - rdfs:label "invalid"^^xsd:string ; -. -s4ener:isPausable - rdf:type owl:DatatypeProperty ; - rdfs:label "is pausable"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:isStoppable - rdf:type owl:DatatypeProperty ; - rdfs:label "is stoppable"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:manufacturerDescription - rdf:type owl:DatatypeProperty ; - rdfs:comment "A description for the device as defined by the manufacturer."^^xsd:string ; - rdfs:label "manufacturer description"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:manufacturerLabel - rdf:type owl:DatatypeProperty ; - rdfs:comment "A short label of the device as defined by the manufacturer. "^^xsd:string ; - rdfs:label "manufacturer label"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:manufacturerNodeIdentification - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates a node identification for the device as defined by the manufacturer. This could be used for the identification of a device, even if it was removed from the network and rejoined later with changed node address."^^xsd:string ; - rdfs:label "manufacturer node identification"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:maxCyclesPerDay - rdf:type owl:DatatypeProperty ; - rdfs:comment "States the maximum amount of starts a power sequence (of a device) allows per day."^^xsd:string ; - rdfs:label "max cycles per day"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:measurementID - rdf:type owl:DatatypeProperty ; - rdfs:comment "Enables the identification of different sensors on one EEBus address."^^xsd:string ; - rdfs:label "measurement id"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:messagingNumber - rdf:type owl:DatatypeProperty ; - rdfs:comment "An identifier for one specific message. If a message is marked as obsolete, this number can be used to identify the original message."^^xsd:string ; - rdfs:label "messaging number"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:messagingType - rdf:type owl:DatatypeProperty ; - rdfs:comment """Indicates the type of the message. Possible values are: -- logging (used for messages, that shall be stored in a log file) -- information (messages, that shall be presented to the customer on a display; lower priority) -- warning (messages, that shall be presented to the customer on a display; medium priority) -- alarm (messages, that shall be presented to the customer on a display; high priority; if there is an alarm device in the household, it shall generate an alarm) -- emergency (messages, that shall be presented to the customer on a display; very high priority; if there is an alarm device in the household, it shall generate an alarm; additionally, if possible and configured, an emergency call shall be done) -- obsolete (previously sent messages, that shall be marked as obsolete)"""^^xsd:string ; - rdfs:label "messaging type"^^xsd:string ; - rdfs:range [ - rdf:type rdfs:Datatype ; - owl:oneOf ( - "logging"^^xsd:string - "information"^^xsd:string - "warning"^^xsd:string - "alarm"^^xsd:string - "emergency"^^xsd:string - "obsolete"^^xsd:string - ) ; - ] ; -. -s4ener:nodeRemoteControllable - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates whether the power profile of a device is configured for remote control (e.g., by an energy management system).This refers to the selection chosen by the user on the remote control feature of the device. If nodeRemoteControllable is equal to FALSE, all the supported power sequences shall set the sequenceRemoteControllable property to FALSE. If nodeRemoteControllable is equal to TRUE, at least one power sequence shall be remotely controllable by setting the sequenceRemoteControllable property to TRUE."^^xsd:string ; - rdfs:label "node remote controllable"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:normal - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventActionConsume ; - rdf:type s4ener:EventActionProduce ; - rdfs:comment "The value NORMAL used to instantiate the Load Control Event Action class and MeasurandState class"^^xsd:string ; - rdfs:label "normal"^^xsd:string ; -. -s4ener:optionalSlot - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates whether a slot is optional (if set to TRUE). Otherwise, if a slot is mandatory, SHALL be omitted or set to FALSE. Note: This element applies to every repetition of the slot number."^^xsd:string ; - rdfs:label "optional slot"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:pause - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventActionConsume ; - rdf:type s4ener:EventActionProduce ; - rdfs:comment "Load control event action with value 'pause'"^^xsd:string ; - rdfs:label "pause"^^xsd:string ; -. -s4ener:paused - rdf:type owl:NamedIndividual ; - rdf:type s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state or sensor state with value 'paused'"^^xsd:string ; - rdfs:label "paused"^^xsd:string ; -. -s4ener:pending - rdf:type owl:NamedIndividual ; - rdf:type s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'pending'"^^xsd:string ; - rdfs:label "pending"^^xsd:string ; -. -s4ener:powerSource - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates the power source of a device. Possible values are e.g. mainsSinglePhase or battery "^^xsd:string ; - rdfs:label "power source"^^xsd:string ; - rdfs:range [ - rdf:type rdfs:Datatype ; - owl:oneOf ( - "unknown"^^xsd:string - "mainsSinglePhase"^^xsd:string - "mains3Phase"^^xsd:string - "battery"^^xsd:string - "dc"^^xsd:string - ) ; - ] ; -. -s4ener:receives - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a device (e.g., an appliance or a smart meter) and a load control event"^^xsd:string ; - rdfs:label "receives"^^xsd:string ; -. -s4ener:reduce - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventActionConsume ; - rdf:type s4ener:EventActionProduce ; - rdfs:comment "Load control event action with value 'reduce'"^^xsd:string ; - rdfs:label "reduce"^^xsd:string ; -. -s4ener:repetitionsTotal - rdf:type owl:DatatypeProperty ; - rdfs:comment "Contains the total number of repetitions, if a power sequence repeats its sequence of slots. Absence of the element is equal to a presence with a value of 0 (zero). SHALL be absent if the value is 1. "^^xsd:string ; - rdfs:label "repetition total"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:resume - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventActionConsume ; - rdf:type s4ener:EventActionProduce ; - rdfs:comment "Load control event action with value 'resume'"^^xsd:string ; - rdfs:label "resume"^^xsd:string ; -. -s4ener:running - rdf:type owl:NamedIndividual ; - rdf:type s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'running'"^^xsd:string ; - rdfs:label "running"^^xsd:string ; -. -s4ener:scheduled - rdf:type owl:NamedIndividual ; - rdf:type s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'scheduled'"^^xsd:string ; - rdfs:label "scheduled"^^xsd:string ; -. -s4ener:scheduledPaused - rdf:type owl:NamedIndividual ; - rdf:type s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'scheduled paused'"^^xsd:string ; - rdfs:label "scheduled paused"^^xsd:string ; -. -s4ener:sequenceID - rdf:type owl:DatatypeProperty ; - rdfs:comment "Provides a unique power sequence identifier for a certain device"^^xsd:string ; - rdfs:label "sequence ID"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:sequenceRemoteControllable - rdf:type owl:DatatypeProperty ; - rdfs:comment "Denotes whether a power sequence is modifiable (if value is TRUE) or not (if value is FALSE). Modifiability is required to configure power sequences and slots. It is also required to change a power sequence state."^^xsd:string ; - rdfs:label "sequence remote controllable"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:serialNumber - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates the serial number of a device as defined by the manufacturer. Usually the same as printed on the case."^^xsd:string ; - rdfs:label "serial number"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:slotActivated - rdf:type owl:DatatypeProperty ; - rdfs:comment "If a slot is optional, represents the current status of the slot (true = the slot will be executed, false = the slot will not be executed). If the slot is not optional, this element SHALL be absent."^^xsd:string ; - rdfs:label "slot activated"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:slotNumber - rdf:type owl:DatatypeProperty ; - rdfs:comment "Provides a unique slot identifier for a certain power sequence"^^xsd:string ; - rdfs:label "slot number"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:softwareRevision - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates the software revision of a device as defined by the manufacturer."^^xsd:string ; - rdfs:label "software revision"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:supportsReselection - rdf:type owl:DatatypeProperty ; - rdfs:comment "If set toTRUE, the power profile of a device does not restrict the number of power sequence re-selections by the CEM, i.e. within a given alternative the CEM may first choose one power sequence, alter the selection by configuring another sequence later on, then alter the selection again, etc. (provided the process rules and data still permit configuration). If supportsReselection is set to FALSE, the device permits the CEM to select a power sequence of an alternative only once."^^xsd:string ; - rdfs:label "supports reselection"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:supportsSingleSlotSchedulingOnly - rdf:type owl:DatatypeProperty ; - rdfs:comment "If set toTRUE, the power profile of a device does NOT permit the modification of more than one slot per configuration command."^^xsd:string ; - rdfs:label "supports single slot scheduling only"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:taskIdentifier - rdf:type owl:DatatypeProperty ; - rdfs:label "task identifier"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:totalSequencesCountMax - rdf:type owl:DatatypeProperty ; - rdfs:comment "Represents the total number of power sequences supported by the power profile of a device"^^xsd:string ; - rdfs:label "total sequences count max"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:triggersEventActionConsume - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a load control event and the consume action triggered by this event"^^xsd:string ; - rdfs:label "triggers event action consume"^^xsd:string ; -. -s4ener:triggersEventActionProduce - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a load control event and the produce action triggered by this event"^^xsd:string ; - rdfs:label "triggers event action produce"^^xsd:string ; -. -s4ener:valueSource - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates the source (origin/foundation) of the measurement forecasted values for a power sequence. If absent, the source is undefined. Remark: This element shall express the reliability of the forecast."^^xsd:string ; - rdfs:label "value source"^^xsd:string ; - rdfs:range [ - rdf:type rdfs:Datatype ; - owl:oneOf ( - "measuredValue"^^xsd:string - "calculatedValue"^^xsd:string - "empiricalValue"^^xsd:string - ) ; - ] ; -. -s4ener:valueTendency - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates whether the tendency of a measurement is rising, stable or falling."^^xsd:string ; - rdfs:label "value tendency"^^xsd:string ; - rdfs:range [ - rdf:type rdfs:Datatype ; - owl:oneOf ( - "rising"^^xsd:string - "stable"^^xsd:string - "falling"^^xsd:string - ) ; - ] ; -. -s4ener:vendorCode - rdf:type owl:DatatypeProperty ; - rdfs:comment "Provides a code for the vendor of the device as defined by the manufacturer."^^xsd:string ; - rdfs:label "vendor code"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:vendorName - rdf:type owl:DatatypeProperty ; - rdfs:comment "Provides the name of the vendor of the device as defined by the manufacturer."^^xsd:string ; - rdfs:label "vendor name"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:xsdDuration - rdf:type owl:DatatypeProperty ; - rdfs:comment """This property is added to the time:DurationDescription class to allow to express time duration also as xsd:duration. This is necessary because in the EEBus/E@h model time is always expressed as xsd:duration. We use this property to express the following time information in the EEBus/E@h model: -- the startTime of the power sequence (in the PowerSequence class). SHALL be present -- the endTime of the power sequence (in the PowerSequence class). If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted. -- the startTime of measurement as absolute or relative value (in the Measurement class). -- the endTime of measurement as absolute or relative value (in the Measurement class)."""^^xsd:string ; - rdfs:label "duration in xsd "^^xsd:string ; - rdfs:range xsd:duration ; -. -[ - rdf:type owl:Class ; - owl:unionOf ( - xsd:int - xsd:double - ) ; -]. -[ - rdf:type owl:Class ; - owl:unionOf ( - xsd:int - xsd:double - ) ; -]. diff --git a/src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/desktop.ini b/src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/saref4ener.html b/src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/saref4ener.html deleted file mode 100644 index d5c2739..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/saref4ener.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - SAREF4ENER: an extension of SAREF for the energy domain created in collaboration with Energy@Home and EEBus associations

    -

    Official ETSI documentation for SAREF4ENER v1.1.1
    This page will soon contain the documentation of the SAREF4ENER ontology v1.1.1

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    The documentation of SAREF4ENER v1.1.1 will be available here soon. The source of the ontology are available as Turtle or RDF/XML Visualize it with VOWL

    -
    -
    -
    -
    -

    SAREF4ENER is an extension of SAREF for the Energy domain that was created in collaboration with Energy@Home (http://www.energy-home.it) and EEBus (http://www.eebus.org/en), the major Italy- and Germany-based industry associations, to enable the interconnection of their (different) data models. SAREF4ENER focuses on demand response scenarios, in which customers can offer flexibility to the Smart Grid to manage their smart home devices by means of a Customer Energy Manager (CEM). The CEM is a logical function for optimizing energy consumption and/or production that can reside either in the home gateway or in the cloud. SAREF4ENER is published as an ETSI tecnical specificatoion (ETSI TS 103 410-1).

    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/saref4ener.n3 b/src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/saref4ener.n3 deleted file mode 100644 index 7cdc6a9..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/saref4ener.n3 +++ /dev/null @@ -1,1254 +0,0 @@ -@prefix rdf: . -@prefix owl: . -@prefix saref: . -@prefix xsd: . -@prefix dcterms: . -@prefix rdfs: . -@prefix vann: . -@prefix s4ener: . - -s4ener:eventAccepted a s4ener:EventStateProduce , s4ener:EventStateConsume , owl:NamedIndividual ; - rdfs:comment "Load control state with value 'event accepted'" ; - rdfs:label "event accepted" . - -s4ener:PauseDurationMin - a owl:Class ; - rdfs:comment "The minimum duration a power sequence can pause after the end of an activity." ; - rdfs:label "Pause duration min" ; - rdfs:subClassOf . - -s4ener: a owl:Ontology ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:contributor ; - dcterms:created "2015-09-04"^^xsd:date ; - dcterms:description "SAREF4ENER is an extension of SAREF for the Energy domain that was created in collaboration with Energy@Home (http://www.energy-home.it) and EEBus (http://www.eebus.org/en), the major Italy- and Germany-based industry associations, to enable the interconnection of their (different) data models. SAREF4ENER focuses on demand response scenarios, in which customers can offer flexibility to the Smart Grid to manage their smart home devices by means of a Customer Energy Manager (CEM). The CEM is a logical function for optimizing energy consumption and/or production that can reside either in the home gateway or in the cloud. SAREF4ENER is published as an ETSI tecnical specificatoion (ETSI TS 103 410-1)." ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:modified "2016-12-13"^^xsd:date ; - dcterms:publisher ; - dcterms:source , ; - dcterms:title "SAREF4ENER: an extension of SAREF for the energy domain created in collaboration with Energy@Home and EEBus associations" ; - vann:preferredNamespacePrefix "s4ener" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4ener#" ; - owl:imports ; - owl:versionIRI ; - owl:versionInfo "1.1.1" . - -s4ener:activateSlot a owl:DatatypeProperty ; - rdfs:comment "Indicates whether a slot is used (activateSlot = true) or not (activateSlot = false). SHALL be present if a slot is optional (i.e., the property s4ee:optionalSlot is TRUE), otherwise SHALL be absent (i.e. in case the slot is mandatory)." ; - rdfs:label "activate slot" ; - rdfs:range xsd:boolean . - -s4ener:RemainingPauseTime - a owl:Class ; - rdfs:comment "The duration that the current slot (s4ee:activeSlotNumber) permits being paused. This element SHALL ONLY be present if the power sequence is interruptible. Otherwise, it SHALL be omitted. In case the power sequence is interruptible the following rules apply: If the element is absent this means there is no explicit pause duration restriction for the current slot; a value of 0s denoted the slot does not permit being paused." ; - rdfs:label "Remaining pause time" ; - rdfs:subClassOf . - -s4ener:pending a s4ener:PowerSequenceState , owl:NamedIndividual ; - rdfs:comment "Power sequence state with value 'pending'" ; - rdfs:label "pending" . - -s4ener:greenest a owl:DatatypeProperty ; - rdfs:comment "Indicates whether a power sequence optimises the configuration towards the maximum availability of renewable energy (if set to TRUE). MAY be present. Absence of this element is equal to the presence with value FALSE. " ; - rdfs:label "greenest" ; - rdfs:range xsd:boolean . - -s4ener:manufacturerLabel - a owl:DatatypeProperty ; - rdfs:comment "A short label of the device as defined by the manufacturer. " ; - rdfs:label "manufacturer label" ; - rdfs:range xsd:string . - -s4ener:softwareRevision - a owl:DatatypeProperty ; - rdfs:comment "Indicates the software revision of a device as defined by the manufacturer." ; - rdfs:label "software revision" ; - rdfs:range xsd:string . - -s4ener:EventStateProduce - a owl:Class ; - rdfs:label "Event state produce" ; - rdfs:subClassOf s4ener:LoadControlEventState ; - owl:oneOf ( "s4ener:eventAccepted" "s4ener:eventStarted" "s4ener:eventStopped" "s4ener:eventRejected" "s4ener:eventCancelled" "s4ener:eventError" ) . - -s4ener:cheapest a owl:DatatypeProperty ; - rdfs:comment "Indicates whether a power sequence applies a configuration that minimises the user’s energy bill (if set to TRUE). MAY be present. Absence of this element is equal to the presence with value FALSE. " ; - rdfs:label "cheapest" ; - rdfs:range xsd:boolean . - -s4ener:PauseDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the pause duration (max and min) temporal entities" ; - rdfs:label "Pause duration description" ; - rdfs:subClassOf . - -s4ener:ActuatorLevel a owl:Class ; - rdfs:comment "Independent from the ActuatorSwitch class, the ActuatorLevel class enables a user or application to model LEVEL commands (start, up, percentageAbsolute, relative, etc.). This can be used to dim a light, set the speed of an electric motor, etc." ; - rdfs:label "Actuator level" ; - rdfs:subClassOf saref:Actuator . - -s4ener:powerSource a owl:DatatypeProperty ; - rdfs:comment "Indicates the power source of a device. Possible values are e.g. mainsSinglePhase or battery " ; - rdfs:label "power source" ; - rdfs:range [ a rdfs:Datatype ; - owl:oneOf ( "unknown" "mainsSinglePhase" "mains3Phase" "battery" "dc" ) - ] . - -s4ener:maxCyclesPerDay - a owl:DatatypeProperty ; - rdfs:comment "States the maximum amount of starts a power sequence (of a device) allows per day." ; - rdfs:label "max cycles per day" ; - rdfs:range xsd:unsignedInt . - -s4ener:DurationUncertaintyDescription - a owl:Class ; - rdfs:comment "The duration description for the duration uncertainty temporal entity" ; - rdfs:label "Duration uncertainty description" ; - rdfs:subClassOf . - -s4ener:TimePeriodDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the time period duration temporal entities" ; - rdfs:label "Time period duration description" ; - rdfs:subClassOf . - -s4ener:hasValueType a owl:ObjectProperty ; - rdfs:comment "A relation representing the value type of an entity" ; - rdfs:label "has value type" . - -s4ener:increase a s4ener:EventActionProduce , s4ener:EventActionConsume , owl:NamedIndividual ; - rdfs:comment "Load control event action with value 'increase'" ; - rdfs:label "increase" . - -s4ener:supportsReselection - a owl:DatatypeProperty ; - rdfs:comment "If set toTRUE, the power profile of a device does not restrict the number of power sequence re-selections by the CEM, i.e. within a given alternative the CEM may first choose one power sequence, alter the selection by configuring another sequence later on, then alter the selection again, etc. (provided the process rules and data still permit configuration). If supportsReselection is set to FALSE, the device permits the CEM to select a power sequence of an alternative only once." ; - rdfs:label "supports reselection" ; - rdfs:range xsd:boolean . - -s4ener:PowerSkewness a owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the power skewness and its value" ; - rdfs:label "Power skewness" ; - rdfs:subClassOf s4ener:Power . - -s4ener:EndTime a owl:Class ; - rdfs:comment "The endTime of a power sequence. If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted.\r\nThe end time of a slot MAY be stated in this element. The following equation SHALL apply: endTime - startTime = defaultDuration." ; - rdfs:label "End time" ; - rdfs:subClassOf . - -s4ener:PauseTime a owl:Class ; - rdfs:comment "The pause time of a power sequence or a slot" ; - rdfs:label "Pause time" ; - rdfs:subClassOf . - -s4ener:brandName a owl:DatatypeProperty ; - rdfs:comment "Provides the name of the brand of a device. Useful where the name of the brand and the vendor differs." ; - rdfs:label "brand name" ; - rdfs:range xsd:string . - -s4ener:PowerStandardDeviation - a owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the power standard deviation and its value" ; - rdfs:label "Power standard deviation" ; - rdfs:subClassOf s4ener:Power . - -s4ener:EarliestStartTime - a owl:Class ; - rdfs:comment "The earliest possible start time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0.\r\nNote: This element applies to the first repetition of the slot number only." ; - rdfs:label "Earliest start time" ; - rdfs:subClassOf . - -s4ener:LoadControlStateData - a owl:Class ; - rdfs:comment "The representation of the state of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)." ; - rdfs:label "Load control state data" ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:EventActionConsume ; - owl:onProperty s4ener:hasAppliedEventActionConsume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:EventActionProduce ; - owl:onProperty s4ener:hasAppliedEventActionProduce - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:unsignedInt ; - owl:onProperty s4ener:eventID - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionConsume ; - owl:onProperty s4ener:hasAppliedEventActionConsume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:EventStateConsume ; - owl:onProperty s4ener:hasEventStateConsume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventStateProduce ; - owl:onProperty s4ener:hasEventStateProduce - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventStateConsume ; - owl:onProperty s4ener:hasEventStateConsume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:EventStateProduce ; - owl:onProperty s4ener:hasEventStateProduce - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionProduce ; - owl:onProperty s4ener:hasAppliedEventActionProduce - ] . - -s4ener:normal a s4ener:EventActionProduce , s4ener:EventActionConsume , owl:NamedIndividual ; - rdfs:comment "The value NORMAL used to instantiate the Load Control Event Action class and MeasurandState class" ; - rdfs:label "normal" . - -s4ener:State a owl:Class ; - rdfs:comment "An entity that represents the possible states in SAREF4EE" ; - rdfs:label "State" ; - rdfs:subClassOf saref:State . - -s4ener:ActivationDelay - a owl:Class ; - rdfs:comment "The scheduled activation delay for a slot." ; - rdfs:label "Activation delay" ; - rdfs:subClassOf . - -s4ener:hasEnergyValueType - a owl:ObjectProperty ; - rdfs:comment "A relationship representing an energy value type" ; - rdfs:label "has energy value type" ; - rdfs:subPropertyOf s4ener:hasValueType . - -s4ener:hasEnergy a owl:ObjectProperty ; - rdfs:comment "A relationship between a power sequence and its energy (in terms of value and unit of measure)" ; - rdfs:label "has energy" ; - rdfs:range s4ener:Energy . - -s4ener:resume a s4ener:EventActionProduce , s4ener:EventActionConsume , owl:NamedIndividual ; - rdfs:comment "Load control event action with value 'resume'" ; - rdfs:label "resume" . - -s4ener:taskIdentifier - a owl:DatatypeProperty ; - rdfs:label "task identifier" ; - rdfs:range xsd:unsignedInt . - -s4ener:ActiveDurationMax - a owl:Class ; - rdfs:comment "The active maximum duration a power sequence can run without interruption." ; - rdfs:label "Active duration max" ; - rdfs:subClassOf . - -s4ener:receives a owl:ObjectProperty ; - rdfs:comment "A relationship between a device (e.g., an appliance or a smart meter) and a load control event" ; - rdfs:label "receives" . - -s4ener:LoadControlEventAction - a owl:Class ; - rdfs:comment "An action type used to express the action to be performed as a consequence of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)." ; - rdfs:label "Load Control event action" . - -s4ener:inactive a s4ener:PowerSequenceState , owl:NamedIndividual ; - rdfs:comment "Power sequence state with value 'inactive'" ; - rdfs:label "inactive" . - -s4ener:eventStarted a s4ener:EventStateProduce , s4ener:EventStateConsume , owl:NamedIndividual ; - rdfs:comment "Load control state with value 'event started'" ; - rdfs:label "event started" . - -s4ener:eventRejected a s4ener:EventStateProduce , s4ener:EventStateConsume , owl:NamedIndividual ; - rdfs:comment "Load control state with value 'event rejected'" ; - rdfs:label "event rejected" . - -s4ener:manufacturerNodeIdentification - a owl:DatatypeProperty ; - rdfs:comment "Indicates a node identification for the device as defined by the manufacturer. This could be used for the identification of a device, even if it was removed from the network and rejoined later with changed node address." ; - rdfs:label "manufacturer node identification" ; - rdfs:range xsd:string . - -s4ener:sequenceID a owl:DatatypeProperty ; - rdfs:comment "Provides a unique power sequence identifier for a certain device" ; - rdfs:label "sequence ID" ; - rdfs:range xsd:unsignedInt . - -s4ener:ActiveDurationSumMin - a owl:Class ; - rdfs:comment "The active minimum duration a power sequence must run in total (summation of all active times)." ; - rdfs:label "Active duration sum min" ; - rdfs:subClassOf . - -[ a owl:Class ; - owl:unionOf ( xsd:int xsd:double ) -] . - -s4ener:EventActionConsume - a owl:Class ; - rdfs:label "Event action consume" ; - rdfs:subClassOf s4ener:LoadControlEventAction ; - owl:oneOf ( "s4ener:pause" "s4ener:resume" "s4ener:reduce" "s4ener:increase" "s4ener:emergency" "s4ener:normal" ) . - -s4ener:eventError a s4ener:EventStateProduce , s4ener:EventStateConsume , owl:NamedIndividual ; - rdfs:comment "Load control state with value 'event error'" ; - rdfs:label "event error" . - -s4ener:Energy a owl:Class ; - rdfs:comment "Energy type and value in a slot (i.e., Energy, EnergyMin, EnergyMax, EnergyExpected, EnergyStandardDeviation, EnergySkewness); or the ResumeEnergyEstimated in a power sequence, i.e., the additional energy the device will consume before resuming its normal operation (after a pause)" ; - rdfs:label "Energy" ; - rdfs:subClassOf saref:Energy . - -s4ener:hasExpression a owl:ObjectProperty ; - rdfs:comment "A relationship between an appliance parameter compatibility action and the associated expressions" ; - rdfs:label "has expression" . - -s4ener:MaxDuration a owl:Class ; - rdfs:comment "If a slot has a configurable duration, it SHALL be present and denote the maximum supported configuration. Note: This element applies to the first repetition of the slot number only" ; - rdfs:label "Max duration" ; - rdfs:subClassOf . - -[ a owl:Class ; - owl:unionOf ( xsd:int xsd:double ) -] . - -s4ener:valueSource a owl:DatatypeProperty ; - rdfs:comment "Indicates the source (origin/foundation) of the measurement forecasted values for a power sequence. If absent, the source is undefined. Remark: This element shall express the reliability of the forecast." ; - rdfs:label "value source" ; - rdfs:range [ a rdfs:Datatype ; - owl:oneOf ( "measuredValue" "calculatedValue" "empiricalValue" ) - ] . - -s4ener:eventStopped a s4ener:EventStateProduce , s4ener:EventStateConsume , owl:NamedIndividual ; - rdfs:comment "Load control state with value 'event stopped'" ; - rdfs:label "event stopped" . - -s4ener:hasConnection a owl:ObjectProperty ; - rdfs:comment "In the Remote Network Management (RemoteNWM) use case, a relationship between a node in a network (i.e., a s4ee:Device) and its connections (i.e., a s4ee:DeviceConnections). The same s4ee:Device (or node) can have multiple device connections as it can be connected to several networks at the same time." ; - rdfs:label "has connection" . - -s4ener:MinDuration a owl:Class ; - rdfs:comment "If a slot has a configurable duration, it SHALL be present and denote the minimum supported configuration. Note: This element applies to the first repetition of the slot number only." ; - rdfs:label "Min duration" ; - rdfs:subClassOf . - -s4ener:scheduled a s4ener:PowerSequenceState , owl:NamedIndividual ; - rdfs:comment "Power sequence state with value 'scheduled'" ; - rdfs:label "scheduled" . - -s4ener:ActuatorSwitch - a owl:Class ; - rdfs:comment "Basic on/off operations on a simple actuator can be modelled with the ActuatorSwitch class. Whether the function turns a device itself ON or OFF, or whether it switches a specific feature, depends on the implementation. For example, one could model the super freeze program of a freezer using ActuatorSwitch class. An ON command would then activate the super freeze program and an OFF command would deactivate it. This example shall just give an idea how ActuatorSwitch can be used for more purposes than only turning devices on and off." ; - rdfs:label "Actuator switch" ; - rdfs:subClassOf saref:Actuator . - -s4ener:alternativesGroupID - a owl:DatatypeProperty ; - rdfs:comment "The endpoint-wide unique identifier for the alternatives group instances provided by a power profile" ; - rdfs:label "alternatives group ID" ; - rdfs:range xsd:integer . - - - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:xsdDuration - ] . - -s4ener:optionalSlot a owl:DatatypeProperty ; - rdfs:comment "Indicates whether a slot is optional (if set to TRUE). Otherwise, if a slot is mandatory, SHALL be omitted or set to FALSE. Note: This element applies to every repetition of the slot number." ; - rdfs:label "optional slot" ; - rdfs:range xsd:boolean . - -s4ener:RemainingSlotTime - a owl:Class ; - rdfs:comment "If state is set to 'running' or 'paused' AND the slot is determined, this element SHALL contain the time the slot still needs to be in 'running' state (this also means the value remains constant during a 'paused' state). Otherwise it SHALL be omitted." ; - rdfs:label "Remaining slot time" ; - rdfs:subClassOf . - -s4ener:PowerProfile a owl:Class ; - rdfs:comment "A way to model curves of power and energy over time, which also provides definitions for the modelling of power scheduling including alternative plans. With a PowerProfile, a device (or power sequences server) exposes the power sequences that are potentially relevant for the CEM (or power sequences client). " ; - rdfs:label "Power profile" ; - rdfs:subClassOf saref:Profile ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:AlternativesGroup ; - owl:onProperty saref:consistsOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:Device ; - owl:onProperty s4ener:belongsTo - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:supportsSingleSlotSchedulingOnly - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass s4ener:Device ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:totalSequencesCountMax - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:AlternativesGroup ; - owl:onProperty saref:consistsOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:alternativesCount - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:nodeRemoteControllable - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:supportsReselection - ] . - -s4ener:PowerMax a owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the maximum power consumption and its value" ; - rdfs:label "Power max" ; - rdfs:subClassOf s4ener:Power . - -s4ener:manufacturerDescription - a owl:DatatypeProperty ; - rdfs:comment "A description for the device as defined by the manufacturer." ; - rdfs:label "manufacturer description" ; - rdfs:range xsd:string . - -s4ener:MaxActivationDelay - a owl:Class ; - rdfs:comment "Maximum delay time between the end of the previous slot and the beginning of the current slot." ; - rdfs:label "Max activation delay" ; - rdfs:subClassOf . - -s4ener:LatestEndTime a owl:Class ; - rdfs:comment "The latest possible end time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0.\r\nNote: This element applies to the first repetition of the slot number only." ; - rdfs:label "Latest end time" ; - rdfs:subClassOf . - -s4ener:EnergyStandardDeviation - a owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the energy standard deviation and its value" ; - rdfs:label "Energy Standard Deviation" ; - rdfs:subClassOf s4ener:Energy . - -s4ener:EnergyMin a owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the minimum energy consumption and its value" ; - rdfs:label "Energy min" ; - rdfs:subClassOf s4ener:Energy . - -s4ener:activeRepetitionNumber - a owl:DatatypeProperty ; - rdfs:comment "Indicates the current repetition of the sequence of slots. SHALL be present if a power sequence can repeat its sequence of slots (i.e., if s4ee:repetitionTotal is present and has a value > 1). Otherwise, it SHALL be absent. " ; - rdfs:label "active repetition number" ; - rdfs:range xsd:unsignedInt . - -s4ener:ActiveDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the active duration (min and max, sum max and sum min) temporal entities" ; - rdfs:label "Active duration description" ; - rdfs:subClassOf . - -s4ener:Slot a owl:Class ; - rdfs:comment "The single steps of a power sequence are represented by slots. A slot is associated with a slot number (while a power sequence is associated with a power sequence identifier). The slot numbers of two power sequences should be considered independent from each other, i.e., slot number 7 of sequence 1 describes a different slot than slot number 7 of sequence 2. Therefore a slot is only uniquely identified in combination with a sequence ID. " ; - rdfs:label "Slot" ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:MaxDuration ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:slotActivated - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:PowerSequence ; - owl:onProperty s4ener:belongsTo - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Time ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:DurationUncertainty ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:Power ; - owl:onProperty s4ener:hasPowerValueType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:LatestEndTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:MinDuration ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:DefaultDuration ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EarliestStartTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:Energy ; - owl:onProperty s4ener:hasEnergyValueType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass s4ener:PowerSequence ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:RemainingPauseTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:optionalSlot - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:StartTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass [ a owl:Class ; - owl:unionOf ( s4ener:Energy s4ener:Power ) - ] ; - owl:onProperty s4ener:hasValueType - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:slotNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EndTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription - ] . - -s4ener:scheduledPaused - a s4ener:PowerSequenceState , owl:NamedIndividual ; - rdfs:comment "Power sequence state with value 'scheduled paused'" ; - rdfs:label "scheduled paused" . - -s4ener:EventActionProduce - a owl:Class ; - rdfs:label "Event action produce" ; - rdfs:subClassOf s4ener:LoadControlEventAction ; - owl:oneOf ( "s4ener:pause" "s4ener:resume" "s4ener:reduce" "s4ener:increase" "s4ener:emergency" "s4ener:normal" ) . - -s4ener:LoadControlEventState - a owl:Class ; - rdfs:comment "In the load control, it expresses the possible states of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)." ; - rdfs:label "Load control event state " ; - rdfs:subClassOf s4ener:State . - -s4ener:DurationUncertainty - a owl:Class ; - rdfs:comment "The uncertainty of the duration " ; - rdfs:label "Duration uncertainty" ; - rdfs:subClassOf . - -s4ener:PowerExpected a owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the expected power consumption and its value" ; - rdfs:label "Power expected " ; - rdfs:subClassOf s4ener:Power . - -s4ener:hasPowerValueType - a owl:ObjectProperty ; - rdfs:comment "A relationship representing a power value type" ; - rdfs:label "has power value type" ; - rdfs:subPropertyOf s4ener:hasValueType . - -s4ener:PauseDurationMax - a owl:Class ; - rdfs:comment "The maximum duration a power sequence can pause after the end of an activity." ; - rdfs:label "Pause duration max" ; - rdfs:subClassOf . - -s4ener:belongsTo a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the ownership of an entity. In particular, a slot belongs to a power sequence, a power sequence belongs to an alternative, an alternative belongs to a power profile, a power profile belongs to a device. " ; - rdfs:label "belongs to" . - -s4ener:ActivationDelayDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the activation delay duration temporal entity" ; - rdfs:label "Activation delay duration description" ; - rdfs:subClassOf . - -s4ener:StartTimeDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the start time duration temporal entities" ; - rdfs:label "Start time duration description" ; - rdfs:subClassOf . - -s4ener:xsdDuration a owl:DatatypeProperty ; - rdfs:comment "This property is added to the time:DurationDescription class to allow to express time duration also as xsd:duration. This is necessary because in the EEBus/E@h model time is always expressed as xsd:duration. We use this property to express the following time information in the EEBus/E@h model:\r\n- the startTime of the power sequence (in the PowerSequence class). SHALL be present\r\n- the endTime of the power sequence (in the PowerSequence class). If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted.\r\n- the startTime of measurement as absolute or relative value (in the Measurement class).\r\n- the endTime of measurement as absolute or relative value (in the Measurement class)." ; - rdfs:label "duration in xsd " ; - rdfs:range xsd:duration . - -s4ener:hasDevice a owl:ObjectProperty ; - rdfs:comment "A relationship between a load control event (used to send overload warning severity level and related load control commands) and the device interested by this event." ; - rdfs:label "has device" . - -s4ener:eventID a owl:DatatypeProperty ; - rdfs:comment "Used in the Demand Response use case to identify an event" ; - rdfs:label "event ID" ; - rdfs:range xsd:unsignedInt . - -s4ener:DefaultDuration - a owl:Class ; - rdfs:comment "The duration of a slot (SHALL be present in case of 'determined slot'). If a slot has a configurable lenght, this element SHALL reflect the currently configured lenght" ; - rdfs:label "Default duration" ; - rdfs:subClassOf . - -s4ener:PowerSequence a owl:Class ; - rdfs:comment "The specification of a task, such as wash or tumble dry, according to user preferences and/or manufacturer's settings for a certain device. It is the most 'coarse' view, a power sequence can represent all single steps of a whole task,where the single steps are represented by slots. If the power sequence is pausable by the bound power sequences client, the property 'saref:isInterruptionPossible' SHALL be present and set to true. Otherwise it SHALL be omitted. If the power sequence is stoppable by the bound power sequences client, the property 'saref:isFlexible' SHALL be present and set to true. Otherwise it SHALL be omitted." ; - rdfs:label "Power sequence" ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:ResumeEnergyEstimated ; - owl:onProperty s4ener:hasEnergy - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass s4ener:AlternativesGroup ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:activeSlotNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ResumeCostEstimated ; - owl:onProperty saref:hasPrice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ResumeEnergyEstimated ; - owl:onProperty s4ener:hasEnergy - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:sequenceRemoteControllable - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:LatestEndTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:StartTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:Slot ; - owl:onProperty saref:consistsOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:valueSource - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:RemainingSlotTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PauseDurationMax ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EarliestStartTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationSumMax ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:sequenceID - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:PowerSequenceState ; - owl:onProperty saref:hasState - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:activeRepetitionNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:Slot ; - owl:onProperty saref:consistsOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationMax ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:isPausable - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationMin ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationSumMin ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:isStoppable - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:maxCyclesPerDay - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:ResumeCostEstimated ; - owl:onProperty saref:hasPrice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PowerSequenceState ; - owl:onProperty saref:hasState - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ElapsedSlotTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PauseDurationMin ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:greenest - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:taskIdentifier - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EndTime ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:repetitionsTotal - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:cheapest - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:AlternativesGroup ; - owl:onProperty s4ener:belongsTo - ] . - -s4ener:EnergyExpected - a owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the expected energy consumption and its value" ; - rdfs:label "Energy expected" ; - rdfs:subClassOf s4ener:Energy . - -s4ener:activeSlotNumber - a owl:DatatypeProperty ; - rdfs:comment "Indicates the currently active slot number, if the power sequence state is set to 'running' or 'paused'. Otherwise it SHALL be omitted." ; - rdfs:label "active slot number" ; - rdfs:range xsd:unsignedInt . - -s4ener:paused a s4ener:PowerSequenceState , owl:NamedIndividual ; - rdfs:comment "Power sequence state or sensor state with value 'paused'" ; - rdfs:label "paused" . - -s4ener:isStoppable a owl:DatatypeProperty ; - rdfs:label "is stoppable" ; - rdfs:range xsd:boolean . - -s4ener:alternativesCount - a owl:DatatypeProperty ; - rdfs:comment "Indicates the number of alternatives groups provided by a power profile" ; - rdfs:label "alternatives count" ; - rdfs:range xsd:integer . - -s4ener:Device a owl:Class ; - rdfs:comment "A specialization of a saref:Device that exposes a power profile with power sequences to the CEM (note that a s4ee:Device can also be called 'power sequence server'). Most of the existing devices can expose at most 1 power profile, but there are special cases in which more than one power profiles can be exposed by the same device. For example, consider the case of a combined fridge-freezer in which there are 2 logical devices (fridge and freezer) combined in 1 physical device. This combined device can expose 2 power profiles, one for the fridge and one for the freezer. A s4ee:Device (e.g. a household appliance or a smart meter) can also receive events about overload warning severity level and related load control commands (LoadControlEventData)" ; - rdfs:label "Device" ; - rdfs:subClassOf saref:Device ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PowerProfile ; - owl:onProperty s4ener:exposes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:deviceName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:PowerProfile ; - owl:onProperty s4ener:exposes - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:serialNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:softwareRevision - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:LoadControlEventData ; - owl:onProperty s4ener:receives - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:manufacturerNodeIdentification - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:deviceCode - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:vendorName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:powerSource - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:vendorCode - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:hardwareRevision - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:manufacturerLabel - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:manufacturerDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:brandName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:LoadControlEventData ; - owl:onProperty s4ener:receives - ] . - -s4ener:DefaultDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the default duration temporal entity" ; - rdfs:label "Default duration description" ; - rdfs:subClassOf . - -s4ener:AlternativesGroup - a owl:Class ; - rdfs:comment "A collection of power sequences for a certain profile" ; - rdfs:label "Alternatives group" ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onDataRange xsd:unsignedInt ; - owl:onProperty s4ener:alternativesGroupID ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass s4ener:PowerProfile ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PowerSequence ; - owl:onProperty saref:consistsOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:PowerSequence ; - owl:onProperty saref:consistsOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:PowerProfile ; - owl:onProperty s4ener:belongsTo - ] . - -s4ener:MaxAnticipation - a owl:Class ; - rdfs:comment "This field allows the anticipation of the phase if (and only if) the previous phase has the energy set to 0 Wh, each unit is a minute." ; - rdfs:label "Max anticipation" ; - rdfs:subClassOf . - -s4ener:LoadControlEventData - a owl:Class ; - rdfs:comment "An event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)." ; - rdfs:label "Load control event data" ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionConsume ; - owl:onProperty s4ener:triggersEventActionConsume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionProduce ; - owl:onProperty s4ener:triggersEventActionProduce - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:eventID - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:EventActionProduce ; - owl:onProperty s4ener:triggersEventActionProduce - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:EventActionConsume ; - owl:onProperty s4ener:triggersEventActionConsume - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:Device ; - owl:onProperty s4ener:hasDevice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:Device ; - owl:onProperty s4ener:hasDevice - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:TimePeriod ; - owl:onProperty saref:hasTime - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:TimePeriod ; - owl:onProperty saref:hasTime - ] . - -s4ener:serialNumber a owl:DatatypeProperty ; - rdfs:comment "Indicates the serial number of a device as defined by the manufacturer. Usually the same as printed on the case." ; - rdfs:label "serial number" ; - rdfs:range xsd:string . - -s4ener:ActiveDurationMin - a owl:Class ; - rdfs:comment "The active mininum duration a power sequence can run without interruption." ; - rdfs:label "Active duration min" ; - rdfs:subClassOf . - -s4ener:AnticipationDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the anticipation duration temporal entities" ; - rdfs:label "Anticipation duration description" ; - rdfs:subClassOf . - -s4ener:nodeRemoteControllable - a owl:DatatypeProperty ; - rdfs:comment "Indicates whether the power profile of a device is configured for remote control (e.g., by an energy management system).This refers to the selection chosen by the user on the remote control feature of the device. If nodeRemoteControllable is equal to FALSE, all the supported power sequences shall set the sequenceRemoteControllable property to FALSE. If nodeRemoteControllable is equal to TRUE, at least one power sequence shall be remotely controllable by setting the sequenceRemoteControllable property to TRUE." ; - rdfs:label "node remote controllable" ; - rdfs:range xsd:boolean . - -s4ener:EndTimeDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the end time duration temporal entities" ; - rdfs:label "End time duration Description" ; - rdfs:subClassOf . - -s4ener:running a s4ener:PowerSequenceState , owl:NamedIndividual ; - rdfs:comment "Power sequence state with value 'running'" ; - rdfs:label "running" . - -s4ener:PowerSequenceState - a owl:Class ; - rdfs:comment "The current state of the power sequence. It can assume one of the values 'running', 'paused', 'scheduled', 'scheduled paused', 'pending', 'inactive', 'completed', or 'invalid'." ; - rdfs:label "Power sequence state" ; - rdfs:subClassOf s4ener:State ; - owl:oneOf ( "s4ener:running" "s4ener:paused" "s4ener:scheduled" "s4ener:scheduledPaused" "s4ener:pending" "s4ener:inactive" "s4ener:completed" "s4ener:invalid" ) . - -s4ener:slotActivated a owl:DatatypeProperty ; - rdfs:comment "If a slot is optional, represents the current status of the slot (true = the slot will be executed, false = the slot will not be executed). If the slot is not optional, this element SHALL be absent." ; - rdfs:label "slot activated" ; - rdfs:range xsd:boolean . - -s4ener:ActiveDurationSumMax - a owl:Class ; - rdfs:comment "The active maximum duration a power sequence can run in total (summation of all active times)." ; - rdfs:label "Active duration sum max" ; - rdfs:subClassOf . - -s4ener:messagingType a owl:DatatypeProperty ; - rdfs:comment "Indicates the type of the message. Possible values are:\r\n-\tlogging (used for messages, that shall be stored in a log file)\r\n-\tinformation (messages, that shall be presented to the customer on a display; lower priority)\r\n-\twarning (messages, that shall be presented to the customer on a display; medium priority)\r\n-\talarm (messages, that shall be presented to the customer on a display; high priority; if there is an alarm device in the household, it shall generate an alarm)\r\n-\temergency (messages, that shall be presented to the customer on a display; very high priority; if there is an alarm device in the household, it shall generate an alarm; additionally, if possible and configured, an emergency call shall be done)\r\n-\tobsolete (previously sent messages, that shall be marked as obsolete)" ; - rdfs:label "messaging type" ; - rdfs:range [ a rdfs:Datatype ; - owl:oneOf ( "logging" "information" "warning" "alarm" "emergency" "obsolete" ) - ] . - -s4ener:pause a s4ener:EventActionProduce , s4ener:EventActionConsume , owl:NamedIndividual ; - rdfs:comment "Load control event action with value 'pause'" ; - rdfs:label "pause" . - -s4ener:totalSequencesCountMax - a owl:DatatypeProperty ; - rdfs:comment "Represents the total number of power sequences supported by the power profile of a device" ; - rdfs:label "total sequences count max" ; - rdfs:range xsd:unsignedInt . - -s4ener:hasEventStateConsume - a owl:ObjectProperty ; - rdfs:comment "A relationship between the specification of the state of a load control event consume and the value that this state can assume." ; - rdfs:label "has event state consume" ; - rdfs:subPropertyOf saref:hasState . - -s4ener:exposes a owl:ObjectProperty ; - rdfs:comment "A relationship between a device and its power profile" ; - rdfs:label "exposes" . - -s4ener:emergency a s4ener:EventActionProduce , s4ener:EventActionConsume , owl:NamedIndividual ; - rdfs:comment "Load control event action with value 'emergency'" ; - rdfs:label "emergency" . - -s4ener:hasFunction a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the functions performed by an actuator level and an actuator switch" ; - rdfs:label "has function" . - -s4ener:Power a owl:Class ; - rdfs:comment "Power type and value in a slot (i.e. power, powerMin, powerMax, powerExpectedValue, powerStandardDeviation, powerSkewness)" ; - rdfs:label "Power" ; - rdfs:subClassOf saref:Power . - -s4ener:hasEventStateProduce - a owl:ObjectProperty ; - rdfs:comment "A relationship between the specification of the state of a load control event produce and the value that this state can assume." ; - rdfs:label "has event state produce" ; - rdfs:subPropertyOf saref:hasState . - -s4ener:completed a s4ener:PowerSequenceState , owl:NamedIndividual ; - rdfs:comment "Power sequence state with value 'completed'" ; - rdfs:label "completed" . - -s4ener:repetitionsTotal - a owl:DatatypeProperty ; - rdfs:comment "Contains the total number of repetitions, if a power sequence repeats its sequence of slots. Absence of the element is equal to a presence with a value of 0 (zero). SHALL be absent if the value is 1. " ; - rdfs:label "repetition total" ; - rdfs:range xsd:unsignedInt . - -s4ener:SlotTimeDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the slot time duration temporal entities" ; - rdfs:label "Slot time duration description" ; - rdfs:subClassOf . - -s4ener:deviceCode a owl:DatatypeProperty ; - rdfs:comment "Provides a device code for the device as defined by the manufacturer." ; - rdfs:label "device code" ; - rdfs:range xsd:string . - -s4ener:valueTendency a owl:DatatypeProperty ; - rdfs:comment "Indicates whether the tendency of a measurement is rising, stable or falling." ; - rdfs:label "value tendency" ; - rdfs:range [ a rdfs:Datatype ; - owl:oneOf ( "rising" "stable" "falling" ) - ] . - -s4ener:ResumeEnergyEstimated - a owl:Class ; - rdfs:comment "In a power sequence, the additional energy the device will consume before resuming its normal operation (after a pause). This is only an estimated value which will not be added to the value stated in any slot value information." ; - rdfs:label "Resume energy estimated" ; - rdfs:subClassOf s4ener:Energy . - -s4ener:TimePeriod a owl:Class ; - rdfs:comment "The time period associated with load control event data" ; - rdfs:label "Time period" ; - rdfs:subClassOf . - -s4ener:PowerMin a owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the minimum power consumption and its value" ; - rdfs:label "Power min" ; - rdfs:subClassOf s4ener:Power . - -s4ener:isPausable a owl:DatatypeProperty ; - rdfs:label "is pausable" ; - rdfs:range xsd:boolean . - -s4ener:ResumeCostEstimated - a owl:Class ; - rdfs:comment "In a power sequence the additional costs for the resumption of a device to its normal operation (after a pause)." ; - rdfs:label "Resume cost estimated" ; - rdfs:subClassOf saref:Price . - -s4ener:EnergySkewness - a owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the energy skewness and its value" ; - rdfs:label "Energy skewness" ; - rdfs:subClassOf s4ener:Energy . - -s4ener:vendorName a owl:DatatypeProperty ; - rdfs:comment "Provides the name of the vendor of the device as defined by the manufacturer." ; - rdfs:label "vendor name" ; - rdfs:range xsd:string . - -s4ener:measurementID a owl:DatatypeProperty ; - rdfs:comment "Enables the identification of different sensors on one EEBus address." ; - rdfs:label "measurement id" ; - rdfs:range xsd:unsignedInt . - -s4ener:hardwareRevision - a owl:DatatypeProperty ; - rdfs:comment "Indicates the hardware revision of the device as defined by the manufacturer." ; - rdfs:label "hardware revision " ; - rdfs:range xsd:string . - -s4ener:supportsSingleSlotSchedulingOnly - a owl:DatatypeProperty ; - rdfs:comment "If set toTRUE, the power profile of a device does NOT permit the modification of more than one slot per configuration command." ; - rdfs:label "supports single slot scheduling only" ; - rdfs:range xsd:boolean . - -s4ener:ElapsedSlotTime - a owl:Class ; - rdfs:comment "If state is set to 'running' or 'paused' AND the slot is determined, this element CAN contain the time the slot has already been in 'running' state (this also means the value remains constant during a 'paused' state). Otherwise it SHALL be omitted." ; - rdfs:label "Elapsed slot time" ; - rdfs:subClassOf . - -s4ener:invalid a s4ener:PowerSequenceState , owl:NamedIndividual ; - rdfs:comment "Power sequence state with value 'invalid'" ; - rdfs:label "invalid" . - -s4ener:sequenceRemoteControllable - a owl:DatatypeProperty ; - rdfs:comment "Denotes whether a power sequence is modifiable (if value is TRUE) or not (if value is FALSE). Modifiability is required to configure power sequences and slots. It is also required to change a power sequence state." ; - rdfs:label "sequence remote controllable" ; - rdfs:range xsd:boolean . - -s4ener:slotNumber a owl:DatatypeProperty ; - rdfs:comment "Provides a unique slot identifier for a certain power sequence" ; - rdfs:label "slot number" ; - rdfs:range xsd:unsignedInt . - -s4ener:hasAppliedEventActionConsume - a owl:ObjectProperty ; - rdfs:comment "A relationship between the state of a load control event consume and the action to be performed as a consequence of this event." ; - rdfs:label "has applied event action consume" . - -s4ener:StartTime a owl:Class ; - rdfs:comment "The startTime of a power sequence or slot. SHALL be present" ; - rdfs:label "Start time" ; - rdfs:subClassOf . - -s4ener:EnergyMax a owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the maximum energy consumption and its value" ; - rdfs:label "Energy max" ; - rdfs:subClassOf s4ener:Energy . - -s4ener:vendorCode a owl:DatatypeProperty ; - rdfs:comment "Provides a code for the vendor of the device as defined by the manufacturer." ; - rdfs:label "vendor code" ; - rdfs:range xsd:string . - -s4ener:hasAppliedEventActionProduce - a owl:ObjectProperty ; - rdfs:comment "A relationship between the state of a load control event produce and the action to be performed as a consequence of this event." ; - rdfs:label "has applied event action produce" . - -s4ener:triggersEventActionConsume - a owl:ObjectProperty ; - rdfs:comment "A relationship between a load control event and the consume action triggered by this event" ; - rdfs:label "triggers event action consume" . - -s4ener:deviceName a owl:DatatypeProperty ; - rdfs:comment "Provides the name of the device as defined by the manufacturer." ; - rdfs:label "device name" ; - rdfs:range xsd:string . - -s4ener:eventCancelled - a s4ener:EventStateProduce , s4ener:EventStateConsume , owl:NamedIndividual ; - rdfs:comment "Load control state with value 'event cancelled'" ; - rdfs:label "event cancelled" . - -s4ener:triggersEventActionProduce - a owl:ObjectProperty ; - rdfs:comment "A relationship between a load control event and the produce action triggered by this event" ; - rdfs:label "triggers event action produce" . - -s4ener:messagingNumber - a owl:DatatypeProperty ; - rdfs:comment "An identifier for one specific message. If a message is marked as obsolete, this number can be used to identify the original message." ; - rdfs:label "messaging number" ; - rdfs:range xsd:unsignedInt . - -s4ener:reduce a s4ener:EventActionProduce , s4ener:EventActionConsume , owl:NamedIndividual ; - rdfs:comment "Load control event action with value 'reduce'" ; - rdfs:label "reduce" . - -s4ener:EventStateConsume - a owl:Class ; - rdfs:label "Event state consume" ; - rdfs:subClassOf s4ener:LoadControlEventState ; - owl:oneOf ( "s4ener:eventAccepted" "s4ener:eventStarted" "s4ener:eventStopped" "s4ener:eventRejected" "s4ener:eventCancelled" "s4ener:eventError" ) . diff --git a/src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/saref4ener.rdf b/src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/saref4ener.rdf deleted file mode 100644 index c9cabf3..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/saref4ener.rdf +++ /dev/null @@ -1,1952 +0,0 @@ - - - - - - https://saref.etsi.org/saref4ener# - - - s4ener - 1.1.1 - This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge. - 2019-06-11 - - SAREF4ENER: an extension of SAREF for the energy domain created in collaboration with Energy@Home and EEBus associations - - 2015-09-04 - SAREF4ENER is an extension of SAREF for the Energy domain that was created in collaboration with Energy@Home (http://www.energy-home.it) and EEBus (http://www.eebus.org/en), the major Italy- and Germany-based industry associations, to enable the interconnection of their (different) data models. SAREF4ENER focuses on demand response scenarios, in which customers can offer flexibility to the Smart Grid to manage their smart home devices by means of a Customer Energy Manager (CEM). The CEM is a logical function for optimizing energy consumption and/or production that can reside either in the home gateway or in the cloud. SAREF4ENER is published as an ETSI tecnical specificatoion (ETSI TS 103 410-1). - 2016-12-13 - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - - - - - - - - 0 - - - - - - - - - 1 - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - 1 - - - Power sequence - - - - - - - 1 - - - - - - - - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - 1 - - - The specification of a task, such as wash or tumble dry, according to user preferences and/or manufacturer's settings for a certain device. It is the most 'coarse' view, a power sequence can represent all single steps of a whole task,where the single steps are represented by slots. If the power sequence is pausable by the bound power sequences client, the property 'saref:isInterruptionPossible' SHALL be present and set to true. Otherwise it SHALL be omitted. If the power sequence is stoppable by the bound power sequences client, the property 'saref:isFlexible' SHALL be present and set to true. Otherwise it SHALL be omitted. - - - - - - 1 - - - - - - - - - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - 0 - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - - - - - - - - - - - Power skewness - A possible type of power in a slot that represents the power skewness and its value - - - - - - Energy skewness - A possible type of energy in a slot that represents the energy skewness and its value - - - - - - Energy min - A possible type of energy in a slot that represents the minimum energy consumption and its value - - - - - - - - - - 1 - - - - - Activation delay duration description - The duration description for the activation delay duration temporal entity - - - - Energy - Energy type and value in a slot (i.e., Energy, EnergyMin, EnergyMax, EnergyExpected, EnergyStandardDeviation, EnergySkewness); or the ResumeEnergyEstimated in a power sequence, i.e., the additional energy the device will consume before resuming its normal operation (after a pause) - - - - - - - - - - - 0 - - - An event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter). - - - - - - - - - - - - - - - 0 - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - Load control event data - - - - - - - - - 1 - - - - - - - - - - - - - - - - - 1 - - - - - - - Latest end time - The latest possible end time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0. -Note: This element applies to the first repetition of the slot number only. - - - - Time period - The time period associated with load control event data - - - - - - - - - - s4ener:eventError - - s4ener:eventCancelled - - s4ener:eventRejected - - s4ener:eventStopped - - s4ener:eventStarted - - s4ener:eventAccepted - - - - - Event state produce - - - - Elapsed slot time - If state is set to 'running' or 'paused' AND the slot is determined, this element CAN contain the time the slot has already been in 'running' state (this also means the value remains constant during a 'paused' state). Otherwise it SHALL be omitted. - - - - Pause time - The pause time of a power sequence or a slot - - - - - - Power standard deviation - A possible type of power in a slot that represents the power standard deviation and its value - - - - Time period duration description - The duration description for the time period duration temporal entities - - - - - - - - - - - Power profile - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - - - - - A way to model curves of power and energy over time, which also provides definitions for the modelling of power scheduling including alternative plans. With a PowerProfile, a device (or power sequences server) exposes the power sequences that are potentially relevant for the CEM (or power sequences client). - - - - - - 1 - - - - - - - - - 0 - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - 1 - - - - - - Default duration description - The duration description for the default duration temporal entity - - - - - - - - - - - - s4ener:invalid - - s4ener:completed - - s4ener:inactive - - s4ener:pending - - s4ener:scheduledPaused - - s4ener:scheduled - - s4ener:paused - - s4ener:running - - - - - Power sequence state - The current state of the power sequence. It can assume one of the values 'running', 'paused', 'scheduled', 'scheduled paused', 'pending', 'inactive', 'completed', or 'invalid'. - - - - Default duration - The duration of a slot (SHALL be present in case of 'determined slot'). If a slot has a configurable lenght, this element SHALL reflect the currently configured lenght - - - - Start time duration description - The duration description for the start time duration temporal entities - - - - Anticipation duration description - The duration description for the anticipation duration temporal entities - - - - - - Load control event state - In the load control, it expresses the possible states of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - Load control state data - - The representation of the state of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter). - - - - - 1 - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - 0 - - - - - - Slot time duration description - The duration description for the slot time duration temporal entities - - - - Duration uncertainty description - The duration description for the duration uncertainty temporal entity - - - - Active duration description - The duration description for the active duration (min and max, sum max and sum min) temporal entities - - - - Remaining slot time - If state is set to 'running' or 'paused' AND the slot is determined, this element SHALL contain the time the slot still needs to be in 'running' state (this also means the value remains constant during a 'paused' state). Otherwise it SHALL be omitted. - - - - Active duration sum max - The active maximum duration a power sequence can run in total (summation of all active times). - - - - Pause duration min - The minimum duration a power sequence can pause after the end of an activity. - - - - - 1 - - - - - - - - - 1 - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - Alternatives group - A collection of power sequences for a certain profile - - - - Energy expected - A possible type of energy in a slot that represents the expected energy consumption and its value - - - - Active duration min - The active mininum duration a power sequence can run without interruption. - - - - - - Power min - A possible type of power in a slot that represents the minimum power consumption and its value - - - - - - Power expected - A possible type of power in a slot that represents the expected power consumption and its value - - - - Max anticipation - This field allows the anticipation of the phase if (and only if) the previous phase has the energy set to 0 Wh, each unit is a minute. - - - - Actuator switch - Basic on/off operations on a simple actuator can be modelled with the ActuatorSwitch class. Whether the function turns a device itself ON or OFF, or whether it switches a specific feature, depends on the implementation. For example, one could model the super freeze program of a freezer using ActuatorSwitch class. An ON command would then activate the super freeze program and an OFF command would deactivate it. This example shall just give an idea how ActuatorSwitch can be used for more purposes than only turning devices on and off. - - - - Earliest start time - The earliest possible start time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0. -Note: This element applies to the first repetition of the slot number only. - - - - - - - - - - s4ener:normal - - s4ener:emergency - - s4ener:increase - - s4ener:reduce - - s4ener:resume - - s4ener:pause - - - - - Event action consume - - - - State - An entity that represents the possible states in SAREF4EE - - - - - - - - - 1 - - - - - - - - 1 - - - The single steps of a power sequence are represented by slots. A slot is associated with a slot number (while a power sequence is associated with a power sequence identifier). The slot numbers of two power sequences should be considered independent from each other, i.e., slot number 7 of sequence 1 describes a different slot than slot number 7 of sequence 2. Therefore a slot is only uniquely identified in combination with a sequence ID. - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - 1 - - - - - - - - 1 - - - - - - - - - - - - - 1 - - - - - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - - - - - - - - 1 - - - - - - - - 1 - - - Slot - - - - - - - 1 - - - - - - 1 - - - - - - Energy max - A possible type of energy in a slot that represents the maximum energy consumption and its value - - - - Max duration - If a slot has a configurable duration, it SHALL be present and denote the maximum supported configuration. Note: This element applies to the first repetition of the slot number only - - - - Resume energy estimated - In a power sequence, the additional energy the device will consume before resuming its normal operation (after a pause). This is only an estimated value which will not be added to the value stated in any slot value information. - - - - - - - - - - s4ener:normal - - s4ener:emergency - - s4ener:increase - - s4ener:reduce - - s4ener:resume - - s4ener:pause - - - - - Event action produce - - - - Remaining pause time - The duration that the current slot (s4ee:activeSlotNumber) permits being paused. This element SHALL ONLY be present if the power sequence is interruptible. Otherwise, it SHALL be omitted. In case the power sequence is interruptible the following rules apply: If the element is absent this means there is no explicit pause duration restriction for the current slot; a value of 0s denoted the slot does not permit being paused. - - - - - - Power max - A possible type of power in a slot that represents the maximum power consumption and its value - - - - Duration uncertainty - The uncertainty of the duration - - - - End time - The endTime of a power sequence. If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted. -The end time of a slot MAY be stated in this element. The following equation SHALL apply: endTime - startTime = defaultDuration. - - - - - - - - - - Active duration sum min - The active minimum duration a power sequence must run in total (summation of all active times). - - - - Min duration - If a slot has a configurable duration, it SHALL be present and denote the minimum supported configuration. Note: This element applies to the first repetition of the slot number only. - - - - Max activation delay - Maximum delay time between the end of the previous slot and the beginning of the current slot. - - - - Resume cost estimated - In a power sequence the additional costs for the resumption of a device to its normal operation (after a pause). - - - - Pause duration max - The maximum duration a power sequence can pause after the end of an activity. - - - - End time duration Description - The duration description for the end time duration temporal entities - - - - Power - Power type and value in a slot (i.e. power, powerMin, powerMax, powerExpectedValue, powerStandardDeviation, powerSkewness) - - - Load Control event action - An action type used to express the action to be performed as a consequence of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter). - - - - Actuator level - Independent from the ActuatorSwitch class, the ActuatorLevel class enables a user or application to model LEVEL commands (start, up, percentageAbsolute, relative, etc.). This can be used to dim a light, set the speed of an electric motor, etc. - - - - Active duration max - The active maximum duration a power sequence can run without interruption. - - - - Energy Standard Deviation - A possible type of energy in a slot that represents the energy standard deviation and its value - - - - - - - - - 0 - - - - - - - - 1 - - - - - - - - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - - 0 - - - - - - - - 1 - - - - - - - - 1 - - - A specialization of a saref:Device that exposes a power profile with power sequences to the CEM (note that a s4ee:Device can also be called 'power sequence server'). Most of the existing devices can expose at most 1 power profile, but there are special cases in which more than one power profiles can be exposed by the same device. For example, consider the case of a combined fridge-freezer in which there are 2 logical devices (fridge and freezer) combined in 1 physical device. This combined device can expose 2 power profiles, one for the fridge and one for the freezer. A s4ee:Device (e.g. a household appliance or a smart meter) can also receive events about overload warning severity level and related load control commands (LoadControlEventData) - Device - - - - - - 1 - - - - - - - - 1 - - - - - - - - 1 - - - - - - - - - 0 - - - - - - Start time - The startTime of a power sequence or slot. SHALL be present - - - - - - - - - - Pause duration description - The duration description for the pause duration (max and min) temporal entities - - - - - - - - - - s4ener:eventError - - s4ener:eventCancelled - - s4ener:eventRejected - - s4ener:eventStopped - - s4ener:eventStarted - - s4ener:eventAccepted - - - Event state consume - - - - Activation delay - The scheduled activation delay for a slot. - - - - has event state consume - A relationship between the specification of the state of a load control event consume and the value that this state can assume. - - - has function - A relationship identifying the functions performed by an actuator level and an actuator switch - - - - - - has power value type - A relationship representing a power value type - - - has connection - In the Remote Network Management (RemoteNWM) use case, a relationship between a node in a network (i.e., a s4ee:Device) and its connections (i.e., a s4ee:DeviceConnections). The same s4ee:Device (or node) can have multiple device connections as it can be connected to several networks at the same time. - - - has expression - A relationship between an appliance parameter compatibility action and the associated expressions - - - has applied event action produce - A relationship between the state of a load control event produce and the action to be performed as a consequence of this event. - - - has device - A relationship between a load control event (used to send overload warning severity level and related load control commands) and the device interested by this event. - - - triggers event action consume - A relationship between a load control event and the consume action triggered by this event - - - triggers event action produce - A relationship between a load control event and the produce action triggered by this event - - - - has energy - A relationship between a power sequence and its energy (in terms of value and unit of measure) - - - belongs to - A relationship identifying the ownership of an entity. In particular, a slot belongs to a power sequence, a power sequence belongs to an alternative, an alternative belongs to a power profile, a power profile belongs to a device. - - - has applied event action consume - A relationship between the state of a load control event consume and the action to be performed as a consequence of this event. - - - receives - A relationship between a device (e.g., an appliance or a smart meter) and a load control event - - - - - - has energy value type - A relationship representing an energy value type - - - - has event state produce - A relationship between the specification of the state of a load control event produce and the value that this state can assume. - - - has value type - A relation representing the value type of an entity - - - exposes - A relationship between a device and its power profile - - - - supports reselection - If set toTRUE, the power profile of a device does not restrict the number of power sequence re-selections by the CEM, i.e. within a given alternative the CEM may first choose one power sequence, alter the selection by configuring another sequence later on, then alter the selection again, etc. (provided the process rules and data still permit configuration). If supportsReselection is set to FALSE, the device permits the CEM to select a power sequence of an alternative only once. - - - - brand name - Provides the name of the brand of a device. Useful where the name of the brand and the vendor differs. - - - - event ID - Used in the Demand Response use case to identify an event - - - - repetition total - Contains the total number of repetitions, if a power sequence repeats its sequence of slots. Absence of the element is equal to a presence with a value of 0 (zero). SHALL be absent if the value is 1. - - - - device code - Provides a device code for the device as defined by the manufacturer. - - - - optional slot - Indicates whether a slot is optional (if set to TRUE). Otherwise, if a slot is mandatory, SHALL be omitted or set to FALSE. Note: This element applies to every repetition of the slot number. - - - - vendor code - Provides a code for the vendor of the device as defined by the manufacturer. - - - - supports single slot scheduling only - If set toTRUE, the power profile of a device does NOT permit the modification of more than one slot per configuration command. - - - - device name - Provides the name of the device as defined by the manufacturer. - - - - manufacturer node identification - Indicates a node identification for the device as defined by the manufacturer. This could be used for the identification of a device, even if it was removed from the network and rejoined later with changed node address. - - - - slot number - Provides a unique slot identifier for a certain power sequence - - - - active slot number - Indicates the currently active slot number, if the power sequence state is set to 'running' or 'paused'. Otherwise it SHALL be omitted. - - - - is pausable - - - - node remote controllable - Indicates whether the power profile of a device is configured for remote control (e.g., by an energy management system).This refers to the selection chosen by the user on the remote control feature of the device. If nodeRemoteControllable is equal to FALSE, all the supported power sequences shall set the sequenceRemoteControllable property to FALSE. If nodeRemoteControllable is equal to TRUE, at least one power sequence shall be remotely controllable by setting the sequenceRemoteControllable property to TRUE. - - - - - - - - - - - - obsolete - - emergency - - alarm - - warning - - information - - logging - - - - messaging type - Indicates the type of the message. Possible values are: -- logging (used for messages, that shall be stored in a log file) -- information (messages, that shall be presented to the customer on a display; lower priority) -- warning (messages, that shall be presented to the customer on a display; medium priority) -- alarm (messages, that shall be presented to the customer on a display; high priority; if there is an alarm device in the household, it shall generate an alarm) -- emergency (messages, that shall be presented to the customer on a display; very high priority; if there is an alarm device in the household, it shall generate an alarm; additionally, if possible and configured, an emergency call shall be done) -- obsolete (previously sent messages, that shall be marked as obsolete) - - - - serial number - Indicates the serial number of a device as defined by the manufacturer. Usually the same as printed on the case. - - - - cheapest - Indicates whether a power sequence applies a configuration that minimises the user’s energy bill (if set to TRUE). MAY be present. Absence of this element is equal to the presence with value FALSE. - - - - manufacturer label - A short label of the device as defined by the manufacturer. - - - - - - - - - empiricalValue - - calculatedValue - - measuredValue - - - - value source - Indicates the source (origin/foundation) of the measurement forecasted values for a power sequence. If absent, the source is undefined. Remark: This element shall express the reliability of the forecast. - - - - greenest - Indicates whether a power sequence optimises the configuration towards the maximum availability of renewable energy (if set to TRUE). MAY be present. Absence of this element is equal to the presence with value FALSE. - - - - is stoppable - - - - alternatives group ID - The endpoint-wide unique identifier for the alternatives group instances provided by a power profile - - - - total sequences count max - Represents the total number of power sequences supported by the power profile of a device - - - - activate slot - Indicates whether a slot is used (activateSlot = true) or not (activateSlot = false). SHALL be present if a slot is optional (i.e., the property s4ee:optionalSlot is TRUE), otherwise SHALL be absent (i.e. in case the slot is mandatory). - - - - sequence ID - Provides a unique power sequence identifier for a certain device - - - - manufacturer description - A description for the device as defined by the manufacturer. - - - - alternatives count - Indicates the number of alternatives groups provided by a power profile - - - - active repetition number - Indicates the current repetition of the sequence of slots. SHALL be present if a power sequence can repeat its sequence of slots (i.e., if s4ee:repetitionTotal is present and has a value > 1). Otherwise, it SHALL be absent. - - - - messaging number - An identifier for one specific message. If a message is marked as obsolete, this number can be used to identify the original message. - - - - - - - - - - - dc - - battery - - mains3Phase - - mainsSinglePhase - - unknown - - - - power source - Indicates the power source of a device. Possible values are e.g. mainsSinglePhase or battery - - - - measurement id - Enables the identification of different sensors on one EEBus address. - - - - - - - - - falling - - stable - - rising - - - - value tendency - Indicates whether the tendency of a measurement is rising, stable or falling. - - - - slot activated - If a slot is optional, represents the current status of the slot (true = the slot will be executed, false = the slot will not be executed). If the slot is not optional, this element SHALL be absent. - - - - max cycles per day - States the maximum amount of starts a power sequence (of a device) allows per day. - - - - duration in xsd - This property is added to the time:DurationDescription class to allow to express time duration also as xsd:duration. This is necessary because in the EEBus/E@h model time is always expressed as xsd:duration. We use this property to express the following time information in the EEBus/E@h model: -- the startTime of the power sequence (in the PowerSequence class). SHALL be present -- the endTime of the power sequence (in the PowerSequence class). If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted. -- the startTime of measurement as absolute or relative value (in the Measurement class). -- the endTime of measurement as absolute or relative value (in the Measurement class). - - - - hardware revision - Indicates the hardware revision of the device as defined by the manufacturer. - - - - software revision - Indicates the software revision of a device as defined by the manufacturer. - - - - vendor name - Provides the name of the vendor of the device as defined by the manufacturer. - - - - sequence remote controllable - Denotes whether a power sequence is modifiable (if value is TRUE) or not (if value is FALSE). Modifiability is required to configure power sequences and slots. It is also required to change a power sequence state. - - - - task identifier - - - reduce - Load control event action with value 'reduce' - - - - - event error - Load control state with value 'event error' - - - - - increase - Load control event action with value 'increase' - - - - - scheduled - Power sequence state with value 'scheduled' - - - - pause - Load control event action with value 'pause' - - - - - paused - Power sequence state or sensor state with value 'paused' - - - - emergency - Load control event action with value 'emergency' - - - - - resume - Load control event action with value 'resume' - - - - - inactive - Power sequence state with value 'inactive' - - - - invalid - Power sequence state with value 'invalid' - - - - running - Power sequence state with value 'running' - - - - event cancelled - Load control state with value 'event cancelled' - - - - - scheduled paused - Power sequence state with value 'scheduled paused' - - - - normal - The value NORMAL used to instantiate the Load Control Event Action class and MeasurandState class - - - - - event stopped - Load control state with value 'event stopped' - - - - - event accepted - Load control state with value 'event accepted' - - - - - completed - Power sequence state with value 'completed' - - - - pending - Power sequence state with value 'pending' - - - - event rejected - Load control state with value 'event rejected' - - - - - event started - Load control state with value 'event started' - - - - diff --git a/src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/saref4ener.ttl b/src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/saref4ener.ttl deleted file mode 100644 index 8a8e055..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4ener/v1.1.1/saref4ener.ttl +++ /dev/null @@ -1,1551 +0,0 @@ -@prefix dcterms: . -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix saref: . -@prefix xsd: . -@prefix s4ener: . -@prefix vann: . - - - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:xsdDuration ; - ] ; -. - rdf:type owl:Ontology ; - dcterms:title "SAREF4ENER: an extension of SAREF for the energy domain created in collaboration with Energy@Home and EEBus associations"^^xsd:string ; - owl:versionInfo "1.1.1" ; - owl:versionIRI ; - dcterms:created "2015-09-04"^^xsd:date ; - dcterms:modified "2016-12-13"^^xsd:date ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:contributor ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4ener#" ; - vann:preferredNamespacePrefix "s4ener" ; - dcterms:license ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:source ; - dcterms:source ; - dcterms:description "SAREF4ENER is an extension of SAREF for the Energy domain that was created in collaboration with Energy@Home (http://www.energy-home.it) and EEBus (http://www.eebus.org/en), the major Italy- and Germany-based industry associations, to enable the interconnection of their (different) data models. SAREF4ENER focuses on demand response scenarios, in which customers can offer flexibility to the Smart Grid to manage their smart home devices by means of a Customer Energy Manager (CEM). The CEM is a logical function for optimizing energy consumption and/or production that can reside either in the home gateway or in the cloud. SAREF4ENER is published as an ETSI tecnical specificatoion (ETSI TS 103 410-1)."^^xsd:string ; - owl:imports ; - dcterms:publisher . - - -s4ener:ActivationDelay - rdf:type owl:Class ; - rdfs:comment "The scheduled activation delay for a slot."^^xsd:string ; - rdfs:label "Activation delay"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ActivationDelayDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the activation delay duration temporal entity"^^xsd:string ; - rdfs:label "Activation delay duration description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ActiveDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the active duration (min and max, sum max and sum min) temporal entities"^^xsd:string ; - rdfs:label "Active duration description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ActiveDurationMax - rdf:type owl:Class ; - rdfs:comment "The active maximum duration a power sequence can run without interruption."^^xsd:string ; - rdfs:label "Active duration max"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ActiveDurationMin - rdf:type owl:Class ; - rdfs:comment "The active mininum duration a power sequence can run without interruption."^^xsd:string ; - rdfs:label "Active duration min"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ActiveDurationSumMax - rdf:type owl:Class ; - rdfs:comment "The active maximum duration a power sequence can run in total (summation of all active times)."^^xsd:string ; - rdfs:label "Active duration sum max"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ActiveDurationSumMin - rdf:type owl:Class ; - rdfs:comment "The active minimum duration a power sequence must run in total (summation of all active times)."^^xsd:string ; - rdfs:label "Active duration sum min"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ActuatorLevel - rdf:type owl:Class ; - rdfs:comment "Independent from the ActuatorSwitch class, the ActuatorLevel class enables a user or application to model LEVEL commands (start, up, percentageAbsolute, relative, etc.). This can be used to dim a light, set the speed of an electric motor, etc."^^xsd:string ; - rdfs:label "Actuator level"^^xsd:string ; - rdfs:subClassOf saref:Actuator ; -. -s4ener:ActuatorSwitch - rdf:type owl:Class ; - rdfs:comment "Basic on/off operations on a simple actuator can be modelled with the ActuatorSwitch class. Whether the function turns a device itself ON or OFF, or whether it switches a specific feature, depends on the implementation. For example, one could model the super freeze program of a freezer using ActuatorSwitch class. An ON command would then activate the super freeze program and an OFF command would deactivate it. This example shall just give an idea how ActuatorSwitch can be used for more purposes than only turning devices on and off."^^xsd:string ; - rdfs:label "Actuator switch"^^xsd:string ; - rdfs:subClassOf saref:Actuator ; -. -s4ener:AlternativesGroup - rdf:type owl:Class ; - rdfs:comment "A collection of power sequences for a certain profile"^^xsd:string ; - rdfs:label "Alternatives group"^^xsd:string ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:PowerProfile ; - owl:onProperty s4ener:belongsTo ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:PowerSequence ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PowerSequence ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:onClass s4ener:PowerProfile ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:onDataRange xsd:unsignedInt ; - owl:onProperty s4ener:alternativesGroupID ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - ] ; -. -s4ener:AnticipationDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the anticipation duration temporal entities"^^xsd:string ; - rdfs:label "Anticipation duration description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:DefaultDuration - rdf:type owl:Class ; - rdfs:comment "The duration of a slot (SHALL be present in case of 'determined slot'). If a slot has a configurable lenght, this element SHALL reflect the currently configured lenght"^^xsd:string ; - rdfs:label "Default duration"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:DefaultDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the default duration temporal entity"^^xsd:string ; - rdfs:label "Default duration description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:Device - rdf:type owl:Class ; - rdfs:comment "A specialization of a saref:Device that exposes a power profile with power sequences to the CEM (note that a s4ee:Device can also be called 'power sequence server'). Most of the existing devices can expose at most 1 power profile, but there are special cases in which more than one power profiles can be exposed by the same device. For example, consider the case of a combined fridge-freezer in which there are 2 logical devices (fridge and freezer) combined in 1 physical device. This combined device can expose 2 power profiles, one for the fridge and one for the freezer. A s4ee:Device (e.g. a household appliance or a smart meter) can also receive events about overload warning severity level and related load control commands (LoadControlEventData)"^^xsd:string ; - rdfs:label "Device"^^xsd:string ; - rdfs:subClassOf saref:Device ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:LoadControlEventData ; - owl:onProperty s4ener:receives ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:PowerProfile ; - owl:onProperty s4ener:exposes ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:brandName ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:deviceCode ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:deviceName ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:hardwareRevision ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:manufacturerDescription ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:manufacturerLabel ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:manufacturerNodeIdentification ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:serialNumber ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:softwareRevision ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:vendorCode ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:vendorName ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:powerSource ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:LoadControlEventData ; - owl:onProperty s4ener:receives ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PowerProfile ; - owl:onProperty s4ener:exposes ; - ] ; -. -s4ener:DurationUncertainty - rdf:type owl:Class ; - rdfs:comment "The uncertainty of the duration "^^xsd:string ; - rdfs:label "Duration uncertainty"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:DurationUncertaintyDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the duration uncertainty temporal entity"^^xsd:string ; - rdfs:label "Duration uncertainty description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:EarliestStartTime - rdf:type owl:Class ; - rdfs:comment """The earliest possible start time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0. -Note: This element applies to the first repetition of the slot number only."""^^xsd:string ; - rdfs:label "Earliest start time"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ElapsedSlotTime - rdf:type owl:Class ; - rdfs:comment "If state is set to 'running' or 'paused' AND the slot is determined, this element CAN contain the time the slot has already been in 'running' state (this also means the value remains constant during a 'paused' state). Otherwise it SHALL be omitted."^^xsd:string ; - rdfs:label "Elapsed slot time"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:EndTime - rdf:type owl:Class ; - rdfs:comment """The endTime of a power sequence. If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted. -The end time of a slot MAY be stated in this element. The following equation SHALL apply: endTime - startTime = defaultDuration."""^^xsd:string ; - rdfs:label "End time"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:EndTimeDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the end time duration temporal entities"^^xsd:string ; - rdfs:label "End time duration Description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:Energy - rdf:type owl:Class ; - rdfs:comment "Energy type and value in a slot (i.e., Energy, EnergyMin, EnergyMax, EnergyExpected, EnergyStandardDeviation, EnergySkewness); or the ResumeEnergyEstimated in a power sequence, i.e., the additional energy the device will consume before resuming its normal operation (after a pause)"^^xsd:string ; - rdfs:label "Energy"^^xsd:string ; - rdfs:subClassOf saref:Energy ; -. -s4ener:EnergyExpected - rdf:type owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the expected energy consumption and its value"^^xsd:string ; - rdfs:label "Energy expected"^^xsd:string ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:EnergyMax - rdf:type owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the maximum energy consumption and its value"^^xsd:string ; - rdfs:label "Energy max"^^xsd:string ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:EnergyMin - rdf:type owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the minimum energy consumption and its value"^^xsd:string ; - rdfs:label "Energy min"^^xsd:string ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:EnergySkewness - rdf:type owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the energy skewness and its value"^^xsd:string ; - rdfs:label "Energy skewness"^^xsd:string ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:EnergyStandardDeviation - rdf:type owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the energy standard deviation and its value"^^xsd:string ; - rdfs:label "Energy Standard Deviation"^^xsd:string ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:EventActionConsume - rdf:type owl:Class ; - rdfs:label "Event action consume"^^xsd:string ; - rdfs:subClassOf s4ener:LoadControlEventAction ; - owl:oneOf ( - "s4ener:pause"^^xsd:string - "s4ener:resume"^^xsd:string - "s4ener:reduce"^^xsd:string - "s4ener:increase"^^xsd:string - "s4ener:emergency"^^xsd:string - "s4ener:normal"^^xsd:string - ) ; -. -s4ener:EventActionProduce - rdf:type owl:Class ; - rdfs:label "Event action produce"^^xsd:string ; - rdfs:subClassOf s4ener:LoadControlEventAction ; - owl:oneOf ( - "s4ener:pause"^^xsd:string - "s4ener:resume"^^xsd:string - "s4ener:reduce"^^xsd:string - "s4ener:increase"^^xsd:string - "s4ener:emergency"^^xsd:string - "s4ener:normal"^^xsd:string - ) ; -. -s4ener:EventStateConsume - rdf:type owl:Class ; - rdfs:label "Event state consume"^^xsd:string ; - rdfs:subClassOf s4ener:LoadControlEventState ; - owl:oneOf ( - "s4ener:eventAccepted"^^xsd:string - "s4ener:eventStarted"^^xsd:string - "s4ener:eventStopped"^^xsd:string - "s4ener:eventRejected"^^xsd:string - "s4ener:eventCancelled"^^xsd:string - "s4ener:eventError"^^xsd:string - ) ; -. -s4ener:EventStateProduce - rdf:type owl:Class ; - rdfs:label "Event state produce"^^xsd:string ; - rdfs:subClassOf s4ener:LoadControlEventState ; - owl:oneOf ( - "s4ener:eventAccepted"^^xsd:string - "s4ener:eventStarted"^^xsd:string - "s4ener:eventStopped"^^xsd:string - "s4ener:eventRejected"^^xsd:string - "s4ener:eventCancelled"^^xsd:string - "s4ener:eventError"^^xsd:string - ) ; -. -s4ener:LatestEndTime - rdf:type owl:Class ; - rdfs:comment """The latest possible end time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0. -Note: This element applies to the first repetition of the slot number only."""^^xsd:string ; - rdfs:label "Latest end time"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:LoadControlEventAction - rdf:type owl:Class ; - rdfs:comment "An action type used to express the action to be performed as a consequence of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."^^xsd:string ; - rdfs:label "Load Control event action"^^xsd:string ; -. -s4ener:LoadControlEventData - rdf:type owl:Class ; - rdfs:comment "An event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."^^xsd:string ; - rdfs:label "Load control event data"^^xsd:string ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:Device ; - owl:onProperty s4ener:hasDevice ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:EventActionConsume ; - owl:onProperty s4ener:triggersEventActionConsume ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:EventActionProduce ; - owl:onProperty s4ener:triggersEventActionProduce ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:TimePeriod ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:eventID ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionConsume ; - owl:onProperty s4ener:triggersEventActionConsume ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionProduce ; - owl:onProperty s4ener:triggersEventActionProduce ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:Device ; - owl:onProperty s4ener:hasDevice ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:TimePeriod ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime ; - owl:onProperty saref:hasTimestamp ; - ] ; -. -s4ener:LoadControlEventState - rdf:type owl:Class ; - rdfs:comment "In the load control, it expresses the possible states of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."^^xsd:string ; - rdfs:label "Load control event state "^^xsd:string ; - rdfs:subClassOf s4ener:State ; -. -s4ener:LoadControlStateData - rdf:type owl:Class ; - rdfs:comment "The representation of the state of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."^^xsd:string ; - rdfs:label "Load control state data"^^xsd:string ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:EventActionConsume ; - owl:onProperty s4ener:hasAppliedEventActionConsume ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:EventActionProduce ; - owl:onProperty s4ener:hasAppliedEventActionProduce ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:EventStateConsume ; - owl:onProperty s4ener:hasEventStateConsume ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:EventStateProduce ; - owl:onProperty s4ener:hasEventStateProduce ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionConsume ; - owl:onProperty s4ener:hasAppliedEventActionConsume ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionProduce ; - owl:onProperty s4ener:hasAppliedEventActionProduce ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventStateConsume ; - owl:onProperty s4ener:hasEventStateConsume ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventStateProduce ; - owl:onProperty s4ener:hasEventStateProduce ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:unsignedInt ; - owl:onProperty s4ener:eventID ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime ; - owl:onProperty saref:hasTimestamp ; - ] ; -. -s4ener:MaxActivationDelay - rdf:type owl:Class ; - rdfs:comment "Maximum delay time between the end of the previous slot and the beginning of the current slot."^^xsd:string ; - rdfs:label "Max activation delay"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:MaxAnticipation - rdf:type owl:Class ; - rdfs:comment "This field allows the anticipation of the phase if (and only if) the previous phase has the energy set to 0 Wh, each unit is a minute."^^xsd:string ; - rdfs:label "Max anticipation"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:MaxDuration - rdf:type owl:Class ; - rdfs:comment "If a slot has a configurable duration, it SHALL be present and denote the maximum supported configuration. Note: This element applies to the first repetition of the slot number only"^^xsd:string ; - rdfs:label "Max duration"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:MinDuration - rdf:type owl:Class ; - rdfs:comment "If a slot has a configurable duration, it SHALL be present and denote the minimum supported configuration. Note: This element applies to the first repetition of the slot number only."^^xsd:string ; - rdfs:label "Min duration"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:PauseDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the pause duration (max and min) temporal entities"^^xsd:string ; - rdfs:label "Pause duration description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:PauseDurationMax - rdf:type owl:Class ; - rdfs:comment "The maximum duration a power sequence can pause after the end of an activity."^^xsd:string ; - rdfs:label "Pause duration max"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:PauseDurationMin - rdf:type owl:Class ; - rdfs:comment "The minimum duration a power sequence can pause after the end of an activity."^^xsd:string ; - rdfs:label "Pause duration min"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:PauseTime - rdf:type owl:Class ; - rdfs:comment "The pause time of a power sequence or a slot"^^xsd:string ; - rdfs:label "Pause time"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:Power - rdf:type owl:Class ; - rdfs:comment "Power type and value in a slot (i.e. power, powerMin, powerMax, powerExpectedValue, powerStandardDeviation, powerSkewness)"^^xsd:string ; - rdfs:label "Power"^^xsd:string ; - rdfs:subClassOf saref:Power ; -. -s4ener:PowerExpected - rdf:type owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the expected power consumption and its value"^^xsd:string ; - rdfs:label "Power expected "^^xsd:string ; - rdfs:subClassOf s4ener:Power ; -. -s4ener:PowerMax - rdf:type owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the maximum power consumption and its value"^^xsd:string ; - rdfs:label "Power max"^^xsd:string ; - rdfs:subClassOf s4ener:Power ; -. -s4ener:PowerMin - rdf:type owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the minimum power consumption and its value"^^xsd:string ; - rdfs:label "Power min"^^xsd:string ; - rdfs:subClassOf s4ener:Power ; -. -s4ener:PowerProfile - rdf:type owl:Class ; - rdfs:comment "A way to model curves of power and energy over time, which also provides definitions for the modelling of power scheduling including alternative plans. With a PowerProfile, a device (or power sequences server) exposes the power sequences that are potentially relevant for the CEM (or power sequences client). "^^xsd:string ; - rdfs:label "Power profile"^^xsd:string ; - rdfs:subClassOf saref:Profile ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:AlternativesGroup ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:Device ; - owl:onProperty s4ener:belongsTo ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:alternativesCount ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:nodeRemoteControllable ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:supportsReselection ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:supportsSingleSlotSchedulingOnly ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:totalSequencesCountMax ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:AlternativesGroup ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:onClass s4ener:Device ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - ] ; -. -s4ener:PowerSequence - rdf:type owl:Class ; - rdfs:comment "The specification of a task, such as wash or tumble dry, according to user preferences and/or manufacturer's settings for a certain device. It is the most 'coarse' view, a power sequence can represent all single steps of a whole task,where the single steps are represented by slots. If the power sequence is pausable by the bound power sequences client, the property 'saref:isInterruptionPossible' SHALL be present and set to true. Otherwise it SHALL be omitted. If the power sequence is stoppable by the bound power sequences client, the property 'saref:isFlexible' SHALL be present and set to true. Otherwise it SHALL be omitted."^^xsd:string ; - rdfs:label "Power sequence"^^xsd:string ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:AlternativesGroup ; - owl:onProperty s4ener:belongsTo ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:PowerSequenceState ; - owl:onProperty saref:hasState ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:ResumeCostEstimated ; - owl:onProperty saref:hasPrice ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:ResumeEnergyEstimated ; - owl:onProperty s4ener:hasEnergy ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:Slot ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:sequenceID ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:sequenceRemoteControllable ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:activeRepetitionNumber ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:activeSlotNumber ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:cheapest ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:greenest ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:isPausable ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:isStoppable ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:maxCyclesPerDay ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:repetitionsTotal ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationMax ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationMin ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationSumMax ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationSumMin ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EarliestStartTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ElapsedSlotTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EndTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:LatestEndTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PauseDurationMax ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PauseDurationMin ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:RemainingSlotTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ResumeCostEstimated ; - owl:onProperty saref:hasPrice ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ResumeEnergyEstimated ; - owl:onProperty s4ener:hasEnergy ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:taskIdentifier ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:valueSource ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PowerSequenceState ; - owl:onProperty saref:hasState ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:Slot ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:StartTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:onClass s4ener:AlternativesGroup ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - ] ; -. -s4ener:PowerSequenceState - rdf:type owl:Class ; - rdfs:comment "The current state of the power sequence. It can assume one of the values 'running', 'paused', 'scheduled', 'scheduled paused', 'pending', 'inactive', 'completed', or 'invalid'."^^xsd:string ; - rdfs:label "Power sequence state"^^xsd:string ; - rdfs:subClassOf s4ener:State ; - owl:oneOf ( - "s4ener:running"^^xsd:string - "s4ener:paused"^^xsd:string - "s4ener:scheduled"^^xsd:string - "s4ener:scheduledPaused"^^xsd:string - "s4ener:pending"^^xsd:string - "s4ener:inactive"^^xsd:string - "s4ener:completed"^^xsd:string - "s4ener:invalid"^^xsd:string - ) ; -. -s4ener:PowerSkewness - rdf:type owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the power skewness and its value"^^xsd:string ; - rdfs:label "Power skewness"^^xsd:string ; - rdfs:subClassOf s4ener:Power ; -. -s4ener:PowerStandardDeviation - rdf:type owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the power standard deviation and its value"^^xsd:string ; - rdfs:label "Power standard deviation"^^xsd:string ; - rdfs:subClassOf s4ener:Power ; -. -s4ener:RemainingPauseTime - rdf:type owl:Class ; - rdfs:comment "The duration that the current slot (s4ee:activeSlotNumber) permits being paused. This element SHALL ONLY be present if the power sequence is interruptible. Otherwise, it SHALL be omitted. In case the power sequence is interruptible the following rules apply: If the element is absent this means there is no explicit pause duration restriction for the current slot; a value of 0s denoted the slot does not permit being paused."^^xsd:string ; - rdfs:label "Remaining pause time"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:RemainingSlotTime - rdf:type owl:Class ; - rdfs:comment "If state is set to 'running' or 'paused' AND the slot is determined, this element SHALL contain the time the slot still needs to be in 'running' state (this also means the value remains constant during a 'paused' state). Otherwise it SHALL be omitted."^^xsd:string ; - rdfs:label "Remaining slot time"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:ResumeCostEstimated - rdf:type owl:Class ; - rdfs:comment "In a power sequence the additional costs for the resumption of a device to its normal operation (after a pause)."^^xsd:string ; - rdfs:label "Resume cost estimated"^^xsd:string ; - rdfs:subClassOf saref:Price ; -. -s4ener:ResumeEnergyEstimated - rdf:type owl:Class ; - rdfs:comment "In a power sequence, the additional energy the device will consume before resuming its normal operation (after a pause). This is only an estimated value which will not be added to the value stated in any slot value information."^^xsd:string ; - rdfs:label "Resume energy estimated"^^xsd:string ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:Slot - rdf:type owl:Class ; - rdfs:comment "The single steps of a power sequence are represented by slots. A slot is associated with a slot number (while a power sequence is associated with a power sequence identifier). The slot numbers of two power sequences should be considered independent from each other, i.e., slot number 7 of sequence 1 describes a different slot than slot number 7 of sequence 2. Therefore a slot is only uniquely identified in combination with a sequence ID. "^^xsd:string ; - rdfs:label "Slot"^^xsd:string ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom saref:Time ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:Energy ; - owl:onProperty s4ener:hasEnergyValueType ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:Power ; - owl:onProperty s4ener:hasPowerValueType ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:allValuesFrom s4ener:PowerSequence ; - owl:onProperty s4ener:belongsTo ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:slotNumber ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:optionalSlot ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:slotActivated ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:DefaultDuration ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:DurationUncertainty ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EarliestStartTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EndTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:LatestEndTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:MaxDuration ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:MinDuration ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:RemainingPauseTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:StartTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass [ - rdf:type owl:Class ; - owl:unionOf ( - s4ener:Energy - s4ener:Power - ) ; - ] ; - owl:onProperty s4ener:hasValueType ; - ] ; - rdfs:subClassOf [ - rdf:type owl:Restriction ; - owl:onClass s4ener:PowerSequence ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - ] ; -. -s4ener:SlotTimeDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the slot time duration temporal entities"^^xsd:string ; - rdfs:label "Slot time duration description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:StartTime - rdf:type owl:Class ; - rdfs:comment "The startTime of a power sequence or slot. SHALL be present"^^xsd:string ; - rdfs:label "Start time"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:StartTimeDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the start time duration temporal entities"^^xsd:string ; - rdfs:label "Start time duration description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:State - rdf:type owl:Class ; - rdfs:comment "An entity that represents the possible states in SAREF4EE"^^xsd:string ; - rdfs:label "State"^^xsd:string ; - rdfs:subClassOf saref:State ; -. -s4ener:TimePeriod - rdf:type owl:Class ; - rdfs:comment "The time period associated with load control event data"^^xsd:string ; - rdfs:label "Time period"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:TimePeriodDurationDescription - rdf:type owl:Class ; - rdfs:comment "The duration description for the time period duration temporal entities"^^xsd:string ; - rdfs:label "Time period duration description"^^xsd:string ; - rdfs:subClassOf ; -. -s4ener:activateSlot - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates whether a slot is used (activateSlot = true) or not (activateSlot = false). SHALL be present if a slot is optional (i.e., the property s4ee:optionalSlot is TRUE), otherwise SHALL be absent (i.e. in case the slot is mandatory)."^^xsd:string ; - rdfs:label "activate slot"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:activeRepetitionNumber - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates the current repetition of the sequence of slots. SHALL be present if a power sequence can repeat its sequence of slots (i.e., if s4ee:repetitionTotal is present and has a value > 1). Otherwise, it SHALL be absent. "^^xsd:string ; - rdfs:label "active repetition number"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:activeSlotNumber - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates the currently active slot number, if the power sequence state is set to 'running' or 'paused'. Otherwise it SHALL be omitted."^^xsd:string ; - rdfs:label "active slot number"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:alternativesCount - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates the number of alternatives groups provided by a power profile"^^xsd:string ; - rdfs:label "alternatives count"^^xsd:string ; - rdfs:range xsd:integer ; -. -s4ener:alternativesGroupID - rdf:type owl:DatatypeProperty ; - rdfs:comment "The endpoint-wide unique identifier for the alternatives group instances provided by a power profile"^^xsd:string ; - rdfs:label "alternatives group ID"^^xsd:string ; - rdfs:range xsd:integer ; -. -s4ener:belongsTo - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying the ownership of an entity. In particular, a slot belongs to a power sequence, a power sequence belongs to an alternative, an alternative belongs to a power profile, a power profile belongs to a device. "^^xsd:string ; - rdfs:label "belongs to"^^xsd:string ; -. -s4ener:brandName - rdf:type owl:DatatypeProperty ; - rdfs:comment "Provides the name of the brand of a device. Useful where the name of the brand and the vendor differs."^^xsd:string ; - rdfs:label "brand name"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:cheapest - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates whether a power sequence applies a configuration that minimises the user’s energy bill (if set to TRUE). MAY be present. Absence of this element is equal to the presence with value FALSE. "^^xsd:string ; - rdfs:label "cheapest"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:completed - rdf:type owl:NamedIndividual ; - rdf:type s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'completed'"^^xsd:string ; - rdfs:label "completed"^^xsd:string ; -. -s4ener:deviceCode - rdf:type owl:DatatypeProperty ; - rdfs:comment "Provides a device code for the device as defined by the manufacturer."^^xsd:string ; - rdfs:label "device code"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:deviceName - rdf:type owl:DatatypeProperty ; - rdfs:comment "Provides the name of the device as defined by the manufacturer."^^xsd:string ; - rdfs:label "device name"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:emergency - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventActionConsume ; - rdf:type s4ener:EventActionProduce ; - rdfs:comment "Load control event action with value 'emergency'"^^xsd:string ; - rdfs:label "emergency"^^xsd:string ; -. -s4ener:eventAccepted - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventStateConsume ; - rdf:type s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event accepted'"^^xsd:string ; - rdfs:label "event accepted"^^xsd:string ; -. -s4ener:eventCancelled - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventStateConsume ; - rdf:type s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event cancelled'"^^xsd:string ; - rdfs:label "event cancelled"^^xsd:string ; -. -s4ener:eventError - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventStateConsume ; - rdf:type s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event error'"^^xsd:string ; - rdfs:label "event error"^^xsd:string ; -. -s4ener:eventID - rdf:type owl:DatatypeProperty ; - rdfs:comment "Used in the Demand Response use case to identify an event"^^xsd:string ; - rdfs:label "event ID"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:eventRejected - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventStateConsume ; - rdf:type s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event rejected'"^^xsd:string ; - rdfs:label "event rejected"^^xsd:string ; -. -s4ener:eventStarted - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventStateConsume ; - rdf:type s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event started'"^^xsd:string ; - rdfs:label "event started"^^xsd:string ; -. -s4ener:eventStopped - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventStateConsume ; - rdf:type s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event stopped'"^^xsd:string ; - rdfs:label "event stopped"^^xsd:string ; -. -s4ener:exposes - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a device and its power profile"^^xsd:string ; - rdfs:label "exposes"^^xsd:string ; -. -s4ener:greenest - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates whether a power sequence optimises the configuration towards the maximum availability of renewable energy (if set to TRUE). MAY be present. Absence of this element is equal to the presence with value FALSE. "^^xsd:string ; - rdfs:label "greenest"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:hardwareRevision - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates the hardware revision of the device as defined by the manufacturer."^^xsd:string ; - rdfs:label "hardware revision "^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:hasAppliedEventActionConsume - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between the state of a load control event consume and the action to be performed as a consequence of this event."^^xsd:string ; - rdfs:label "has applied event action consume"^^xsd:string ; -. -s4ener:hasAppliedEventActionProduce - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between the state of a load control event produce and the action to be performed as a consequence of this event."^^xsd:string ; - rdfs:label "has applied event action produce"^^xsd:string ; -. -s4ener:hasConnection - rdf:type owl:ObjectProperty ; - rdfs:comment "In the Remote Network Management (RemoteNWM) use case, a relationship between a node in a network (i.e., a s4ee:Device) and its connections (i.e., a s4ee:DeviceConnections). The same s4ee:Device (or node) can have multiple device connections as it can be connected to several networks at the same time."^^xsd:string ; - rdfs:label "has connection"^^xsd:string ; -. -s4ener:hasDevice - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a load control event (used to send overload warning severity level and related load control commands) and the device interested by this event."^^xsd:string ; - rdfs:label "has device"^^xsd:string ; -. -s4ener:hasEnergy - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a power sequence and its energy (in terms of value and unit of measure)"^^xsd:string ; - rdfs:label "has energy"^^xsd:string ; - rdfs:range s4ener:Energy ; -. -s4ener:hasEnergyValueType - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship representing an energy value type"^^xsd:string ; - rdfs:label "has energy value type"^^xsd:string ; - rdfs:subPropertyOf s4ener:hasValueType ; -. -s4ener:hasEventStateConsume - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between the specification of the state of a load control event consume and the value that this state can assume."^^xsd:string ; - rdfs:label "has event state consume"^^xsd:string ; - rdfs:subPropertyOf saref:hasState ; -. -s4ener:hasEventStateProduce - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between the specification of the state of a load control event produce and the value that this state can assume."^^xsd:string ; - rdfs:label "has event state produce"^^xsd:string ; - rdfs:subPropertyOf saref:hasState ; -. -s4ener:hasExpression - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between an appliance parameter compatibility action and the associated expressions"^^xsd:string ; - rdfs:label "has expression"^^xsd:string ; -. -s4ener:hasFunction - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship identifying the functions performed by an actuator level and an actuator switch"^^xsd:string ; - rdfs:label "has function"^^xsd:string ; -. -s4ener:hasPowerValueType - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship representing a power value type"^^xsd:string ; - rdfs:label "has power value type"^^xsd:string ; - rdfs:subPropertyOf s4ener:hasValueType ; -. -s4ener:hasValueType - rdf:type owl:ObjectProperty ; - rdfs:comment "A relation representing the value type of an entity"^^xsd:string ; - rdfs:label "has value type"^^xsd:string ; -. -s4ener:inactive - rdf:type owl:NamedIndividual ; - rdf:type s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'inactive'"^^xsd:string ; - rdfs:label "inactive"^^xsd:string ; -. -s4ener:increase - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventActionConsume ; - rdf:type s4ener:EventActionProduce ; - rdfs:comment "Load control event action with value 'increase'"^^xsd:string ; - rdfs:label "increase"^^xsd:string ; -. -s4ener:invalid - rdf:type owl:NamedIndividual ; - rdf:type s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'invalid'"^^xsd:string ; - rdfs:label "invalid"^^xsd:string ; -. -s4ener:isPausable - rdf:type owl:DatatypeProperty ; - rdfs:label "is pausable"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:isStoppable - rdf:type owl:DatatypeProperty ; - rdfs:label "is stoppable"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:manufacturerDescription - rdf:type owl:DatatypeProperty ; - rdfs:comment "A description for the device as defined by the manufacturer."^^xsd:string ; - rdfs:label "manufacturer description"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:manufacturerLabel - rdf:type owl:DatatypeProperty ; - rdfs:comment "A short label of the device as defined by the manufacturer. "^^xsd:string ; - rdfs:label "manufacturer label"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:manufacturerNodeIdentification - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates a node identification for the device as defined by the manufacturer. This could be used for the identification of a device, even if it was removed from the network and rejoined later with changed node address."^^xsd:string ; - rdfs:label "manufacturer node identification"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:maxCyclesPerDay - rdf:type owl:DatatypeProperty ; - rdfs:comment "States the maximum amount of starts a power sequence (of a device) allows per day."^^xsd:string ; - rdfs:label "max cycles per day"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:measurementID - rdf:type owl:DatatypeProperty ; - rdfs:comment "Enables the identification of different sensors on one EEBus address."^^xsd:string ; - rdfs:label "measurement id"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:messagingNumber - rdf:type owl:DatatypeProperty ; - rdfs:comment "An identifier for one specific message. If a message is marked as obsolete, this number can be used to identify the original message."^^xsd:string ; - rdfs:label "messaging number"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:messagingType - rdf:type owl:DatatypeProperty ; - rdfs:comment """Indicates the type of the message. Possible values are: -- logging (used for messages, that shall be stored in a log file) -- information (messages, that shall be presented to the customer on a display; lower priority) -- warning (messages, that shall be presented to the customer on a display; medium priority) -- alarm (messages, that shall be presented to the customer on a display; high priority; if there is an alarm device in the household, it shall generate an alarm) -- emergency (messages, that shall be presented to the customer on a display; very high priority; if there is an alarm device in the household, it shall generate an alarm; additionally, if possible and configured, an emergency call shall be done) -- obsolete (previously sent messages, that shall be marked as obsolete)"""^^xsd:string ; - rdfs:label "messaging type"^^xsd:string ; - rdfs:range [ - rdf:type rdfs:Datatype ; - owl:oneOf ( - "logging"^^xsd:string - "information"^^xsd:string - "warning"^^xsd:string - "alarm"^^xsd:string - "emergency"^^xsd:string - "obsolete"^^xsd:string - ) ; - ] ; -. -s4ener:nodeRemoteControllable - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates whether the power profile of a device is configured for remote control (e.g., by an energy management system).This refers to the selection chosen by the user on the remote control feature of the device. If nodeRemoteControllable is equal to FALSE, all the supported power sequences shall set the sequenceRemoteControllable property to FALSE. If nodeRemoteControllable is equal to TRUE, at least one power sequence shall be remotely controllable by setting the sequenceRemoteControllable property to TRUE."^^xsd:string ; - rdfs:label "node remote controllable"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:normal - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventActionConsume ; - rdf:type s4ener:EventActionProduce ; - rdfs:comment "The value NORMAL used to instantiate the Load Control Event Action class and MeasurandState class"^^xsd:string ; - rdfs:label "normal"^^xsd:string ; -. -s4ener:optionalSlot - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates whether a slot is optional (if set to TRUE). Otherwise, if a slot is mandatory, SHALL be omitted or set to FALSE. Note: This element applies to every repetition of the slot number."^^xsd:string ; - rdfs:label "optional slot"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:pause - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventActionConsume ; - rdf:type s4ener:EventActionProduce ; - rdfs:comment "Load control event action with value 'pause'"^^xsd:string ; - rdfs:label "pause"^^xsd:string ; -. -s4ener:paused - rdf:type owl:NamedIndividual ; - rdf:type s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state or sensor state with value 'paused'"^^xsd:string ; - rdfs:label "paused"^^xsd:string ; -. -s4ener:pending - rdf:type owl:NamedIndividual ; - rdf:type s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'pending'"^^xsd:string ; - rdfs:label "pending"^^xsd:string ; -. -s4ener:powerSource - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates the power source of a device. Possible values are e.g. mainsSinglePhase or battery "^^xsd:string ; - rdfs:label "power source"^^xsd:string ; - rdfs:range [ - rdf:type rdfs:Datatype ; - owl:oneOf ( - "unknown"^^xsd:string - "mainsSinglePhase"^^xsd:string - "mains3Phase"^^xsd:string - "battery"^^xsd:string - "dc"^^xsd:string - ) ; - ] ; -. -s4ener:receives - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a device (e.g., an appliance or a smart meter) and a load control event"^^xsd:string ; - rdfs:label "receives"^^xsd:string ; -. -s4ener:reduce - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventActionConsume ; - rdf:type s4ener:EventActionProduce ; - rdfs:comment "Load control event action with value 'reduce'"^^xsd:string ; - rdfs:label "reduce"^^xsd:string ; -. -s4ener:repetitionsTotal - rdf:type owl:DatatypeProperty ; - rdfs:comment "Contains the total number of repetitions, if a power sequence repeats its sequence of slots. Absence of the element is equal to a presence with a value of 0 (zero). SHALL be absent if the value is 1. "^^xsd:string ; - rdfs:label "repetition total"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:resume - rdf:type owl:NamedIndividual ; - rdf:type s4ener:EventActionConsume ; - rdf:type s4ener:EventActionProduce ; - rdfs:comment "Load control event action with value 'resume'"^^xsd:string ; - rdfs:label "resume"^^xsd:string ; -. -s4ener:running - rdf:type owl:NamedIndividual ; - rdf:type s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'running'"^^xsd:string ; - rdfs:label "running"^^xsd:string ; -. -s4ener:scheduled - rdf:type owl:NamedIndividual ; - rdf:type s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'scheduled'"^^xsd:string ; - rdfs:label "scheduled"^^xsd:string ; -. -s4ener:scheduledPaused - rdf:type owl:NamedIndividual ; - rdf:type s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'scheduled paused'"^^xsd:string ; - rdfs:label "scheduled paused"^^xsd:string ; -. -s4ener:sequenceID - rdf:type owl:DatatypeProperty ; - rdfs:comment "Provides a unique power sequence identifier for a certain device"^^xsd:string ; - rdfs:label "sequence ID"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:sequenceRemoteControllable - rdf:type owl:DatatypeProperty ; - rdfs:comment "Denotes whether a power sequence is modifiable (if value is TRUE) or not (if value is FALSE). Modifiability is required to configure power sequences and slots. It is also required to change a power sequence state."^^xsd:string ; - rdfs:label "sequence remote controllable"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:serialNumber - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates the serial number of a device as defined by the manufacturer. Usually the same as printed on the case."^^xsd:string ; - rdfs:label "serial number"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:slotActivated - rdf:type owl:DatatypeProperty ; - rdfs:comment "If a slot is optional, represents the current status of the slot (true = the slot will be executed, false = the slot will not be executed). If the slot is not optional, this element SHALL be absent."^^xsd:string ; - rdfs:label "slot activated"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:slotNumber - rdf:type owl:DatatypeProperty ; - rdfs:comment "Provides a unique slot identifier for a certain power sequence"^^xsd:string ; - rdfs:label "slot number"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:softwareRevision - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates the software revision of a device as defined by the manufacturer."^^xsd:string ; - rdfs:label "software revision"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:supportsReselection - rdf:type owl:DatatypeProperty ; - rdfs:comment "If set toTRUE, the power profile of a device does not restrict the number of power sequence re-selections by the CEM, i.e. within a given alternative the CEM may first choose one power sequence, alter the selection by configuring another sequence later on, then alter the selection again, etc. (provided the process rules and data still permit configuration). If supportsReselection is set to FALSE, the device permits the CEM to select a power sequence of an alternative only once."^^xsd:string ; - rdfs:label "supports reselection"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:supportsSingleSlotSchedulingOnly - rdf:type owl:DatatypeProperty ; - rdfs:comment "If set toTRUE, the power profile of a device does NOT permit the modification of more than one slot per configuration command."^^xsd:string ; - rdfs:label "supports single slot scheduling only"^^xsd:string ; - rdfs:range xsd:boolean ; -. -s4ener:taskIdentifier - rdf:type owl:DatatypeProperty ; - rdfs:label "task identifier"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:totalSequencesCountMax - rdf:type owl:DatatypeProperty ; - rdfs:comment "Represents the total number of power sequences supported by the power profile of a device"^^xsd:string ; - rdfs:label "total sequences count max"^^xsd:string ; - rdfs:range xsd:unsignedInt ; -. -s4ener:triggersEventActionConsume - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a load control event and the consume action triggered by this event"^^xsd:string ; - rdfs:label "triggers event action consume"^^xsd:string ; -. -s4ener:triggersEventActionProduce - rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship between a load control event and the produce action triggered by this event"^^xsd:string ; - rdfs:label "triggers event action produce"^^xsd:string ; -. -s4ener:valueSource - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates the source (origin/foundation) of the measurement forecasted values for a power sequence. If absent, the source is undefined. Remark: This element shall express the reliability of the forecast."^^xsd:string ; - rdfs:label "value source"^^xsd:string ; - rdfs:range [ - rdf:type rdfs:Datatype ; - owl:oneOf ( - "measuredValue"^^xsd:string - "calculatedValue"^^xsd:string - "empiricalValue"^^xsd:string - ) ; - ] ; -. -s4ener:valueTendency - rdf:type owl:DatatypeProperty ; - rdfs:comment "Indicates whether the tendency of a measurement is rising, stable or falling."^^xsd:string ; - rdfs:label "value tendency"^^xsd:string ; - rdfs:range [ - rdf:type rdfs:Datatype ; - owl:oneOf ( - "rising"^^xsd:string - "stable"^^xsd:string - "falling"^^xsd:string - ) ; - ] ; -. -s4ener:vendorCode - rdf:type owl:DatatypeProperty ; - rdfs:comment "Provides a code for the vendor of the device as defined by the manufacturer."^^xsd:string ; - rdfs:label "vendor code"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:vendorName - rdf:type owl:DatatypeProperty ; - rdfs:comment "Provides the name of the vendor of the device as defined by the manufacturer."^^xsd:string ; - rdfs:label "vendor name"^^xsd:string ; - rdfs:range xsd:string ; -. -s4ener:xsdDuration - rdf:type owl:DatatypeProperty ; - rdfs:comment """This property is added to the time:DurationDescription class to allow to express time duration also as xsd:duration. This is necessary because in the EEBus/E@h model time is always expressed as xsd:duration. We use this property to express the following time information in the EEBus/E@h model: -- the startTime of the power sequence (in the PowerSequence class). SHALL be present -- the endTime of the power sequence (in the PowerSequence class). If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted. -- the startTime of measurement as absolute or relative value (in the Measurement class). -- the endTime of measurement as absolute or relative value (in the Measurement class)."""^^xsd:string ; - rdfs:label "duration in xsd "^^xsd:string ; - rdfs:range xsd:duration ; -. -[ - rdf:type owl:Class ; - owl:unionOf ( - xsd:int - xsd:double - ) ; -]. -[ - rdf:type owl:Class ; - owl:unionOf ( - xsd:int - xsd:double - ) ; -]. diff --git a/src/main/resources/saref-portal-generator/public/saref4envi/desktop.ini b/src/main/resources/saref-portal-generator/public/saref4envi/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4envi/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4envi/latest/desktop.ini b/src/main/resources/saref-portal-generator/public/saref4envi/latest/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4envi/latest/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4envi/latest/saref4envi.html b/src/main/resources/saref-portal-generator/public/saref4envi/latest/saref4envi.html deleted file mode 100644 index 597e2fa..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4envi/latest/saref4envi.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - SAREF extension for environment

    -

    Official ETSI documentation for SAREF4ENVI v1.1.1
    This page will soon contain the documentation of the SAREF ontology v1.1.1

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    The documentation of SAREF4ENVI v1.1.1 will be available here soon. The source of the ontology are available as Turtle or RDF/XML Visualize it with VOWL

    -
    -
    -
    -
    -

    This ontology extends the SAREF ontology for the environment domain, specifically for the light pollution domain, including concepts like photometers, light, etc.

    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4envi/latest/saref4envi.n3 b/src/main/resources/saref-portal-generator/public/saref4envi/latest/saref4envi.n3 deleted file mode 100644 index 7076c40..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4envi/latest/saref4envi.n3 +++ /dev/null @@ -1,712 +0,0 @@ -@prefix geo: . -@prefix s4envi: . -@prefix rdf: . -@prefix owl: . -@prefix xml: . -@prefix saref: . -@prefix xsd: . -@prefix dcterms: . -@prefix rdfs: . -@prefix time: . -@prefix vann: . - -s4envi:ReflectionOfLight - a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property reflection of light."@en ; - rdfs:label "Reflection of light"@en . - - - a s4envi:FrequencyUnit , owl:NamedIndividual ; - rdfs:label "Reciprocal second"@en . - - - a s4envi:LengthUnit , owl:NamedIndividual ; - rdfs:label "Centimetre"@en . - -s4envi:hasFlash a owl:FunctionalProperty , owl:DatatypeProperty ; - rdfs:comment "A relationship stating whether a light has flash."@en ; - rdfs:label "has flash"@en ; - rdfs:range xsd:boolean . - -s4envi:LightProperty a owl:Class ; - rdfs:comment "An aspect of light that can be observable by a sensor."@en ; - rdfs:label "Light property"@en ; - rdfs:subClassOf saref:Property . - -saref:isMeasuredIn a owl:ObjectProperty ; - rdfs:comment "is measured in"@en , "A relation between a measurement and the unit of measure in which the measurement value is expressed."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" . - -saref:makesMeasurement - a owl:ObjectProperty ; - rdfs:comment "A relation between a sensor and the measurements it makes. Such measurement will link together the valur of the measurement, its unit of measure and the property to which it relates."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "makes measurement"@en . - -s4envi:System a owl:Class ; - rdfs:comment "A group of related hardware units or programs or both, especially when dedicated to a single application. (Definition taken from https://en.oxforddictionaries.com/definition/system)"@en ; - rdfs:label "System"@en ; - rdfs:subClassOf s4envi:PhysicalObject ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:CommunicationProtocol ; - owl:onProperty s4envi:usesCommunicationProtocol - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:CommunicationInterface ; - owl:onProperty s4envi:usesCommunicationInterface - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:System ; - owl:onProperty s4envi:isConnectedTo - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:System ; - owl:onProperty s4envi:isComponentOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:System ; - owl:onProperty s4envi:hasComponent - ] . - -s4envi:usesCommunicationProtocol - a owl:ObjectProperty ; - rdfs:comment "A relation between a system and the communication protocol it uses."@en ; - rdfs:label "uses communication protocol"@en . - -saref:Measurement a owl:Class ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Measurement"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:Property ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onDataRange xsd:float ; - owl:onProperty saref:hasValue ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:relatesToProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty saref:hasValue - ] ; - owl:disjointWith saref:Service , saref:Property , saref:UnitOfMeasure . - - - a s4envi:LengthUnit , owl:NamedIndividual ; - rdfs:label "Kilometre"@en . - -s4envi:FrequencyMeasurement - a owl:Class ; - rdfs:comment "Represents the measured value made over a frequency property. It is also linked to the frequency unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Frequency measurement"@en ; - rdfs:subClassOf saref:Measurement ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass s4envi:FrequencyUnit ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue s4envi:Frequency ; - owl:onProperty saref:relatesToProperty - ] . - -s4envi:CompassDirection - a owl:Class ; - rdfs:comment "The four cardinal directions or cardinal points are the directions of north, east, south, and west, commonly denoted by their initials: N, E, S, W. East and west are at right angles to north and south, with east being in the clockwise direction of rotation from north and west being directly opposite east. Intermediate points between the four cardinal directions form the points of the compass. (definition taken from https://en.wikipedia.org/wiki/Cardinal_direction)"@en ; - rdfs:label "Compass direction"@en ; - owl:disjointWith saref:Property , s4envi:DigitalRepresentation , s4envi:Light , saref:Service , saref:UnitOfMeasure , s4envi:Geometry , saref:Measurement . - -s4envi:Illuminance a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property illuminance."@en ; - rdfs:label "Illuminance"@en . - -s4envi:LightPoint a owl:Class ; - rdfs:comment "An spatial point from where a light is projected. It might belong to a lamppost."@en ; - rdfs:label "Light point"@en ; - rdfs:subClassOf geo:Point ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:Light ; - owl:onProperty s4envi:projectsLight - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom geo:SpatialThing ; - owl:onProperty geo:location - ] . - - - a s4envi:FrequencyUnit , owl:NamedIndividual ; - rdfs:label "Reciprocal hour"@en . - -s4envi:TESS a owl:Class ; - rdfs:comment "The Telescope Encoder and Sky Sensor (TESS) is a Sky Brightness and Cloud detector developed as a device for a remote observatory. A TESS can observe the light magnitude and other properties as ambient temperature and sky temperature."@en ; - rdfs:label "TESS (Telescope Encoder and Sky Sensor)"@en ; - rdfs:subClassOf s4envi:Photometer . - - - a s4envi:LengthUnit , owl:NamedIndividual ; - rdfs:label "Decametre"@en . - -s4envi:Height a saref:Property , owl:NamedIndividual ; - rdfs:comment "An individual representing the property height."@en ; - rdfs:label "Height"@en . - -geo:Point a owl:Class ; - rdfs:comment "A point, typically described using a coordinate system relative to Earth, such as WGS84. Uniquely identified by lat/long/alt. i.e. spaciallyIntersects(P1, P2) :- lat(P1, LAT), long(P1, LONG), alt(P1, ALT), at(P2, LAT), long(P2, LONG), alt(P2, ALT). sameThing(P1, P2) :- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2)."@en ; - rdfs:isDefinedBy geo: ; - rdfs:label "Point"@en . - -saref:hasTimestamp a owl:FunctionalProperty , owl:DatatypeProperty ; - rdfs:comment "A relationship stating the timestamp of an entity (e.g. a measurement)."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "has timestamp"@en ; - rdfs:range xsd:dateTime . - -s4envi:Device a owl:Class ; - rdfs:comment "A thing made or adapted for a particular purpose, especially a piece of mechanical or electronic equipment. For example ‘a measuring device’ (definition taken from https://en.oxforddictionaries.com/definition/device). In this ontology it refers to the devices for environmental purposes."@en ; - rdfs:label "Device"@en ; - rdfs:subClassOf saref:Device , s4envi:System ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4envi:hasVersion - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4envi:hasRevisionNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:PhysicalObject ; - owl:onProperty s4envi:isContainedIn - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4envi:hasVersion - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4envi:hasRevisionNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:PeriodMeasurement ; - owl:onProperty s4envi:hasTransmissionPeriod - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:FrequencyMeasurement ; - owl:onProperty s4envi:hasFrequencyMeasurement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty saref:hasManufacturer - ] . - -s4envi:hasFrequencyMeasurement - a owl:ObjectProperty ; - rdfs:comment "The relation between a device and the frequency in which it makes measurements."@en ; - rdfs:label "has frequency measurement"@en . - -s4envi:LightMagnitude - a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property light magnitude."@en ; - rdfs:label "Light magnitude"@en . - - - a s4envi:LengthUnit , owl:NamedIndividual ; - rdfs:label "Hectometre"@en . - -geo:location a owl:ObjectProperty ; - rdfs:comment "The relation between something and the point, or other geometrical thing in space, where it is. For example, the realtionship between a radio tower and a Point with a given lat and long. Or a relationship between a park and its outline as a closed arc of points, or a road and its location as a arc (a sequence of points). Clearly in practice there will be limit to the accuracy of any such statement, but one would expect an accuracy appropriate for the size of the object and uses such as mapping ."@en ; - rdfs:isDefinedBy geo: ; - rdfs:label "location"@en . - -s4envi:hasDigitalRepresentation - a owl:InverseFunctionalProperty , owl:ObjectProperty ; - rdfs:comment "A relation between a physical object and the digital representation in which it is encapsulated."@en ; - rdfs:label "has digital representation"@en . - - - a s4envi:LengthUnit , owl:NamedIndividual ; - rdfs:label "Metre"@en . - -s4envi:hasColor a owl:ObjectProperty ; - rdfs:comment "A relation between a light emitted and its color."@en ; - rdfs:label "has color"@en . - -saref:measuresProperty - a owl:ObjectProperty ; - rdfs:comment "A relation between a sensor and the property o properties it can take measurement about."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "measures property"@en . - -s4envi:Fluorescence a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property fluorescence."@en ; - rdfs:label "Fluorescence"@en . - -s4envi:Light a owl:Class ; - rdfs:comment "A light source, which may be a lantern, a street light, a floodlight, a signal lamp or any other device whose primary purpose is the generation of light. (Definition taken from http://wiki.openstreetmap.org/wiki/Proposed_features/Key:light_source#Description)"@en ; - rdfs:label "Light"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:HeightMeasurement ; - owl:onProperty s4envi:isProjectedFromHeight - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:Color ; - owl:onProperty s4envi:hasColor - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:Geometry ; - owl:onProperty s4envi:hasGeometry - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4envi:hasFlash - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:CompassDirection ; - owl:onProperty s4envi:isProjectedInDirection - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty s4envi:hasProjectionAngle - ] ; - owl:disjointWith saref:Property , saref:Service , saref:Measurement , saref:UnitOfMeasure . - -s4envi:hasRevisionNumber - a owl:DatatypeProperty ; - rdfs:comment "A relationship defining the revision number of a certain entity (e.g., a device)"@en ; - rdfs:label "has revision number"@en ; - rdfs:range xsd:string . - - - a s4envi:FrequencyUnit , owl:NamedIndividual ; - rdfs:label "Reciprocal day"@en . - -s4envi:LightAbsorption - a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property light absorption."@en ; - rdfs:label "Light absorption"@en . - -s4envi:hasShield a owl:FunctionalProperty , owl:DatatypeProperty ; - rdfs:comment "A relationship stating whether a lamppost has a shield."@en ; - rdfs:label "has shield"@en ; - rdfs:range xsd:boolean . - -s4envi:HeightMeasurement - a owl:Class ; - rdfs:comment "Represents the measured value made over a height property. It is also linked to the height unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Height measurement"@en ; - rdfs:subClassOf saref:Measurement ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass s4envi:LengthUnit ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue s4envi:Height ; - owl:onProperty saref:relatesToProperty - ] . - -s4envi:Period a saref:Property , owl:NamedIndividual ; - rdfs:comment "An individual representing the property period."@en ; - rdfs:label "Period"@en . - -s4envi:Photometer a owl:Class ; - rdfs:comment "A photometer, generally, is an instrument that measures light intensity or optical properties of solutions or surfaces."@en ; - rdfs:label "Photometer"@en ; - rdfs:subClassOf saref:Sensor ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom s4envi:LightProperty - ] . - -s4envi:hasTransmissionPeriod - a owl:ObjectProperty ; - rdfs:comment "The relation between a device and the period in which it transmit information."@en ; - rdfs:label "has transmission period"@en . - -s4envi:hasProjectionAngle - a owl:FunctionalProperty , owl:DatatypeProperty ; - rdfs:comment "A relationship defining the projection angle of an entity (e.g., a light)."@en ; - rdfs:label "has projection angle"@en ; - rdfs:range xsd:float . - -s4envi:Geometry a owl:Class ; - rdfs:comment "Represents the shape of the light emission. It might be instantiated by individuals like \"spherical\", \"cylindrical\", etc. even though it is open to more comples representation of geometries using other vocabularies."@en ; - rdfs:label "Geometry"@en ; - owl:disjointWith saref:UnitOfMeasure , saref:Service , saref:Property , saref:Measurement , s4envi:Light . - -saref:hasValue a owl:DatatypeProperty ; - rdfs:comment "A relationship defining the value of a certain property, e.g., energy or power"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has value"@en . - -s4envi:isContainedIn a owl:ObjectProperty ; - rdfs:comment "A relation between a physical object and the physical object in which it might be contained."@en ; - rdfs:label "is contained in"@en . - -s4envi:Luminiscence a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property luminiscence."@en ; - rdfs:label "Luminiscence"@en . - -s4envi:ScatteringOfLight - a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property scattering of light."@en ; - rdfs:label "Scattering of light"@en . - -s4envi:Frequency a saref:Property , owl:NamedIndividual ; - rdfs:comment "An individual representing the property frequency."@en ; - rdfs:label "Frequency"@en . - -s4envi:isComponentOf a owl:TransitiveProperty , owl:ObjectProperty ; - rdfs:comment "A relation between a system and the system it belongs to as a component."@en ; - rdfs:label "is component of"@en . - -s4envi:contains a owl:ObjectProperty ; - rdfs:comment "A relation between a physical object and the physical objects that can be contained in it."@en ; - rdfs:label "contains"@en ; - owl:inverseOf s4envi:isContainedIn . - -s4envi:hasGeometry a owl:ObjectProperty ; - rdfs:comment "A relation between a light emitted and the shape it is projected in."@en ; - rdfs:label "has geometry"@en . - - - a s4envi:FrequencyUnit , owl:NamedIndividual ; - rdfs:label "Hertz"@en . - -s4envi:CommunicationProtocol - a owl:Class ; - rdfs:comment "A protocol is an agreement between the communicating parties on how communication is to proceed. (Definition taken from \"Tanenbaum, A. S. (2003). Computer networks, 4-th edition. ed: Prentice Hall.\")"@en ; - rdfs:label "Communication protocol"@en ; - owl:disjointWith s4envi:Geometry , s4envi:CompassDirection , s4envi:DigitalRepresentation , saref:Property , s4envi:Light , saref:Service , saref:UnitOfMeasure , saref:Measurement . - -s4envi:Lamppost a owl:Class ; - rdfs:comment "A tall pole with a light at the top."@en ; - rdfs:label "Lamppost"@en ; - rdfs:subClassOf s4envi:Device ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4envi:hasShield - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:Light ; - owl:onProperty s4envi:projectsLight - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:LightPoint ; - owl:onProperty s4envi:hasLightPoint - ] . - -geo:SpatialThing a owl:Class ; - rdfs:comment "Anything with spatial extent, i.e. size, shape, or position. e.g. people, places, bowling balls, as well as abstract areas like cubes."@en ; - rdfs:isDefinedBy geo: ; - rdfs:label "Spatial thing"@en ; - owl:disjointWith s4envi:DigitalRepresentation , saref:Service , saref:Measurement , s4envi:CommunicationProtocol , s4envi:CommunicationInterface , s4envi:Color , s4envi:CompassDirection , s4envi:Geometry . - -saref:hasDescription a owl:DatatypeProperty ; - rdfs:comment "A relationship providing a description of an entity (e.g., device)"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has description"@en . - -s4envi:isAccesibleThrough - a owl:FunctionalProperty , owl:ObjectProperty ; - rdfs:comment "The relation between a digital representation and the service which it is accesible through."@en ; - rdfs:label "is accesible through"@en . - -s4envi:affectsProperty - a owl:ObjectProperty ; - rdfs:comment "A relation between an actuator with the property or properties it can act on"@en ; - rdfs:label "affects property"@en . - -s4envi:Actuator a owl:Class ; - rdfs:comment "Device that can act over at least one property."@en ; - rdfs:label "Actuator"@en ; - rdfs:subClassOf s4envi:Device ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty s4envi:affectsProperty - ] . - -s4envi:hasIdentifier a owl:DatatypeProperty ; - rdfs:comment "A relationship providing the identifier of an entity (e.g., digital representation)"@en ; - rdfs:label "has identifier"@en ; - rdfs:range xsd:string . - -s4envi:FrequencyUnit a owl:Class ; - rdfs:comment "Unit of measure for the quantity frequency."@en ; - rdfs:label "Frequency unit"@en ; - rdfs:subClassOf saref:UnitOfMeasure . - -s4envi:CommunicationInterface - a owl:Class ; - rdfs:comment "An interface defines which primitive operations and services the lower layer makes available to the upper one, when referring to network layers. (Definition adapted from \"Tanenbaum, A. S. (2003). Computer networks, 4-th edition. ed: Prentice Hall.\")"@en ; - rdfs:label "Communication interface"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4envi:hasVersion - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4envi:hasVersion - ] ; - owl:disjointWith s4envi:Light , saref:Measurement , saref:UnitOfMeasure , s4envi:DigitalRepresentation , saref:Property , s4envi:Geometry , s4envi:CompassDirection , s4envi:CommunicationProtocol . - -s4envi:hasVersion a owl:FunctionalProperty , owl:DatatypeProperty ; - rdfs:comment "A relationship defining the version of a certain entity (e.g., a device)"@en ; - rdfs:label "has version"@en ; - rdfs:range xsd:string . - -s4envi:hasCreationDate - a owl:FunctionalProperty , owl:DatatypeProperty ; - rdfs:comment "A relationship defining the creation date of an entity (e.g., a digital representation)."@en ; - rdfs:label "has creation date"@en ; - rdfs:range xsd:dateTime . - -s4envi:Irradiance a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property irradiance."@en ; - rdfs:label "Irradiance"@en . - -s4envi:hasComponent a owl:TransitiveProperty , owl:ObjectProperty ; - rdfs:comment "A relation between a system and the system in which it might be decomposed."@en ; - rdfs:label "has component"@en ; - owl:inverseOf s4envi:isComponentOf . - -s4envi:hasTag a owl:DatatypeProperty ; - rdfs:comment "A relationship stating the tags that can be assigned to an entity (e.g., a digital representation)."@en ; - rdfs:label "has tag"@en ; - rdfs:range xsd:string . - -s4envi:Color a owl:Class ; - rdfs:comment "Color of the emitted light. It might be indicated by named colors or using other type of color values like hexadecimal for RGB, color temperature, etc."@en ; - rdfs:label "Color"@en ; - owl:disjointWith saref:UnitOfMeasure , s4envi:DigitalRepresentation , s4envi:CommunicationInterface , s4envi:Geometry , s4envi:CommunicationProtocol , s4envi:CompassDirection , s4envi:Light , saref:Service . - -saref:relatesToProperty - a owl:ObjectProperty ; - rdfs:comment "A relation between a measurement and the property such measurement is about."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "relates to property"@en . - -saref:UnitOfMeasure a owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Unit of measure"@en . - -saref:hasName a owl:DatatypeProperty ; - rdfs:comment "A relationship providing the name of an entity (e.g., device)"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has name"@en . - -s4envi:LengthUnit a owl:Class ; - rdfs:comment "Unit of measure for the quantity lenght."@en ; - rdfs:label "Length unit"@en ; - rdfs:subClassOf saref:UnitOfMeasure . - -s4envi: a owl:Ontology ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:contributor , , ; - dcterms:description "This ontology extends the SAREF ontology for the environment domain, specifically for the light pollution domain, including concepts like photometers, light, etc."@en ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:publisher ; - dcterms:source , ; - dcterms:title "SAREF extension for environment"@en ; - vann:preferredNamespacePrefix "s4envi" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4envi#" ; - owl:versionIRI ; - owl:versionInfo "1.1.1" . - -s4envi:usesCommunicationInterface - a owl:ObjectProperty ; - rdfs:comment "A relation between a system and the communication interface it uses."@en ; - rdfs:label "uses communication interface"@en . - -s4envi:projectsLight a owl:ObjectProperty ; - rdfs:comment "A relation between a lamppost or a light point and the light (or lights) they might project."@en ; - rdfs:label "projects light"@en . - -s4envi:DigitalRepresentation - a owl:Class ; - rdfs:comment "A digital representation encapsulates a physical object accessible via Web services"@en ; - rdfs:label "Digital representation"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4envi:hasIdentifier - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4envi:hasIdentifier - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty saref:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:PhysicalObject ; - owl:onProperty s4envi:encapsulates - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty s4envi:hasCreationDate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4envi:hasTag - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Service ; - owl:onProperty s4envi:isAccesibleThrough - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime ; - owl:onProperty s4envi:hasCreationDate - ] ; - owl:disjointWith saref:UnitOfMeasure , s4envi:Geometry , s4envi:Light , saref:Measurement . - -s4envi:hasLightPoint a owl:ObjectProperty ; - rdfs:comment "A relation between a lamppost and its light points"@en ; - rdfs:label "has light point"@en . - -saref:Service a owl:Class ; - rdfs:comment "A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service, the function(s) to be represented, and the (input and output) parameters necessary to operate the service."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Service"@en ; - owl:disjointWith saref:UnitOfMeasure . - -s4envi:isProjectedInDirection - a owl:ObjectProperty ; - rdfs:comment "A relation between a light and the direction in which it is projected."@en ; - rdfs:label "is projected in direction"@en . - - - a s4envi:LengthUnit , owl:NamedIndividual ; - rdfs:label "Decimetre"@en . - -saref:Sensor a owl:Class ; - rdfs:comment "A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes.\nA device that has category saref:Sensor and performs a saref:SensingFunction."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Sensor"@en ; - rdfs:subClassOf saref:Device ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:measuresProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:makesMeasurement - ] . - -s4envi:encapsulates a owl:FunctionalProperty , owl:ObjectProperty ; - rdfs:comment "A relation between a digital representation and the physical objects it represents."@en ; - rdfs:label "encapsulates"@en ; - owl:inverseOf s4envi:hasDigitalRepresentation . - -s4envi:Phosphorescence - a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property phosphorescence."@en ; - rdfs:label "Phosphorescence"@en . - -saref:Property a owl:Class ; - rdfs:comment "An aspect of an entity that can be observable by a sensor."@en ; - rdfs:label "Property"@en ; - owl:disjointWith saref:UnitOfMeasure , saref:Service . - -s4envi:PhysicalObject - a owl:Class ; - rdfs:comment "Any Object that has a proper space region. (Definition extracted from DUL ontology)"@en ; - rdfs:label "Physical object"@en ; - rdfs:subClassOf geo:SpatialThing ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:PhysicalObject ; - owl:onProperty s4envi:isContainedIn - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:DigitalRepresentation ; - owl:onProperty s4envi:hasDigitalRepresentation - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:PhysicalObject ; - owl:onProperty s4envi:contains - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom geo:SpatialThing ; - owl:onProperty geo:location - ] . - -saref:hasManufacturer - a owl:DatatypeProperty ; - rdfs:comment "A relationship identifying the manufacturer of an entity (e.g., device)"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has manufacturer"@en . - -time:TemporalUnit a owl:Class ; - rdfs:comment "A temporal unit of measure, which provides a scale factor for a time quantity."@en ; - rdfs:isDefinedBy time: ; - rdfs:label "Temporal unit"@en ; - rdfs:subClassOf saref:UnitOfMeasure . - -s4envi:isConnectedTo a owl:SymmetricProperty , owl:ObjectProperty ; - rdfs:comment "A relation between a system and the system to which it is connected."@en ; - rdfs:label "is connected to"@en . - -s4envi:PeriodMeasurement - a owl:Class ; - rdfs:comment "Represents the measured value over a period property. It is also linked to the period unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Period measurement"@en ; - rdfs:subClassOf saref:Measurement ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass time:TemporalUnit ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue s4envi:Period ; - owl:onProperty saref:relatesToProperty - ] . - - - a s4envi:LengthUnit , owl:NamedIndividual ; - rdfs:label "Milimetre"@en . - -s4envi:isProjectedFromHeight - a owl:ObjectProperty ; - rdfs:comment "A relation between a light and the height measurement from which it is projected."@en ; - rdfs:label "is projected from height"@en . - - - a s4envi:FrequencyUnit , owl:NamedIndividual ; - rdfs:label "Reciprocal year"@en . - -saref:Device a owl:Class ; - rdfs:comment "A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Device"@en . diff --git a/src/main/resources/saref-portal-generator/public/saref4envi/latest/saref4envi.rdf b/src/main/resources/saref-portal-generator/public/saref4envi/latest/saref4envi.rdf deleted file mode 100644 index 108b5a4..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4envi/latest/saref4envi.rdf +++ /dev/null @@ -1,1104 +0,0 @@ - - - - This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge. - - SAREF extension for environment - 2019-06-11 - s4envi - - - - - https://saref.etsi.org/saref4envi# - - 1.1.1 - - This ontology extends the SAREF ontology for the environment domain, specifically for the light pollution domain, including concepts like photometers, light, etc. - - - Light point - An spatial point from where a light is projected. It might belong to a lamppost. - - - - - - - - - - - - - - - - - - - - - - - - - - TESS (Telescope Encoder and Sky Sensor) - The Telescope Encoder and Sky Sensor (TESS) is a Sky Brightness and Cloud detector developed as a device for a remote observatory. A TESS can observe the light magnitude and other properties as ambient temperature and sky temperature. - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - An interface defines which primitive operations and services the lower layer makes available to the upper one, when referring to network layers. (Definition adapted from "Tanenbaum, A. S. (2003). Computer networks, 4-th edition. ed: Prentice Hall.") - Communication interface - - - - - - - - - - - - Service - - A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service, the function(s) to be represented, and the (input and output) parameters necessary to operate the service. - - - - - - Communication protocol - - - - - - - A protocol is an agreement between the communicating parties on how communication is to proceed. (Definition taken from "Tanenbaum, A. S. (2003). Computer networks, 4-th edition. ed: Prentice Hall.") - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - Measurement - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Frequency measurement - Represents the measured value made over a frequency property. It is also linked to the frequency unit of measure in which the value is expressed and the timestamp of the measurement. - - - - - - 1 - - - - - - - - - - Frequency - An individual representing the property frequency. - - - - - - - - - - - - Photometer - A photometer, generally, is an instrument that measures light intensity or optical properties of solutions or surfaces. - - - - - - - - - - - - - - - - Period measurement - Represents the measured value over a period property. It is also linked to the period unit of measure in which the value is expressed and the timestamp of the measurement. - - - - - - 1 - - - - - - - - - - Period - An individual representing the property period. - - - - - - - - - - - - Unit of measure - - The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called "watt". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended. - - - Compass direction - The four cardinal directions or cardinal points are the directions of north, east, south, and west, commonly denoted by their initials: N, E, S, W. East and west are at right angles to north and south, with east being in the clockwise direction of rotation from north and west being directly opposite east. Intermediate points between the four cardinal directions form the points of the compass. (definition taken from https://en.wikipedia.org/wiki/Cardinal_direction) - - - - - - - - - - - - - - - - - - Light property - An aspect of light that can be observable by a sensor. - - - - - - - - - - - Color - - - - - - Color of the emitted light. It might be indicated by named colors or using other type of color values like hexadecimal for RGB, color temperature, etc. - - - - - - - Device - - A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function. - - - Geometry - Represents the shape of the light emission. It might be instantiated by individuals like "spherical", "cylindrical", etc. even though it is open to more comples representation of geometries using other vocabularies. - - - - - - - - - - - - - - - - - - - - - Device - A thing made or adapted for a particular purpose, especially a piece of mechanical or electronic equipment. For example ‘a measuring device’ (definition taken from https://en.oxforddictionaries.com/definition/device). In this ontology it refers to the devices for environmental purposes. - - - - 1 - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Actuator - Device that can act over at least one property. - - - - - - - - - - - - - - Frequency unit - Unit of measure for the quantity frequency. - - - - - - - Anything with spatial extent, i.e. size, shape, or position. e.g. people, places, bowling balls, as well as abstract areas like cubes. - - - - - Spatial thing - - - - - - - Length unit - Unit of measure for the quantity lenght. - - - - System - A group of related hardware units or programs or both, especially when dedicated to a single application. (Definition taken from https://en.oxforddictionaries.com/definition/system) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Height measurement - Represents the measured value made over a height property. It is also linked to the height unit of measure in which the value is expressed and the timestamp of the measurement. - - - - 1 - - - - - - - - - - Height - An individual representing the property height. - - - - - - - - - - - - - - - - - - - - - - - A light source, which may be a lantern, a street light, a floodlight, a signal lamp or any other device whose primary purpose is the generation of light. (Definition taken from http://wiki.openstreetmap.org/wiki/Proposed_features/Key:light_source#Description) - - - Light - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sensor - - A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. -A device that has category saref:Sensor and performs a saref:SensingFunction. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A digital representation encapsulates a physical object accessible via Web services - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Digital representation - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - Property - An aspect of an entity that can be observable by a sensor. - - - - - Physical object - Any Object that has a proper space region. (Definition extracted from DUL ontology) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Temporal unit - - A temporal unit of measure, which provides a scale factor for a time quantity. - - - - Lamppost - A tall pole with a light at the top. - - - - - - - - - - - - - - - - - - - - - - - - - - - - Point - - A point, typically described using a coordinate system relative to Earth, such as WGS84. Uniquely identified by lat/long/alt. i.e. spaciallyIntersects(P1, P2) :- lat(P1, LAT), long(P1, LONG), alt(P1, ALT), at(P2, LAT), long(P2, LONG), alt(P2, ALT). sameThing(P1, P2) :- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2). - - - is projected from height - A relation between a light and the height measurement from which it is projected. - - - has color - A relation between a light emitted and its color. - - - has geometry - A relation between a light emitted and the shape it is projected in. - - - location - - The relation between something and the point, or other geometrical thing in space, where it is. For example, the realtionship between a radio tower and a Point with a given lat and long. Or a relationship between a park and its outline as a closed arc of points, or a road and its location as a arc (a sequence of points). Clearly in practice there will be limit to the accuracy of any such statement, but one would expect an accuracy appropriate for the size of the object and uses such as mapping . - - - has light point - A relation between a lamppost and its light points - - - affects property - A relation between an actuator with the property or properties it can act on - - - contains - A relation between a physical object and the physical objects that can be contained in it. - - - - - - uses communication interface - A relation between a system and the communication interface it uses. - - - measures property - https://w3id.org/saref# - A relation between a sensor and the property o properties it can take measurement about. - - - has transmission period - The relation between a device and the period in which it transmit information. - - - makes measurement - https://w3id.org/saref# - A relation between a sensor and the measurements it makes. Such measurement will link together the valur of the measurement, its unit of measure and the property to which it relates. - - - https://w3id.org/saref# - is measured in - A relation between a measurement and the unit of measure in which the measurement value is expressed. - - - has frequency measurement - The relation between a device and the frequency in which it makes measurements. - - - uses communication protocol - A relation between a system and the communication protocol it uses. - - - projects light - A relation between a lamppost or a light point and the light (or lights) they might project. - - - is projected in direction - A relation between a light and the direction in which it is projected. - - - is contained in - A relation between a physical object and the physical object in which it might be contained. - - - relates to property - https://w3id.org/saref# - A relation between a measurement and the property such measurement is about. - - - has value - - A relationship defining the value of a certain property, e.g., energy or power - - - has description - - A relationship providing a description of an entity (e.g., device) - - - has tag - A relationship stating the tags that can be assigned to an entity (e.g., a digital representation). - - - - has name - - A relationship providing the name of an entity (e.g., device) - - - has revision number - A relationship defining the revision number of a certain entity (e.g., a device) - - - - has manufacturer - - A relationship identifying the manufacturer of an entity (e.g., device) - - - has identifier - A relationship providing the identifier of an entity (e.g., digital representation) - - - - is component of - A relation between a system and the system it belongs to as a component. - - - - has component - A relation between a system and the system in which it might be decomposed. - - - - - is connected to - A relation between a system and the system to which it is connected. - - - - has flash - A relationship stating whether a light has flash. - - - - - encapsulates - A relation between a digital representation and the physical objects it represents. - - - - - - - has version - A relationship defining the version of a certain entity (e.g., a device) - - - - - has timestamp - https://w3id.org/saref# - A relationship stating the timestamp of an entity (e.g. a measurement). - - - - - is accesible through - The relation between a digital representation and the service which it is accesible through. - - - - has shield - A relationship stating whether a lamppost has a shield. - - - - - has creation date - A relationship defining the creation date of an entity (e.g., a digital representation). - - - - - has projection angle - A relationship defining the projection angle of an entity (e.g., a light). - - - - - has digital representation - A relation between a physical object and the digital representation in which it is encapsulated. - - - - Milimetre - - - - Kilometre - - - - Light absorption - An individual representing the light property light absorption. - - - - Reciprocal year - - - - Illuminance - An individual representing the light property illuminance. - - - - Decimetre - - - - Scattering of light - An individual representing the light property scattering of light. - - - - Reciprocal day - - - - Hertz - - - - Light magnitude - An individual representing the light property light magnitude. - - - - Centimetre - - - - Reflection of light - An individual representing the light property reflection of light. - - - - Fluorescence - An individual representing the light property fluorescence. - - - - Reciprocal second - - - - Luminiscence - An individual representing the light property luminiscence. - - - - Reciprocal hour - - - - Irradiance - An individual representing the light property irradiance. - - - - Phosphorescence - An individual representing the light property phosphorescence. - - - - Decametre - - - - Hectometre - - - - Metre - - - diff --git a/src/main/resources/saref-portal-generator/public/saref4envi/latest/saref4envi.ttl b/src/main/resources/saref-portal-generator/public/saref4envi/latest/saref4envi.ttl deleted file mode 100644 index a1fc97b..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4envi/latest/saref4envi.ttl +++ /dev/null @@ -1,960 +0,0 @@ -@prefix s4envi: . -@prefix geo: . -@prefix owl: . -@prefix rdf: . -@prefix xml: . -@prefix xsd: . -@prefix rdfs: . -@prefix time: . -@prefix vann: . -@prefix saref: . -@prefix dcterms: . - - a owl:Ontology ; - dcterms:title "SAREF extension for environment"@en ; - owl:versionInfo "1.1.1" ; - owl:versionIRI ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4envi#" ; - vann:preferredNamespacePrefix "s4envi" ; - dcterms:license ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:source ; - dcterms:source ; - dcterms:description "This ontology extends the SAREF ontology for the environment domain, specifically for the light pollution domain, including concepts like photometers, light, etc."@en ; - dcterms:publisher . - -################################################################# -# Object Properties -################################################################# - -### http://www.w3.org/2003/01/geo/wgs84_pos#location -geo:location rdf:type owl:ObjectProperty ; - rdfs:comment "The relation between something and the point, or other geometrical thing in space, where it is. For example, the realtionship between a radio tower and a Point with a given lat and long. Or a relationship between a park and its outline as a closed arc of points, or a road and its location as a arc (a sequence of points). Clearly in practice there will be limit to the accuracy of any such statement, but one would expect an accuracy appropriate for the size of the object and uses such as mapping ."@en ; - rdfs:isDefinedBy geo: ; - rdfs:label "location"@en . - - -### https://saref.etsi.org/saref4envi#affectsProperty -s4envi:affectsProperty rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between an actuator with the property or properties it can act on"@en ; - rdfs:label "affects property"@en . - - -### https://saref.etsi.org/saref4envi#contains -s4envi:contains rdf:type owl:ObjectProperty ; - owl:inverseOf s4envi:isContainedIn ; - rdfs:comment "A relation between a physical object and the physical objects that can be contained in it."@en ; - rdfs:label "contains"@en . - - -### https://saref.etsi.org/saref4envi#encapsulates -s4envi:encapsulates rdf:type owl:ObjectProperty ; - owl:inverseOf s4envi:hasDigitalRepresentation ; - rdf:type owl:FunctionalProperty ; - rdfs:comment "A relation between a digital representation and the physical objects it represents."@en ; - rdfs:label "encapsulates"@en . - - -### https://saref.etsi.org/saref4envi#hasColor -s4envi:hasColor rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a light emitted and its color."@en ; - rdfs:label "has color"@en . - - -### https://saref.etsi.org/saref4envi#hasComponent -s4envi:hasComponent rdf:type owl:ObjectProperty ; - owl:inverseOf s4envi:isComponentOf ; - rdf:type owl:TransitiveProperty ; - rdfs:comment "A relation between a system and the system in which it might be decomposed."@en ; - rdfs:label "has component"@en . - - -### https://saref.etsi.org/saref4envi#hasDigitalRepresentation -s4envi:hasDigitalRepresentation rdf:type owl:ObjectProperty , - owl:InverseFunctionalProperty ; - rdfs:comment "A relation between a physical object and the digital representation in which it is encapsulated."@en ; - rdfs:label "has digital representation"@en . - - -### https://saref.etsi.org/saref4envi#hasFrequencyMeasurement -s4envi:hasFrequencyMeasurement rdf:type owl:ObjectProperty ; - rdfs:comment "The relation between a device and the frequency in which it makes measurements."@en ; - rdfs:label "has frequency measurement"@en . - - -### https://saref.etsi.org/saref4envi#hasGeometry -s4envi:hasGeometry rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a light emitted and the shape it is projected in."@en ; - rdfs:label "has geometry"@en . - - -### https://saref.etsi.org/saref4envi#hasLightPoint -s4envi:hasLightPoint rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a lamppost and its light points"@en ; - rdfs:label "has light point"@en . - - -### https://saref.etsi.org/saref4envi#hasTransmissionPeriod -s4envi:hasTransmissionPeriod rdf:type owl:ObjectProperty ; - rdfs:comment "The relation between a device and the period in which it transmit information."@en ; - rdfs:label "has transmission period"@en . - - -### https://saref.etsi.org/saref4envi#isAccesibleThrough -s4envi:isAccesibleThrough rdf:type owl:ObjectProperty , - owl:FunctionalProperty ; - rdfs:comment "The relation between a digital representation and the service which it is accesible through."@en ; - rdfs:label "is accesible through"@en . - - -### https://saref.etsi.org/saref4envi#isComponentOf -s4envi:isComponentOf rdf:type owl:ObjectProperty , - owl:TransitiveProperty ; - rdfs:comment "A relation between a system and the system it belongs to as a component."@en ; - rdfs:label "is component of"@en . - - -### https://saref.etsi.org/saref4envi#isConnectedTo -s4envi:isConnectedTo rdf:type owl:ObjectProperty , - owl:SymmetricProperty ; - rdfs:comment "A relation between a system and the system to which it is connected."@en ; - rdfs:label "is connected to"@en . - - -### https://saref.etsi.org/saref4envi#isContainedIn -s4envi:isContainedIn rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a physical object and the physical object in which it might be contained."@en ; - rdfs:label "is contained in"@en . - - -### https://saref.etsi.org/saref4envi#isProjectedFromHeight -s4envi:isProjectedFromHeight rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a light and the height measurement from which it is projected."@en ; - rdfs:label "is projected from height"@en . - - -### https://saref.etsi.org/saref4envi#isProjectedInDirection -s4envi:isProjectedInDirection rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a light and the direction in which it is projected."@en ; - rdfs:label "is projected in direction"@en . - - -### https://saref.etsi.org/saref4envi#projectsLight -s4envi:projectsLight rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a lamppost or a light point and the light (or lights) they might project."@en ; - rdfs:label "projects light"@en . - - -### https://saref.etsi.org/saref4envi#usesCommunicationInterface -s4envi:usesCommunicationInterface rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a system and the communication interface it uses."@en ; - rdfs:label "uses communication interface"@en . - - -### https://saref.etsi.org/saref4envi#usesCommunicationProtocol -s4envi:usesCommunicationProtocol rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a system and the communication protocol it uses."@en ; - rdfs:label "uses communication protocol"@en . - - -### https://w3id.org/saref#isMeasuredIn -saref:isMeasuredIn rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a measurement and the unit of measure in which the measurement value is expressed."@en , - "is measured in"@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" . - - -### https://w3id.org/saref#makesMeasurement -saref:makesMeasurement rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a sensor and the measurements it makes. Such measurement will link together the valur of the measurement, its unit of measure and the property to which it relates."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "makes measurement"@en . - - -### https://w3id.org/saref#measuresProperty -saref:measuresProperty rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a sensor and the property o properties it can take measurement about."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "measures property"@en . - - -### https://w3id.org/saref#relatesToProperty -saref:relatesToProperty rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a measurement and the property such measurement is about."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "relates to property"@en . - - -################################################################# -# Data properties -################################################################# - -### https://saref.etsi.org/saref4envi#hasCreationDate -s4envi:hasCreationDate rdf:type owl:DatatypeProperty , - owl:FunctionalProperty ; - rdfs:range xsd:dateTime ; - rdfs:comment "A relationship defining the creation date of an entity (e.g., a digital representation)."@en ; - rdfs:label "has creation date"@en . - - -### https://saref.etsi.org/saref4envi#hasFlash -s4envi:hasFlash rdf:type owl:DatatypeProperty , - owl:FunctionalProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "A relationship stating whether a light has flash."@en ; - rdfs:label "has flash"@en . - - -### https://saref.etsi.org/saref4envi#hasIdentifier -s4envi:hasIdentifier rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship providing the identifier of an entity (e.g., digital representation)"@en ; - rdfs:label "has identifier"@en . - - -### https://saref.etsi.org/saref4envi#hasProjectionAngle -s4envi:hasProjectionAngle rdf:type owl:DatatypeProperty , - owl:FunctionalProperty ; - rdfs:range xsd:float ; - rdfs:comment "A relationship defining the projection angle of an entity (e.g., a light)."@en ; - rdfs:label "has projection angle"@en . - - -### https://saref.etsi.org/saref4envi#hasRevisionNumber -s4envi:hasRevisionNumber rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship defining the revision number of a certain entity (e.g., a device)"@en ; - rdfs:label "has revision number"@en . - - -### https://saref.etsi.org/saref4envi#hasShield -s4envi:hasShield rdf:type owl:DatatypeProperty , - owl:FunctionalProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "A relationship stating whether a lamppost has a shield."@en ; - rdfs:label "has shield"@en . - - -### https://saref.etsi.org/saref4envi#hasTag -s4envi:hasTag rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship stating the tags that can be assigned to an entity (e.g., a digital representation)."@en ; - rdfs:label "has tag"@en . - - -### https://saref.etsi.org/saref4envi#hasVersion -s4envi:hasVersion rdf:type owl:DatatypeProperty , - owl:FunctionalProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship defining the version of a certain entity (e.g., a device)"@en ; - rdfs:label "has version"@en . - - -### https://w3id.org/saref#hasDescription -saref:hasDescription rdf:type owl:DatatypeProperty ; - rdfs:comment "A relationship providing a description of an entity (e.g., device)"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has description"@en . - - -### https://w3id.org/saref#hasManufacturer -saref:hasManufacturer rdf:type owl:DatatypeProperty ; - rdfs:comment "A relationship identifying the manufacturer of an entity (e.g., device)"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has manufacturer"@en . - - -### https://w3id.org/saref#hasName -saref:hasName rdf:type owl:DatatypeProperty ; - rdfs:comment "A relationship providing the name of an entity (e.g., device)"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has name"@en . - - -### https://w3id.org/saref#hasTimestamp -saref:hasTimestamp rdf:type owl:DatatypeProperty , - owl:FunctionalProperty ; - rdfs:range xsd:dateTime ; - rdfs:comment "A relationship stating the timestamp of an entity (e.g. a measurement)."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "has timestamp"@en . - - -### https://w3id.org/saref#hasValue -saref:hasValue rdf:type owl:DatatypeProperty ; - rdfs:comment "A relationship defining the value of a certain property, e.g., energy or power"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has value"@en . - - -################################################################# -# Classes -################################################################# - -### http://www.w3.org/2003/01/geo/wgs84_pos#Point -geo:Point rdf:type owl:Class ; - rdfs:comment "A point, typically described using a coordinate system relative to Earth, such as WGS84. Uniquely identified by lat/long/alt. i.e. spaciallyIntersects(P1, P2) :- lat(P1, LAT), long(P1, LONG), alt(P1, ALT), at(P2, LAT), long(P2, LONG), alt(P2, ALT). sameThing(P1, P2) :- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2)."@en ; - rdfs:isDefinedBy geo: ; - rdfs:label "Point"@en . - - -### http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing -geo:SpatialThing rdf:type owl:Class ; - owl:disjointWith s4envi:Color , - s4envi:CommunicationInterface , - s4envi:CommunicationProtocol , - s4envi:CompassDirection , - s4envi:DigitalRepresentation , - s4envi:Geometry , - saref:Measurement , - saref:Service ; - rdfs:comment "Anything with spatial extent, i.e. size, shape, or position. e.g. people, places, bowling balls, as well as abstract areas like cubes."@en ; - rdfs:isDefinedBy geo: ; - rdfs:label "Spatial thing"@en . - - -### http://www.w3.org/2006/time#TemporalUnit -time:TemporalUnit rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "A temporal unit of measure, which provides a scale factor for a time quantity."@en ; - rdfs:isDefinedBy time: ; - rdfs:label "Temporal unit"@en . - - -### https://saref.etsi.org/saref4envi#Actuator -s4envi:Actuator rdf:type owl:Class ; - rdfs:subClassOf s4envi:Device , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:affectsProperty ; - owl:allValuesFrom saref:Property - ] ; - rdfs:comment "Device that can act over at least one property."@en ; - rdfs:label "Actuator"@en . - - -### https://saref.etsi.org/saref4envi#Color -s4envi:Color rdf:type owl:Class ; - owl:disjointWith s4envi:CommunicationInterface , - s4envi:CommunicationProtocol , - s4envi:CompassDirection , - s4envi:DigitalRepresentation , - s4envi:Geometry , - s4envi:Light , - saref:Service , - saref:UnitOfMeasure ; - rdfs:comment "Color of the emitted light. It might be indicated by named colors or using other type of color values like hexadecimal for RGB, color temperature, etc."@en ; - rdfs:label "Color"@en . - - -### https://saref.etsi.org/saref4envi#CommunicationInterface -s4envi:CommunicationInterface rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasVersion ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasVersion ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] ; - owl:disjointWith s4envi:CommunicationProtocol , - s4envi:CompassDirection , - s4envi:DigitalRepresentation , - s4envi:Geometry , - s4envi:Light , - saref:Measurement , - saref:Property , - saref:UnitOfMeasure ; - rdfs:comment "An interface defines which primitive operations and services the lower layer makes available to the upper one, when referring to network layers. (Definition adapted from \"Tanenbaum, A. S. (2003). Computer networks, 4-th edition. ed: Prentice Hall.\")"@en ; - rdfs:label "Communication interface"@en . - - -### https://saref.etsi.org/saref4envi#CommunicationProtocol -s4envi:CommunicationProtocol rdf:type owl:Class ; - owl:disjointWith s4envi:CompassDirection , - s4envi:DigitalRepresentation , - s4envi:Geometry , - s4envi:Light , - saref:Measurement , - saref:Property , - saref:Service , - saref:UnitOfMeasure ; - rdfs:comment "A protocol is an agreement between the communicating parties on how communication is to proceed. (Definition taken from \"Tanenbaum, A. S. (2003). Computer networks, 4-th edition. ed: Prentice Hall.\")"@en ; - rdfs:label "Communication protocol"@en . - - -### https://saref.etsi.org/saref4envi#CompassDirection -s4envi:CompassDirection rdf:type owl:Class ; - owl:disjointWith s4envi:DigitalRepresentation , - s4envi:Geometry , - s4envi:Light , - saref:Measurement , - saref:Property , - saref:Service , - saref:UnitOfMeasure ; - rdfs:comment "The four cardinal directions or cardinal points are the directions of north, east, south, and west, commonly denoted by their initials: N, E, S, W. East and west are at right angles to north and south, with east being in the clockwise direction of rotation from north and west being directly opposite east. Intermediate points between the four cardinal directions form the points of the compass. (definition taken from https://en.wikipedia.org/wiki/Cardinal_direction)"@en ; - rdfs:label "Compass direction"@en . - - -### https://saref.etsi.org/saref4envi#Device -s4envi:Device rdf:type owl:Class ; - rdfs:subClassOf s4envi:System , - saref:Device , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasFrequencyMeasurement ; - owl:allValuesFrom s4envi:FrequencyMeasurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasTransmissionPeriod ; - owl:allValuesFrom s4envi:PeriodMeasurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:isContainedIn ; - owl:allValuesFrom s4envi:PhysicalObject - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasRevisionNumber ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasVersion ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasManufacturer ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasRevisionNumber ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasVersion ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] ; - rdfs:comment "A thing made or adapted for a particular purpose, especially a piece of mechanical or electronic equipment. For example ‘a measuring device’ (definition taken from https://en.oxforddictionaries.com/definition/device). In this ontology it refers to the devices for environmental purposes."@en ; - rdfs:label "Device"@en . - - -### https://saref.etsi.org/saref4envi#DigitalRepresentation -s4envi:DigitalRepresentation rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty s4envi:encapsulates ; - owl:allValuesFrom s4envi:PhysicalObject - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:isAccesibleThrough ; - owl:allValuesFrom saref:Service - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasCreationDate ; - owl:allValuesFrom xsd:dateTime - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasIdentifier ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasTag ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasName ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasCreationDate ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasIdentifier ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] ; - owl:disjointWith s4envi:Geometry , - s4envi:Light , - saref:Measurement , - saref:UnitOfMeasure ; - rdfs:comment "A digital representation encapsulates a physical object accessible via Web services"@en ; - rdfs:label "Digital representation"@en . - - -### https://saref.etsi.org/saref4envi#FrequencyMeasurement -s4envi:FrequencyMeasurement rdf:type owl:Class ; - rdfs:subClassOf saref:Measurement , - [ rdf:type owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:hasValue s4envi:Frequency - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4envi:FrequencyUnit - ] ; - rdfs:comment "Represents the measured value made over a frequency property. It is also linked to the frequency unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Frequency measurement"@en . - - -### https://saref.etsi.org/saref4envi#FrequencyUnit -s4envi:FrequencyUnit rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "Unit of measure for the quantity frequency."@en ; - rdfs:label "Frequency unit"@en . - - -### https://saref.etsi.org/saref4envi#Geometry -s4envi:Geometry rdf:type owl:Class ; - owl:disjointWith s4envi:Light , - saref:Measurement , - saref:Property , - saref:Service , - saref:UnitOfMeasure ; - rdfs:comment "Represents the shape of the light emission. It might be instantiated by individuals like \"spherical\", \"cylindrical\", etc. even though it is open to more comples representation of geometries using other vocabularies."@en ; - rdfs:label "Geometry"@en . - - -### https://saref.etsi.org/saref4envi#HeightMeasurement -s4envi:HeightMeasurement rdf:type owl:Class ; - rdfs:subClassOf saref:Measurement , - [ rdf:type owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:hasValue s4envi:Height - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4envi:LengthUnit - ] ; - rdfs:comment "Represents the measured value made over a height property. It is also linked to the height unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Height measurement"@en . - - -### https://saref.etsi.org/saref4envi#Lamppost -s4envi:Lamppost rdf:type owl:Class ; - rdfs:subClassOf s4envi:Device , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasLightPoint ; - owl:allValuesFrom s4envi:LightPoint - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:projectsLight ; - owl:allValuesFrom s4envi:Light - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasShield ; - owl:allValuesFrom xsd:boolean - ] ; - rdfs:comment "A tall pole with a light at the top."@en ; - rdfs:label "Lamppost"@en . - - -### https://saref.etsi.org/saref4envi#LengthUnit -s4envi:LengthUnit rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "Unit of measure for the quantity lenght."@en ; - rdfs:label "Length unit"@en . - - -### https://saref.etsi.org/saref4envi#Light -s4envi:Light rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasColor ; - owl:allValuesFrom s4envi:Color - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasGeometry ; - owl:allValuesFrom s4envi:Geometry - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:isProjectedFromHeight ; - owl:allValuesFrom s4envi:HeightMeasurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:isProjectedInDirection ; - owl:allValuesFrom s4envi:CompassDirection - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasFlash ; - owl:allValuesFrom xsd:boolean - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasProjectionAngle ; - owl:allValuesFrom xsd:float - ] ; - owl:disjointWith saref:Measurement , - saref:Property , - saref:Service , - saref:UnitOfMeasure ; - rdfs:comment "A light source, which may be a lantern, a street light, a floodlight, a signal lamp or any other device whose primary purpose is the generation of light. (Definition taken from http://wiki.openstreetmap.org/wiki/Proposed_features/Key:light_source#Description)"@en ; - rdfs:label "Light"@en . - - -### https://saref.etsi.org/saref4envi#LightPoint -s4envi:LightPoint rdf:type owl:Class ; - rdfs:subClassOf geo:Point , - [ rdf:type owl:Restriction ; - owl:onProperty geo:location ; - owl:allValuesFrom geo:SpatialThing - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:projectsLight ; - owl:allValuesFrom s4envi:Light - ] ; - rdfs:comment "An spatial point from where a light is projected. It might belong to a lamppost."@en ; - rdfs:label "Light point"@en . - - -### https://saref.etsi.org/saref4envi#LightProperty -s4envi:LightProperty rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "An aspect of light that can be observable by a sensor."@en ; - rdfs:label "Light property"@en . - - -### https://saref.etsi.org/saref4envi#PeriodMeasurement -s4envi:PeriodMeasurement rdf:type owl:Class ; - rdfs:subClassOf saref:Measurement , - [ rdf:type owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:hasValue s4envi:Period - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass time:TemporalUnit - ] ; - rdfs:comment "Represents the measured value over a period property. It is also linked to the period unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Period measurement"@en . - - -### https://saref.etsi.org/saref4envi#Photometer -s4envi:Photometer rdf:type owl:Class ; - rdfs:subClassOf saref:Sensor , - [ rdf:type owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom s4envi:LightProperty - ] ; - rdfs:comment "A photometer, generally, is an instrument that measures light intensity or optical properties of solutions or surfaces."@en ; - rdfs:label "Photometer"@en . - - -### https://saref.etsi.org/saref4envi#PhysicalObject -s4envi:PhysicalObject rdf:type owl:Class ; - rdfs:subClassOf geo:SpatialThing , - [ rdf:type owl:Restriction ; - owl:onProperty geo:location ; - owl:allValuesFrom geo:SpatialThing - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:contains ; - owl:allValuesFrom s4envi:PhysicalObject - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasDigitalRepresentation ; - owl:allValuesFrom s4envi:DigitalRepresentation - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:isContainedIn ; - owl:allValuesFrom s4envi:PhysicalObject - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:allValuesFrom xsd:string - ] ; - rdfs:comment "Any Object that has a proper space region. (Definition extracted from DUL ontology)"@en ; - rdfs:label "Physical object"@en . - - -### https://saref.etsi.org/saref4envi#System -s4envi:System rdf:type owl:Class ; - rdfs:subClassOf s4envi:PhysicalObject , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasComponent ; - owl:allValuesFrom s4envi:System - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:isComponentOf ; - owl:allValuesFrom s4envi:System - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:isConnectedTo ; - owl:allValuesFrom s4envi:System - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:usesCommunicationInterface ; - owl:allValuesFrom s4envi:CommunicationInterface - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:usesCommunicationProtocol ; - owl:allValuesFrom s4envi:CommunicationProtocol - ] ; - rdfs:comment "A group of related hardware units or programs or both, especially when dedicated to a single application. (Definition taken from https://en.oxforddictionaries.com/definition/system)"@en ; - rdfs:label "System"@en . - - -### https://saref.etsi.org/saref4envi#TESS -s4envi:TESS rdf:type owl:Class ; - rdfs:subClassOf s4envi:Photometer ; - rdfs:comment "The Telescope Encoder and Sky Sensor (TESS) is a Sky Brightness and Cloud detector developed as a device for a remote observatory. A TESS can observe the light magnitude and other properties as ambient temperature and sky temperature."@en ; - rdfs:label "TESS (Telescope Encoder and Sky Sensor)"@en . - - -### https://w3id.org/saref#Device -saref:Device rdf:type owl:Class ; - rdfs:comment "A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Device"@en . - - -### https://w3id.org/saref#Measurement -saref:Measurement rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:allValuesFrom saref:UnitOfMeasure - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:allValuesFrom saref:Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:UnitOfMeasure - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasTimestamp ; - owl:allValuesFrom xsd:dateTime - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasValue ; - owl:allValuesFrom xsd:float - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasValue ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:float - ] ; - owl:disjointWith saref:Property , - saref:Service , - saref:UnitOfMeasure ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Measurement"@en . - - -### https://w3id.org/saref#Property -saref:Property rdf:type owl:Class ; - owl:disjointWith saref:Service , - saref:UnitOfMeasure ; - rdfs:comment "An aspect of an entity that can be observable by a sensor."@en ; - rdfs:label "Property"@en . - - -### https://w3id.org/saref#Sensor -saref:Sensor rdf:type owl:Class ; - rdfs:subClassOf saref:Device , - [ rdf:type owl:Restriction ; - owl:onProperty saref:makesMeasurement ; - owl:allValuesFrom saref:Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:allValuesFrom saref:Property - ] ; - rdfs:comment """A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. -A device that has category saref:Sensor and performs a saref:SensingFunction."""@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Sensor"@en . - - -### https://w3id.org/saref#Service -saref:Service rdf:type owl:Class ; - owl:disjointWith saref:UnitOfMeasure ; - rdfs:comment "A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service, the function(s) to be represented, and the (input and output) parameters necessary to operate the service."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Service"@en . - - -### https://w3id.org/saref#UnitOfMeasure -saref:UnitOfMeasure rdf:type owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Unit of measure"@en . - - -################################################################# -# Individuals -################################################################# - -### http://www.wurvoc.org/vocabularies/om-1.8/centimetre - rdf:type owl:NamedIndividual , - s4envi:LengthUnit ; - rdfs:label "Centimetre"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/decametre - rdf:type owl:NamedIndividual , - s4envi:LengthUnit ; - rdfs:label "Decametre"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/decimetre - rdf:type owl:NamedIndividual , - s4envi:LengthUnit ; - rdfs:label "Decimetre"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/hectometre - rdf:type owl:NamedIndividual , - s4envi:LengthUnit ; - rdfs:label "Hectometre"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/hertz - rdf:type owl:NamedIndividual , - s4envi:FrequencyUnit ; - rdfs:label "Hertz"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/kilometre - rdf:type owl:NamedIndividual , - s4envi:LengthUnit ; - rdfs:label "Kilometre"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/metre - rdf:type owl:NamedIndividual , - s4envi:LengthUnit ; - rdfs:label "Metre"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/millimetre - rdf:type owl:NamedIndividual , - s4envi:LengthUnit ; - rdfs:label "Milimetre"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_day - rdf:type owl:NamedIndividual , - s4envi:FrequencyUnit ; - rdfs:label "Reciprocal day"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_hour - rdf:type owl:NamedIndividual , - s4envi:FrequencyUnit ; - rdfs:label "Reciprocal hour"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_second-time - rdf:type owl:NamedIndividual , - s4envi:FrequencyUnit ; - rdfs:label "Reciprocal second"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_year - rdf:type owl:NamedIndividual , - s4envi:FrequencyUnit ; - rdfs:label "Reciprocal year"@en . - - -### https://saref.etsi.org/saref4envi#Fluorescence -s4envi:Fluorescence rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property fluorescence."@en ; - rdfs:label "Fluorescence"@en . - - -### https://saref.etsi.org/saref4envi#Frequency -s4envi:Frequency rdf:type owl:NamedIndividual , - saref:Property ; - rdfs:comment "An individual representing the property frequency."@en ; - rdfs:label "Frequency"@en . - - -### https://saref.etsi.org/saref4envi#Height -s4envi:Height rdf:type owl:NamedIndividual , - saref:Property ; - rdfs:comment "An individual representing the property height."@en ; - rdfs:label "Height"@en . - - -### https://saref.etsi.org/saref4envi#Illuminance -s4envi:Illuminance rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property illuminance."@en ; - rdfs:label "Illuminance"@en . - - -### https://saref.etsi.org/saref4envi#Irradiance -s4envi:Irradiance rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property irradiance."@en ; - rdfs:label "Irradiance"@en . - - -### https://saref.etsi.org/saref4envi#LightAbsorption -s4envi:LightAbsorption rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property light absorption."@en ; - rdfs:label "Light absorption"@en . - - -### https://saref.etsi.org/saref4envi#LightMagnitude -s4envi:LightMagnitude rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property light magnitude."@en ; - rdfs:label "Light magnitude"@en . - - -### https://saref.etsi.org/saref4envi#Luminiscence -s4envi:Luminiscence rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property luminiscence."@en ; - rdfs:label "Luminiscence"@en . - - -### https://saref.etsi.org/saref4envi#Period -s4envi:Period rdf:type owl:NamedIndividual , - saref:Property ; - rdfs:comment "An individual representing the property period."@en ; - rdfs:label "Period"@en . - - -### https://saref.etsi.org/saref4envi#Phosphorescence -s4envi:Phosphorescence rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property phosphorescence."@en ; - rdfs:label "Phosphorescence"@en . - - -### https://saref.etsi.org/saref4envi#ReflectionOfLight -s4envi:ReflectionOfLight rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property reflection of light."@en ; - rdfs:label "Reflection of light"@en . - - -### https://saref.etsi.org/saref4envi#ScatteringOfLight -s4envi:ScatteringOfLight rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property scattering of light."@en ; - rdfs:label "Scattering of light"@en . - - -### Generated by the OWL API (version 4.2.6.20160910-2108) https://github.com/owlcs/owlapi diff --git a/src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/desktop.ini b/src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/saref4envi.html b/src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/saref4envi.html deleted file mode 100644 index 597e2fa..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/saref4envi.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - SAREF extension for environment

    -

    Official ETSI documentation for SAREF4ENVI v1.1.1
    This page will soon contain the documentation of the SAREF ontology v1.1.1

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    The documentation of SAREF4ENVI v1.1.1 will be available here soon. The source of the ontology are available as Turtle or RDF/XML Visualize it with VOWL

    -
    -
    -
    -
    -

    This ontology extends the SAREF ontology for the environment domain, specifically for the light pollution domain, including concepts like photometers, light, etc.

    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/saref4envi.n3 b/src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/saref4envi.n3 deleted file mode 100644 index 7076c40..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/saref4envi.n3 +++ /dev/null @@ -1,712 +0,0 @@ -@prefix geo: . -@prefix s4envi: . -@prefix rdf: . -@prefix owl: . -@prefix xml: . -@prefix saref: . -@prefix xsd: . -@prefix dcterms: . -@prefix rdfs: . -@prefix time: . -@prefix vann: . - -s4envi:ReflectionOfLight - a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property reflection of light."@en ; - rdfs:label "Reflection of light"@en . - - - a s4envi:FrequencyUnit , owl:NamedIndividual ; - rdfs:label "Reciprocal second"@en . - - - a s4envi:LengthUnit , owl:NamedIndividual ; - rdfs:label "Centimetre"@en . - -s4envi:hasFlash a owl:FunctionalProperty , owl:DatatypeProperty ; - rdfs:comment "A relationship stating whether a light has flash."@en ; - rdfs:label "has flash"@en ; - rdfs:range xsd:boolean . - -s4envi:LightProperty a owl:Class ; - rdfs:comment "An aspect of light that can be observable by a sensor."@en ; - rdfs:label "Light property"@en ; - rdfs:subClassOf saref:Property . - -saref:isMeasuredIn a owl:ObjectProperty ; - rdfs:comment "is measured in"@en , "A relation between a measurement and the unit of measure in which the measurement value is expressed."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" . - -saref:makesMeasurement - a owl:ObjectProperty ; - rdfs:comment "A relation between a sensor and the measurements it makes. Such measurement will link together the valur of the measurement, its unit of measure and the property to which it relates."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "makes measurement"@en . - -s4envi:System a owl:Class ; - rdfs:comment "A group of related hardware units or programs or both, especially when dedicated to a single application. (Definition taken from https://en.oxforddictionaries.com/definition/system)"@en ; - rdfs:label "System"@en ; - rdfs:subClassOf s4envi:PhysicalObject ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:CommunicationProtocol ; - owl:onProperty s4envi:usesCommunicationProtocol - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:CommunicationInterface ; - owl:onProperty s4envi:usesCommunicationInterface - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:System ; - owl:onProperty s4envi:isConnectedTo - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:System ; - owl:onProperty s4envi:isComponentOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:System ; - owl:onProperty s4envi:hasComponent - ] . - -s4envi:usesCommunicationProtocol - a owl:ObjectProperty ; - rdfs:comment "A relation between a system and the communication protocol it uses."@en ; - rdfs:label "uses communication protocol"@en . - -saref:Measurement a owl:Class ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Measurement"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:Property ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:UnitOfMeasure ; - owl:onProperty saref:isMeasuredIn - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onDataRange xsd:float ; - owl:onProperty saref:hasValue ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:relatesToProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty saref:hasValue - ] ; - owl:disjointWith saref:Service , saref:Property , saref:UnitOfMeasure . - - - a s4envi:LengthUnit , owl:NamedIndividual ; - rdfs:label "Kilometre"@en . - -s4envi:FrequencyMeasurement - a owl:Class ; - rdfs:comment "Represents the measured value made over a frequency property. It is also linked to the frequency unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Frequency measurement"@en ; - rdfs:subClassOf saref:Measurement ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass s4envi:FrequencyUnit ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue s4envi:Frequency ; - owl:onProperty saref:relatesToProperty - ] . - -s4envi:CompassDirection - a owl:Class ; - rdfs:comment "The four cardinal directions or cardinal points are the directions of north, east, south, and west, commonly denoted by their initials: N, E, S, W. East and west are at right angles to north and south, with east being in the clockwise direction of rotation from north and west being directly opposite east. Intermediate points between the four cardinal directions form the points of the compass. (definition taken from https://en.wikipedia.org/wiki/Cardinal_direction)"@en ; - rdfs:label "Compass direction"@en ; - owl:disjointWith saref:Property , s4envi:DigitalRepresentation , s4envi:Light , saref:Service , saref:UnitOfMeasure , s4envi:Geometry , saref:Measurement . - -s4envi:Illuminance a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property illuminance."@en ; - rdfs:label "Illuminance"@en . - -s4envi:LightPoint a owl:Class ; - rdfs:comment "An spatial point from where a light is projected. It might belong to a lamppost."@en ; - rdfs:label "Light point"@en ; - rdfs:subClassOf geo:Point ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:Light ; - owl:onProperty s4envi:projectsLight - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom geo:SpatialThing ; - owl:onProperty geo:location - ] . - - - a s4envi:FrequencyUnit , owl:NamedIndividual ; - rdfs:label "Reciprocal hour"@en . - -s4envi:TESS a owl:Class ; - rdfs:comment "The Telescope Encoder and Sky Sensor (TESS) is a Sky Brightness and Cloud detector developed as a device for a remote observatory. A TESS can observe the light magnitude and other properties as ambient temperature and sky temperature."@en ; - rdfs:label "TESS (Telescope Encoder and Sky Sensor)"@en ; - rdfs:subClassOf s4envi:Photometer . - - - a s4envi:LengthUnit , owl:NamedIndividual ; - rdfs:label "Decametre"@en . - -s4envi:Height a saref:Property , owl:NamedIndividual ; - rdfs:comment "An individual representing the property height."@en ; - rdfs:label "Height"@en . - -geo:Point a owl:Class ; - rdfs:comment "A point, typically described using a coordinate system relative to Earth, such as WGS84. Uniquely identified by lat/long/alt. i.e. spaciallyIntersects(P1, P2) :- lat(P1, LAT), long(P1, LONG), alt(P1, ALT), at(P2, LAT), long(P2, LONG), alt(P2, ALT). sameThing(P1, P2) :- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2)."@en ; - rdfs:isDefinedBy geo: ; - rdfs:label "Point"@en . - -saref:hasTimestamp a owl:FunctionalProperty , owl:DatatypeProperty ; - rdfs:comment "A relationship stating the timestamp of an entity (e.g. a measurement)."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "has timestamp"@en ; - rdfs:range xsd:dateTime . - -s4envi:Device a owl:Class ; - rdfs:comment "A thing made or adapted for a particular purpose, especially a piece of mechanical or electronic equipment. For example ‘a measuring device’ (definition taken from https://en.oxforddictionaries.com/definition/device). In this ontology it refers to the devices for environmental purposes."@en ; - rdfs:label "Device"@en ; - rdfs:subClassOf saref:Device , s4envi:System ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4envi:hasVersion - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4envi:hasRevisionNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:PhysicalObject ; - owl:onProperty s4envi:isContainedIn - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4envi:hasVersion - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4envi:hasRevisionNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:PeriodMeasurement ; - owl:onProperty s4envi:hasTransmissionPeriod - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:FrequencyMeasurement ; - owl:onProperty s4envi:hasFrequencyMeasurement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty saref:hasManufacturer - ] . - -s4envi:hasFrequencyMeasurement - a owl:ObjectProperty ; - rdfs:comment "The relation between a device and the frequency in which it makes measurements."@en ; - rdfs:label "has frequency measurement"@en . - -s4envi:LightMagnitude - a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property light magnitude."@en ; - rdfs:label "Light magnitude"@en . - - - a s4envi:LengthUnit , owl:NamedIndividual ; - rdfs:label "Hectometre"@en . - -geo:location a owl:ObjectProperty ; - rdfs:comment "The relation between something and the point, or other geometrical thing in space, where it is. For example, the realtionship between a radio tower and a Point with a given lat and long. Or a relationship between a park and its outline as a closed arc of points, or a road and its location as a arc (a sequence of points). Clearly in practice there will be limit to the accuracy of any such statement, but one would expect an accuracy appropriate for the size of the object and uses such as mapping ."@en ; - rdfs:isDefinedBy geo: ; - rdfs:label "location"@en . - -s4envi:hasDigitalRepresentation - a owl:InverseFunctionalProperty , owl:ObjectProperty ; - rdfs:comment "A relation between a physical object and the digital representation in which it is encapsulated."@en ; - rdfs:label "has digital representation"@en . - - - a s4envi:LengthUnit , owl:NamedIndividual ; - rdfs:label "Metre"@en . - -s4envi:hasColor a owl:ObjectProperty ; - rdfs:comment "A relation between a light emitted and its color."@en ; - rdfs:label "has color"@en . - -saref:measuresProperty - a owl:ObjectProperty ; - rdfs:comment "A relation between a sensor and the property o properties it can take measurement about."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "measures property"@en . - -s4envi:Fluorescence a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property fluorescence."@en ; - rdfs:label "Fluorescence"@en . - -s4envi:Light a owl:Class ; - rdfs:comment "A light source, which may be a lantern, a street light, a floodlight, a signal lamp or any other device whose primary purpose is the generation of light. (Definition taken from http://wiki.openstreetmap.org/wiki/Proposed_features/Key:light_source#Description)"@en ; - rdfs:label "Light"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:HeightMeasurement ; - owl:onProperty s4envi:isProjectedFromHeight - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:Color ; - owl:onProperty s4envi:hasColor - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:Geometry ; - owl:onProperty s4envi:hasGeometry - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4envi:hasFlash - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:CompassDirection ; - owl:onProperty s4envi:isProjectedInDirection - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty s4envi:hasProjectionAngle - ] ; - owl:disjointWith saref:Property , saref:Service , saref:Measurement , saref:UnitOfMeasure . - -s4envi:hasRevisionNumber - a owl:DatatypeProperty ; - rdfs:comment "A relationship defining the revision number of a certain entity (e.g., a device)"@en ; - rdfs:label "has revision number"@en ; - rdfs:range xsd:string . - - - a s4envi:FrequencyUnit , owl:NamedIndividual ; - rdfs:label "Reciprocal day"@en . - -s4envi:LightAbsorption - a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property light absorption."@en ; - rdfs:label "Light absorption"@en . - -s4envi:hasShield a owl:FunctionalProperty , owl:DatatypeProperty ; - rdfs:comment "A relationship stating whether a lamppost has a shield."@en ; - rdfs:label "has shield"@en ; - rdfs:range xsd:boolean . - -s4envi:HeightMeasurement - a owl:Class ; - rdfs:comment "Represents the measured value made over a height property. It is also linked to the height unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Height measurement"@en ; - rdfs:subClassOf saref:Measurement ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass s4envi:LengthUnit ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue s4envi:Height ; - owl:onProperty saref:relatesToProperty - ] . - -s4envi:Period a saref:Property , owl:NamedIndividual ; - rdfs:comment "An individual representing the property period."@en ; - rdfs:label "Period"@en . - -s4envi:Photometer a owl:Class ; - rdfs:comment "A photometer, generally, is an instrument that measures light intensity or optical properties of solutions or surfaces."@en ; - rdfs:label "Photometer"@en ; - rdfs:subClassOf saref:Sensor ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom s4envi:LightProperty - ] . - -s4envi:hasTransmissionPeriod - a owl:ObjectProperty ; - rdfs:comment "The relation between a device and the period in which it transmit information."@en ; - rdfs:label "has transmission period"@en . - -s4envi:hasProjectionAngle - a owl:FunctionalProperty , owl:DatatypeProperty ; - rdfs:comment "A relationship defining the projection angle of an entity (e.g., a light)."@en ; - rdfs:label "has projection angle"@en ; - rdfs:range xsd:float . - -s4envi:Geometry a owl:Class ; - rdfs:comment "Represents the shape of the light emission. It might be instantiated by individuals like \"spherical\", \"cylindrical\", etc. even though it is open to more comples representation of geometries using other vocabularies."@en ; - rdfs:label "Geometry"@en ; - owl:disjointWith saref:UnitOfMeasure , saref:Service , saref:Property , saref:Measurement , s4envi:Light . - -saref:hasValue a owl:DatatypeProperty ; - rdfs:comment "A relationship defining the value of a certain property, e.g., energy or power"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has value"@en . - -s4envi:isContainedIn a owl:ObjectProperty ; - rdfs:comment "A relation between a physical object and the physical object in which it might be contained."@en ; - rdfs:label "is contained in"@en . - -s4envi:Luminiscence a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property luminiscence."@en ; - rdfs:label "Luminiscence"@en . - -s4envi:ScatteringOfLight - a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property scattering of light."@en ; - rdfs:label "Scattering of light"@en . - -s4envi:Frequency a saref:Property , owl:NamedIndividual ; - rdfs:comment "An individual representing the property frequency."@en ; - rdfs:label "Frequency"@en . - -s4envi:isComponentOf a owl:TransitiveProperty , owl:ObjectProperty ; - rdfs:comment "A relation between a system and the system it belongs to as a component."@en ; - rdfs:label "is component of"@en . - -s4envi:contains a owl:ObjectProperty ; - rdfs:comment "A relation between a physical object and the physical objects that can be contained in it."@en ; - rdfs:label "contains"@en ; - owl:inverseOf s4envi:isContainedIn . - -s4envi:hasGeometry a owl:ObjectProperty ; - rdfs:comment "A relation between a light emitted and the shape it is projected in."@en ; - rdfs:label "has geometry"@en . - - - a s4envi:FrequencyUnit , owl:NamedIndividual ; - rdfs:label "Hertz"@en . - -s4envi:CommunicationProtocol - a owl:Class ; - rdfs:comment "A protocol is an agreement between the communicating parties on how communication is to proceed. (Definition taken from \"Tanenbaum, A. S. (2003). Computer networks, 4-th edition. ed: Prentice Hall.\")"@en ; - rdfs:label "Communication protocol"@en ; - owl:disjointWith s4envi:Geometry , s4envi:CompassDirection , s4envi:DigitalRepresentation , saref:Property , s4envi:Light , saref:Service , saref:UnitOfMeasure , saref:Measurement . - -s4envi:Lamppost a owl:Class ; - rdfs:comment "A tall pole with a light at the top."@en ; - rdfs:label "Lamppost"@en ; - rdfs:subClassOf s4envi:Device ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4envi:hasShield - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:Light ; - owl:onProperty s4envi:projectsLight - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:LightPoint ; - owl:onProperty s4envi:hasLightPoint - ] . - -geo:SpatialThing a owl:Class ; - rdfs:comment "Anything with spatial extent, i.e. size, shape, or position. e.g. people, places, bowling balls, as well as abstract areas like cubes."@en ; - rdfs:isDefinedBy geo: ; - rdfs:label "Spatial thing"@en ; - owl:disjointWith s4envi:DigitalRepresentation , saref:Service , saref:Measurement , s4envi:CommunicationProtocol , s4envi:CommunicationInterface , s4envi:Color , s4envi:CompassDirection , s4envi:Geometry . - -saref:hasDescription a owl:DatatypeProperty ; - rdfs:comment "A relationship providing a description of an entity (e.g., device)"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has description"@en . - -s4envi:isAccesibleThrough - a owl:FunctionalProperty , owl:ObjectProperty ; - rdfs:comment "The relation between a digital representation and the service which it is accesible through."@en ; - rdfs:label "is accesible through"@en . - -s4envi:affectsProperty - a owl:ObjectProperty ; - rdfs:comment "A relation between an actuator with the property or properties it can act on"@en ; - rdfs:label "affects property"@en . - -s4envi:Actuator a owl:Class ; - rdfs:comment "Device that can act over at least one property."@en ; - rdfs:label "Actuator"@en ; - rdfs:subClassOf s4envi:Device ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty s4envi:affectsProperty - ] . - -s4envi:hasIdentifier a owl:DatatypeProperty ; - rdfs:comment "A relationship providing the identifier of an entity (e.g., digital representation)"@en ; - rdfs:label "has identifier"@en ; - rdfs:range xsd:string . - -s4envi:FrequencyUnit a owl:Class ; - rdfs:comment "Unit of measure for the quantity frequency."@en ; - rdfs:label "Frequency unit"@en ; - rdfs:subClassOf saref:UnitOfMeasure . - -s4envi:CommunicationInterface - a owl:Class ; - rdfs:comment "An interface defines which primitive operations and services the lower layer makes available to the upper one, when referring to network layers. (Definition adapted from \"Tanenbaum, A. S. (2003). Computer networks, 4-th edition. ed: Prentice Hall.\")"@en ; - rdfs:label "Communication interface"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4envi:hasVersion - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4envi:hasVersion - ] ; - owl:disjointWith s4envi:Light , saref:Measurement , saref:UnitOfMeasure , s4envi:DigitalRepresentation , saref:Property , s4envi:Geometry , s4envi:CompassDirection , s4envi:CommunicationProtocol . - -s4envi:hasVersion a owl:FunctionalProperty , owl:DatatypeProperty ; - rdfs:comment "A relationship defining the version of a certain entity (e.g., a device)"@en ; - rdfs:label "has version"@en ; - rdfs:range xsd:string . - -s4envi:hasCreationDate - a owl:FunctionalProperty , owl:DatatypeProperty ; - rdfs:comment "A relationship defining the creation date of an entity (e.g., a digital representation)."@en ; - rdfs:label "has creation date"@en ; - rdfs:range xsd:dateTime . - -s4envi:Irradiance a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property irradiance."@en ; - rdfs:label "Irradiance"@en . - -s4envi:hasComponent a owl:TransitiveProperty , owl:ObjectProperty ; - rdfs:comment "A relation between a system and the system in which it might be decomposed."@en ; - rdfs:label "has component"@en ; - owl:inverseOf s4envi:isComponentOf . - -s4envi:hasTag a owl:DatatypeProperty ; - rdfs:comment "A relationship stating the tags that can be assigned to an entity (e.g., a digital representation)."@en ; - rdfs:label "has tag"@en ; - rdfs:range xsd:string . - -s4envi:Color a owl:Class ; - rdfs:comment "Color of the emitted light. It might be indicated by named colors or using other type of color values like hexadecimal for RGB, color temperature, etc."@en ; - rdfs:label "Color"@en ; - owl:disjointWith saref:UnitOfMeasure , s4envi:DigitalRepresentation , s4envi:CommunicationInterface , s4envi:Geometry , s4envi:CommunicationProtocol , s4envi:CompassDirection , s4envi:Light , saref:Service . - -saref:relatesToProperty - a owl:ObjectProperty ; - rdfs:comment "A relation between a measurement and the property such measurement is about."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "relates to property"@en . - -saref:UnitOfMeasure a owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Unit of measure"@en . - -saref:hasName a owl:DatatypeProperty ; - rdfs:comment "A relationship providing the name of an entity (e.g., device)"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has name"@en . - -s4envi:LengthUnit a owl:Class ; - rdfs:comment "Unit of measure for the quantity lenght."@en ; - rdfs:label "Length unit"@en ; - rdfs:subClassOf saref:UnitOfMeasure . - -s4envi: a owl:Ontology ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:contributor , , ; - dcterms:description "This ontology extends the SAREF ontology for the environment domain, specifically for the light pollution domain, including concepts like photometers, light, etc."@en ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:publisher ; - dcterms:source , ; - dcterms:title "SAREF extension for environment"@en ; - vann:preferredNamespacePrefix "s4envi" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4envi#" ; - owl:versionIRI ; - owl:versionInfo "1.1.1" . - -s4envi:usesCommunicationInterface - a owl:ObjectProperty ; - rdfs:comment "A relation between a system and the communication interface it uses."@en ; - rdfs:label "uses communication interface"@en . - -s4envi:projectsLight a owl:ObjectProperty ; - rdfs:comment "A relation between a lamppost or a light point and the light (or lights) they might project."@en ; - rdfs:label "projects light"@en . - -s4envi:DigitalRepresentation - a owl:Class ; - rdfs:comment "A digital representation encapsulates a physical object accessible via Web services"@en ; - rdfs:label "Digital representation"@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4envi:hasIdentifier - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4envi:hasIdentifier - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty saref:hasName - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:PhysicalObject ; - owl:onProperty s4envi:encapsulates - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty s4envi:hasCreationDate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4envi:hasTag - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Service ; - owl:onProperty s4envi:isAccesibleThrough - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime ; - owl:onProperty s4envi:hasCreationDate - ] ; - owl:disjointWith saref:UnitOfMeasure , s4envi:Geometry , s4envi:Light , saref:Measurement . - -s4envi:hasLightPoint a owl:ObjectProperty ; - rdfs:comment "A relation between a lamppost and its light points"@en ; - rdfs:label "has light point"@en . - -saref:Service a owl:Class ; - rdfs:comment "A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service, the function(s) to be represented, and the (input and output) parameters necessary to operate the service."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Service"@en ; - owl:disjointWith saref:UnitOfMeasure . - -s4envi:isProjectedInDirection - a owl:ObjectProperty ; - rdfs:comment "A relation between a light and the direction in which it is projected."@en ; - rdfs:label "is projected in direction"@en . - - - a s4envi:LengthUnit , owl:NamedIndividual ; - rdfs:label "Decimetre"@en . - -saref:Sensor a owl:Class ; - rdfs:comment "A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes.\nA device that has category saref:Sensor and performs a saref:SensingFunction."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Sensor"@en ; - rdfs:subClassOf saref:Device ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:measuresProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Measurement ; - owl:onProperty saref:makesMeasurement - ] . - -s4envi:encapsulates a owl:FunctionalProperty , owl:ObjectProperty ; - rdfs:comment "A relation between a digital representation and the physical objects it represents."@en ; - rdfs:label "encapsulates"@en ; - owl:inverseOf s4envi:hasDigitalRepresentation . - -s4envi:Phosphorescence - a s4envi:LightProperty , owl:NamedIndividual ; - rdfs:comment "An individual representing the light property phosphorescence."@en ; - rdfs:label "Phosphorescence"@en . - -saref:Property a owl:Class ; - rdfs:comment "An aspect of an entity that can be observable by a sensor."@en ; - rdfs:label "Property"@en ; - owl:disjointWith saref:UnitOfMeasure , saref:Service . - -s4envi:PhysicalObject - a owl:Class ; - rdfs:comment "Any Object that has a proper space region. (Definition extracted from DUL ontology)"@en ; - rdfs:label "Physical object"@en ; - rdfs:subClassOf geo:SpatialThing ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty saref:hasDescription - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:PhysicalObject ; - owl:onProperty s4envi:isContainedIn - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:DigitalRepresentation ; - owl:onProperty s4envi:hasDigitalRepresentation - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4envi:PhysicalObject ; - owl:onProperty s4envi:contains - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom geo:SpatialThing ; - owl:onProperty geo:location - ] . - -saref:hasManufacturer - a owl:DatatypeProperty ; - rdfs:comment "A relationship identifying the manufacturer of an entity (e.g., device)"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has manufacturer"@en . - -time:TemporalUnit a owl:Class ; - rdfs:comment "A temporal unit of measure, which provides a scale factor for a time quantity."@en ; - rdfs:isDefinedBy time: ; - rdfs:label "Temporal unit"@en ; - rdfs:subClassOf saref:UnitOfMeasure . - -s4envi:isConnectedTo a owl:SymmetricProperty , owl:ObjectProperty ; - rdfs:comment "A relation between a system and the system to which it is connected."@en ; - rdfs:label "is connected to"@en . - -s4envi:PeriodMeasurement - a owl:Class ; - rdfs:comment "Represents the measured value over a period property. It is also linked to the period unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Period measurement"@en ; - rdfs:subClassOf saref:Measurement ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass time:TemporalUnit ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:hasValue s4envi:Period ; - owl:onProperty saref:relatesToProperty - ] . - - - a s4envi:LengthUnit , owl:NamedIndividual ; - rdfs:label "Milimetre"@en . - -s4envi:isProjectedFromHeight - a owl:ObjectProperty ; - rdfs:comment "A relation between a light and the height measurement from which it is projected."@en ; - rdfs:label "is projected from height"@en . - - - a s4envi:FrequencyUnit , owl:NamedIndividual ; - rdfs:label "Reciprocal year"@en . - -saref:Device a owl:Class ; - rdfs:comment "A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Device"@en . diff --git a/src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/saref4envi.rdf b/src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/saref4envi.rdf deleted file mode 100644 index 108b5a4..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/saref4envi.rdf +++ /dev/null @@ -1,1104 +0,0 @@ - - - - This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge. - - SAREF extension for environment - 2019-06-11 - s4envi - - - - - https://saref.etsi.org/saref4envi# - - 1.1.1 - - This ontology extends the SAREF ontology for the environment domain, specifically for the light pollution domain, including concepts like photometers, light, etc. - - - Light point - An spatial point from where a light is projected. It might belong to a lamppost. - - - - - - - - - - - - - - - - - - - - - - - - - - TESS (Telescope Encoder and Sky Sensor) - The Telescope Encoder and Sky Sensor (TESS) is a Sky Brightness and Cloud detector developed as a device for a remote observatory. A TESS can observe the light magnitude and other properties as ambient temperature and sky temperature. - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - An interface defines which primitive operations and services the lower layer makes available to the upper one, when referring to network layers. (Definition adapted from "Tanenbaum, A. S. (2003). Computer networks, 4-th edition. ed: Prentice Hall.") - Communication interface - - - - - - - - - - - - Service - - A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service, the function(s) to be represented, and the (input and output) parameters necessary to operate the service. - - - - - - Communication protocol - - - - - - - A protocol is an agreement between the communicating parties on how communication is to proceed. (Definition taken from "Tanenbaum, A. S. (2003). Computer networks, 4-th edition. ed: Prentice Hall.") - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - Measurement - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Frequency measurement - Represents the measured value made over a frequency property. It is also linked to the frequency unit of measure in which the value is expressed and the timestamp of the measurement. - - - - - - 1 - - - - - - - - - - Frequency - An individual representing the property frequency. - - - - - - - - - - - - Photometer - A photometer, generally, is an instrument that measures light intensity or optical properties of solutions or surfaces. - - - - - - - - - - - - - - - - Period measurement - Represents the measured value over a period property. It is also linked to the period unit of measure in which the value is expressed and the timestamp of the measurement. - - - - - - 1 - - - - - - - - - - Period - An individual representing the property period. - - - - - - - - - - - - Unit of measure - - The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called "watt". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended. - - - Compass direction - The four cardinal directions or cardinal points are the directions of north, east, south, and west, commonly denoted by their initials: N, E, S, W. East and west are at right angles to north and south, with east being in the clockwise direction of rotation from north and west being directly opposite east. Intermediate points between the four cardinal directions form the points of the compass. (definition taken from https://en.wikipedia.org/wiki/Cardinal_direction) - - - - - - - - - - - - - - - - - - Light property - An aspect of light that can be observable by a sensor. - - - - - - - - - - - Color - - - - - - Color of the emitted light. It might be indicated by named colors or using other type of color values like hexadecimal for RGB, color temperature, etc. - - - - - - - Device - - A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function. - - - Geometry - Represents the shape of the light emission. It might be instantiated by individuals like "spherical", "cylindrical", etc. even though it is open to more comples representation of geometries using other vocabularies. - - - - - - - - - - - - - - - - - - - - - Device - A thing made or adapted for a particular purpose, especially a piece of mechanical or electronic equipment. For example ‘a measuring device’ (definition taken from https://en.oxforddictionaries.com/definition/device). In this ontology it refers to the devices for environmental purposes. - - - - 1 - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Actuator - Device that can act over at least one property. - - - - - - - - - - - - - - Frequency unit - Unit of measure for the quantity frequency. - - - - - - - Anything with spatial extent, i.e. size, shape, or position. e.g. people, places, bowling balls, as well as abstract areas like cubes. - - - - - Spatial thing - - - - - - - Length unit - Unit of measure for the quantity lenght. - - - - System - A group of related hardware units or programs or both, especially when dedicated to a single application. (Definition taken from https://en.oxforddictionaries.com/definition/system) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Height measurement - Represents the measured value made over a height property. It is also linked to the height unit of measure in which the value is expressed and the timestamp of the measurement. - - - - 1 - - - - - - - - - - Height - An individual representing the property height. - - - - - - - - - - - - - - - - - - - - - - - A light source, which may be a lantern, a street light, a floodlight, a signal lamp or any other device whose primary purpose is the generation of light. (Definition taken from http://wiki.openstreetmap.org/wiki/Proposed_features/Key:light_source#Description) - - - Light - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sensor - - A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. -A device that has category saref:Sensor and performs a saref:SensingFunction. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A digital representation encapsulates a physical object accessible via Web services - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Digital representation - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - Property - An aspect of an entity that can be observable by a sensor. - - - - - Physical object - Any Object that has a proper space region. (Definition extracted from DUL ontology) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Temporal unit - - A temporal unit of measure, which provides a scale factor for a time quantity. - - - - Lamppost - A tall pole with a light at the top. - - - - - - - - - - - - - - - - - - - - - - - - - - - - Point - - A point, typically described using a coordinate system relative to Earth, such as WGS84. Uniquely identified by lat/long/alt. i.e. spaciallyIntersects(P1, P2) :- lat(P1, LAT), long(P1, LONG), alt(P1, ALT), at(P2, LAT), long(P2, LONG), alt(P2, ALT). sameThing(P1, P2) :- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2). - - - is projected from height - A relation between a light and the height measurement from which it is projected. - - - has color - A relation between a light emitted and its color. - - - has geometry - A relation between a light emitted and the shape it is projected in. - - - location - - The relation between something and the point, or other geometrical thing in space, where it is. For example, the realtionship between a radio tower and a Point with a given lat and long. Or a relationship between a park and its outline as a closed arc of points, or a road and its location as a arc (a sequence of points). Clearly in practice there will be limit to the accuracy of any such statement, but one would expect an accuracy appropriate for the size of the object and uses such as mapping . - - - has light point - A relation between a lamppost and its light points - - - affects property - A relation between an actuator with the property or properties it can act on - - - contains - A relation between a physical object and the physical objects that can be contained in it. - - - - - - uses communication interface - A relation between a system and the communication interface it uses. - - - measures property - https://w3id.org/saref# - A relation between a sensor and the property o properties it can take measurement about. - - - has transmission period - The relation between a device and the period in which it transmit information. - - - makes measurement - https://w3id.org/saref# - A relation between a sensor and the measurements it makes. Such measurement will link together the valur of the measurement, its unit of measure and the property to which it relates. - - - https://w3id.org/saref# - is measured in - A relation between a measurement and the unit of measure in which the measurement value is expressed. - - - has frequency measurement - The relation between a device and the frequency in which it makes measurements. - - - uses communication protocol - A relation between a system and the communication protocol it uses. - - - projects light - A relation between a lamppost or a light point and the light (or lights) they might project. - - - is projected in direction - A relation between a light and the direction in which it is projected. - - - is contained in - A relation between a physical object and the physical object in which it might be contained. - - - relates to property - https://w3id.org/saref# - A relation between a measurement and the property such measurement is about. - - - has value - - A relationship defining the value of a certain property, e.g., energy or power - - - has description - - A relationship providing a description of an entity (e.g., device) - - - has tag - A relationship stating the tags that can be assigned to an entity (e.g., a digital representation). - - - - has name - - A relationship providing the name of an entity (e.g., device) - - - has revision number - A relationship defining the revision number of a certain entity (e.g., a device) - - - - has manufacturer - - A relationship identifying the manufacturer of an entity (e.g., device) - - - has identifier - A relationship providing the identifier of an entity (e.g., digital representation) - - - - is component of - A relation between a system and the system it belongs to as a component. - - - - has component - A relation between a system and the system in which it might be decomposed. - - - - - is connected to - A relation between a system and the system to which it is connected. - - - - has flash - A relationship stating whether a light has flash. - - - - - encapsulates - A relation between a digital representation and the physical objects it represents. - - - - - - - has version - A relationship defining the version of a certain entity (e.g., a device) - - - - - has timestamp - https://w3id.org/saref# - A relationship stating the timestamp of an entity (e.g. a measurement). - - - - - is accesible through - The relation between a digital representation and the service which it is accesible through. - - - - has shield - A relationship stating whether a lamppost has a shield. - - - - - has creation date - A relationship defining the creation date of an entity (e.g., a digital representation). - - - - - has projection angle - A relationship defining the projection angle of an entity (e.g., a light). - - - - - has digital representation - A relation between a physical object and the digital representation in which it is encapsulated. - - - - Milimetre - - - - Kilometre - - - - Light absorption - An individual representing the light property light absorption. - - - - Reciprocal year - - - - Illuminance - An individual representing the light property illuminance. - - - - Decimetre - - - - Scattering of light - An individual representing the light property scattering of light. - - - - Reciprocal day - - - - Hertz - - - - Light magnitude - An individual representing the light property light magnitude. - - - - Centimetre - - - - Reflection of light - An individual representing the light property reflection of light. - - - - Fluorescence - An individual representing the light property fluorescence. - - - - Reciprocal second - - - - Luminiscence - An individual representing the light property luminiscence. - - - - Reciprocal hour - - - - Irradiance - An individual representing the light property irradiance. - - - - Phosphorescence - An individual representing the light property phosphorescence. - - - - Decametre - - - - Hectometre - - - - Metre - - - diff --git a/src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/saref4envi.ttl b/src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/saref4envi.ttl deleted file mode 100644 index a1fc97b..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4envi/v1.1.1/saref4envi.ttl +++ /dev/null @@ -1,960 +0,0 @@ -@prefix s4envi: . -@prefix geo: . -@prefix owl: . -@prefix rdf: . -@prefix xml: . -@prefix xsd: . -@prefix rdfs: . -@prefix time: . -@prefix vann: . -@prefix saref: . -@prefix dcterms: . - - a owl:Ontology ; - dcterms:title "SAREF extension for environment"@en ; - owl:versionInfo "1.1.1" ; - owl:versionIRI ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4envi#" ; - vann:preferredNamespacePrefix "s4envi" ; - dcterms:license ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:source ; - dcterms:source ; - dcterms:description "This ontology extends the SAREF ontology for the environment domain, specifically for the light pollution domain, including concepts like photometers, light, etc."@en ; - dcterms:publisher . - -################################################################# -# Object Properties -################################################################# - -### http://www.w3.org/2003/01/geo/wgs84_pos#location -geo:location rdf:type owl:ObjectProperty ; - rdfs:comment "The relation between something and the point, or other geometrical thing in space, where it is. For example, the realtionship between a radio tower and a Point with a given lat and long. Or a relationship between a park and its outline as a closed arc of points, or a road and its location as a arc (a sequence of points). Clearly in practice there will be limit to the accuracy of any such statement, but one would expect an accuracy appropriate for the size of the object and uses such as mapping ."@en ; - rdfs:isDefinedBy geo: ; - rdfs:label "location"@en . - - -### https://saref.etsi.org/saref4envi#affectsProperty -s4envi:affectsProperty rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between an actuator with the property or properties it can act on"@en ; - rdfs:label "affects property"@en . - - -### https://saref.etsi.org/saref4envi#contains -s4envi:contains rdf:type owl:ObjectProperty ; - owl:inverseOf s4envi:isContainedIn ; - rdfs:comment "A relation between a physical object and the physical objects that can be contained in it."@en ; - rdfs:label "contains"@en . - - -### https://saref.etsi.org/saref4envi#encapsulates -s4envi:encapsulates rdf:type owl:ObjectProperty ; - owl:inverseOf s4envi:hasDigitalRepresentation ; - rdf:type owl:FunctionalProperty ; - rdfs:comment "A relation between a digital representation and the physical objects it represents."@en ; - rdfs:label "encapsulates"@en . - - -### https://saref.etsi.org/saref4envi#hasColor -s4envi:hasColor rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a light emitted and its color."@en ; - rdfs:label "has color"@en . - - -### https://saref.etsi.org/saref4envi#hasComponent -s4envi:hasComponent rdf:type owl:ObjectProperty ; - owl:inverseOf s4envi:isComponentOf ; - rdf:type owl:TransitiveProperty ; - rdfs:comment "A relation between a system and the system in which it might be decomposed."@en ; - rdfs:label "has component"@en . - - -### https://saref.etsi.org/saref4envi#hasDigitalRepresentation -s4envi:hasDigitalRepresentation rdf:type owl:ObjectProperty , - owl:InverseFunctionalProperty ; - rdfs:comment "A relation between a physical object and the digital representation in which it is encapsulated."@en ; - rdfs:label "has digital representation"@en . - - -### https://saref.etsi.org/saref4envi#hasFrequencyMeasurement -s4envi:hasFrequencyMeasurement rdf:type owl:ObjectProperty ; - rdfs:comment "The relation between a device and the frequency in which it makes measurements."@en ; - rdfs:label "has frequency measurement"@en . - - -### https://saref.etsi.org/saref4envi#hasGeometry -s4envi:hasGeometry rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a light emitted and the shape it is projected in."@en ; - rdfs:label "has geometry"@en . - - -### https://saref.etsi.org/saref4envi#hasLightPoint -s4envi:hasLightPoint rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a lamppost and its light points"@en ; - rdfs:label "has light point"@en . - - -### https://saref.etsi.org/saref4envi#hasTransmissionPeriod -s4envi:hasTransmissionPeriod rdf:type owl:ObjectProperty ; - rdfs:comment "The relation between a device and the period in which it transmit information."@en ; - rdfs:label "has transmission period"@en . - - -### https://saref.etsi.org/saref4envi#isAccesibleThrough -s4envi:isAccesibleThrough rdf:type owl:ObjectProperty , - owl:FunctionalProperty ; - rdfs:comment "The relation between a digital representation and the service which it is accesible through."@en ; - rdfs:label "is accesible through"@en . - - -### https://saref.etsi.org/saref4envi#isComponentOf -s4envi:isComponentOf rdf:type owl:ObjectProperty , - owl:TransitiveProperty ; - rdfs:comment "A relation between a system and the system it belongs to as a component."@en ; - rdfs:label "is component of"@en . - - -### https://saref.etsi.org/saref4envi#isConnectedTo -s4envi:isConnectedTo rdf:type owl:ObjectProperty , - owl:SymmetricProperty ; - rdfs:comment "A relation between a system and the system to which it is connected."@en ; - rdfs:label "is connected to"@en . - - -### https://saref.etsi.org/saref4envi#isContainedIn -s4envi:isContainedIn rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a physical object and the physical object in which it might be contained."@en ; - rdfs:label "is contained in"@en . - - -### https://saref.etsi.org/saref4envi#isProjectedFromHeight -s4envi:isProjectedFromHeight rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a light and the height measurement from which it is projected."@en ; - rdfs:label "is projected from height"@en . - - -### https://saref.etsi.org/saref4envi#isProjectedInDirection -s4envi:isProjectedInDirection rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a light and the direction in which it is projected."@en ; - rdfs:label "is projected in direction"@en . - - -### https://saref.etsi.org/saref4envi#projectsLight -s4envi:projectsLight rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a lamppost or a light point and the light (or lights) they might project."@en ; - rdfs:label "projects light"@en . - - -### https://saref.etsi.org/saref4envi#usesCommunicationInterface -s4envi:usesCommunicationInterface rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a system and the communication interface it uses."@en ; - rdfs:label "uses communication interface"@en . - - -### https://saref.etsi.org/saref4envi#usesCommunicationProtocol -s4envi:usesCommunicationProtocol rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a system and the communication protocol it uses."@en ; - rdfs:label "uses communication protocol"@en . - - -### https://w3id.org/saref#isMeasuredIn -saref:isMeasuredIn rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a measurement and the unit of measure in which the measurement value is expressed."@en , - "is measured in"@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" . - - -### https://w3id.org/saref#makesMeasurement -saref:makesMeasurement rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a sensor and the measurements it makes. Such measurement will link together the valur of the measurement, its unit of measure and the property to which it relates."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "makes measurement"@en . - - -### https://w3id.org/saref#measuresProperty -saref:measuresProperty rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a sensor and the property o properties it can take measurement about."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "measures property"@en . - - -### https://w3id.org/saref#relatesToProperty -saref:relatesToProperty rdf:type owl:ObjectProperty ; - rdfs:comment "A relation between a measurement and the property such measurement is about."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "relates to property"@en . - - -################################################################# -# Data properties -################################################################# - -### https://saref.etsi.org/saref4envi#hasCreationDate -s4envi:hasCreationDate rdf:type owl:DatatypeProperty , - owl:FunctionalProperty ; - rdfs:range xsd:dateTime ; - rdfs:comment "A relationship defining the creation date of an entity (e.g., a digital representation)."@en ; - rdfs:label "has creation date"@en . - - -### https://saref.etsi.org/saref4envi#hasFlash -s4envi:hasFlash rdf:type owl:DatatypeProperty , - owl:FunctionalProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "A relationship stating whether a light has flash."@en ; - rdfs:label "has flash"@en . - - -### https://saref.etsi.org/saref4envi#hasIdentifier -s4envi:hasIdentifier rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship providing the identifier of an entity (e.g., digital representation)"@en ; - rdfs:label "has identifier"@en . - - -### https://saref.etsi.org/saref4envi#hasProjectionAngle -s4envi:hasProjectionAngle rdf:type owl:DatatypeProperty , - owl:FunctionalProperty ; - rdfs:range xsd:float ; - rdfs:comment "A relationship defining the projection angle of an entity (e.g., a light)."@en ; - rdfs:label "has projection angle"@en . - - -### https://saref.etsi.org/saref4envi#hasRevisionNumber -s4envi:hasRevisionNumber rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship defining the revision number of a certain entity (e.g., a device)"@en ; - rdfs:label "has revision number"@en . - - -### https://saref.etsi.org/saref4envi#hasShield -s4envi:hasShield rdf:type owl:DatatypeProperty , - owl:FunctionalProperty ; - rdfs:range xsd:boolean ; - rdfs:comment "A relationship stating whether a lamppost has a shield."@en ; - rdfs:label "has shield"@en . - - -### https://saref.etsi.org/saref4envi#hasTag -s4envi:hasTag rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship stating the tags that can be assigned to an entity (e.g., a digital representation)."@en ; - rdfs:label "has tag"@en . - - -### https://saref.etsi.org/saref4envi#hasVersion -s4envi:hasVersion rdf:type owl:DatatypeProperty , - owl:FunctionalProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relationship defining the version of a certain entity (e.g., a device)"@en ; - rdfs:label "has version"@en . - - -### https://w3id.org/saref#hasDescription -saref:hasDescription rdf:type owl:DatatypeProperty ; - rdfs:comment "A relationship providing a description of an entity (e.g., device)"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has description"@en . - - -### https://w3id.org/saref#hasManufacturer -saref:hasManufacturer rdf:type owl:DatatypeProperty ; - rdfs:comment "A relationship identifying the manufacturer of an entity (e.g., device)"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has manufacturer"@en . - - -### https://w3id.org/saref#hasName -saref:hasName rdf:type owl:DatatypeProperty ; - rdfs:comment "A relationship providing the name of an entity (e.g., device)"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has name"@en . - - -### https://w3id.org/saref#hasTimestamp -saref:hasTimestamp rdf:type owl:DatatypeProperty , - owl:FunctionalProperty ; - rdfs:range xsd:dateTime ; - rdfs:comment "A relationship stating the timestamp of an entity (e.g. a measurement)."@en ; - rdfs:isDefinedBy "https://w3id.org/saref#" ; - rdfs:label "has timestamp"@en . - - -### https://w3id.org/saref#hasValue -saref:hasValue rdf:type owl:DatatypeProperty ; - rdfs:comment "A relationship defining the value of a certain property, e.g., energy or power"@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "has value"@en . - - -################################################################# -# Classes -################################################################# - -### http://www.w3.org/2003/01/geo/wgs84_pos#Point -geo:Point rdf:type owl:Class ; - rdfs:comment "A point, typically described using a coordinate system relative to Earth, such as WGS84. Uniquely identified by lat/long/alt. i.e. spaciallyIntersects(P1, P2) :- lat(P1, LAT), long(P1, LONG), alt(P1, ALT), at(P2, LAT), long(P2, LONG), alt(P2, ALT). sameThing(P1, P2) :- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2)."@en ; - rdfs:isDefinedBy geo: ; - rdfs:label "Point"@en . - - -### http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing -geo:SpatialThing rdf:type owl:Class ; - owl:disjointWith s4envi:Color , - s4envi:CommunicationInterface , - s4envi:CommunicationProtocol , - s4envi:CompassDirection , - s4envi:DigitalRepresentation , - s4envi:Geometry , - saref:Measurement , - saref:Service ; - rdfs:comment "Anything with spatial extent, i.e. size, shape, or position. e.g. people, places, bowling balls, as well as abstract areas like cubes."@en ; - rdfs:isDefinedBy geo: ; - rdfs:label "Spatial thing"@en . - - -### http://www.w3.org/2006/time#TemporalUnit -time:TemporalUnit rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "A temporal unit of measure, which provides a scale factor for a time quantity."@en ; - rdfs:isDefinedBy time: ; - rdfs:label "Temporal unit"@en . - - -### https://saref.etsi.org/saref4envi#Actuator -s4envi:Actuator rdf:type owl:Class ; - rdfs:subClassOf s4envi:Device , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:affectsProperty ; - owl:allValuesFrom saref:Property - ] ; - rdfs:comment "Device that can act over at least one property."@en ; - rdfs:label "Actuator"@en . - - -### https://saref.etsi.org/saref4envi#Color -s4envi:Color rdf:type owl:Class ; - owl:disjointWith s4envi:CommunicationInterface , - s4envi:CommunicationProtocol , - s4envi:CompassDirection , - s4envi:DigitalRepresentation , - s4envi:Geometry , - s4envi:Light , - saref:Service , - saref:UnitOfMeasure ; - rdfs:comment "Color of the emitted light. It might be indicated by named colors or using other type of color values like hexadecimal for RGB, color temperature, etc."@en ; - rdfs:label "Color"@en . - - -### https://saref.etsi.org/saref4envi#CommunicationInterface -s4envi:CommunicationInterface rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasVersion ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasVersion ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] ; - owl:disjointWith s4envi:CommunicationProtocol , - s4envi:CompassDirection , - s4envi:DigitalRepresentation , - s4envi:Geometry , - s4envi:Light , - saref:Measurement , - saref:Property , - saref:UnitOfMeasure ; - rdfs:comment "An interface defines which primitive operations and services the lower layer makes available to the upper one, when referring to network layers. (Definition adapted from \"Tanenbaum, A. S. (2003). Computer networks, 4-th edition. ed: Prentice Hall.\")"@en ; - rdfs:label "Communication interface"@en . - - -### https://saref.etsi.org/saref4envi#CommunicationProtocol -s4envi:CommunicationProtocol rdf:type owl:Class ; - owl:disjointWith s4envi:CompassDirection , - s4envi:DigitalRepresentation , - s4envi:Geometry , - s4envi:Light , - saref:Measurement , - saref:Property , - saref:Service , - saref:UnitOfMeasure ; - rdfs:comment "A protocol is an agreement between the communicating parties on how communication is to proceed. (Definition taken from \"Tanenbaum, A. S. (2003). Computer networks, 4-th edition. ed: Prentice Hall.\")"@en ; - rdfs:label "Communication protocol"@en . - - -### https://saref.etsi.org/saref4envi#CompassDirection -s4envi:CompassDirection rdf:type owl:Class ; - owl:disjointWith s4envi:DigitalRepresentation , - s4envi:Geometry , - s4envi:Light , - saref:Measurement , - saref:Property , - saref:Service , - saref:UnitOfMeasure ; - rdfs:comment "The four cardinal directions or cardinal points are the directions of north, east, south, and west, commonly denoted by their initials: N, E, S, W. East and west are at right angles to north and south, with east being in the clockwise direction of rotation from north and west being directly opposite east. Intermediate points between the four cardinal directions form the points of the compass. (definition taken from https://en.wikipedia.org/wiki/Cardinal_direction)"@en ; - rdfs:label "Compass direction"@en . - - -### https://saref.etsi.org/saref4envi#Device -s4envi:Device rdf:type owl:Class ; - rdfs:subClassOf s4envi:System , - saref:Device , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasFrequencyMeasurement ; - owl:allValuesFrom s4envi:FrequencyMeasurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasTransmissionPeriod ; - owl:allValuesFrom s4envi:PeriodMeasurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:isContainedIn ; - owl:allValuesFrom s4envi:PhysicalObject - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasRevisionNumber ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasVersion ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasManufacturer ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasRevisionNumber ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasVersion ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] ; - rdfs:comment "A thing made or adapted for a particular purpose, especially a piece of mechanical or electronic equipment. For example ‘a measuring device’ (definition taken from https://en.oxforddictionaries.com/definition/device). In this ontology it refers to the devices for environmental purposes."@en ; - rdfs:label "Device"@en . - - -### https://saref.etsi.org/saref4envi#DigitalRepresentation -s4envi:DigitalRepresentation rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty s4envi:encapsulates ; - owl:allValuesFrom s4envi:PhysicalObject - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:isAccesibleThrough ; - owl:allValuesFrom saref:Service - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasCreationDate ; - owl:allValuesFrom xsd:dateTime - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasIdentifier ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasTag ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasName ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasCreationDate ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasIdentifier ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] ; - owl:disjointWith s4envi:Geometry , - s4envi:Light , - saref:Measurement , - saref:UnitOfMeasure ; - rdfs:comment "A digital representation encapsulates a physical object accessible via Web services"@en ; - rdfs:label "Digital representation"@en . - - -### https://saref.etsi.org/saref4envi#FrequencyMeasurement -s4envi:FrequencyMeasurement rdf:type owl:Class ; - rdfs:subClassOf saref:Measurement , - [ rdf:type owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:hasValue s4envi:Frequency - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4envi:FrequencyUnit - ] ; - rdfs:comment "Represents the measured value made over a frequency property. It is also linked to the frequency unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Frequency measurement"@en . - - -### https://saref.etsi.org/saref4envi#FrequencyUnit -s4envi:FrequencyUnit rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "Unit of measure for the quantity frequency."@en ; - rdfs:label "Frequency unit"@en . - - -### https://saref.etsi.org/saref4envi#Geometry -s4envi:Geometry rdf:type owl:Class ; - owl:disjointWith s4envi:Light , - saref:Measurement , - saref:Property , - saref:Service , - saref:UnitOfMeasure ; - rdfs:comment "Represents the shape of the light emission. It might be instantiated by individuals like \"spherical\", \"cylindrical\", etc. even though it is open to more comples representation of geometries using other vocabularies."@en ; - rdfs:label "Geometry"@en . - - -### https://saref.etsi.org/saref4envi#HeightMeasurement -s4envi:HeightMeasurement rdf:type owl:Class ; - rdfs:subClassOf saref:Measurement , - [ rdf:type owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:hasValue s4envi:Height - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4envi:LengthUnit - ] ; - rdfs:comment "Represents the measured value made over a height property. It is also linked to the height unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Height measurement"@en . - - -### https://saref.etsi.org/saref4envi#Lamppost -s4envi:Lamppost rdf:type owl:Class ; - rdfs:subClassOf s4envi:Device , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasLightPoint ; - owl:allValuesFrom s4envi:LightPoint - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:projectsLight ; - owl:allValuesFrom s4envi:Light - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasShield ; - owl:allValuesFrom xsd:boolean - ] ; - rdfs:comment "A tall pole with a light at the top."@en ; - rdfs:label "Lamppost"@en . - - -### https://saref.etsi.org/saref4envi#LengthUnit -s4envi:LengthUnit rdf:type owl:Class ; - rdfs:subClassOf saref:UnitOfMeasure ; - rdfs:comment "Unit of measure for the quantity lenght."@en ; - rdfs:label "Length unit"@en . - - -### https://saref.etsi.org/saref4envi#Light -s4envi:Light rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasColor ; - owl:allValuesFrom s4envi:Color - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasGeometry ; - owl:allValuesFrom s4envi:Geometry - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:isProjectedFromHeight ; - owl:allValuesFrom s4envi:HeightMeasurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:isProjectedInDirection ; - owl:allValuesFrom s4envi:CompassDirection - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasFlash ; - owl:allValuesFrom xsd:boolean - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasProjectionAngle ; - owl:allValuesFrom xsd:float - ] ; - owl:disjointWith saref:Measurement , - saref:Property , - saref:Service , - saref:UnitOfMeasure ; - rdfs:comment "A light source, which may be a lantern, a street light, a floodlight, a signal lamp or any other device whose primary purpose is the generation of light. (Definition taken from http://wiki.openstreetmap.org/wiki/Proposed_features/Key:light_source#Description)"@en ; - rdfs:label "Light"@en . - - -### https://saref.etsi.org/saref4envi#LightPoint -s4envi:LightPoint rdf:type owl:Class ; - rdfs:subClassOf geo:Point , - [ rdf:type owl:Restriction ; - owl:onProperty geo:location ; - owl:allValuesFrom geo:SpatialThing - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:projectsLight ; - owl:allValuesFrom s4envi:Light - ] ; - rdfs:comment "An spatial point from where a light is projected. It might belong to a lamppost."@en ; - rdfs:label "Light point"@en . - - -### https://saref.etsi.org/saref4envi#LightProperty -s4envi:LightProperty rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "An aspect of light that can be observable by a sensor."@en ; - rdfs:label "Light property"@en . - - -### https://saref.etsi.org/saref4envi#PeriodMeasurement -s4envi:PeriodMeasurement rdf:type owl:Class ; - rdfs:subClassOf saref:Measurement , - [ rdf:type owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:hasValue s4envi:Period - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass time:TemporalUnit - ] ; - rdfs:comment "Represents the measured value over a period property. It is also linked to the period unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Period measurement"@en . - - -### https://saref.etsi.org/saref4envi#Photometer -s4envi:Photometer rdf:type owl:Class ; - rdfs:subClassOf saref:Sensor , - [ rdf:type owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:someValuesFrom s4envi:LightProperty - ] ; - rdfs:comment "A photometer, generally, is an instrument that measures light intensity or optical properties of solutions or surfaces."@en ; - rdfs:label "Photometer"@en . - - -### https://saref.etsi.org/saref4envi#PhysicalObject -s4envi:PhysicalObject rdf:type owl:Class ; - rdfs:subClassOf geo:SpatialThing , - [ rdf:type owl:Restriction ; - owl:onProperty geo:location ; - owl:allValuesFrom geo:SpatialThing - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:contains ; - owl:allValuesFrom s4envi:PhysicalObject - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasDigitalRepresentation ; - owl:allValuesFrom s4envi:DigitalRepresentation - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:isContainedIn ; - owl:allValuesFrom s4envi:PhysicalObject - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasDescription ; - owl:allValuesFrom xsd:string - ] ; - rdfs:comment "Any Object that has a proper space region. (Definition extracted from DUL ontology)"@en ; - rdfs:label "Physical object"@en . - - -### https://saref.etsi.org/saref4envi#System -s4envi:System rdf:type owl:Class ; - rdfs:subClassOf s4envi:PhysicalObject , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:hasComponent ; - owl:allValuesFrom s4envi:System - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:isComponentOf ; - owl:allValuesFrom s4envi:System - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:isConnectedTo ; - owl:allValuesFrom s4envi:System - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:usesCommunicationInterface ; - owl:allValuesFrom s4envi:CommunicationInterface - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4envi:usesCommunicationProtocol ; - owl:allValuesFrom s4envi:CommunicationProtocol - ] ; - rdfs:comment "A group of related hardware units or programs or both, especially when dedicated to a single application. (Definition taken from https://en.oxforddictionaries.com/definition/system)"@en ; - rdfs:label "System"@en . - - -### https://saref.etsi.org/saref4envi#TESS -s4envi:TESS rdf:type owl:Class ; - rdfs:subClassOf s4envi:Photometer ; - rdfs:comment "The Telescope Encoder and Sky Sensor (TESS) is a Sky Brightness and Cloud detector developed as a device for a remote observatory. A TESS can observe the light magnitude and other properties as ambient temperature and sky temperature."@en ; - rdfs:label "TESS (Telescope Encoder and Sky Sensor)"@en . - - -### https://w3id.org/saref#Device -saref:Device rdf:type owl:Class ; - rdfs:comment "A tangible object designed to accomplish a particular task in households, common public buildings or offices. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs the start and stop function."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Device"@en . - - -### https://w3id.org/saref#Measurement -saref:Measurement rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:allValuesFrom saref:UnitOfMeasure - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:allValuesFrom saref:Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:isMeasuredIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:UnitOfMeasure - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:relatesToProperty ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass saref:Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasTimestamp ; - owl:allValuesFrom xsd:dateTime - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasValue ; - owl:allValuesFrom xsd:float - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasValue ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:float - ] ; - owl:disjointWith saref:Property , - saref:Service , - saref:UnitOfMeasure ; - rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ; - rdfs:label "Measurement"@en . - - -### https://w3id.org/saref#Property -saref:Property rdf:type owl:Class ; - owl:disjointWith saref:Service , - saref:UnitOfMeasure ; - rdfs:comment "An aspect of an entity that can be observable by a sensor."@en ; - rdfs:label "Property"@en . - - -### https://w3id.org/saref#Sensor -saref:Sensor rdf:type owl:Class ; - rdfs:subClassOf saref:Device , - [ rdf:type owl:Restriction ; - owl:onProperty saref:makesMeasurement ; - owl:allValuesFrom saref:Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:allValuesFrom saref:Property - ] ; - rdfs:comment """A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. -A device that has category saref:Sensor and performs a saref:SensingFunction."""@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Sensor"@en . - - -### https://w3id.org/saref#Service -saref:Service rdf:type owl:Class ; - owl:disjointWith saref:UnitOfMeasure ; - rdfs:comment "A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service, the function(s) to be represented, and the (input and output) parameters necessary to operate the service."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Service"@en . - - -### https://w3id.org/saref#UnitOfMeasure -saref:UnitOfMeasure rdf:type owl:Class ; - rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example, Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of the Smart Appliances ontology, but this list can be extended."@en ; - rdfs:isDefinedBy saref: ; - rdfs:label "Unit of measure"@en . - - -################################################################# -# Individuals -################################################################# - -### http://www.wurvoc.org/vocabularies/om-1.8/centimetre - rdf:type owl:NamedIndividual , - s4envi:LengthUnit ; - rdfs:label "Centimetre"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/decametre - rdf:type owl:NamedIndividual , - s4envi:LengthUnit ; - rdfs:label "Decametre"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/decimetre - rdf:type owl:NamedIndividual , - s4envi:LengthUnit ; - rdfs:label "Decimetre"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/hectometre - rdf:type owl:NamedIndividual , - s4envi:LengthUnit ; - rdfs:label "Hectometre"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/hertz - rdf:type owl:NamedIndividual , - s4envi:FrequencyUnit ; - rdfs:label "Hertz"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/kilometre - rdf:type owl:NamedIndividual , - s4envi:LengthUnit ; - rdfs:label "Kilometre"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/metre - rdf:type owl:NamedIndividual , - s4envi:LengthUnit ; - rdfs:label "Metre"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/millimetre - rdf:type owl:NamedIndividual , - s4envi:LengthUnit ; - rdfs:label "Milimetre"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_day - rdf:type owl:NamedIndividual , - s4envi:FrequencyUnit ; - rdfs:label "Reciprocal day"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_hour - rdf:type owl:NamedIndividual , - s4envi:FrequencyUnit ; - rdfs:label "Reciprocal hour"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_second-time - rdf:type owl:NamedIndividual , - s4envi:FrequencyUnit ; - rdfs:label "Reciprocal second"@en . - - -### http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_year - rdf:type owl:NamedIndividual , - s4envi:FrequencyUnit ; - rdfs:label "Reciprocal year"@en . - - -### https://saref.etsi.org/saref4envi#Fluorescence -s4envi:Fluorescence rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property fluorescence."@en ; - rdfs:label "Fluorescence"@en . - - -### https://saref.etsi.org/saref4envi#Frequency -s4envi:Frequency rdf:type owl:NamedIndividual , - saref:Property ; - rdfs:comment "An individual representing the property frequency."@en ; - rdfs:label "Frequency"@en . - - -### https://saref.etsi.org/saref4envi#Height -s4envi:Height rdf:type owl:NamedIndividual , - saref:Property ; - rdfs:comment "An individual representing the property height."@en ; - rdfs:label "Height"@en . - - -### https://saref.etsi.org/saref4envi#Illuminance -s4envi:Illuminance rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property illuminance."@en ; - rdfs:label "Illuminance"@en . - - -### https://saref.etsi.org/saref4envi#Irradiance -s4envi:Irradiance rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property irradiance."@en ; - rdfs:label "Irradiance"@en . - - -### https://saref.etsi.org/saref4envi#LightAbsorption -s4envi:LightAbsorption rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property light absorption."@en ; - rdfs:label "Light absorption"@en . - - -### https://saref.etsi.org/saref4envi#LightMagnitude -s4envi:LightMagnitude rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property light magnitude."@en ; - rdfs:label "Light magnitude"@en . - - -### https://saref.etsi.org/saref4envi#Luminiscence -s4envi:Luminiscence rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property luminiscence."@en ; - rdfs:label "Luminiscence"@en . - - -### https://saref.etsi.org/saref4envi#Period -s4envi:Period rdf:type owl:NamedIndividual , - saref:Property ; - rdfs:comment "An individual representing the property period."@en ; - rdfs:label "Period"@en . - - -### https://saref.etsi.org/saref4envi#Phosphorescence -s4envi:Phosphorescence rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property phosphorescence."@en ; - rdfs:label "Phosphorescence"@en . - - -### https://saref.etsi.org/saref4envi#ReflectionOfLight -s4envi:ReflectionOfLight rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property reflection of light."@en ; - rdfs:label "Reflection of light"@en . - - -### https://saref.etsi.org/saref4envi#ScatteringOfLight -s4envi:ScatteringOfLight rdf:type owl:NamedIndividual , - s4envi:LightProperty ; - rdfs:comment "An individual representing the light property scattering of light."@en ; - rdfs:label "Scattering of light"@en . - - -### Generated by the OWL API (version 4.2.6.20160910-2108) https://github.com/owlcs/owlapi diff --git a/src/main/resources/saref-portal-generator/public/saref4inma/desktop.ini b/src/main/resources/saref-portal-generator/public/saref4inma/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4inma/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4inma/latest/desktop.ini b/src/main/resources/saref-portal-generator/public/saref4inma/latest/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4inma/latest/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4inma/latest/saref4inma.html b/src/main/resources/saref-portal-generator/public/saref4inma/latest/saref4inma.html deleted file mode 100644 index 61089ed..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4inma/latest/saref4inma.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - SAREF4INMA: an extension of SAREF for the industry and manufacturing domain

    -

    Official ETSI documentation for SAREF4INMA v1.1.1
    This page will soon contain the documentation of the SAREF4INMA ontology v1.1.1

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    The documentation of SAREF4INMA v1.1.1 will be available here soon. The source of the ontology are available as Turtle or RDF/XML Visualize it with VOWL

    -
    -
    -
    -
    -

    SAREF4INMA is an extension of SAREF for the industry and manufacturing domain. SAREF4INMA focuses on extending SAREF for the industry and manufacturing domain to solve the lack of interoperability between various types of production equipment that produce items in a factory and, once outside the factory, between different organizations in the value chain to uniquely track back the produced items to the corresponding production equipment, batches, material and precise time in which they were manufactured. SAREF4INMA is specified and published by ETSI in the TS 103 410-5 associated to this ontology file. SAREF4INMA was created to be aligned with related initiatives in the smart industry and manufacturing domain in terms of modelling and standardization, such as the Reference Architecture Model for Industry 4.0 (RAMI), which combines several standards used by the various national initiatives in Europe that support digitalization in manufacturing. The full list of use cases, standards and requirements that guided the creation of SAREF4INMA are described in the associated ETSI TR 103 507.

    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4inma/latest/saref4inma.n3 b/src/main/resources/saref-portal-generator/public/saref4inma/latest/saref4inma.n3 deleted file mode 100644 index 9b34fb1..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4inma/latest/saref4inma.n3 +++ /dev/null @@ -1,518 +0,0 @@ -@prefix s4inma: . -@prefix rdf: . -@prefix owl: . -@prefix xml: . -@prefix s4bldg: . -@prefix saref: . -@prefix xsd: . -@prefix dcterms: . -@prefix skos: . -@prefix rdfs: . -@prefix time: . -@prefix vann: . - -s4inma:ID a owl:Class ; - rdfs:comment "A unique identifier."^^rdfs:Literal ; - rdfs:label "Identifier" ; - rdfs:subClassOf skos:ConceptScheme ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4inma:hasIDValue ; - owl:someValuesFrom xsd:string - ] . - -s4inma:hasGTIN13IDValue - a owl:DatatypeProperty ; - rdfs:label "has GTIN13ID value" ; - rdfs:range xsd:string ; - rdfs:subPropertyOf s4inma:hasIDValue . - -s4inma:GTIN8ID a owl:Class ; - rdfs:comment "GTIN-8 (EAN/UCC-8) is an 8-digit number used predominately outside of North America."^^rdfs:Literal ; - rdfs:label "GTIN18ID" ; - rdfs:subClassOf s4inma:ID . - -s4inma:ExpectedMeasurement - a owl:Class ; - rdfs:comment "Describes whether the measurement is expected (i.e., planned before the production process). Disjoint with ActualMeasurement." ; - rdfs:label "Expected measurement" ; - rdfs:subClassOf s4inma:Measurement . - -s4inma:hasIdentifier a owl:ObjectProperty ; - rdfs:comment "link between an entity and its unique identifier" ; - rdfs:label "has identifier" ; - rdfs:range s4inma:ID . - - - a owl:Class . - -saref:makesMeasurement - a owl:ObjectProperty . - -s4inma:Measurement a owl:Class ; - rdfs:comment "A subclass of saref:Measurement that represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. The saref4imna:Measurement can be linked to individual Batches or Items. Moreover, the Measurement can be an ExpectedMeasurement (i.e. the value which is planned) or the ActualMeasurement (i.e. the value measured during production), which enables to check for deviations between the planned and actual values." ; - rdfs:label "Measurement" ; - rdfs:subClassOf saref:Measurement ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( s4inma:Batch s4inma:Item ) - ] ; - owl:onProperty s4inma:hasFeatureOfInterest - ] . - -s4inma:Factory a owl:Class ; - rdfs:comment "A subclass of s4bldg:Building specialized for the purpose of SAREF4INMA, a factory represents one or more organizations sharing a definit mission, goals and objectives which provides an output such as a product (definition taken from IEC 62264). A factory can be divided in one or multiple sites. " ; - rdfs:label "Factory" ; - rdfs:subClassOf . - -s4inma:hasUpdate a owl:ObjectProperty ; - rdfs:comment "The newer version of a ItemCategory." ; - rdfs:label "has update" . - -saref:Measurement a owl:Class . - -saref:hasFunction a owl:ObjectProperty . - -s4inma:hasVersion a owl:DatatypeProperty ; - rdfs:comment "An item has a certain revision or version number, whereas a higher number indicates a newer version."^^rdfs:Literal ; - rdfs:label "has version" . - -dcterms:license a owl:AnnotationProperty . - -dcterms:source a owl:AnnotationProperty . - -s4inma:ProductionEquipmentFunction - a owl:Class ; - rdfs:label "Production equipment function" ; - rdfs:subClassOf saref:Function , owl:Thing . - -s4inma:isProducedBy a owl:ObjectProperty ; - rdfs:comment "Items are produced using certain types of ProductionEquipmentCategories, for example: welding machines or laser cutting machines." ; - rdfs:label "is produced by" ; - owl:inverseOf s4inma:produces . - -s4inma:hasGTIN14IDValue - a owl:DatatypeProperty ; - rdfs:label "has GTIN14ID" ; - rdfs:range xsd:string ; - rdfs:subPropertyOf s4inma:hasIDValue . - - - a owl:Class . - -s4inma:ActualMeasurement - a owl:Class ; - rdfs:comment "Describes whether the measurement is actually measured during the production process. Disjoint with ExpectedMeasurement." ; - rdfs:label "Actual measurement" ; - rdfs:subClassOf s4inma:Measurement ; - owl:disjointWith s4inma:ExpectedMeasurement . - -s4inma:needsEquipment - a owl:ObjectProperty ; - rdfs:comment "A relationship indicating that an entity needs a particular equipment to be produced" ; - rdfs:label "needs equipment" . - -dcterms:created a owl:AnnotationProperty . - -skos:ConceptScheme a owl:Class . - -dcterms:creator a owl:AnnotationProperty . - -s4inma:WorkCenter a owl:Class ; - rdfs:comment "A subclass of s4inma:ProductionEquipment (and therefore of s4bld:PhysicalObject). It is an equipment element under an area in a role-based equipment hierarchy that performs production, storage or material movement (definition taken from IEC 62264). An Area contains work centers." ; - rdfs:label "Work center" ; - rdfs:subClassOf s4inma:ProductionEquipment . - -dcterms:title a owl:AnnotationProperty . - -s4inma:hasGTIN8IDValue - a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:subPropertyOf s4inma:hasIDValue . - -s4inma:isFeatureOfInterestOf - a owl:ObjectProperty ; - rdfs:label "is feature of interest of" . - -s4inma:UUID a owl:Class ; - rdfs:comment "A universally unique identifier (UUID) is a 128-bit number used to identify items and is also known as: globally unique identifier (GUID). In its canonical textual representation, the sixteen octets of a UUID are represented as 32 hexadecimal (base 16) digits, displayed in five groups separated by hyphens, in the form 8-4-4-4-12 for a total of 36 characters (32 alphanumeric characters and four hyphens). UUID are documented in ISO/IEC 11578:1996 \"Information technology – Open Systems Interconnection – Remote Procedure Call (RPC)\" and in ITU-T Rec. X.667 | ISO/IEC 9834-8:2005." ; - rdfs:label "UUID" ; - rdfs:subClassOf s4inma:ID . - -s4inma:hasUUID a owl:ObjectProperty ; - rdfs:label "has UUID" ; - rdfs:range s4inma:UUID ; - rdfs:subPropertyOf s4inma:hasIdentifier . - -saref:Function a owl:Class . - -saref:measuresProperty - a owl:ObjectProperty . - -dcterms:contributor a owl:AnnotationProperty . - -s4inma:MaterialCategory - a owl:Class ; - rdfs:comment "A MaterialCategory describes a category of material in terms of its static properties. Examples are: a certain category of steel or plastic. Each MaterialCategory can have multiple related MaterialBatches, which represent the physical material. The essential properties of the material in all MaterialBatches are the same. However, each batch might use different MaterialBatches and/or different ProductionEquipment. Therefore, small deviations between batches might occur, while the essential properties of the material related to an MaterialCategory are similar." ; - rdfs:label "Material category" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:MaterialBatch ; - owl:onProperty s4inma:isCategoryOf - ] . - -dcterms:publisher a owl:AnnotationProperty . - -saref:State a owl:Class . - -s4inma:hasGTIN8ID a owl:ObjectProperty ; - rdfs:label "has GTIN8ID" ; - rdfs:range s4inma:GTIN8ID ; - rdfs:subPropertyOf s4inma:hasIdentifier . - -s4inma:hasIDValue a owl:DatatypeProperty ; - rdfs:comment "A relation to express the value of an indentifier as a string (it can be used as alternative to or in combination with the s4inma:hasIdentifier object property " ; - rdfs:label "has identifier value" ; - rdfs:range xsd:string . - -s4inma:ProductionEquipmentCategory - a owl:Class ; - rdfs:comment "A ProductionEquipmentCategory represents a certain type of production equipment, which is generally static over time. More concretely, the ProductionEquipmentCategory represents a certain model and brand of a production equipment. Each ProductionEquipmentCategory can have multiple related ProductionEquipment, which represent the actual individual machines. Moreover, each ItemCategory can be produced by multiple ProductionEquipmentCategories."^^rdfs:Literal ; - rdfs:label "Production equipment category" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4inma:hasModelNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ProductionEquipment ; - owl:onProperty s4inma:isCategoryOf - ] . - -s4inma:Item a owl:Class ; - rdfs:comment "A tangible object which can be unique identified, for example, with a GTIN in the form of a barcode/QR/RFID tag. An item product can be the result of the organization's production process (i.e. outflow of objects/goods) or can be uniquely identifiable material (i.e. inflow of objects/supplies). Each item is part of exactly one ItemBatch, whereas each ItemBatch contains only Items which have similar properties. An item can consists of multiple Batches and other Items (i.e. subassemblies)."^^rdfs:Literal ; - rdfs:label "Item" ; - rdfs:subClassOf saref:FeatureOfInterest ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ItemBatch ; - owl:onProperty s4inma:isCreatedIn - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass s4inma:ItemBatch ; - owl:onProperty s4inma:isCreatedIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:Item ; - owl:onProperty s4inma:consistsOfItem - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4inma:hasSerialNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ID ; - owl:onProperty s4inma:hasIdentifier - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4inma:hasIdentifier ; - owl:someValuesFrom s4inma:ID - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:Measurement ; - owl:onProperty s4inma:isFeatureOfInterestOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4inma:hasIDValue - ] . - -s4inma:consistsOfBatch - a owl:ObjectProperty ; - rdfs:comment "A relation to express that a batch can recursively consists of other batches" ; - rdfs:label "consists of batch" . - -s4inma:hasFeatureOfInterest - a owl:ObjectProperty ; - rdfs:label "has feature of interest" ; - owl:inverseOf s4inma:isFeatureOfInterestOf . - -s4inma:Area a owl:Class ; - rdfs:comment "A subclass of s4bldg:BuildingSpace used to define the physical spaces of the building. According to IEC 62264, areas are physical, geographical or logical groupings of resources determined by the site. A site can be divided in areas, whereas areas contain work centers.s." ; - rdfs:label "Area" ; - rdfs:subClassOf . - -s4inma:ItemBatch a owl:Class ; - rdfs:comment "A uniform collection of tangible objects which are relevant for the prodcution process. The ItemBatch consists of a set of objects with similar properties (e.g. a certain type of sensors or metal sheets). The difference between ItemBatch and MaterialBatch is that individual items can be traced in a ItemBatch, whereas this is not possible in a MaterialBatch, meaning that, for example, it is possible to trace the individual metal sheet used in a ItemBatch. This implies that the objects in an ItemBatch have an unique identifier (e.g. a GTIN code in the form of a barcode/QR-code or RFID tag)."^^rdfs:Literal ; - rdfs:label "Item Batch" ; - rdfs:subClassOf s4inma:Batch ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:Item ; - owl:onProperty s4inma:creates - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ItemCategory ; - owl:onProperty s4inma:belongsToCategory - ] . - -saref:hasState a owl:ObjectProperty ; - rdfs:label "has state" . - -s4inma: a owl:Ontology ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:contributor "Alba Fernandez Izquierdo, UPM" , "Matthijs Punter, TNO" ; - dcterms:contributor , , , , ; - dcterms:created "2015-03-29"^^xsd:date ; - dcterms:description "SAREF4INMA is an extension of SAREF for the industry and manufacturing domain. SAREF4INMA focuses on extending SAREF for the industry and manufacturing domain to solve the lack of interoperability between various types of production equipment that produce items in a factory and, once outside the factory, between different organizations in the value chain to uniquely track back the produced items to the corresponding production equipment, batches, material and precise time in which they were manufactured. SAREF4INMA is specified and published by ETSI in the TS 103 410-5 associated to this ontology file. SAREF4INMA was created to be aligned with related initiatives in the smart industry and manufacturing domain in terms of modelling and standardization, such as the Reference Architecture Model for Industry 4.0 (RAMI), which combines several standards used by the various national initiatives in Europe that support digitalization in manufacturing. The full list of use cases, standards and requirements that guided the creation of SAREF4INMA are described in the associated ETSI TR 103 507. " ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:modified "2019-04-30"^^xsd:date ; - dcterms:publisher ; - dcterms:source , ; - dcterms:title "SAREF4INMA: an extension of SAREF for the industry and manufacturing domain"@en ; - vann:preferredNamespacePrefix "s4inma" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4inma#" ; - owl:versionIRI ; - owl:versionInfo "1.1.1" . - -s4inma:hasGTIN14ID a owl:ObjectProperty ; - rdfs:label "has GTIN14ID" ; - rdfs:range s4inma:GTIN14ID ; - rdfs:subPropertyOf s4inma:hasIdentifier . - -s4inma:hasModelNumber - a owl:DatatypeProperty ; - rdfs:comment "A relation to express the model number of a certain object (item, product, equipment, etc.) " ; - rdfs:label "has model number" . - -s4inma:Site a owl:Class ; - rdfs:comment "A subclass of s4bldg:BuildingSpace used to define the physical spaces of the building. According to IEC 62264, sites are identified physical, geographical, and/or logical component groupings of a manufacturing enterprise. A factory can be divided in sites, whereas sites can be divided areas" ; - rdfs:label "Site" ; - rdfs:subClassOf . - -s4inma:hasGTIN13ID a owl:ObjectProperty ; - rdfs:label "has GTIN13ID" ; - rdfs:range s4inma:GTIN13ID ; - rdfs:subPropertyOf s4inma:hasIdentifier . - -[ a owl:AllDisjointClasses ; - owl:members ( s4inma:Area s4inma:Site s4inma:WorkCenter ) -] . - -s4inma:isCategoryOf a owl:ObjectProperty ; - rdfs:label "is category of" . - -s4inma:produces a owl:ObjectProperty ; - rdfs:comment "ProductionEquipmentCategory, such as welding machines or laser cutting machines, produce certain categories of items (inverse of s4inma:isProducedBy)" ; - rdfs:label "produces" . - -s4inma:hasGTIN12ID a owl:ObjectProperty ; - rdfs:label "has GTIN12ID " ; - rdfs:range s4inma:GTIN12ID ; - rdfs:subPropertyOf s4inma:hasIdentifier . - -s4inma:creates a owl:ObjectProperty ; - rdfs:comment "A relation between a production process (e.g., Batch) that creates one or more tangible objects (e.g., Items)" ; - rdfs:label "creates" ; - owl:inverseOf s4inma:isCreatedIn . - -s4inma:Batch a owl:Class ; - rdfs:comment "A uniform collection of tangible objects or Lot. This can either be a collection of produced items (i.e. the outflow of products) or a collection of raw material or required material (i.e. the inflow of products). It is assumed that the objects in a batch are similar and thus have shared attributes. Note that this definition is broader than the definition in IEC 61512, which defines a batch as the material that is being produced (whereas in SAREF4INMA a batch can be items or materials). " ; - rdfs:label "Batch" ; - rdfs:subClassOf saref:FeatureOfInterest , owl:Thing ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ID ; - owl:onProperty s4inma:hasIdentifier - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ProductionEquipment ; - owl:onProperty s4inma:needsEquipment - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:Measurement ; - owl:onProperty s4inma:isFeatureOfInterestOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:Batch ; - owl:onProperty s4inma:consistsOfBatch - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4inma:Size ; - owl:onProperty s4inma:hasSize - ] . - -s4inma:ItemCategory a owl:Class ; - rdfs:comment "An ItemCategory describes a single type of item in terms of its static properties. Each ItemCategory can have multiple related ItemBatches, which all contain individual Items. The essential properties of each Item in all ItemBatches are the same. However, each batch might use different MaterialBatches and/or different ProductionEquipment. Therefore, small deviations between batches might occur, while the essential properties of all Items related to an ItemCategory are similar." ; - rdfs:label "Item category" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ItemCategory ; - owl:onProperty s4inma:hasUpdate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ID ; - owl:onProperty s4inma:hasIdentifier - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ItemBatch ; - owl:onProperty s4inma:isCategoryOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4inma:hasModelNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4inma:hasVersion - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4inma:hasIdentifier ; - owl:someValuesFrom s4inma:ID - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ProductionEquipmentCategory ; - owl:onProperty s4inma:isProducedBy - ] . - -saref:FeatureOfInterest - a owl:Class . - -s4inma:hasUUIDValue a owl:DatatypeProperty ; - rdfs:label "has UUID value" ; - rdfs:range xsd:string ; - rdfs:subPropertyOf s4inma:hasIDValue . - - - a owl:Class . - -s4inma:consistsOfItem - a owl:ObjectProperty ; - rdfs:comment "A relation to express that an item can recursively consists of other Items" ; - rdfs:label "consists of item" . - -dcterms:modified a owl:AnnotationProperty . - -s4inma:hasGTIN12IDValue - a owl:DatatypeProperty ; - rdfs:label "has GTIN12ID value" ; - rdfs:range xsd:string ; - rdfs:subPropertyOf s4inma:hasIDValue . - -dcterms:issued a owl:AnnotationProperty . - -s4inma:hasIRDIValue a owl:DatatypeProperty ; - rdfs:label "has IRDI" ; - rdfs:range xsd:string ; - rdfs:subPropertyOf s4inma:hasIDValue . - -owl:maxQualifiedCardinality - a owl:AnnotationProperty . - -s4inma:isCreatedIn a owl:ObjectProperty ; - rdfs:comment "An Item is created in an ItemBatch." ; - rdfs:label "is created in" . - -dcterms:description a owl:AnnotationProperty . - -s4inma:Size a owl:Class ; - rdfs:comment "The amount of certain objects in a collection (e.g., size of a material batch)." ; - rdfs:label "Size" ; - rdfs:subClassOf saref:Property . - -s4inma:MaterialBatch a owl:Class ; - rdfs:comment "A uniform collection of tangible raw material which are relevant for the prodcution process. The MaterialBatch can consists of a set of objects with similar properties (e.g. a certain type of screws) or a stock of homogeen material (e.g. oil, water). The difference between MaterialBatch and ItemBatch is that individual items cannot be traced in a MaterialBatch, whereas this is possible in an ItemBatch, meaning that, for example, it is not possible to trace the individual screw used in a MaterialBatch."^^rdfs:Literal ; - rdfs:label "Material Batch" ; - rdfs:subClassOf s4inma:Batch ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4inma:hasCertificate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:MaterialCategory ; - owl:onProperty s4inma:belongsToCategory - ] . - -s4inma:GTIN14ID a owl:Class ; - rdfs:comment "GTIN-14 (EAN/UCC-14 or ITF-14 or also known as ITF Symbol, SCC-14, DUN-14, UPC Case Code, UPC Shipping Container Code, UCC Code 128, EAN Code 128) is a 14-digit number used to identify trade items at various packaging levels." ; - rdfs:label "GTIN14ID" ; - rdfs:subClassOf s4inma:ID . - -s4inma:hasSize a owl:ObjectProperty ; - rdfs:comment "A relationship to count the amount of certain objects in a collection (e.g., size of a material batch)" ; - rdfs:label "has size" . - -s4inma:hasCertificate - a owl:DatatypeProperty ; - rdfs:comment "The MaterialBatch can contain material quality certificates, for example a NEN 10204:2004 3.1 steel certificate."^^rdfs:Literal ; - rdfs:label "has certificate" ; - rdfs:range xsd:string . - -saref:Property a owl:Class . - -s4inma:GTIN13ID a owl:Class ; - rdfs:comment "GTIN-13 (EAN/UCC-13) is a 13-digit number used predominately outside of North America" ; - rdfs:label "GTIN13ID" ; - rdfs:subClassOf s4inma:ID . - -s4inma:IRDI a owl:Class ; - rdfs:comment "International Registration Data Identifier (IRDI) is based on the international standards ISO/IEC 11179-6, ISO 29002 and ISO 6532 and used in eCl@ss and the Asset Administration Shell as unique identifier."^^rdfs:Literal ; - rdfs:label "IRDI" ; - rdfs:subClassOf s4inma:ID . - -s4inma:hasIRDI a owl:ObjectProperty ; - rdfs:label "has IRDI" ; - rdfs:range s4inma:IRDI ; - rdfs:subPropertyOf s4inma:hasIdentifier . - -s4inma:ProductionEquipment - a owl:Class ; - rdfs:comment "A production equipment is a specialization of a saref:Device and s4bldg:PhysicalObject that can produce items in a manufacturing process. This class represents an individual production equipment device and includes their specification in terms of functions, states and services. Different types of machines can be defined under this class as needed, for example, LaserCuttingMachine (i.e., a type of production equipment to cut steel material), MillingMachine (i.e., to drill holes in steel material), MouldingMachine (i.e., to mold liquid material, such as iron or plastic, and let it harden in a certain shape), WeldingMachine (i.e., join parts of material, such as steel, together), etc." ; - rdfs:label "ProductionEquipment" ; - rdfs:subClassOf , saref:Device ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ID ; - owl:onProperty s4inma:hasIdentifier - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:State ; - owl:onProperty saref:hasState - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ProductionEquipmentCategory ; - owl:onProperty s4inma:belongsToCategory - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:measuresProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:Measurement ; - owl:onProperty saref:makesMeasurement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ProductionEquipmentFunction ; - owl:onProperty saref:hasFunction - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4inma:hasIDValue - ] . - -s4inma:belongsToCategory - a owl:ObjectProperty ; - rdfs:comment "Link between an entity and its category" ; - rdfs:label "belongs to category" ; - owl:inverseOf s4inma:isCategoryOf . - -s4inma:hasSerialNumber - a owl:DatatypeProperty ; - rdfs:comment "A relation to describe the serial number of a certain Item, which is unique per Item." ; - rdfs:label "has serial number" . - -s4inma:GTIN12ID a owl:Class ; - rdfs:comment "GTIN-12 (UPC-A) is a 12-digit number used primarily in North America" ; - rdfs:label "GTIN12ID" ; - rdfs:subClassOf s4inma:ID . - -saref:Device a owl:Class . diff --git a/src/main/resources/saref-portal-generator/public/saref4inma/latest/saref4inma.rdf b/src/main/resources/saref-portal-generator/public/saref4inma/latest/saref4inma.rdf deleted file mode 100644 index 8166416..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4inma/latest/saref4inma.rdf +++ /dev/null @@ -1,693 +0,0 @@ - - - Alba Fernandez Izquierdo, UPM - - - 2015-03-29 - - 2019-04-30 - 1.1.1 - SAREF4INMA: an extension of SAREF for the industry and manufacturing domain - Matthijs Punter, TNO - This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge. - - - - - - - s4inma - https://saref.etsi.org/saref4inma# - 2019-06-11 - - SAREF4INMA is an extension of SAREF for the industry and manufacturing domain. SAREF4INMA focuses on extending SAREF for the industry and manufacturing domain to solve the lack of interoperability between various types of production equipment that produce items in a factory and, once outside the factory, between different organizations in the value chain to uniquely track back the produced items to the corresponding production equipment, batches, material and precise time in which they were manufactured. SAREF4INMA is specified and published by ETSI in the TS 103 410-5 associated to this ontology file. SAREF4INMA was created to be aligned with related initiatives in the smart industry and manufacturing domain in terms of modelling and standardization, such as the Reference Architecture Model for Industry 4.0 (RAMI), which combines several standards used by the various national initiatives in Europe that support digitalization in manufacturing. The full list of use cases, standards and requirements that guided the creation of SAREF4INMA are described in the associated ETSI TR 103 507. - - - - - - - - - - - - - - - - - - - - - - - A uniform collection of tangible objects or Lot. This can either be a collection of produced items (i.e. the outflow of products) or a collection of raw material or required material (i.e. the inflow of products). It is assumed that the objects in a batch are similar and thus have shared attributes. Note that this definition is broader than the definition in IEC 61512, which defines a batch as the material that is being produced (whereas in SAREF4INMA a batch can be items or materials). - Batch - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - Site - A subclass of s4bldg:BuildingSpace used to define the physical spaces of the building. According to IEC 62264, sites are identified physical, geographical, and/or logical component groupings of a manufacturing enterprise. A factory can be divided in sites, whereas sites can be divided areas - - - - - - Item Batch - A uniform collection of tangible objects which are relevant for the prodcution process. The ItemBatch consists of a set of objects with similar properties (e.g. a certain type of sensors or metal sheets). The difference between ItemBatch and MaterialBatch is that individual items can be traced in a ItemBatch, whereas this is not possible in a MaterialBatch, meaning that, for example, it is possible to trace the individual metal sheet used in a ItemBatch. This implies that the objects in an ItemBatch have an unique identifier (e.g. a GTIN code in the form of a barcode/QR-code or RFID tag). - - - - - - - - - - - - - - - - - - - - - - - - - Measurement - A subclass of saref:Measurement that represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. The saref4imna:Measurement can be linked to individual Batches or Items. Moreover, the Measurement can be an ExpectedMeasurement (i.e. the value which is planned) or the ActualMeasurement (i.e. the value measured during production), which enables to check for deviations between the planned and actual values. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A production equipment is a specialization of a saref:Device and s4bldg:PhysicalObject that can produce items in a manufacturing process. This class represents an individual production equipment device and includes their specification in terms of functions, states and services. Different types of machines can be defined under this class as needed, for example, LaserCuttingMachine (i.e., a type of production equipment to cut steel material), MillingMachine (i.e., to drill holes in steel material), MouldingMachine (i.e., to mold liquid material, such as iron or plastic, and let it harden in a certain shape), WeldingMachine (i.e., join parts of material, such as steel, together), etc. - - - - - - - - - ProductionEquipment - - - Material category - A MaterialCategory describes a category of material in terms of its static properties. Examples are: a certain category of steel or plastic. Each MaterialCategory can have multiple related MaterialBatches, which represent the physical material. The essential properties of the material in all MaterialBatches are the same. However, each batch might use different MaterialBatches and/or different ProductionEquipment. Therefore, small deviations between batches might occur, while the essential properties of the material related to an MaterialCategory are similar. - - - - - - - - - - - - - GTIN13ID - GTIN-13 (EAN/UCC-13) is a 13-digit number used predominately outside of North America - - - - - - Factory - A subclass of s4bldg:Building specialized for the purpose of SAREF4INMA, a factory represents one or more organizations sharing a definit mission, goals and objectives which provides an output such as a product (definition taken from IEC 62264). A factory can be divided in one or multiple sites. - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - 1 - - - - - - A tangible object which can be unique identified, for example, with a GTIN in the form of a barcode/QR/RFID tag. An item product can be the result of the organization's production process (i.e. outflow of objects/goods) or can be uniquely identifiable material (i.e. inflow of objects/supplies). Each item is part of exactly one ItemBatch, whereas each ItemBatch contains only Items which have similar properties. An item can consists of multiple Batches and other Items (i.e. subassemblies). - Item - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - An ItemCategory describes a single type of item in terms of its static properties. Each ItemCategory can have multiple related ItemBatches, which all contain individual Items. The essential properties of each Item in all ItemBatches are the same. However, each batch might use different MaterialBatches and/or different ProductionEquipment. Therefore, small deviations between batches might occur, while the essential properties of all Items related to an ItemCategory are similar. - Item category - - - - - - - - - - - - - - - - - - - - - - - Production equipment category - A ProductionEquipmentCategory represents a certain type of production equipment, which is generally static over time. More concretely, the ProductionEquipmentCategory represents a certain model and brand of a production equipment. Each ProductionEquipmentCategory can have multiple related ProductionEquipment, which represent the actual individual machines. Moreover, each ItemCategory can be produced by multiple ProductionEquipmentCategories. - - - - 1 - - - - - - - - - - - - - - - - Actual measurement - Describes whether the measurement is actually measured during the production process. Disjoint with ExpectedMeasurement. - - - - - - - Material Batch - A uniform collection of tangible raw material which are relevant for the prodcution process. The MaterialBatch can consists of a set of objects with similar properties (e.g. a certain type of screws) or a stock of homogeen material (e.g. oil, water). The difference between MaterialBatch and ItemBatch is that individual items cannot be traced in a MaterialBatch, whereas this is possible in an ItemBatch, meaning that, for example, it is not possible to trace the individual screw used in a MaterialBatch. - - - - - - - - - - - - - - - - - - - - Identifier - A unique identifier. - - - - - - - - - - - - - - - Production equipment function - - - - - Work center - A subclass of s4inma:ProductionEquipment (and therefore of s4bld:PhysicalObject). It is an equipment element under an area in a role-based equipment hierarchy that performs production, storage or material movement (definition taken from IEC 62264). An Area contains work centers. - - - - Expected measurement - Describes whether the measurement is expected (i.e., planned before the production process). Disjoint with ActualMeasurement. - - - - GTIN12ID - GTIN-12 (UPC-A) is a 12-digit number used primarily in North America - - - - UUID - A universally unique identifier (UUID) is a 128-bit number used to identify items and is also known as: globally unique identifier (GUID). In its canonical textual representation, the sixteen octets of a UUID are represented as 32 hexadecimal (base 16) digits, displayed in five groups separated by hyphens, in the form 8-4-4-4-12 for a total of 36 characters (32 alphanumeric characters and four hyphens). UUID are documented in ISO/IEC 11578:1996 "Information technology – Open Systems Interconnection – Remote Procedure Call (RPC)" and in ITU-T Rec. X.667 | ISO/IEC 9834-8:2005. - - - - IRDI - International Registration Data Identifier (IRDI) is based on the international standards ISO/IEC 11179-6, ISO 29002 and ISO 6532 and used in eCl@ss and the Asset Administration Shell as unique identifier. - - - - Area - A subclass of s4bldg:BuildingSpace used to define the physical spaces of the building. According to IEC 62264, areas are physical, geographical or logical groupings of resources determined by the site. A site can be divided in areas, whereas areas contain work centers.s. - - - - GTIN14ID - GTIN-14 (EAN/UCC-14 or ITF-14 or also known as ITF Symbol, SCC-14, DUN-14, UPC Case Code, UPC Shipping Container Code, UCC Code 128, EAN Code 128) is a 14-digit number used to identify trade items at various packaging levels. - - - - GTIN18ID - GTIN-8 (EAN/UCC-8) is an 8-digit number used predominately outside of North America. - - - - Size - The amount of certain objects in a collection (e.g., size of a material batch). - - - - has size - A relationship to count the amount of certain objects in a collection (e.g., size of a material batch) - - - is feature of interest of - - - consists of item - A relation to express that an item can recursively consists of other Items - - - produces - ProductionEquipmentCategory, such as welding machines or laser cutting machines, produce certain categories of items (inverse of s4inma:isProducedBy) - - - has GTIN13ID - - - - - - - has identifier - link between an entity and its unique identifier - - - - has GTIN12ID - - - - - creates - A relation between a production process (e.g., Batch) that creates one or more tangible objects (e.g., Items) - - - - - - needs equipment - A relationship indicating that an entity needs a particular equipment to be produced - - - has GTIN14ID - - - - - has GTIN8ID - - - - - is category of - - - belongs to category - Link between an entity and its category - - - - is produced by - Items are produced using certain types of ProductionEquipmentCategories, for example: welding machines or laser cutting machines. - - - - has state - - - is created in - An Item is created in an ItemBatch. - - - has IRDI - - - - - has feature of interest - - - - has UUID - - - - - consists of batch - A relation to express that a batch can recursively consists of other batches - - - has update - The newer version of a ItemCategory. - - - has UUID value - - - - - - - has identifier value - A relation to express the value of an indentifier as a string (it can be used as alternative to or in combination with the s4inma:hasIdentifier object property - - - - has GTIN13ID value - - - - - has serial number - A relation to describe the serial number of a certain Item, which is unique per Item. - - - has GTIN14ID - - - - - has version - An item has a certain revision or version number, whereas a higher number indicates a newer version. - - - has IRDI - - - - - - - - - has certificate - The MaterialBatch can contain material quality certificates, for example a NEN 10204:2004 3.1 steel certificate. - - - - has model number - A relation to express the model number of a certain object (item, product, equipment, etc.) - - - has GTIN12ID value - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/saref-portal-generator/public/saref4inma/latest/saref4inma.ttl b/src/main/resources/saref-portal-generator/public/saref4inma/latest/saref4inma.ttl deleted file mode 100644 index 0c0dc9c..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4inma/latest/saref4inma.ttl +++ /dev/null @@ -1,690 +0,0 @@ -@prefix dcterms: . -@prefix owl: . -@prefix rdf: . -@prefix xml: . -@prefix xsd: . -@prefix rdfs: . -@prefix skos: . -@prefix time: . -@prefix vann: . -@prefix saref: . -@prefix s4bldg: . -@prefix s4inma: . - - a owl:Ontology ; - dcterms:title "SAREF4INMA: an extension of SAREF for the industry and manufacturing domain"@en ; - owl:versionInfo "1.1.1" ; - owl:versionIRI ; - dcterms:created "2015-03-29"^^xsd:date ; - dcterms:modified "2019-04-30"^^xsd:date ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:contributor ; - dcterms:contributor "Matthijs Punter, TNO"^^xsd:string ; - dcterms:contributor ; - dcterms:contributor "Alba Fernandez Izquierdo, UPM"^^xsd:string ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4inma#" ; - vann:preferredNamespacePrefix "s4inma" ; - dcterms:license ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:source ; - dcterms:source ; - dcterms:description "SAREF4INMA is an extension of SAREF for the industry and manufacturing domain. SAREF4INMA focuses on extending SAREF for the industry and manufacturing domain to solve the lack of interoperability between various types of production equipment that produce items in a factory and, once outside the factory, between different organizations in the value chain to uniquely track back the produced items to the corresponding production equipment, batches, material and precise time in which they were manufactured. SAREF4INMA is specified and published by ETSI in the TS 103 410-5 associated to this ontology file. SAREF4INMA was created to be aligned with related initiatives in the smart industry and manufacturing domain in terms of modelling and standardization, such as the Reference Architecture Model for Industry 4.0 (RAMI), which combines several standards used by the various national initiatives in Europe that support digitalization in manufacturing. The full list of use cases, standards and requirements that guided the creation of SAREF4INMA are described in the associated ETSI TR 103 507. "^^xsd:string ; - dcterms:publisher . - - -################################################################# -# Annotation properties -################################################################# - -### http://purl.org/dc/terms/contributor -dcterms:contributor rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/created -dcterms:created rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/creator -dcterms:creator rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/description -dcterms:description rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/issued -dcterms:issued rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/license -dcterms:license rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/modified -dcterms:modified rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/publisher -dcterms:publisher rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/source -dcterms:source rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/title -dcterms:title rdf:type owl:AnnotationProperty . - - -### http://www.w3.org/2002/07/owl#maxQualifiedCardinality -owl:maxQualifiedCardinality rdf:type owl:AnnotationProperty . - - -################################################################# -# Object Properties -################################################################# - -### https://saref.etsi.org/saref4inma#belongsToCategory -s4inma:belongsToCategory rdf:type owl:ObjectProperty ; - owl:inverseOf s4inma:isCategoryOf ; - rdfs:comment "Link between an entity and its category" ; - rdfs:label "belongs to category" . - - -### https://saref.etsi.org/saref4inma#consistsOfBatch -s4inma:consistsOfBatch rdf:type owl:ObjectProperty ; - rdfs:comment "A relation to express that a batch can recursively consists of other batches"^^xsd:string ; - rdfs:label "consists of batch" . - - -### https://saref.etsi.org/saref4inma#consistsOfItem -s4inma:consistsOfItem rdf:type owl:ObjectProperty ; - rdfs:comment "A relation to express that an item can recursively consists of other Items"^^xsd:string ; - rdfs:label "consists of item" . - - -### https://saref.etsi.org/saref4inma#creates -s4inma:creates rdf:type owl:ObjectProperty ; - owl:inverseOf s4inma:isCreatedIn ; - rdfs:comment "A relation between a production process (e.g., Batch) that creates one or more tangible objects (e.g., Items)"^^xsd:string ; - rdfs:label "creates" . - - -### https://saref.etsi.org/saref4inma#hasFeatureOfInterest -s4inma:hasFeatureOfInterest rdf:type owl:ObjectProperty ; - owl:inverseOf s4inma:isFeatureOfInterestOf ; - rdfs:label "has feature of interest"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasGTIN12ID -s4inma:hasGTIN12ID rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf s4inma:hasIdentifier ; - rdfs:range s4inma:GTIN12ID ; - rdfs:label "has GTIN12ID "^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasGTIN13ID -s4inma:hasGTIN13ID rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf s4inma:hasIdentifier ; - rdfs:range s4inma:GTIN13ID ; - rdfs:label "has GTIN13ID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasGTIN14ID -s4inma:hasGTIN14ID rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf s4inma:hasIdentifier ; - rdfs:range s4inma:GTIN14ID ; - rdfs:label "has GTIN14ID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasGTIN8ID -s4inma:hasGTIN8ID rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf s4inma:hasIdentifier ; - rdfs:range s4inma:GTIN8ID ; - rdfs:label "has GTIN8ID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasIRDI -s4inma:hasIRDI rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf s4inma:hasIdentifier ; - rdfs:range s4inma:IRDI ; - rdfs:label "has IRDI"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasIdentifier -s4inma:hasIdentifier rdf:type owl:ObjectProperty ; - rdfs:range s4inma:ID ; - rdfs:comment "link between an entity and its unique identifier" ; - rdfs:label "has identifier" . - - -### https://saref.etsi.org/saref4inma#hasSize -s4inma:hasSize rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship to count the amount of certain objects in a collection (e.g., size of a material batch)"^^xsd:string ; - rdfs:label "has size" . - - -### https://saref.etsi.org/saref4inma#hasUUID -s4inma:hasUUID rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf s4inma:hasIdentifier ; - rdfs:range s4inma:UUID ; - rdfs:label "has UUID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasUpdate -s4inma:hasUpdate rdf:type owl:ObjectProperty ; - rdfs:comment "The newer version of a ItemCategory." ; - rdfs:label "has update" . - - -### https://saref.etsi.org/saref4inma#isCategoryOf -s4inma:isCategoryOf rdf:type owl:ObjectProperty ; - rdfs:label "is category of" . - - -### https://saref.etsi.org/saref4inma#isCreatedIn -s4inma:isCreatedIn rdf:type owl:ObjectProperty ; - rdfs:comment "An Item is created in an ItemBatch."^^xsd:string ; - rdfs:label "is created in" . - - -### https://saref.etsi.org/saref4inma#isFeatureOfInterestOf -s4inma:isFeatureOfInterestOf rdf:type owl:ObjectProperty ; - rdfs:label "is feature of interest of"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#isProducedBy -s4inma:isProducedBy rdf:type owl:ObjectProperty ; - owl:inverseOf s4inma:produces ; - rdfs:comment "Items are produced using certain types of ProductionEquipmentCategories, for example: welding machines or laser cutting machines." ; - rdfs:label "is produced by" . - - -### https://saref.etsi.org/saref4inma#needsEquipment -s4inma:needsEquipment rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship indicating that an entity needs a particular equipment to be produced"^^xsd:string ; - rdfs:label "needs equipment" . - - -### https://saref.etsi.org/saref4inma#produces -s4inma:produces rdf:type owl:ObjectProperty ; - rdfs:comment "ProductionEquipmentCategory, such as welding machines or laser cutting machines, produce certain categories of items (inverse of s4inma:isProducedBy)"^^xsd:string ; - rdfs:label "produces" . - - -### https://w3id.org/saref#hasFunction -saref:hasFunction rdf:type owl:ObjectProperty . - - -### https://w3id.org/saref#hasState -saref:hasState rdf:type owl:ObjectProperty ; - rdfs:label "has state" . - - -### https://w3id.org/saref#makesMeasurement -saref:makesMeasurement rdf:type owl:ObjectProperty . - - -### https://w3id.org/saref#measuresProperty -saref:measuresProperty rdf:type owl:ObjectProperty . - - -################################################################# -# Data properties -################################################################# - -### https://saref.etsi.org/saref4inma#hasCertificate -s4inma:hasCertificate rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The MaterialBatch can contain material quality certificates, for example a NEN 10204:2004 3.1 steel certificate."^^rdfs:Literal ; - rdfs:label "has certificate" . - - -### https://saref.etsi.org/saref4inma#hasGTIN12IDValue -s4inma:hasGTIN12IDValue rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf s4inma:hasIDValue ; - rdfs:range xsd:string ; - rdfs:label "has GTIN12ID value"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasGTIN13IDValue -s4inma:hasGTIN13IDValue rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf s4inma:hasIDValue ; - rdfs:range xsd:string ; - rdfs:label "has GTIN13ID value"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasGTIN14IDValue -s4inma:hasGTIN14IDValue rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf s4inma:hasIDValue ; - rdfs:range xsd:string ; - rdfs:label "has GTIN14ID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasGTIN8IDValue -s4inma:hasGTIN8IDValue rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf s4inma:hasIDValue ; - rdfs:range xsd:string . - - -### https://saref.etsi.org/saref4inma#hasIDValue -s4inma:hasIDValue rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relation to express the value of an indentifier as a string (it can be used as alternative to or in combination with the s4inma:hasIdentifier object property "^^xsd:string ; - rdfs:label "has identifier value" . - - -### https://saref.etsi.org/saref4inma#hasIRDIValue -s4inma:hasIRDIValue rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf s4inma:hasIDValue ; - rdfs:range xsd:string ; - rdfs:label "has IRDI"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasModelNumber -s4inma:hasModelNumber rdf:type owl:DatatypeProperty ; - rdfs:comment "A relation to express the model number of a certain object (item, product, equipment, etc.) "^^xsd:string ; - rdfs:label "has model number" . - - -### https://saref.etsi.org/saref4inma#hasSerialNumber -s4inma:hasSerialNumber rdf:type owl:DatatypeProperty ; - rdfs:comment "A relation to describe the serial number of a certain Item, which is unique per Item."^^xsd:string ; - rdfs:label "has serial number" . - - -### https://saref.etsi.org/saref4inma#hasUUIDValue -s4inma:hasUUIDValue rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf s4inma:hasIDValue ; - rdfs:range xsd:string ; - rdfs:label "has UUID value"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasVersion -s4inma:hasVersion rdf:type owl:DatatypeProperty ; - rdfs:comment "An item has a certain revision or version number, whereas a higher number indicates a newer version."^^rdfs:Literal ; - rdfs:label "has version" . - - -################################################################# -# Classes -################################################################# - -### http://www.w3.org/2004/02/skos/core#ConceptScheme -skos:ConceptScheme rdf:type owl:Class . - - -### https://w3id.org/def/s4bldg#Building - rdf:type owl:Class . - - -### https://w3id.org/def/s4bldg#BuildingSpace - rdf:type owl:Class . - - -### https://w3id.org/def/s4bldg#PhysicalObject - rdf:type owl:Class . - - -### https://saref.etsi.org/saref4inma#ActualMeasurement -s4inma:ActualMeasurement rdf:type owl:Class ; - rdfs:subClassOf s4inma:Measurement ; - owl:disjointWith s4inma:ExpectedMeasurement ; - rdfs:comment "Describes whether the measurement is actually measured during the production process. Disjoint with ExpectedMeasurement."^^xsd:string ; - rdfs:label "Actual measurement" . - - -### https://saref.etsi.org/saref4inma#Area -s4inma:Area rdf:type owl:Class ; - rdfs:subClassOf ; - rdfs:comment "A subclass of s4bldg:BuildingSpace used to define the physical spaces of the building. According to IEC 62264, areas are physical, geographical or logical groupings of resources determined by the site. A site can be divided in areas, whereas areas contain work centers.s."^^xsd:string ; - rdfs:label "Area" . - - -### https://saref.etsi.org/saref4inma#Batch -s4inma:Batch rdf:type owl:Class ; - rdfs:subClassOf owl:Thing , - saref:FeatureOfInterest , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:consistsOfBatch ; - owl:allValuesFrom s4inma:Batch - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIdentifier ; - owl:allValuesFrom s4inma:ID - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:isFeatureOfInterestOf ; - owl:allValuesFrom s4inma:Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:needsEquipment ; - owl:allValuesFrom s4inma:ProductionEquipment - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasSize ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4inma:Size - ] ; - rdfs:comment "A uniform collection of tangible objects or Lot. This can either be a collection of produced items (i.e. the outflow of products) or a collection of raw material or required material (i.e. the inflow of products). It is assumed that the objects in a batch are similar and thus have shared attributes. Note that this definition is broader than the definition in IEC 61512, which defines a batch as the material that is being produced (whereas in SAREF4INMA a batch can be items or materials). "^^xsd:string ; - rdfs:label "Batch" . - - -### https://saref.etsi.org/saref4inma#ExpectedMeasurement -s4inma:ExpectedMeasurement rdf:type owl:Class ; - rdfs:subClassOf s4inma:Measurement ; - rdfs:comment "Describes whether the measurement is expected (i.e., planned before the production process). Disjoint with ActualMeasurement."^^xsd:string ; - rdfs:label "Expected measurement" . - - -### https://saref.etsi.org/saref4inma#Factory -s4inma:Factory rdf:type owl:Class ; - rdfs:subClassOf ; - rdfs:comment "A subclass of s4bldg:Building specialized for the purpose of SAREF4INMA, a factory represents one or more organizations sharing a definit mission, goals and objectives which provides an output such as a product (definition taken from IEC 62264). A factory can be divided in one or multiple sites. "^^xsd:string ; - rdfs:label "Factory" . - - -### https://saref.etsi.org/saref4inma#GTIN12ID -s4inma:GTIN12ID rdf:type owl:Class ; - rdfs:subClassOf s4inma:ID ; - rdfs:comment "GTIN-12 (UPC-A) is a 12-digit number used primarily in North America"^^xsd:string ; - rdfs:label "GTIN12ID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#GTIN13ID -s4inma:GTIN13ID rdf:type owl:Class ; - rdfs:subClassOf s4inma:ID ; - rdfs:comment "GTIN-13 (EAN/UCC-13) is a 13-digit number used predominately outside of North America"^^xsd:string ; - rdfs:label "GTIN13ID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#GTIN14ID -s4inma:GTIN14ID rdf:type owl:Class ; - rdfs:subClassOf s4inma:ID ; - rdfs:comment "GTIN-14 (EAN/UCC-14 or ITF-14 or also known as ITF Symbol, SCC-14, DUN-14, UPC Case Code, UPC Shipping Container Code, UCC Code 128, EAN Code 128) is a 14-digit number used to identify trade items at various packaging levels."^^xsd:string ; - rdfs:label "GTIN14ID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#GTIN8ID -s4inma:GTIN8ID rdf:type owl:Class ; - rdfs:subClassOf s4inma:ID ; - rdfs:comment "GTIN-8 (EAN/UCC-8) is an 8-digit number used predominately outside of North America."^^rdfs:Literal ; - rdfs:label "GTIN18ID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#ID -s4inma:ID rdf:type owl:Class ; - rdfs:subClassOf skos:ConceptScheme , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIDValue ; - owl:someValuesFrom xsd:string - ] ; - rdfs:comment "A unique identifier."^^rdfs:Literal ; - rdfs:label "Identifier" . - - -### https://saref.etsi.org/saref4inma#IRDI -s4inma:IRDI rdf:type owl:Class ; - rdfs:subClassOf s4inma:ID ; - rdfs:comment "International Registration Data Identifier (IRDI) is based on the international standards ISO/IEC 11179-6, ISO 29002 and ISO 6532 and used in eCl@ss and the Asset Administration Shell as unique identifier."^^rdfs:Literal ; - rdfs:label "IRDI" . - - -### https://saref.etsi.org/saref4inma#Item -s4inma:Item rdf:type owl:Class ; - rdfs:subClassOf saref:FeatureOfInterest , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIdentifier ; - owl:someValuesFrom s4inma:ID - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:consistsOfItem ; - owl:allValuesFrom s4inma:Item - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIdentifier ; - owl:allValuesFrom s4inma:ID - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:isCreatedIn ; - owl:allValuesFrom s4inma:ItemBatch - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:isFeatureOfInterestOf ; - owl:allValuesFrom s4inma:Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:isCreatedIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4inma:ItemBatch - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIDValue ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasSerialNumber ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] ; - rdfs:comment "A tangible object which can be unique identified, for example, with a GTIN in the form of a barcode/QR/RFID tag. An item product can be the result of the organization's production process (i.e. outflow of objects/goods) or can be uniquely identifiable material (i.e. inflow of objects/supplies). Each item is part of exactly one ItemBatch, whereas each ItemBatch contains only Items which have similar properties. An item can consists of multiple Batches and other Items (i.e. subassemblies)."^^rdfs:Literal ; - rdfs:label "Item" . - - -### https://saref.etsi.org/saref4inma#ItemBatch -s4inma:ItemBatch rdf:type owl:Class ; - rdfs:subClassOf s4inma:Batch , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:belongsToCategory ; - owl:allValuesFrom s4inma:ItemCategory - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:creates ; - owl:allValuesFrom s4inma:Item - ] ; - rdfs:comment "A uniform collection of tangible objects which are relevant for the prodcution process. The ItemBatch consists of a set of objects with similar properties (e.g. a certain type of sensors or metal sheets). The difference between ItemBatch and MaterialBatch is that individual items can be traced in a ItemBatch, whereas this is not possible in a MaterialBatch, meaning that, for example, it is possible to trace the individual metal sheet used in a ItemBatch. This implies that the objects in an ItemBatch have an unique identifier (e.g. a GTIN code in the form of a barcode/QR-code or RFID tag)."^^rdfs:Literal ; - rdfs:label "Item Batch" . - - -### https://saref.etsi.org/saref4inma#ItemCategory -s4inma:ItemCategory rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIdentifier ; - owl:someValuesFrom s4inma:ID - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIdentifier ; - owl:allValuesFrom s4inma:ID - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasUpdate ; - owl:allValuesFrom s4inma:ItemCategory - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:isCategoryOf ; - owl:allValuesFrom s4inma:ItemBatch - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:isProducedBy ; - owl:allValuesFrom s4inma:ProductionEquipmentCategory - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasModelNumber ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasVersion ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] ; - rdfs:comment "An ItemCategory describes a single type of item in terms of its static properties. Each ItemCategory can have multiple related ItemBatches, which all contain individual Items. The essential properties of each Item in all ItemBatches are the same. However, each batch might use different MaterialBatches and/or different ProductionEquipment. Therefore, small deviations between batches might occur, while the essential properties of all Items related to an ItemCategory are similar."^^xsd:string ; - rdfs:label "Item category" . - - -### https://saref.etsi.org/saref4inma#MaterialBatch -s4inma:MaterialBatch rdf:type owl:Class ; - rdfs:subClassOf s4inma:Batch , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:belongsToCategory ; - owl:allValuesFrom s4inma:MaterialCategory - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasCertificate ; - owl:allValuesFrom xsd:string - ] ; - rdfs:comment "A uniform collection of tangible raw material which are relevant for the prodcution process. The MaterialBatch can consists of a set of objects with similar properties (e.g. a certain type of screws) or a stock of homogeen material (e.g. oil, water). The difference between MaterialBatch and ItemBatch is that individual items cannot be traced in a MaterialBatch, whereas this is possible in an ItemBatch, meaning that, for example, it is not possible to trace the individual screw used in a MaterialBatch."^^rdfs:Literal ; - rdfs:label "Material Batch" . - - -### https://saref.etsi.org/saref4inma#MaterialCategory -s4inma:MaterialCategory rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty s4inma:isCategoryOf ; - owl:allValuesFrom s4inma:MaterialBatch - ] ; - rdfs:comment "A MaterialCategory describes a category of material in terms of its static properties. Examples are: a certain category of steel or plastic. Each MaterialCategory can have multiple related MaterialBatches, which represent the physical material. The essential properties of the material in all MaterialBatches are the same. However, each batch might use different MaterialBatches and/or different ProductionEquipment. Therefore, small deviations between batches might occur, while the essential properties of the material related to an MaterialCategory are similar."^^xsd:string ; - rdfs:label "Material category" . - - -### https://saref.etsi.org/saref4inma#Measurement -s4inma:Measurement rdf:type owl:Class ; - rdfs:subClassOf saref:Measurement , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasFeatureOfInterest ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( s4inma:Batch - s4inma:Item - ) - ] - ] ; - rdfs:comment "A subclass of saref:Measurement that represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. The saref4imna:Measurement can be linked to individual Batches or Items. Moreover, the Measurement can be an ExpectedMeasurement (i.e. the value which is planned) or the ActualMeasurement (i.e. the value measured during production), which enables to check for deviations between the planned and actual values."^^xsd:string ; - rdfs:label "Measurement" . - - -### https://saref.etsi.org/saref4inma#ProductionEquipment -s4inma:ProductionEquipment rdf:type owl:Class ; - rdfs:subClassOf , - saref:Device , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:belongsToCategory ; - owl:allValuesFrom s4inma:ProductionEquipmentCategory - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIdentifier ; - owl:allValuesFrom s4inma:ID - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:allValuesFrom s4inma:ProductionEquipmentFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasState ; - owl:allValuesFrom saref:State - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:makesMeasurement ; - owl:allValuesFrom s4inma:Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:allValuesFrom saref:Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIDValue ; - owl:allValuesFrom xsd:string - ] ; - rdfs:comment "A production equipment is a specialization of a saref:Device and s4bldg:PhysicalObject that can produce items in a manufacturing process. This class represents an individual production equipment device and includes their specification in terms of functions, states and services. Different types of machines can be defined under this class as needed, for example, LaserCuttingMachine (i.e., a type of production equipment to cut steel material), MillingMachine (i.e., to drill holes in steel material), MouldingMachine (i.e., to mold liquid material, such as iron or plastic, and let it harden in a certain shape), WeldingMachine (i.e., join parts of material, such as steel, together), etc."^^xsd:string ; - rdfs:label "ProductionEquipment" . - - -### https://saref.etsi.org/saref4inma#ProductionEquipmentCategory -s4inma:ProductionEquipmentCategory rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty s4inma:isCategoryOf ; - owl:allValuesFrom s4inma:ProductionEquipment - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasModelNumber ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] ; - rdfs:comment "A ProductionEquipmentCategory represents a certain type of production equipment, which is generally static over time. More concretely, the ProductionEquipmentCategory represents a certain model and brand of a production equipment. Each ProductionEquipmentCategory can have multiple related ProductionEquipment, which represent the actual individual machines. Moreover, each ItemCategory can be produced by multiple ProductionEquipmentCategories."^^rdfs:Literal ; - rdfs:label "Production equipment category" . - - -### https://saref.etsi.org/saref4inma#ProductionEquipmentFunction -s4inma:ProductionEquipmentFunction rdf:type owl:Class ; - rdfs:subClassOf owl:Thing , - saref:Function ; - rdfs:label "Production equipment function"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#Site -s4inma:Site rdf:type owl:Class ; - rdfs:subClassOf ; - rdfs:comment "A subclass of s4bldg:BuildingSpace used to define the physical spaces of the building. According to IEC 62264, sites are identified physical, geographical, and/or logical component groupings of a manufacturing enterprise. A factory can be divided in sites, whereas sites can be divided areas"^^xsd:string ; - rdfs:label "Site" . - - -### https://saref.etsi.org/saref4inma#Size -s4inma:Size rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "The amount of certain objects in a collection (e.g., size of a material batch)."^^xsd:string ; - rdfs:label "Size" . - - -### https://saref.etsi.org/saref4inma#UUID -s4inma:UUID rdf:type owl:Class ; - rdfs:subClassOf s4inma:ID ; - rdfs:comment "A universally unique identifier (UUID) is a 128-bit number used to identify items and is also known as: globally unique identifier (GUID). In its canonical textual representation, the sixteen octets of a UUID are represented as 32 hexadecimal (base 16) digits, displayed in five groups separated by hyphens, in the form 8-4-4-4-12 for a total of 36 characters (32 alphanumeric characters and four hyphens). UUID are documented in ISO/IEC 11578:1996 \"Information technology – Open Systems Interconnection – Remote Procedure Call (RPC)\" and in ITU-T Rec. X.667 | ISO/IEC 9834-8:2005." ; - rdfs:label "UUID" . - - -### https://saref.etsi.org/saref4inma#WorkCenter -s4inma:WorkCenter rdf:type owl:Class ; - rdfs:subClassOf s4inma:ProductionEquipment ; - rdfs:comment "A subclass of s4inma:ProductionEquipment (and therefore of s4bld:PhysicalObject). It is an equipment element under an area in a role-based equipment hierarchy that performs production, storage or material movement (definition taken from IEC 62264). An Area contains work centers."^^xsd:string ; - rdfs:label "Work center" . - - -### https://w3id.org/saref#Device -saref:Device rdf:type owl:Class . - - -### https://w3id.org/saref#FeatureOfInterest -saref:FeatureOfInterest rdf:type owl:Class . - - -### https://w3id.org/saref#Function -saref:Function rdf:type owl:Class . - - -### https://w3id.org/saref#Measurement -saref:Measurement rdf:type owl:Class . - - -### https://w3id.org/saref#Property -saref:Property rdf:type owl:Class . - - -### https://w3id.org/saref#State -saref:State rdf:type owl:Class . - - -################################################################# -# General axioms -################################################################# - -[ rdf:type owl:AllDisjointClasses ; - owl:members ( s4inma:Area - s4inma:Site - s4inma:WorkCenter - ) -] . - - -### Generated by the OWL API (version 4.2.8.20170104-2310) https://github.com/owlcs/owlapi diff --git a/src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/desktop.ini b/src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/saref4inma.html b/src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/saref4inma.html deleted file mode 100644 index 61089ed..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/saref4inma.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - SAREF4INMA: an extension of SAREF for the industry and manufacturing domain

    -

    Official ETSI documentation for SAREF4INMA v1.1.1
    This page will soon contain the documentation of the SAREF4INMA ontology v1.1.1

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    The documentation of SAREF4INMA v1.1.1 will be available here soon. The source of the ontology are available as Turtle or RDF/XML Visualize it with VOWL

    -
    -
    -
    -
    -

    SAREF4INMA is an extension of SAREF for the industry and manufacturing domain. SAREF4INMA focuses on extending SAREF for the industry and manufacturing domain to solve the lack of interoperability between various types of production equipment that produce items in a factory and, once outside the factory, between different organizations in the value chain to uniquely track back the produced items to the corresponding production equipment, batches, material and precise time in which they were manufactured. SAREF4INMA is specified and published by ETSI in the TS 103 410-5 associated to this ontology file. SAREF4INMA was created to be aligned with related initiatives in the smart industry and manufacturing domain in terms of modelling and standardization, such as the Reference Architecture Model for Industry 4.0 (RAMI), which combines several standards used by the various national initiatives in Europe that support digitalization in manufacturing. The full list of use cases, standards and requirements that guided the creation of SAREF4INMA are described in the associated ETSI TR 103 507.

    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/saref4inma.n3 b/src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/saref4inma.n3 deleted file mode 100644 index 9b34fb1..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/saref4inma.n3 +++ /dev/null @@ -1,518 +0,0 @@ -@prefix s4inma: . -@prefix rdf: . -@prefix owl: . -@prefix xml: . -@prefix s4bldg: . -@prefix saref: . -@prefix xsd: . -@prefix dcterms: . -@prefix skos: . -@prefix rdfs: . -@prefix time: . -@prefix vann: . - -s4inma:ID a owl:Class ; - rdfs:comment "A unique identifier."^^rdfs:Literal ; - rdfs:label "Identifier" ; - rdfs:subClassOf skos:ConceptScheme ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4inma:hasIDValue ; - owl:someValuesFrom xsd:string - ] . - -s4inma:hasGTIN13IDValue - a owl:DatatypeProperty ; - rdfs:label "has GTIN13ID value" ; - rdfs:range xsd:string ; - rdfs:subPropertyOf s4inma:hasIDValue . - -s4inma:GTIN8ID a owl:Class ; - rdfs:comment "GTIN-8 (EAN/UCC-8) is an 8-digit number used predominately outside of North America."^^rdfs:Literal ; - rdfs:label "GTIN18ID" ; - rdfs:subClassOf s4inma:ID . - -s4inma:ExpectedMeasurement - a owl:Class ; - rdfs:comment "Describes whether the measurement is expected (i.e., planned before the production process). Disjoint with ActualMeasurement." ; - rdfs:label "Expected measurement" ; - rdfs:subClassOf s4inma:Measurement . - -s4inma:hasIdentifier a owl:ObjectProperty ; - rdfs:comment "link between an entity and its unique identifier" ; - rdfs:label "has identifier" ; - rdfs:range s4inma:ID . - - - a owl:Class . - -saref:makesMeasurement - a owl:ObjectProperty . - -s4inma:Measurement a owl:Class ; - rdfs:comment "A subclass of saref:Measurement that represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. The saref4imna:Measurement can be linked to individual Batches or Items. Moreover, the Measurement can be an ExpectedMeasurement (i.e. the value which is planned) or the ActualMeasurement (i.e. the value measured during production), which enables to check for deviations between the planned and actual values." ; - rdfs:label "Measurement" ; - rdfs:subClassOf saref:Measurement ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a owl:Class ; - owl:unionOf ( s4inma:Batch s4inma:Item ) - ] ; - owl:onProperty s4inma:hasFeatureOfInterest - ] . - -s4inma:Factory a owl:Class ; - rdfs:comment "A subclass of s4bldg:Building specialized for the purpose of SAREF4INMA, a factory represents one or more organizations sharing a definit mission, goals and objectives which provides an output such as a product (definition taken from IEC 62264). A factory can be divided in one or multiple sites. " ; - rdfs:label "Factory" ; - rdfs:subClassOf . - -s4inma:hasUpdate a owl:ObjectProperty ; - rdfs:comment "The newer version of a ItemCategory." ; - rdfs:label "has update" . - -saref:Measurement a owl:Class . - -saref:hasFunction a owl:ObjectProperty . - -s4inma:hasVersion a owl:DatatypeProperty ; - rdfs:comment "An item has a certain revision or version number, whereas a higher number indicates a newer version."^^rdfs:Literal ; - rdfs:label "has version" . - -dcterms:license a owl:AnnotationProperty . - -dcterms:source a owl:AnnotationProperty . - -s4inma:ProductionEquipmentFunction - a owl:Class ; - rdfs:label "Production equipment function" ; - rdfs:subClassOf saref:Function , owl:Thing . - -s4inma:isProducedBy a owl:ObjectProperty ; - rdfs:comment "Items are produced using certain types of ProductionEquipmentCategories, for example: welding machines or laser cutting machines." ; - rdfs:label "is produced by" ; - owl:inverseOf s4inma:produces . - -s4inma:hasGTIN14IDValue - a owl:DatatypeProperty ; - rdfs:label "has GTIN14ID" ; - rdfs:range xsd:string ; - rdfs:subPropertyOf s4inma:hasIDValue . - - - a owl:Class . - -s4inma:ActualMeasurement - a owl:Class ; - rdfs:comment "Describes whether the measurement is actually measured during the production process. Disjoint with ExpectedMeasurement." ; - rdfs:label "Actual measurement" ; - rdfs:subClassOf s4inma:Measurement ; - owl:disjointWith s4inma:ExpectedMeasurement . - -s4inma:needsEquipment - a owl:ObjectProperty ; - rdfs:comment "A relationship indicating that an entity needs a particular equipment to be produced" ; - rdfs:label "needs equipment" . - -dcterms:created a owl:AnnotationProperty . - -skos:ConceptScheme a owl:Class . - -dcterms:creator a owl:AnnotationProperty . - -s4inma:WorkCenter a owl:Class ; - rdfs:comment "A subclass of s4inma:ProductionEquipment (and therefore of s4bld:PhysicalObject). It is an equipment element under an area in a role-based equipment hierarchy that performs production, storage or material movement (definition taken from IEC 62264). An Area contains work centers." ; - rdfs:label "Work center" ; - rdfs:subClassOf s4inma:ProductionEquipment . - -dcterms:title a owl:AnnotationProperty . - -s4inma:hasGTIN8IDValue - a owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:subPropertyOf s4inma:hasIDValue . - -s4inma:isFeatureOfInterestOf - a owl:ObjectProperty ; - rdfs:label "is feature of interest of" . - -s4inma:UUID a owl:Class ; - rdfs:comment "A universally unique identifier (UUID) is a 128-bit number used to identify items and is also known as: globally unique identifier (GUID). In its canonical textual representation, the sixteen octets of a UUID are represented as 32 hexadecimal (base 16) digits, displayed in five groups separated by hyphens, in the form 8-4-4-4-12 for a total of 36 characters (32 alphanumeric characters and four hyphens). UUID are documented in ISO/IEC 11578:1996 \"Information technology – Open Systems Interconnection – Remote Procedure Call (RPC)\" and in ITU-T Rec. X.667 | ISO/IEC 9834-8:2005." ; - rdfs:label "UUID" ; - rdfs:subClassOf s4inma:ID . - -s4inma:hasUUID a owl:ObjectProperty ; - rdfs:label "has UUID" ; - rdfs:range s4inma:UUID ; - rdfs:subPropertyOf s4inma:hasIdentifier . - -saref:Function a owl:Class . - -saref:measuresProperty - a owl:ObjectProperty . - -dcterms:contributor a owl:AnnotationProperty . - -s4inma:MaterialCategory - a owl:Class ; - rdfs:comment "A MaterialCategory describes a category of material in terms of its static properties. Examples are: a certain category of steel or plastic. Each MaterialCategory can have multiple related MaterialBatches, which represent the physical material. The essential properties of the material in all MaterialBatches are the same. However, each batch might use different MaterialBatches and/or different ProductionEquipment. Therefore, small deviations between batches might occur, while the essential properties of the material related to an MaterialCategory are similar." ; - rdfs:label "Material category" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:MaterialBatch ; - owl:onProperty s4inma:isCategoryOf - ] . - -dcterms:publisher a owl:AnnotationProperty . - -saref:State a owl:Class . - -s4inma:hasGTIN8ID a owl:ObjectProperty ; - rdfs:label "has GTIN8ID" ; - rdfs:range s4inma:GTIN8ID ; - rdfs:subPropertyOf s4inma:hasIdentifier . - -s4inma:hasIDValue a owl:DatatypeProperty ; - rdfs:comment "A relation to express the value of an indentifier as a string (it can be used as alternative to or in combination with the s4inma:hasIdentifier object property " ; - rdfs:label "has identifier value" ; - rdfs:range xsd:string . - -s4inma:ProductionEquipmentCategory - a owl:Class ; - rdfs:comment "A ProductionEquipmentCategory represents a certain type of production equipment, which is generally static over time. More concretely, the ProductionEquipmentCategory represents a certain model and brand of a production equipment. Each ProductionEquipmentCategory can have multiple related ProductionEquipment, which represent the actual individual machines. Moreover, each ItemCategory can be produced by multiple ProductionEquipmentCategories."^^rdfs:Literal ; - rdfs:label "Production equipment category" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4inma:hasModelNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ProductionEquipment ; - owl:onProperty s4inma:isCategoryOf - ] . - -s4inma:Item a owl:Class ; - rdfs:comment "A tangible object which can be unique identified, for example, with a GTIN in the form of a barcode/QR/RFID tag. An item product can be the result of the organization's production process (i.e. outflow of objects/goods) or can be uniquely identifiable material (i.e. inflow of objects/supplies). Each item is part of exactly one ItemBatch, whereas each ItemBatch contains only Items which have similar properties. An item can consists of multiple Batches and other Items (i.e. subassemblies)."^^rdfs:Literal ; - rdfs:label "Item" ; - rdfs:subClassOf saref:FeatureOfInterest ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ItemBatch ; - owl:onProperty s4inma:isCreatedIn - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onClass s4inma:ItemBatch ; - owl:onProperty s4inma:isCreatedIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:Item ; - owl:onProperty s4inma:consistsOfItem - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4inma:hasSerialNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ID ; - owl:onProperty s4inma:hasIdentifier - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4inma:hasIdentifier ; - owl:someValuesFrom s4inma:ID - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:Measurement ; - owl:onProperty s4inma:isFeatureOfInterestOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4inma:hasIDValue - ] . - -s4inma:consistsOfBatch - a owl:ObjectProperty ; - rdfs:comment "A relation to express that a batch can recursively consists of other batches" ; - rdfs:label "consists of batch" . - -s4inma:hasFeatureOfInterest - a owl:ObjectProperty ; - rdfs:label "has feature of interest" ; - owl:inverseOf s4inma:isFeatureOfInterestOf . - -s4inma:Area a owl:Class ; - rdfs:comment "A subclass of s4bldg:BuildingSpace used to define the physical spaces of the building. According to IEC 62264, areas are physical, geographical or logical groupings of resources determined by the site. A site can be divided in areas, whereas areas contain work centers.s." ; - rdfs:label "Area" ; - rdfs:subClassOf . - -s4inma:ItemBatch a owl:Class ; - rdfs:comment "A uniform collection of tangible objects which are relevant for the prodcution process. The ItemBatch consists of a set of objects with similar properties (e.g. a certain type of sensors or metal sheets). The difference between ItemBatch and MaterialBatch is that individual items can be traced in a ItemBatch, whereas this is not possible in a MaterialBatch, meaning that, for example, it is possible to trace the individual metal sheet used in a ItemBatch. This implies that the objects in an ItemBatch have an unique identifier (e.g. a GTIN code in the form of a barcode/QR-code or RFID tag)."^^rdfs:Literal ; - rdfs:label "Item Batch" ; - rdfs:subClassOf s4inma:Batch ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:Item ; - owl:onProperty s4inma:creates - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ItemCategory ; - owl:onProperty s4inma:belongsToCategory - ] . - -saref:hasState a owl:ObjectProperty ; - rdfs:label "has state" . - -s4inma: a owl:Ontology ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:contributor "Alba Fernandez Izquierdo, UPM" , "Matthijs Punter, TNO" ; - dcterms:contributor , , , , ; - dcterms:created "2015-03-29"^^xsd:date ; - dcterms:description "SAREF4INMA is an extension of SAREF for the industry and manufacturing domain. SAREF4INMA focuses on extending SAREF for the industry and manufacturing domain to solve the lack of interoperability between various types of production equipment that produce items in a factory and, once outside the factory, between different organizations in the value chain to uniquely track back the produced items to the corresponding production equipment, batches, material and precise time in which they were manufactured. SAREF4INMA is specified and published by ETSI in the TS 103 410-5 associated to this ontology file. SAREF4INMA was created to be aligned with related initiatives in the smart industry and manufacturing domain in terms of modelling and standardization, such as the Reference Architecture Model for Industry 4.0 (RAMI), which combines several standards used by the various national initiatives in Europe that support digitalization in manufacturing. The full list of use cases, standards and requirements that guided the creation of SAREF4INMA are described in the associated ETSI TR 103 507. " ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:modified "2019-04-30"^^xsd:date ; - dcterms:publisher ; - dcterms:source , ; - dcterms:title "SAREF4INMA: an extension of SAREF for the industry and manufacturing domain"@en ; - vann:preferredNamespacePrefix "s4inma" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4inma#" ; - owl:versionIRI ; - owl:versionInfo "1.1.1" . - -s4inma:hasGTIN14ID a owl:ObjectProperty ; - rdfs:label "has GTIN14ID" ; - rdfs:range s4inma:GTIN14ID ; - rdfs:subPropertyOf s4inma:hasIdentifier . - -s4inma:hasModelNumber - a owl:DatatypeProperty ; - rdfs:comment "A relation to express the model number of a certain object (item, product, equipment, etc.) " ; - rdfs:label "has model number" . - -s4inma:Site a owl:Class ; - rdfs:comment "A subclass of s4bldg:BuildingSpace used to define the physical spaces of the building. According to IEC 62264, sites are identified physical, geographical, and/or logical component groupings of a manufacturing enterprise. A factory can be divided in sites, whereas sites can be divided areas" ; - rdfs:label "Site" ; - rdfs:subClassOf . - -s4inma:hasGTIN13ID a owl:ObjectProperty ; - rdfs:label "has GTIN13ID" ; - rdfs:range s4inma:GTIN13ID ; - rdfs:subPropertyOf s4inma:hasIdentifier . - -[ a owl:AllDisjointClasses ; - owl:members ( s4inma:Area s4inma:Site s4inma:WorkCenter ) -] . - -s4inma:isCategoryOf a owl:ObjectProperty ; - rdfs:label "is category of" . - -s4inma:produces a owl:ObjectProperty ; - rdfs:comment "ProductionEquipmentCategory, such as welding machines or laser cutting machines, produce certain categories of items (inverse of s4inma:isProducedBy)" ; - rdfs:label "produces" . - -s4inma:hasGTIN12ID a owl:ObjectProperty ; - rdfs:label "has GTIN12ID " ; - rdfs:range s4inma:GTIN12ID ; - rdfs:subPropertyOf s4inma:hasIdentifier . - -s4inma:creates a owl:ObjectProperty ; - rdfs:comment "A relation between a production process (e.g., Batch) that creates one or more tangible objects (e.g., Items)" ; - rdfs:label "creates" ; - owl:inverseOf s4inma:isCreatedIn . - -s4inma:Batch a owl:Class ; - rdfs:comment "A uniform collection of tangible objects or Lot. This can either be a collection of produced items (i.e. the outflow of products) or a collection of raw material or required material (i.e. the inflow of products). It is assumed that the objects in a batch are similar and thus have shared attributes. Note that this definition is broader than the definition in IEC 61512, which defines a batch as the material that is being produced (whereas in SAREF4INMA a batch can be items or materials). " ; - rdfs:label "Batch" ; - rdfs:subClassOf saref:FeatureOfInterest , owl:Thing ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ID ; - owl:onProperty s4inma:hasIdentifier - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ProductionEquipment ; - owl:onProperty s4inma:needsEquipment - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:Measurement ; - owl:onProperty s4inma:isFeatureOfInterestOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:Batch ; - owl:onProperty s4inma:consistsOfBatch - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4inma:Size ; - owl:onProperty s4inma:hasSize - ] . - -s4inma:ItemCategory a owl:Class ; - rdfs:comment "An ItemCategory describes a single type of item in terms of its static properties. Each ItemCategory can have multiple related ItemBatches, which all contain individual Items. The essential properties of each Item in all ItemBatches are the same. However, each batch might use different MaterialBatches and/or different ProductionEquipment. Therefore, small deviations between batches might occur, while the essential properties of all Items related to an ItemCategory are similar." ; - rdfs:label "Item category" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ItemCategory ; - owl:onProperty s4inma:hasUpdate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ID ; - owl:onProperty s4inma:hasIdentifier - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ItemBatch ; - owl:onProperty s4inma:isCategoryOf - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4inma:hasModelNumber - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string ; - owl:onProperty s4inma:hasVersion - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty s4inma:hasIdentifier ; - owl:someValuesFrom s4inma:ID - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ProductionEquipmentCategory ; - owl:onProperty s4inma:isProducedBy - ] . - -saref:FeatureOfInterest - a owl:Class . - -s4inma:hasUUIDValue a owl:DatatypeProperty ; - rdfs:label "has UUID value" ; - rdfs:range xsd:string ; - rdfs:subPropertyOf s4inma:hasIDValue . - - - a owl:Class . - -s4inma:consistsOfItem - a owl:ObjectProperty ; - rdfs:comment "A relation to express that an item can recursively consists of other Items" ; - rdfs:label "consists of item" . - -dcterms:modified a owl:AnnotationProperty . - -s4inma:hasGTIN12IDValue - a owl:DatatypeProperty ; - rdfs:label "has GTIN12ID value" ; - rdfs:range xsd:string ; - rdfs:subPropertyOf s4inma:hasIDValue . - -dcterms:issued a owl:AnnotationProperty . - -s4inma:hasIRDIValue a owl:DatatypeProperty ; - rdfs:label "has IRDI" ; - rdfs:range xsd:string ; - rdfs:subPropertyOf s4inma:hasIDValue . - -owl:maxQualifiedCardinality - a owl:AnnotationProperty . - -s4inma:isCreatedIn a owl:ObjectProperty ; - rdfs:comment "An Item is created in an ItemBatch." ; - rdfs:label "is created in" . - -dcterms:description a owl:AnnotationProperty . - -s4inma:Size a owl:Class ; - rdfs:comment "The amount of certain objects in a collection (e.g., size of a material batch)." ; - rdfs:label "Size" ; - rdfs:subClassOf saref:Property . - -s4inma:MaterialBatch a owl:Class ; - rdfs:comment "A uniform collection of tangible raw material which are relevant for the prodcution process. The MaterialBatch can consists of a set of objects with similar properties (e.g. a certain type of screws) or a stock of homogeen material (e.g. oil, water). The difference between MaterialBatch and ItemBatch is that individual items cannot be traced in a MaterialBatch, whereas this is possible in an ItemBatch, meaning that, for example, it is not possible to trace the individual screw used in a MaterialBatch."^^rdfs:Literal ; - rdfs:label "Material Batch" ; - rdfs:subClassOf s4inma:Batch ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4inma:hasCertificate - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:MaterialCategory ; - owl:onProperty s4inma:belongsToCategory - ] . - -s4inma:GTIN14ID a owl:Class ; - rdfs:comment "GTIN-14 (EAN/UCC-14 or ITF-14 or also known as ITF Symbol, SCC-14, DUN-14, UPC Case Code, UPC Shipping Container Code, UCC Code 128, EAN Code 128) is a 14-digit number used to identify trade items at various packaging levels." ; - rdfs:label "GTIN14ID" ; - rdfs:subClassOf s4inma:ID . - -s4inma:hasSize a owl:ObjectProperty ; - rdfs:comment "A relationship to count the amount of certain objects in a collection (e.g., size of a material batch)" ; - rdfs:label "has size" . - -s4inma:hasCertificate - a owl:DatatypeProperty ; - rdfs:comment "The MaterialBatch can contain material quality certificates, for example a NEN 10204:2004 3.1 steel certificate."^^rdfs:Literal ; - rdfs:label "has certificate" ; - rdfs:range xsd:string . - -saref:Property a owl:Class . - -s4inma:GTIN13ID a owl:Class ; - rdfs:comment "GTIN-13 (EAN/UCC-13) is a 13-digit number used predominately outside of North America" ; - rdfs:label "GTIN13ID" ; - rdfs:subClassOf s4inma:ID . - -s4inma:IRDI a owl:Class ; - rdfs:comment "International Registration Data Identifier (IRDI) is based on the international standards ISO/IEC 11179-6, ISO 29002 and ISO 6532 and used in eCl@ss and the Asset Administration Shell as unique identifier."^^rdfs:Literal ; - rdfs:label "IRDI" ; - rdfs:subClassOf s4inma:ID . - -s4inma:hasIRDI a owl:ObjectProperty ; - rdfs:label "has IRDI" ; - rdfs:range s4inma:IRDI ; - rdfs:subPropertyOf s4inma:hasIdentifier . - -s4inma:ProductionEquipment - a owl:Class ; - rdfs:comment "A production equipment is a specialization of a saref:Device and s4bldg:PhysicalObject that can produce items in a manufacturing process. This class represents an individual production equipment device and includes their specification in terms of functions, states and services. Different types of machines can be defined under this class as needed, for example, LaserCuttingMachine (i.e., a type of production equipment to cut steel material), MillingMachine (i.e., to drill holes in steel material), MouldingMachine (i.e., to mold liquid material, such as iron or plastic, and let it harden in a certain shape), WeldingMachine (i.e., join parts of material, such as steel, together), etc." ; - rdfs:label "ProductionEquipment" ; - rdfs:subClassOf , saref:Device ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ID ; - owl:onProperty s4inma:hasIdentifier - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:State ; - owl:onProperty saref:hasState - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ProductionEquipmentCategory ; - owl:onProperty s4inma:belongsToCategory - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom saref:Property ; - owl:onProperty saref:measuresProperty - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:Measurement ; - owl:onProperty saref:makesMeasurement - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4inma:ProductionEquipmentFunction ; - owl:onProperty saref:hasFunction - ] ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty s4inma:hasIDValue - ] . - -s4inma:belongsToCategory - a owl:ObjectProperty ; - rdfs:comment "Link between an entity and its category" ; - rdfs:label "belongs to category" ; - owl:inverseOf s4inma:isCategoryOf . - -s4inma:hasSerialNumber - a owl:DatatypeProperty ; - rdfs:comment "A relation to describe the serial number of a certain Item, which is unique per Item." ; - rdfs:label "has serial number" . - -s4inma:GTIN12ID a owl:Class ; - rdfs:comment "GTIN-12 (UPC-A) is a 12-digit number used primarily in North America" ; - rdfs:label "GTIN12ID" ; - rdfs:subClassOf s4inma:ID . - -saref:Device a owl:Class . diff --git a/src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/saref4inma.rdf b/src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/saref4inma.rdf deleted file mode 100644 index 8166416..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/saref4inma.rdf +++ /dev/null @@ -1,693 +0,0 @@ - - - Alba Fernandez Izquierdo, UPM - - - 2015-03-29 - - 2019-04-30 - 1.1.1 - SAREF4INMA: an extension of SAREF for the industry and manufacturing domain - Matthijs Punter, TNO - This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge. - - - - - - - s4inma - https://saref.etsi.org/saref4inma# - 2019-06-11 - - SAREF4INMA is an extension of SAREF for the industry and manufacturing domain. SAREF4INMA focuses on extending SAREF for the industry and manufacturing domain to solve the lack of interoperability between various types of production equipment that produce items in a factory and, once outside the factory, between different organizations in the value chain to uniquely track back the produced items to the corresponding production equipment, batches, material and precise time in which they were manufactured. SAREF4INMA is specified and published by ETSI in the TS 103 410-5 associated to this ontology file. SAREF4INMA was created to be aligned with related initiatives in the smart industry and manufacturing domain in terms of modelling and standardization, such as the Reference Architecture Model for Industry 4.0 (RAMI), which combines several standards used by the various national initiatives in Europe that support digitalization in manufacturing. The full list of use cases, standards and requirements that guided the creation of SAREF4INMA are described in the associated ETSI TR 103 507. - - - - - - - - - - - - - - - - - - - - - - - A uniform collection of tangible objects or Lot. This can either be a collection of produced items (i.e. the outflow of products) or a collection of raw material or required material (i.e. the inflow of products). It is assumed that the objects in a batch are similar and thus have shared attributes. Note that this definition is broader than the definition in IEC 61512, which defines a batch as the material that is being produced (whereas in SAREF4INMA a batch can be items or materials). - Batch - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - Site - A subclass of s4bldg:BuildingSpace used to define the physical spaces of the building. According to IEC 62264, sites are identified physical, geographical, and/or logical component groupings of a manufacturing enterprise. A factory can be divided in sites, whereas sites can be divided areas - - - - - - Item Batch - A uniform collection of tangible objects which are relevant for the prodcution process. The ItemBatch consists of a set of objects with similar properties (e.g. a certain type of sensors or metal sheets). The difference between ItemBatch and MaterialBatch is that individual items can be traced in a ItemBatch, whereas this is not possible in a MaterialBatch, meaning that, for example, it is possible to trace the individual metal sheet used in a ItemBatch. This implies that the objects in an ItemBatch have an unique identifier (e.g. a GTIN code in the form of a barcode/QR-code or RFID tag). - - - - - - - - - - - - - - - - - - - - - - - - - Measurement - A subclass of saref:Measurement that represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. The saref4imna:Measurement can be linked to individual Batches or Items. Moreover, the Measurement can be an ExpectedMeasurement (i.e. the value which is planned) or the ActualMeasurement (i.e. the value measured during production), which enables to check for deviations between the planned and actual values. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A production equipment is a specialization of a saref:Device and s4bldg:PhysicalObject that can produce items in a manufacturing process. This class represents an individual production equipment device and includes their specification in terms of functions, states and services. Different types of machines can be defined under this class as needed, for example, LaserCuttingMachine (i.e., a type of production equipment to cut steel material), MillingMachine (i.e., to drill holes in steel material), MouldingMachine (i.e., to mold liquid material, such as iron or plastic, and let it harden in a certain shape), WeldingMachine (i.e., join parts of material, such as steel, together), etc. - - - - - - - - - ProductionEquipment - - - Material category - A MaterialCategory describes a category of material in terms of its static properties. Examples are: a certain category of steel or plastic. Each MaterialCategory can have multiple related MaterialBatches, which represent the physical material. The essential properties of the material in all MaterialBatches are the same. However, each batch might use different MaterialBatches and/or different ProductionEquipment. Therefore, small deviations between batches might occur, while the essential properties of the material related to an MaterialCategory are similar. - - - - - - - - - - - - - GTIN13ID - GTIN-13 (EAN/UCC-13) is a 13-digit number used predominately outside of North America - - - - - - Factory - A subclass of s4bldg:Building specialized for the purpose of SAREF4INMA, a factory represents one or more organizations sharing a definit mission, goals and objectives which provides an output such as a product (definition taken from IEC 62264). A factory can be divided in one or multiple sites. - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - 1 - - - - - - A tangible object which can be unique identified, for example, with a GTIN in the form of a barcode/QR/RFID tag. An item product can be the result of the organization's production process (i.e. outflow of objects/goods) or can be uniquely identifiable material (i.e. inflow of objects/supplies). Each item is part of exactly one ItemBatch, whereas each ItemBatch contains only Items which have similar properties. An item can consists of multiple Batches and other Items (i.e. subassemblies). - Item - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - An ItemCategory describes a single type of item in terms of its static properties. Each ItemCategory can have multiple related ItemBatches, which all contain individual Items. The essential properties of each Item in all ItemBatches are the same. However, each batch might use different MaterialBatches and/or different ProductionEquipment. Therefore, small deviations between batches might occur, while the essential properties of all Items related to an ItemCategory are similar. - Item category - - - - - - - - - - - - - - - - - - - - - - - Production equipment category - A ProductionEquipmentCategory represents a certain type of production equipment, which is generally static over time. More concretely, the ProductionEquipmentCategory represents a certain model and brand of a production equipment. Each ProductionEquipmentCategory can have multiple related ProductionEquipment, which represent the actual individual machines. Moreover, each ItemCategory can be produced by multiple ProductionEquipmentCategories. - - - - 1 - - - - - - - - - - - - - - - - Actual measurement - Describes whether the measurement is actually measured during the production process. Disjoint with ExpectedMeasurement. - - - - - - - Material Batch - A uniform collection of tangible raw material which are relevant for the prodcution process. The MaterialBatch can consists of a set of objects with similar properties (e.g. a certain type of screws) or a stock of homogeen material (e.g. oil, water). The difference between MaterialBatch and ItemBatch is that individual items cannot be traced in a MaterialBatch, whereas this is possible in an ItemBatch, meaning that, for example, it is not possible to trace the individual screw used in a MaterialBatch. - - - - - - - - - - - - - - - - - - - - Identifier - A unique identifier. - - - - - - - - - - - - - - - Production equipment function - - - - - Work center - A subclass of s4inma:ProductionEquipment (and therefore of s4bld:PhysicalObject). It is an equipment element under an area in a role-based equipment hierarchy that performs production, storage or material movement (definition taken from IEC 62264). An Area contains work centers. - - - - Expected measurement - Describes whether the measurement is expected (i.e., planned before the production process). Disjoint with ActualMeasurement. - - - - GTIN12ID - GTIN-12 (UPC-A) is a 12-digit number used primarily in North America - - - - UUID - A universally unique identifier (UUID) is a 128-bit number used to identify items and is also known as: globally unique identifier (GUID). In its canonical textual representation, the sixteen octets of a UUID are represented as 32 hexadecimal (base 16) digits, displayed in five groups separated by hyphens, in the form 8-4-4-4-12 for a total of 36 characters (32 alphanumeric characters and four hyphens). UUID are documented in ISO/IEC 11578:1996 "Information technology – Open Systems Interconnection – Remote Procedure Call (RPC)" and in ITU-T Rec. X.667 | ISO/IEC 9834-8:2005. - - - - IRDI - International Registration Data Identifier (IRDI) is based on the international standards ISO/IEC 11179-6, ISO 29002 and ISO 6532 and used in eCl@ss and the Asset Administration Shell as unique identifier. - - - - Area - A subclass of s4bldg:BuildingSpace used to define the physical spaces of the building. According to IEC 62264, areas are physical, geographical or logical groupings of resources determined by the site. A site can be divided in areas, whereas areas contain work centers.s. - - - - GTIN14ID - GTIN-14 (EAN/UCC-14 or ITF-14 or also known as ITF Symbol, SCC-14, DUN-14, UPC Case Code, UPC Shipping Container Code, UCC Code 128, EAN Code 128) is a 14-digit number used to identify trade items at various packaging levels. - - - - GTIN18ID - GTIN-8 (EAN/UCC-8) is an 8-digit number used predominately outside of North America. - - - - Size - The amount of certain objects in a collection (e.g., size of a material batch). - - - - has size - A relationship to count the amount of certain objects in a collection (e.g., size of a material batch) - - - is feature of interest of - - - consists of item - A relation to express that an item can recursively consists of other Items - - - produces - ProductionEquipmentCategory, such as welding machines or laser cutting machines, produce certain categories of items (inverse of s4inma:isProducedBy) - - - has GTIN13ID - - - - - - - has identifier - link between an entity and its unique identifier - - - - has GTIN12ID - - - - - creates - A relation between a production process (e.g., Batch) that creates one or more tangible objects (e.g., Items) - - - - - - needs equipment - A relationship indicating that an entity needs a particular equipment to be produced - - - has GTIN14ID - - - - - has GTIN8ID - - - - - is category of - - - belongs to category - Link between an entity and its category - - - - is produced by - Items are produced using certain types of ProductionEquipmentCategories, for example: welding machines or laser cutting machines. - - - - has state - - - is created in - An Item is created in an ItemBatch. - - - has IRDI - - - - - has feature of interest - - - - has UUID - - - - - consists of batch - A relation to express that a batch can recursively consists of other batches - - - has update - The newer version of a ItemCategory. - - - has UUID value - - - - - - - has identifier value - A relation to express the value of an indentifier as a string (it can be used as alternative to or in combination with the s4inma:hasIdentifier object property - - - - has GTIN13ID value - - - - - has serial number - A relation to describe the serial number of a certain Item, which is unique per Item. - - - has GTIN14ID - - - - - has version - An item has a certain revision or version number, whereas a higher number indicates a newer version. - - - has IRDI - - - - - - - - - has certificate - The MaterialBatch can contain material quality certificates, for example a NEN 10204:2004 3.1 steel certificate. - - - - has model number - A relation to express the model number of a certain object (item, product, equipment, etc.) - - - has GTIN12ID value - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/saref4inma.ttl b/src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/saref4inma.ttl deleted file mode 100644 index 0c0dc9c..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4inma/v1.1.1/saref4inma.ttl +++ /dev/null @@ -1,690 +0,0 @@ -@prefix dcterms: . -@prefix owl: . -@prefix rdf: . -@prefix xml: . -@prefix xsd: . -@prefix rdfs: . -@prefix skos: . -@prefix time: . -@prefix vann: . -@prefix saref: . -@prefix s4bldg: . -@prefix s4inma: . - - a owl:Ontology ; - dcterms:title "SAREF4INMA: an extension of SAREF for the industry and manufacturing domain"@en ; - owl:versionInfo "1.1.1" ; - owl:versionIRI ; - dcterms:created "2015-03-29"^^xsd:date ; - dcterms:modified "2019-04-30"^^xsd:date ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:contributor ; - dcterms:contributor "Matthijs Punter, TNO"^^xsd:string ; - dcterms:contributor ; - dcterms:contributor "Alba Fernandez Izquierdo, UPM"^^xsd:string ; - dcterms:contributor ; - dcterms:contributor ; - dcterms:contributor ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4inma#" ; - vann:preferredNamespacePrefix "s4inma" ; - dcterms:license ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:source ; - dcterms:source ; - dcterms:description "SAREF4INMA is an extension of SAREF for the industry and manufacturing domain. SAREF4INMA focuses on extending SAREF for the industry and manufacturing domain to solve the lack of interoperability between various types of production equipment that produce items in a factory and, once outside the factory, between different organizations in the value chain to uniquely track back the produced items to the corresponding production equipment, batches, material and precise time in which they were manufactured. SAREF4INMA is specified and published by ETSI in the TS 103 410-5 associated to this ontology file. SAREF4INMA was created to be aligned with related initiatives in the smart industry and manufacturing domain in terms of modelling and standardization, such as the Reference Architecture Model for Industry 4.0 (RAMI), which combines several standards used by the various national initiatives in Europe that support digitalization in manufacturing. The full list of use cases, standards and requirements that guided the creation of SAREF4INMA are described in the associated ETSI TR 103 507. "^^xsd:string ; - dcterms:publisher . - - -################################################################# -# Annotation properties -################################################################# - -### http://purl.org/dc/terms/contributor -dcterms:contributor rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/created -dcterms:created rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/creator -dcterms:creator rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/description -dcterms:description rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/issued -dcterms:issued rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/license -dcterms:license rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/modified -dcterms:modified rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/publisher -dcterms:publisher rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/source -dcterms:source rdf:type owl:AnnotationProperty . - - -### http://purl.org/dc/terms/title -dcterms:title rdf:type owl:AnnotationProperty . - - -### http://www.w3.org/2002/07/owl#maxQualifiedCardinality -owl:maxQualifiedCardinality rdf:type owl:AnnotationProperty . - - -################################################################# -# Object Properties -################################################################# - -### https://saref.etsi.org/saref4inma#belongsToCategory -s4inma:belongsToCategory rdf:type owl:ObjectProperty ; - owl:inverseOf s4inma:isCategoryOf ; - rdfs:comment "Link between an entity and its category" ; - rdfs:label "belongs to category" . - - -### https://saref.etsi.org/saref4inma#consistsOfBatch -s4inma:consistsOfBatch rdf:type owl:ObjectProperty ; - rdfs:comment "A relation to express that a batch can recursively consists of other batches"^^xsd:string ; - rdfs:label "consists of batch" . - - -### https://saref.etsi.org/saref4inma#consistsOfItem -s4inma:consistsOfItem rdf:type owl:ObjectProperty ; - rdfs:comment "A relation to express that an item can recursively consists of other Items"^^xsd:string ; - rdfs:label "consists of item" . - - -### https://saref.etsi.org/saref4inma#creates -s4inma:creates rdf:type owl:ObjectProperty ; - owl:inverseOf s4inma:isCreatedIn ; - rdfs:comment "A relation between a production process (e.g., Batch) that creates one or more tangible objects (e.g., Items)"^^xsd:string ; - rdfs:label "creates" . - - -### https://saref.etsi.org/saref4inma#hasFeatureOfInterest -s4inma:hasFeatureOfInterest rdf:type owl:ObjectProperty ; - owl:inverseOf s4inma:isFeatureOfInterestOf ; - rdfs:label "has feature of interest"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasGTIN12ID -s4inma:hasGTIN12ID rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf s4inma:hasIdentifier ; - rdfs:range s4inma:GTIN12ID ; - rdfs:label "has GTIN12ID "^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasGTIN13ID -s4inma:hasGTIN13ID rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf s4inma:hasIdentifier ; - rdfs:range s4inma:GTIN13ID ; - rdfs:label "has GTIN13ID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasGTIN14ID -s4inma:hasGTIN14ID rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf s4inma:hasIdentifier ; - rdfs:range s4inma:GTIN14ID ; - rdfs:label "has GTIN14ID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasGTIN8ID -s4inma:hasGTIN8ID rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf s4inma:hasIdentifier ; - rdfs:range s4inma:GTIN8ID ; - rdfs:label "has GTIN8ID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasIRDI -s4inma:hasIRDI rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf s4inma:hasIdentifier ; - rdfs:range s4inma:IRDI ; - rdfs:label "has IRDI"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasIdentifier -s4inma:hasIdentifier rdf:type owl:ObjectProperty ; - rdfs:range s4inma:ID ; - rdfs:comment "link between an entity and its unique identifier" ; - rdfs:label "has identifier" . - - -### https://saref.etsi.org/saref4inma#hasSize -s4inma:hasSize rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship to count the amount of certain objects in a collection (e.g., size of a material batch)"^^xsd:string ; - rdfs:label "has size" . - - -### https://saref.etsi.org/saref4inma#hasUUID -s4inma:hasUUID rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf s4inma:hasIdentifier ; - rdfs:range s4inma:UUID ; - rdfs:label "has UUID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasUpdate -s4inma:hasUpdate rdf:type owl:ObjectProperty ; - rdfs:comment "The newer version of a ItemCategory." ; - rdfs:label "has update" . - - -### https://saref.etsi.org/saref4inma#isCategoryOf -s4inma:isCategoryOf rdf:type owl:ObjectProperty ; - rdfs:label "is category of" . - - -### https://saref.etsi.org/saref4inma#isCreatedIn -s4inma:isCreatedIn rdf:type owl:ObjectProperty ; - rdfs:comment "An Item is created in an ItemBatch."^^xsd:string ; - rdfs:label "is created in" . - - -### https://saref.etsi.org/saref4inma#isFeatureOfInterestOf -s4inma:isFeatureOfInterestOf rdf:type owl:ObjectProperty ; - rdfs:label "is feature of interest of"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#isProducedBy -s4inma:isProducedBy rdf:type owl:ObjectProperty ; - owl:inverseOf s4inma:produces ; - rdfs:comment "Items are produced using certain types of ProductionEquipmentCategories, for example: welding machines or laser cutting machines." ; - rdfs:label "is produced by" . - - -### https://saref.etsi.org/saref4inma#needsEquipment -s4inma:needsEquipment rdf:type owl:ObjectProperty ; - rdfs:comment "A relationship indicating that an entity needs a particular equipment to be produced"^^xsd:string ; - rdfs:label "needs equipment" . - - -### https://saref.etsi.org/saref4inma#produces -s4inma:produces rdf:type owl:ObjectProperty ; - rdfs:comment "ProductionEquipmentCategory, such as welding machines or laser cutting machines, produce certain categories of items (inverse of s4inma:isProducedBy)"^^xsd:string ; - rdfs:label "produces" . - - -### https://w3id.org/saref#hasFunction -saref:hasFunction rdf:type owl:ObjectProperty . - - -### https://w3id.org/saref#hasState -saref:hasState rdf:type owl:ObjectProperty ; - rdfs:label "has state" . - - -### https://w3id.org/saref#makesMeasurement -saref:makesMeasurement rdf:type owl:ObjectProperty . - - -### https://w3id.org/saref#measuresProperty -saref:measuresProperty rdf:type owl:ObjectProperty . - - -################################################################# -# Data properties -################################################################# - -### https://saref.etsi.org/saref4inma#hasCertificate -s4inma:hasCertificate rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "The MaterialBatch can contain material quality certificates, for example a NEN 10204:2004 3.1 steel certificate."^^rdfs:Literal ; - rdfs:label "has certificate" . - - -### https://saref.etsi.org/saref4inma#hasGTIN12IDValue -s4inma:hasGTIN12IDValue rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf s4inma:hasIDValue ; - rdfs:range xsd:string ; - rdfs:label "has GTIN12ID value"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasGTIN13IDValue -s4inma:hasGTIN13IDValue rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf s4inma:hasIDValue ; - rdfs:range xsd:string ; - rdfs:label "has GTIN13ID value"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasGTIN14IDValue -s4inma:hasGTIN14IDValue rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf s4inma:hasIDValue ; - rdfs:range xsd:string ; - rdfs:label "has GTIN14ID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasGTIN8IDValue -s4inma:hasGTIN8IDValue rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf s4inma:hasIDValue ; - rdfs:range xsd:string . - - -### https://saref.etsi.org/saref4inma#hasIDValue -s4inma:hasIDValue rdf:type owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:comment "A relation to express the value of an indentifier as a string (it can be used as alternative to or in combination with the s4inma:hasIdentifier object property "^^xsd:string ; - rdfs:label "has identifier value" . - - -### https://saref.etsi.org/saref4inma#hasIRDIValue -s4inma:hasIRDIValue rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf s4inma:hasIDValue ; - rdfs:range xsd:string ; - rdfs:label "has IRDI"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasModelNumber -s4inma:hasModelNumber rdf:type owl:DatatypeProperty ; - rdfs:comment "A relation to express the model number of a certain object (item, product, equipment, etc.) "^^xsd:string ; - rdfs:label "has model number" . - - -### https://saref.etsi.org/saref4inma#hasSerialNumber -s4inma:hasSerialNumber rdf:type owl:DatatypeProperty ; - rdfs:comment "A relation to describe the serial number of a certain Item, which is unique per Item."^^xsd:string ; - rdfs:label "has serial number" . - - -### https://saref.etsi.org/saref4inma#hasUUIDValue -s4inma:hasUUIDValue rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf s4inma:hasIDValue ; - rdfs:range xsd:string ; - rdfs:label "has UUID value"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#hasVersion -s4inma:hasVersion rdf:type owl:DatatypeProperty ; - rdfs:comment "An item has a certain revision or version number, whereas a higher number indicates a newer version."^^rdfs:Literal ; - rdfs:label "has version" . - - -################################################################# -# Classes -################################################################# - -### http://www.w3.org/2004/02/skos/core#ConceptScheme -skos:ConceptScheme rdf:type owl:Class . - - -### https://w3id.org/def/s4bldg#Building - rdf:type owl:Class . - - -### https://w3id.org/def/s4bldg#BuildingSpace - rdf:type owl:Class . - - -### https://w3id.org/def/s4bldg#PhysicalObject - rdf:type owl:Class . - - -### https://saref.etsi.org/saref4inma#ActualMeasurement -s4inma:ActualMeasurement rdf:type owl:Class ; - rdfs:subClassOf s4inma:Measurement ; - owl:disjointWith s4inma:ExpectedMeasurement ; - rdfs:comment "Describes whether the measurement is actually measured during the production process. Disjoint with ExpectedMeasurement."^^xsd:string ; - rdfs:label "Actual measurement" . - - -### https://saref.etsi.org/saref4inma#Area -s4inma:Area rdf:type owl:Class ; - rdfs:subClassOf ; - rdfs:comment "A subclass of s4bldg:BuildingSpace used to define the physical spaces of the building. According to IEC 62264, areas are physical, geographical or logical groupings of resources determined by the site. A site can be divided in areas, whereas areas contain work centers.s."^^xsd:string ; - rdfs:label "Area" . - - -### https://saref.etsi.org/saref4inma#Batch -s4inma:Batch rdf:type owl:Class ; - rdfs:subClassOf owl:Thing , - saref:FeatureOfInterest , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:consistsOfBatch ; - owl:allValuesFrom s4inma:Batch - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIdentifier ; - owl:allValuesFrom s4inma:ID - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:isFeatureOfInterestOf ; - owl:allValuesFrom s4inma:Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:needsEquipment ; - owl:allValuesFrom s4inma:ProductionEquipment - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasSize ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4inma:Size - ] ; - rdfs:comment "A uniform collection of tangible objects or Lot. This can either be a collection of produced items (i.e. the outflow of products) or a collection of raw material or required material (i.e. the inflow of products). It is assumed that the objects in a batch are similar and thus have shared attributes. Note that this definition is broader than the definition in IEC 61512, which defines a batch as the material that is being produced (whereas in SAREF4INMA a batch can be items or materials). "^^xsd:string ; - rdfs:label "Batch" . - - -### https://saref.etsi.org/saref4inma#ExpectedMeasurement -s4inma:ExpectedMeasurement rdf:type owl:Class ; - rdfs:subClassOf s4inma:Measurement ; - rdfs:comment "Describes whether the measurement is expected (i.e., planned before the production process). Disjoint with ActualMeasurement."^^xsd:string ; - rdfs:label "Expected measurement" . - - -### https://saref.etsi.org/saref4inma#Factory -s4inma:Factory rdf:type owl:Class ; - rdfs:subClassOf ; - rdfs:comment "A subclass of s4bldg:Building specialized for the purpose of SAREF4INMA, a factory represents one or more organizations sharing a definit mission, goals and objectives which provides an output such as a product (definition taken from IEC 62264). A factory can be divided in one or multiple sites. "^^xsd:string ; - rdfs:label "Factory" . - - -### https://saref.etsi.org/saref4inma#GTIN12ID -s4inma:GTIN12ID rdf:type owl:Class ; - rdfs:subClassOf s4inma:ID ; - rdfs:comment "GTIN-12 (UPC-A) is a 12-digit number used primarily in North America"^^xsd:string ; - rdfs:label "GTIN12ID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#GTIN13ID -s4inma:GTIN13ID rdf:type owl:Class ; - rdfs:subClassOf s4inma:ID ; - rdfs:comment "GTIN-13 (EAN/UCC-13) is a 13-digit number used predominately outside of North America"^^xsd:string ; - rdfs:label "GTIN13ID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#GTIN14ID -s4inma:GTIN14ID rdf:type owl:Class ; - rdfs:subClassOf s4inma:ID ; - rdfs:comment "GTIN-14 (EAN/UCC-14 or ITF-14 or also known as ITF Symbol, SCC-14, DUN-14, UPC Case Code, UPC Shipping Container Code, UCC Code 128, EAN Code 128) is a 14-digit number used to identify trade items at various packaging levels."^^xsd:string ; - rdfs:label "GTIN14ID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#GTIN8ID -s4inma:GTIN8ID rdf:type owl:Class ; - rdfs:subClassOf s4inma:ID ; - rdfs:comment "GTIN-8 (EAN/UCC-8) is an 8-digit number used predominately outside of North America."^^rdfs:Literal ; - rdfs:label "GTIN18ID"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#ID -s4inma:ID rdf:type owl:Class ; - rdfs:subClassOf skos:ConceptScheme , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIDValue ; - owl:someValuesFrom xsd:string - ] ; - rdfs:comment "A unique identifier."^^rdfs:Literal ; - rdfs:label "Identifier" . - - -### https://saref.etsi.org/saref4inma#IRDI -s4inma:IRDI rdf:type owl:Class ; - rdfs:subClassOf s4inma:ID ; - rdfs:comment "International Registration Data Identifier (IRDI) is based on the international standards ISO/IEC 11179-6, ISO 29002 and ISO 6532 and used in eCl@ss and the Asset Administration Shell as unique identifier."^^rdfs:Literal ; - rdfs:label "IRDI" . - - -### https://saref.etsi.org/saref4inma#Item -s4inma:Item rdf:type owl:Class ; - rdfs:subClassOf saref:FeatureOfInterest , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIdentifier ; - owl:someValuesFrom s4inma:ID - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:consistsOfItem ; - owl:allValuesFrom s4inma:Item - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIdentifier ; - owl:allValuesFrom s4inma:ID - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:isCreatedIn ; - owl:allValuesFrom s4inma:ItemBatch - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:isFeatureOfInterestOf ; - owl:allValuesFrom s4inma:Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:isCreatedIn ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4inma:ItemBatch - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIDValue ; - owl:allValuesFrom xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasSerialNumber ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] ; - rdfs:comment "A tangible object which can be unique identified, for example, with a GTIN in the form of a barcode/QR/RFID tag. An item product can be the result of the organization's production process (i.e. outflow of objects/goods) or can be uniquely identifiable material (i.e. inflow of objects/supplies). Each item is part of exactly one ItemBatch, whereas each ItemBatch contains only Items which have similar properties. An item can consists of multiple Batches and other Items (i.e. subassemblies)."^^rdfs:Literal ; - rdfs:label "Item" . - - -### https://saref.etsi.org/saref4inma#ItemBatch -s4inma:ItemBatch rdf:type owl:Class ; - rdfs:subClassOf s4inma:Batch , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:belongsToCategory ; - owl:allValuesFrom s4inma:ItemCategory - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:creates ; - owl:allValuesFrom s4inma:Item - ] ; - rdfs:comment "A uniform collection of tangible objects which are relevant for the prodcution process. The ItemBatch consists of a set of objects with similar properties (e.g. a certain type of sensors or metal sheets). The difference between ItemBatch and MaterialBatch is that individual items can be traced in a ItemBatch, whereas this is not possible in a MaterialBatch, meaning that, for example, it is possible to trace the individual metal sheet used in a ItemBatch. This implies that the objects in an ItemBatch have an unique identifier (e.g. a GTIN code in the form of a barcode/QR-code or RFID tag)."^^rdfs:Literal ; - rdfs:label "Item Batch" . - - -### https://saref.etsi.org/saref4inma#ItemCategory -s4inma:ItemCategory rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIdentifier ; - owl:someValuesFrom s4inma:ID - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIdentifier ; - owl:allValuesFrom s4inma:ID - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasUpdate ; - owl:allValuesFrom s4inma:ItemCategory - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:isCategoryOf ; - owl:allValuesFrom s4inma:ItemBatch - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:isProducedBy ; - owl:allValuesFrom s4inma:ProductionEquipmentCategory - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasModelNumber ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasVersion ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] ; - rdfs:comment "An ItemCategory describes a single type of item in terms of its static properties. Each ItemCategory can have multiple related ItemBatches, which all contain individual Items. The essential properties of each Item in all ItemBatches are the same. However, each batch might use different MaterialBatches and/or different ProductionEquipment. Therefore, small deviations between batches might occur, while the essential properties of all Items related to an ItemCategory are similar."^^xsd:string ; - rdfs:label "Item category" . - - -### https://saref.etsi.org/saref4inma#MaterialBatch -s4inma:MaterialBatch rdf:type owl:Class ; - rdfs:subClassOf s4inma:Batch , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:belongsToCategory ; - owl:allValuesFrom s4inma:MaterialCategory - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasCertificate ; - owl:allValuesFrom xsd:string - ] ; - rdfs:comment "A uniform collection of tangible raw material which are relevant for the prodcution process. The MaterialBatch can consists of a set of objects with similar properties (e.g. a certain type of screws) or a stock of homogeen material (e.g. oil, water). The difference between MaterialBatch and ItemBatch is that individual items cannot be traced in a MaterialBatch, whereas this is possible in an ItemBatch, meaning that, for example, it is not possible to trace the individual screw used in a MaterialBatch."^^rdfs:Literal ; - rdfs:label "Material Batch" . - - -### https://saref.etsi.org/saref4inma#MaterialCategory -s4inma:MaterialCategory rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty s4inma:isCategoryOf ; - owl:allValuesFrom s4inma:MaterialBatch - ] ; - rdfs:comment "A MaterialCategory describes a category of material in terms of its static properties. Examples are: a certain category of steel or plastic. Each MaterialCategory can have multiple related MaterialBatches, which represent the physical material. The essential properties of the material in all MaterialBatches are the same. However, each batch might use different MaterialBatches and/or different ProductionEquipment. Therefore, small deviations between batches might occur, while the essential properties of the material related to an MaterialCategory are similar."^^xsd:string ; - rdfs:label "Material category" . - - -### https://saref.etsi.org/saref4inma#Measurement -s4inma:Measurement rdf:type owl:Class ; - rdfs:subClassOf saref:Measurement , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasFeatureOfInterest ; - owl:allValuesFrom [ rdf:type owl:Class ; - owl:unionOf ( s4inma:Batch - s4inma:Item - ) - ] - ] ; - rdfs:comment "A subclass of saref:Measurement that represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement. The saref4imna:Measurement can be linked to individual Batches or Items. Moreover, the Measurement can be an ExpectedMeasurement (i.e. the value which is planned) or the ActualMeasurement (i.e. the value measured during production), which enables to check for deviations between the planned and actual values."^^xsd:string ; - rdfs:label "Measurement" . - - -### https://saref.etsi.org/saref4inma#ProductionEquipment -s4inma:ProductionEquipment rdf:type owl:Class ; - rdfs:subClassOf , - saref:Device , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:belongsToCategory ; - owl:allValuesFrom s4inma:ProductionEquipmentCategory - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIdentifier ; - owl:allValuesFrom s4inma:ID - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasFunction ; - owl:allValuesFrom s4inma:ProductionEquipmentFunction - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:hasState ; - owl:allValuesFrom saref:State - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:makesMeasurement ; - owl:allValuesFrom s4inma:Measurement - ] , - [ rdf:type owl:Restriction ; - owl:onProperty saref:measuresProperty ; - owl:allValuesFrom saref:Property - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasIDValue ; - owl:allValuesFrom xsd:string - ] ; - rdfs:comment "A production equipment is a specialization of a saref:Device and s4bldg:PhysicalObject that can produce items in a manufacturing process. This class represents an individual production equipment device and includes their specification in terms of functions, states and services. Different types of machines can be defined under this class as needed, for example, LaserCuttingMachine (i.e., a type of production equipment to cut steel material), MillingMachine (i.e., to drill holes in steel material), MouldingMachine (i.e., to mold liquid material, such as iron or plastic, and let it harden in a certain shape), WeldingMachine (i.e., join parts of material, such as steel, together), etc."^^xsd:string ; - rdfs:label "ProductionEquipment" . - - -### https://saref.etsi.org/saref4inma#ProductionEquipmentCategory -s4inma:ProductionEquipmentCategory rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty s4inma:isCategoryOf ; - owl:allValuesFrom s4inma:ProductionEquipment - ] , - [ rdf:type owl:Restriction ; - owl:onProperty s4inma:hasModelNumber ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:string - ] ; - rdfs:comment "A ProductionEquipmentCategory represents a certain type of production equipment, which is generally static over time. More concretely, the ProductionEquipmentCategory represents a certain model and brand of a production equipment. Each ProductionEquipmentCategory can have multiple related ProductionEquipment, which represent the actual individual machines. Moreover, each ItemCategory can be produced by multiple ProductionEquipmentCategories."^^rdfs:Literal ; - rdfs:label "Production equipment category" . - - -### https://saref.etsi.org/saref4inma#ProductionEquipmentFunction -s4inma:ProductionEquipmentFunction rdf:type owl:Class ; - rdfs:subClassOf owl:Thing , - saref:Function ; - rdfs:label "Production equipment function"^^xsd:string . - - -### https://saref.etsi.org/saref4inma#Site -s4inma:Site rdf:type owl:Class ; - rdfs:subClassOf ; - rdfs:comment "A subclass of s4bldg:BuildingSpace used to define the physical spaces of the building. According to IEC 62264, sites are identified physical, geographical, and/or logical component groupings of a manufacturing enterprise. A factory can be divided in sites, whereas sites can be divided areas"^^xsd:string ; - rdfs:label "Site" . - - -### https://saref.etsi.org/saref4inma#Size -s4inma:Size rdf:type owl:Class ; - rdfs:subClassOf saref:Property ; - rdfs:comment "The amount of certain objects in a collection (e.g., size of a material batch)."^^xsd:string ; - rdfs:label "Size" . - - -### https://saref.etsi.org/saref4inma#UUID -s4inma:UUID rdf:type owl:Class ; - rdfs:subClassOf s4inma:ID ; - rdfs:comment "A universally unique identifier (UUID) is a 128-bit number used to identify items and is also known as: globally unique identifier (GUID). In its canonical textual representation, the sixteen octets of a UUID are represented as 32 hexadecimal (base 16) digits, displayed in five groups separated by hyphens, in the form 8-4-4-4-12 for a total of 36 characters (32 alphanumeric characters and four hyphens). UUID are documented in ISO/IEC 11578:1996 \"Information technology – Open Systems Interconnection – Remote Procedure Call (RPC)\" and in ITU-T Rec. X.667 | ISO/IEC 9834-8:2005." ; - rdfs:label "UUID" . - - -### https://saref.etsi.org/saref4inma#WorkCenter -s4inma:WorkCenter rdf:type owl:Class ; - rdfs:subClassOf s4inma:ProductionEquipment ; - rdfs:comment "A subclass of s4inma:ProductionEquipment (and therefore of s4bld:PhysicalObject). It is an equipment element under an area in a role-based equipment hierarchy that performs production, storage or material movement (definition taken from IEC 62264). An Area contains work centers."^^xsd:string ; - rdfs:label "Work center" . - - -### https://w3id.org/saref#Device -saref:Device rdf:type owl:Class . - - -### https://w3id.org/saref#FeatureOfInterest -saref:FeatureOfInterest rdf:type owl:Class . - - -### https://w3id.org/saref#Function -saref:Function rdf:type owl:Class . - - -### https://w3id.org/saref#Measurement -saref:Measurement rdf:type owl:Class . - - -### https://w3id.org/saref#Property -saref:Property rdf:type owl:Class . - - -### https://w3id.org/saref#State -saref:State rdf:type owl:Class . - - -################################################################# -# General axioms -################################################################# - -[ rdf:type owl:AllDisjointClasses ; - owl:members ( s4inma:Area - s4inma:Site - s4inma:WorkCenter - ) -] . - - -### Generated by the OWL API (version 4.2.8.20170104-2310) https://github.com/owlcs/owlapi diff --git a/src/main/resources/saref-portal-generator/public/saref4syst/desktop.ini b/src/main/resources/saref-portal-generator/public/saref4syst/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4syst/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4syst/latest/desktop.ini b/src/main/resources/saref-portal-generator/public/saref4syst/latest/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4syst/latest/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4syst/latest/example.ttl b/src/main/resources/saref-portal-generator/public/saref4syst/latest/example.ttl deleted file mode 100644 index 9e32d22..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4syst/latest/example.ttl +++ /dev/null @@ -1,64 +0,0 @@ -@prefix saref: . -@prefix s4syst: . -@base . - - - a owl:Ontology ; - owl:imports . - - -# -- the instantiation of the SAREF4SYST pattern. -- - -s4syst-ex:ElectricPowerSystem a owl:Class ; - rdfs:subClassOf s4syst:System ; - rdfs:label "Electric Power System"@en ; - rdfs:comment "The class of electric power systems."@en . - - -s4syst-ex:subElectricPowerSystemOf a owl:ObjectProperty ; - rdfs:subPropertyOf s4syst:subSystemOf ; - rdfs:label "sub electric power system of"@en . - - -# ... - - -# -- the instances -- - - a s4syst:System . - - a s4syst:System . - - -# Connected systems interact in some ways. -# The exact meaning of interact is defined by sub-properties of s4syst:connectedTo. - - s4syst:connectedTo . - - -# for example s4syst-ex:exchangesElectricityWith can be defined to specify that electric energy flows between the and the electric vehicle . - - s4syst-ex:exchangesElectricityWith . - -# A system can be a sub-system of another system. - s4syst:subSystemOf . - -# Properties of subsystems somehow contribute to the properties of the super system. -# The exact meaning of this contribution is defined by sub properties of s4syst:subSystemOf. - - s4syst-ex:subElectricPowerSystemOf . - - -# A connection between two s4syst:Systems, modelled by s4syst:connectedTo, -# describes the potential interactions between connected s4syst:Systems. -# A connection can be qualified using class s4syst:Connection. - - s4syst:connectsSystem , . - s4syst:connectedThrough . - s4syst:connectedThrough . - - -# A s4syst:System connects to other s4syst:Systems at connection points. -A connection point belongs to one and only one s4syst:System, and can be described using the class s4syst:ConnectionPoint. - - s4syst:connectsAt , , . diff --git a/src/main/resources/saref-portal-generator/public/saref4syst/latest/saref4syst.html b/src/main/resources/saref-portal-generator/public/saref4syst/latest/saref4syst.html deleted file mode 100644 index fda582d..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4syst/latest/saref4syst.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - SAREF4SYST: an extension of SAREF for typology of systems and their inter-connections

    -

    Official ETSI documentation for SAREF4SYST v1.1.1
    This page will soon contain the documentation of the SAREF4SYST ontology v1.1.1

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    The documentation of SAREF4SYST v1.1.1 will be available here soon. The source of the ontology are available as Turtle or RDF/XML. Visualize it with VOWL

    -
    -
    -
    -
    -

    SAREF4SYST is a generic extension of SAREF that defines ontology patterns which can then be instantiated for different domains. SAREF4SYST defines Systems, Connections between systems, and Connection Points at which systems may be connected. These core concepts can be used generically to define the topology of features of interest, and are specialized for multiple domains. This ontology patterns can be instantiated for different domains. For example to describe zones inside a building (systems), that share a frontier (connections). SAREF4SYST has two main aims: on the one hand, to extend SAREF with the capacility or representing general topology of systems and how they are connected or interact, and on the other hand, to exemplify how ontology patterns may help to ensure an homogeneous structure of the overall SAREF ontology and speed up the development of extensions. SAREF4SYST is specified and published by ETSI in the TS 103 548 associated to this ontology file.

    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4syst/latest/saref4syst.n3 b/src/main/resources/saref-portal-generator/public/saref4syst/latest/saref4syst.n3 deleted file mode 100644 index 4d8b8b1..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4syst/latest/saref4syst.n3 +++ /dev/null @@ -1,176 +0,0 @@ -@prefix gopi: . -@prefix rdf: . -@prefix owl: . -@prefix xml: . -@prefix s4syst: . -@prefix xsd: . -@prefix dcterms: . -@prefix skos: . -@prefix voaf: . -@prefix rdfs: . -@prefix vann: . -@prefix foaf: . - - - a foaf:Person ; - foaf:name "Maxime Lefrançois" . - -s4syst:Connection a owl:Class ; - rdfs:comment "The class of connections between systems. This class qualifies property s4syst:connectedTo. A connection describes potential interactions between systems. Any two connected systems are connected through a connection. A connection can connect more than two systems at the same time."@en ; - rdfs:label "Connection"@en ; - rdfs:subClassOf [ owl:onProperty s4syst:connectsSystemAt ; - owl:someValuesFrom s4syst:ConnectionPoint - ] ; - rdfs:subClassOf [ owl:onProperty s4syst:connectsSystem ; - owl:someValuesFrom s4syst:System - ] ; - owl:disjointWith s4syst:System ; - gopi:inModule s4syst:ConnectionModule . - -dcterms:description a owl:AnnotationProperty . - -dcterms:creator a owl:AnnotationProperty . - -s4syst:SystemModule a gopi:Module . - -s4syst:connectsSystemThrough - a owl:ObjectProperty ; - rdfs:comment "Links a connection point to one of the connections through which it connects its system."@en ; - rdfs:domain s4syst:ConnectionPoint ; - rdfs:label "connects system through"@en ; - rdfs:range s4syst:Connection ; - owl:inverseOf s4syst:connectsSystemAt ; - gopi:inModule s4syst:ConnectionPointModule . - -gopi:inModule a owl:AnnotationProperty . - -voaf:Vocabulary a owl:Class . - -s4syst:hasSubSystem a owl:TransitiveProperty , owl:ObjectProperty ; - rdfs:comment "Links a system to one of its sub systems."@en ; - rdfs:domain s4syst:System ; - rdfs:label "has sub system"@en ; - rdfs:range s4syst:System ; - owl:inverseOf s4syst:subSystemOf ; - gopi:inModule s4syst:SystemModule . - -s4syst:subSystemOf a owl:TransitiveProperty , owl:ObjectProperty ; - rdfs:comment "Links a system to its super system. Properties of subsystems somehow contribute to the properties of the super system. The exact meaning of \"contribute is defined by sub properties of s4syst:subSystemOf. Property s4syst:subSystemOf is transitive."@en ; - rdfs:domain s4syst:System ; - rdfs:label "sub system of"@en ; - rdfs:range s4syst:System ; - owl:inverseOf s4syst:hasSubSystem ; - gopi:inModule s4syst:SystemModule . - -s4syst:ConnectionPointModule - a gopi:Module . - -dcterms:issued a owl:AnnotationProperty . - -dcterms:created a owl:AnnotationProperty . - -s4syst:connectedThrough - a owl:ObjectProperty ; - rdfs:comment "Links a system to one of its connections to other systems."@en ; - rdfs:domain s4syst:System ; - rdfs:label "connected through"@en ; - rdfs:range s4syst:Connection ; - owl:inverseOf s4syst:connectsSystem ; - owl:propertyChainAxiom ( s4syst:connectsAt s4syst:connectsSystemThrough ) ; - gopi:inModule s4syst:ConnectionModule . - -foaf:name a owl:DatatypeProperty . - -s4syst:System a owl:Class ; - rdfs:comment "The class of systems, i.e., systems virtually isolated from the environment, whose behaviour and interactions with the environment are modeled. Systems can be connected to other systems. Connected systems interact in some ways. Systems can also have subsystems. Properties of subsystems somehow contribute to the properties of the supersystem."@en ; - rdfs:label "System"@en ; - gopi:inModule s4syst:SystemModule . - -dcterms:publisher a owl:AnnotationProperty . - -gopi:Module a owl:Class . - -s4syst:connectsSystem - a owl:ObjectProperty ; - rdfs:comment "Links a connection to one of the systems it connects."@en ; - rdfs:domain s4syst:Connection ; - rdfs:label "connects system"@en ; - rdfs:range s4syst:System ; - owl:inverseOf s4syst:connectedThrough ; - owl:propertyChainAxiom ( s4syst:connectsSystemAt s4syst:connectionPointOf ) ; - gopi:inModule s4syst:ConnectionModule . - -foaf:Person a owl:Class . - -s4syst:connectsAt a owl:InverseFunctionalProperty , owl:ObjectProperty ; - rdfs:comment "Links a system to one of the connection points at which it connects."@en ; - rdfs:domain s4syst:System ; - rdfs:label "connects at"@en ; - rdfs:range s4syst:ConnectionPoint ; - owl:inverseOf s4syst:connectionPointOf ; - gopi:inModule s4syst:ConnectionPointModule . - -s4syst:ConnectionModule - a gopi:Module . - -s4syst:connectedTo a owl:SymmetricProperty , owl:ObjectProperty ; - rdfs:comment "Links a system to a system it is connected to. Connected systems interact in some way. The exact meaning of \"interact\" is defined by sub properties of s4syst:connectedTo. Property s4syst:connectedTo is symmetric. This property can be qualified using class s4syst:Connection, which connects the two systems. If there is a connection between several systems, then one may infer these systems are pairwise connected."@en ; - rdfs:domain s4syst:System ; - rdfs:label "connected to"@en ; - rdfs:range s4syst:System ; - gopi:inModule s4syst:SystemModule . - -s4syst:ConnectionPoint - a owl:Class ; - rdfs:comment "The class of connection points of systems, at which they may be connected to other systems. This class qualifies properties s4syst:connectsSystem and s4syst:connectedThrough. A connection point belongs to exactly one system. Any system connected through a connection is connected at one of its connection points to the connection. The system of a connection point that is connected through a connection is itself connected through the connection."@en ; - rdfs:label "Connection Point"@en ; - rdfs:subClassOf [ owl:cardinality 1 ; - owl:onProperty s4syst:connectionPointOf - ] ; - owl:disjointWith s4syst:Connection , s4syst:System ; - gopi:inModule s4syst:ConnectionPointModule . - -dcterms:license a owl:AnnotationProperty . - -dcterms:title a owl:AnnotationProperty . - -s4syst:connectsSystemAt - a owl:ObjectProperty ; - rdfs:comment "Links a connection to one of the connection points at which it connects a system."@en ; - rdfs:domain s4syst:Connection ; - rdfs:label "connects system at"@en ; - rdfs:range s4syst:ConnectionPoint ; - owl:inverseOf s4syst:connectsSystemThrough ; - gopi:inModule s4syst:ConnectionPointModule . - - - a owl:Ontology ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:contributor ; - dcterms:created "2019-04-26"^^xsd:date ; - dcterms:description "SAREF4SYST is a generic extension of SAREF that defines ontology patterns which can then be instantiated for different domains. SAREF4SYST defines Systems, Connections between systems, and Connection Points at which systems may be connected. These core concepts can be used generically to define the topology of features of interest, and are specialized for multiple domains. This ontology patterns can be instantiated for different domains. For example to describe zones inside a building (systems), that share a frontier (connections). SAREF4SYST has two main aims: on the one hand, to extend SAREF with the capacility or representing general topology of systems and how they are connected or interact, and on the other hand, to exemplify how ontology patterns may help to ensure an homogeneous structure of the overall SAREF ontology and speed up the development of extensions. SAREF4SYST is specified and published by ETSI in the TS 103 548 associated to this ontology file."@en ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:modified "2019-06-06"^^xsd:date ; - dcterms:publisher ; - dcterms:source ; - dcterms:title "SAREF4SYST: an extension of SAREF for typology of systems and their inter-connections"@en ; - vann:preferredNamespacePrefix "s4syst" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4syst#" ; - owl:versionIRI ; - owl:versionInfo "1.1.1" . - -vann:preferredNamespaceUri - a owl:AnnotationProperty . - -s4syst:connectionPointOf - a owl:FunctionalProperty , owl:ObjectProperty ; - rdfs:comment "Links a connection point to the one and only one system it belongs to."@en ; - rdfs:domain s4syst:ConnectionPoint ; - rdfs:label "connection point to"@en ; - rdfs:range s4syst:System ; - owl:inverseOf s4syst:connectsAt ; - gopi:inModule s4syst:ConnectionPointModule . - -vann:preferredNamespacePrefix - a owl:AnnotationProperty . diff --git a/src/main/resources/saref-portal-generator/public/saref4syst/latest/saref4syst.rdf b/src/main/resources/saref-portal-generator/public/saref4syst/latest/saref4syst.rdf deleted file mode 100644 index b3c1b1e..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4syst/latest/saref4syst.rdf +++ /dev/null @@ -1,187 +0,0 @@ - - - SAREF4SYST is a generic extension of SAREF that defines ontology patterns which can then be instantiated for different domains. SAREF4SYST defines Systems, Connections between systems, and Connection Points at which systems may be connected. These core concepts can be used generically to define the topology of features of interest, and are specialized for multiple domains. This ontology patterns can be instantiated for different domains. For example to describe zones inside a building (systems), that share a frontier (connections). SAREF4SYST has two main aims: on the one hand, to extend SAREF with the capacility or representing general topology of systems and how they are connected or interact, and on the other hand, to exemplify how ontology patterns may help to ensure an homogeneous structure of the overall SAREF ontology and speed up the development of extensions. SAREF4SYST is specified and published by ETSI in the TS 103 548 associated to this ontology file. - s4syst - https://saref.etsi.org/saref4syst# - 2019-06-11 - 1.1.1 - 2019-04-26 - - - - SAREF4SYST: an extension of SAREF for typology of systems and their inter-connections - - - Maxime Lefrançois - - - This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge. - 2019-06-06 - - - - - The class of systems, i.e., systems virtually isolated from the environment, whose behaviour and interactions with the environment are modeled. Systems can be connected to other systems. Connected systems interact in some ways. Systems can also have subsystems. Properties of subsystems somehow contribute to the properties of the supersystem. - System - - - - - - - - - - - 1 - - - - - The class of connection points of systems, at which they may be connected to other systems. This class qualifies properties s4syst:connectsSystem and s4syst:connectedThrough. A connection point belongs to exactly one system. Any system connected through a connection is connected at one of its connection points to the connection. The system of a connection point that is connected through a connection is itself connected through the connection. - Connection Point - - - - - - - - - - - - - - - - - - - - - The class of connections between systems. This class qualifies property s4syst:connectedTo. A connection describes potential interactions between systems. Any two connected systems are connected through a connection. A connection can connect more than two systems at the same time. - Connection - - - - - - - - - - - Links a connection point to one of the connections through which it connects its system. - connects system through - - - - - - - - - - - - - Links a connection to one of the systems it connects. - connects system - - - - - - - - - - - Links a system to one of its connections to other systems. - connected through - - - - - - - Links a connection to one of the connection points at which it connects a system. - connects system at - - - - - - - - - - Links a system to one of its sub systems. - has sub system - - - - - - - - Links a system to its super system. Properties of subsystems somehow contribute to the properties of the super system. The exact meaning of "contribute is defined by sub properties of s4syst:subSystemOf. Property s4syst:subSystemOf is transitive. - sub system of - - - - - - - Links a system to a system it is connected to. Connected systems interact in some way. The exact meaning of "interact" is defined by sub properties of s4syst:connectedTo. Property s4syst:connectedTo is symmetric. This property can be qualified using class s4syst:Connection, which connects the two systems. If there is a connection between several systems, then one may infer these systems are pairwise connected. - connected to - - - - - - - - - - Links a connection point to the one and only one system it belongs to. - connection point to - - - - - - - - Links a system to one of the connection points at which it connects. - connects at - - - - - - - - - - - - - - diff --git a/src/main/resources/saref-portal-generator/public/saref4syst/latest/saref4syst.ttl b/src/main/resources/saref-portal-generator/public/saref4syst/latest/saref4syst.ttl deleted file mode 100644 index 5295d83..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4syst/latest/saref4syst.ttl +++ /dev/null @@ -1,157 +0,0 @@ -@prefix dcterms: . -@prefix owl: . -@prefix rdf: . -@prefix xml: . -@prefix xsd: . -@prefix foaf: . -@prefix voaf: . -@prefix vann: . -@prefix rdfs: . -@prefix skos: . -@prefix s4syst: . -@prefix gopi: . - - a owl:Ontology ; - dcterms:title "SAREF4SYST: an extension of SAREF for typology of systems and their inter-connections"@en ; - owl:versionInfo "1.1.1" ; - owl:versionIRI ; - dcterms:created "2019-04-26"^^xsd:date ; - dcterms:modified "2019-06-06"^^xsd:date ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:contributor ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4syst#" ; - vann:preferredNamespacePrefix "s4syst" ; - dcterms:license ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:source ; - dcterms:description "SAREF4SYST is a generic extension of SAREF that defines ontology patterns which can then be instantiated for different domains. SAREF4SYST defines Systems, Connections between systems, and Connection Points at which systems may be connected. These core concepts can be used generically to define the topology of features of interest, and are specialized for multiple domains. This ontology patterns can be instantiated for different domains. For example to describe zones inside a building (systems), that share a frontier (connections). SAREF4SYST has two main aims: on the one hand, to extend SAREF with the capacility or representing general topology of systems and how they are connected or interact, and on the other hand, to exemplify how ontology patterns may help to ensure an homogeneous structure of the overall SAREF ontology and speed up the development of extensions. SAREF4SYST is specified and published by ETSI in the TS 103 548 associated to this ontology file."@en ; - dcterms:publisher . - - a foaf:Person ; - foaf:name "Maxime Lefrançois" . - -voaf:Vocabulary a owl:Class . -dcterms:title a owl:AnnotationProperty . -dcterms:issued a owl:AnnotationProperty . -dcterms:creator a owl:AnnotationProperty . -dcterms:publisher a owl:AnnotationProperty . -dcterms:description a owl:AnnotationProperty . -dcterms:license a owl:AnnotationProperty . -dcterms:created a owl:AnnotationProperty . -vann:preferredNamespacePrefix a owl:AnnotationProperty . -vann:preferredNamespaceUri a owl:AnnotationProperty . -foaf:Person a owl:Class . -foaf:name a owl:DatatypeProperty . -gopi:inModule a owl:AnnotationProperty . -gopi:Module a owl:Class . - -# systems - -s4syst:SystemModule a gopi:Module . - -s4syst:System a owl:Class ; - gopi:inModule s4syst:SystemModule ; - rdfs:label "System"@en ; - rdfs:comment """The class of systems, i.e., systems virtually isolated from the environment, whose behaviour and interactions with the environment are modeled. Systems can be connected to other systems. Connected systems interact in some ways. Systems can also have subsystems. Properties of subsystems somehow contribute to the properties of the supersystem."""@en . - -s4syst:connectedTo a owl:ObjectProperty , owl:SymmetricProperty ; - gopi:inModule s4syst:SystemModule ; - rdfs:label "connected to"@en ; - rdfs:comment """Links a system to a system it is connected to. Connected systems interact in some way. The exact meaning of "interact" is defined by sub properties of s4syst:connectedTo. Property s4syst:connectedTo is symmetric. This property can be qualified using class s4syst:Connection, which connects the two systems. If there is a connection between several systems, then one may infer these systems are pairwise connected."""@en ; - rdfs:domain s4syst:System ; - rdfs:range s4syst:System . - -s4syst:subSystemOf a owl:ObjectProperty , owl:TransitiveProperty ; - gopi:inModule s4syst:SystemModule ; - rdfs:label "sub system of"@en ; - rdfs:comment """Links a system to its super system. Properties of subsystems somehow contribute to the properties of the super system. The exact meaning of "contribute is defined by sub properties of s4syst:subSystemOf. Property s4syst:subSystemOf is transitive."""@en ; - rdfs:domain s4syst:System ; - rdfs:range s4syst:System ; - owl:inverseOf s4syst:hasSubSystem . - -s4syst:hasSubSystem a owl:ObjectProperty , owl:TransitiveProperty ; - gopi:inModule s4syst:SystemModule ; - rdfs:label "has sub system"@en ; - rdfs:comment """Links a system to one of its sub systems."""@en ; - rdfs:domain s4syst:System ; - rdfs:range s4syst:System ; - owl:inverseOf s4syst:subSystemOf . - -# connections - -s4syst:ConnectionModule a gopi:Module . - -s4syst:Connection a owl:Class ; - gopi:inModule s4syst:ConnectionModule ; - rdfs:label "Connection"@en ; - rdfs:comment """The class of connections between systems. This class qualifies property s4syst:connectedTo. A connection describes potential interactions between systems. Any two connected systems are connected through a connection. A connection can connect more than two systems at the same time."""@en ; - rdfs:subClassOf [ owl:onProperty s4syst:connectsSystem ; owl:someValuesFrom s4syst:System ] ; - rdfs:subClassOf [ owl:onProperty s4syst:connectsSystemAt ; owl:someValuesFrom s4syst:ConnectionPoint ] ; - owl:disjointWith s4syst:System . - -s4syst:connectsSystem a owl:ObjectProperty ; - gopi:inModule s4syst:ConnectionModule ; - rdfs:label "connects system"@en ; - rdfs:comment "Links a connection to one of the systems it connects."@en ; - rdfs:domain s4syst:Connection ; - rdfs:range s4syst:System ; - owl:inverseOf s4syst:connectedThrough . - -s4syst:connectedThrough a owl:ObjectProperty ; - gopi:inModule s4syst:ConnectionModule ; - rdfs:label "connected through"@en ; - rdfs:comment "Links a system to one of its connections to other systems."@en ; - rdfs:domain s4syst:System ; - rdfs:range s4syst:Connection ; - owl:inverseOf s4syst:connectsSystem . - -# s4syst:connectedTo owl:propertyChainAxiom ( s4syst:connectedThrough s4syst:connectsSystem ) . -# this axiom is not true: it would imply that every connected system is connected to itself - -# connection points - -s4syst:ConnectionPointModule a gopi:Module . - -s4syst:ConnectionPoint a owl:Class ; - gopi:inModule s4syst:ConnectionPointModule ; - rdfs:label "Connection Point"@en ; - rdfs:comment """The class of connection points of systems, at which they may be connected to other systems. This class qualifies properties s4syst:connectsSystem and s4syst:connectedThrough. A connection point belongs to exactly one system. Any system connected through a connection is connected at one of its connection points to the connection. The system of a connection point that is connected through a connection is itself connected through the connection."""@en ; - rdfs:subClassOf [ owl:onProperty s4syst:connectionPointOf ; owl:cardinality 1 ] ; - owl:disjointWith s4syst:System, s4syst:Connection . - -s4syst:connectedThrough owl:propertyChainAxiom ( s4syst:connectsAt s4syst:connectsSystemThrough ) . -s4syst:connectsSystem owl:propertyChainAxiom ( s4syst:connectsSystemAt s4syst:connectionPointOf ) . - -s4syst:connectsAt a owl:ObjectProperty, owl:InverseFunctionalProperty ; - gopi:inModule s4syst:ConnectionPointModule ; - rdfs:label "connects at"@en ; - rdfs:comment "Links a system to one of the connection points at which it connects."@en ; - rdfs:domain s4syst:System ; - rdfs:range s4syst:ConnectionPoint ; - owl:inverseOf s4syst:connectionPointOf . - -s4syst:connectionPointOf a owl:ObjectProperty, owl:FunctionalProperty ; - gopi:inModule s4syst:ConnectionPointModule ; - rdfs:label "connection point to"@en ; - rdfs:comment "Links a connection point to the one and only one system it belongs to."@en ; - rdfs:domain s4syst:ConnectionPoint ; - rdfs:range s4syst:System ; - owl:inverseOf s4syst:connectsAt . - -s4syst:connectsSystemAt a owl:ObjectProperty ; - gopi:inModule s4syst:ConnectionPointModule ; - rdfs:label "connects system at"@en ; - rdfs:comment "Links a connection to one of the connection points at which it connects a system."@en ; - rdfs:domain s4syst:Connection ; - rdfs:range s4syst:ConnectionPoint ; - owl:inverseOf s4syst:connectsSystemThrough . - -s4syst:connectsSystemThrough a owl:ObjectProperty ; - gopi:inModule s4syst:ConnectionPointModule ; - rdfs:label "connects system through"@en ; - rdfs:comment "Links a connection point to one of the connections through which it connects its system."@en ; - rdfs:domain s4syst:ConnectionPoint ; - rdfs:range s4syst:Connection ; - owl:inverseOf s4syst:connectsSystemAt . - - diff --git a/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/desktop.ini b/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/example.ttl b/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/example.ttl deleted file mode 100644 index 9e32d22..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/example.ttl +++ /dev/null @@ -1,64 +0,0 @@ -@prefix saref: . -@prefix s4syst: . -@base . - - - a owl:Ontology ; - owl:imports . - - -# -- the instantiation of the SAREF4SYST pattern. -- - -s4syst-ex:ElectricPowerSystem a owl:Class ; - rdfs:subClassOf s4syst:System ; - rdfs:label "Electric Power System"@en ; - rdfs:comment "The class of electric power systems."@en . - - -s4syst-ex:subElectricPowerSystemOf a owl:ObjectProperty ; - rdfs:subPropertyOf s4syst:subSystemOf ; - rdfs:label "sub electric power system of"@en . - - -# ... - - -# -- the instances -- - - a s4syst:System . - - a s4syst:System . - - -# Connected systems interact in some ways. -# The exact meaning of interact is defined by sub-properties of s4syst:connectedTo. - - s4syst:connectedTo . - - -# for example s4syst-ex:exchangesElectricityWith can be defined to specify that electric energy flows between the and the electric vehicle . - - s4syst-ex:exchangesElectricityWith . - -# A system can be a sub-system of another system. - s4syst:subSystemOf . - -# Properties of subsystems somehow contribute to the properties of the super system. -# The exact meaning of this contribution is defined by sub properties of s4syst:subSystemOf. - - s4syst-ex:subElectricPowerSystemOf . - - -# A connection between two s4syst:Systems, modelled by s4syst:connectedTo, -# describes the potential interactions between connected s4syst:Systems. -# A connection can be qualified using class s4syst:Connection. - - s4syst:connectsSystem , . - s4syst:connectedThrough . - s4syst:connectedThrough . - - -# A s4syst:System connects to other s4syst:Systems at connection points. -A connection point belongs to one and only one s4syst:System, and can be described using the class s4syst:ConnectionPoint. - - s4syst:connectsAt , , . diff --git a/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/saref4syst.html b/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/saref4syst.html deleted file mode 100644 index fda582d..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/saref4syst.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - SAREF - portal - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - SAREF4SYST: an extension of SAREF for typology of systems and their inter-connections

    -

    Official ETSI documentation for SAREF4SYST v1.1.1
    This page will soon contain the documentation of the SAREF4SYST ontology v1.1.1

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    The documentation of SAREF4SYST v1.1.1 will be available here soon. The source of the ontology are available as Turtle or RDF/XML. Visualize it with VOWL

    -
    -
    -
    -
    -

    SAREF4SYST is a generic extension of SAREF that defines ontology patterns which can then be instantiated for different domains. SAREF4SYST defines Systems, Connections between systems, and Connection Points at which systems may be connected. These core concepts can be used generically to define the topology of features of interest, and are specialized for multiple domains. This ontology patterns can be instantiated for different domains. For example to describe zones inside a building (systems), that share a frontier (connections). SAREF4SYST has two main aims: on the one hand, to extend SAREF with the capacility or representing general topology of systems and how they are connected or interact, and on the other hand, to exemplify how ontology patterns may help to ensure an homogeneous structure of the overall SAREF ontology and speed up the development of extensions. SAREF4SYST is specified and published by ETSI in the TS 103 548 associated to this ontology file.

    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/saref4syst.n3 b/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/saref4syst.n3 deleted file mode 100644 index 4d8b8b1..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/saref4syst.n3 +++ /dev/null @@ -1,176 +0,0 @@ -@prefix gopi: . -@prefix rdf: . -@prefix owl: . -@prefix xml: . -@prefix s4syst: . -@prefix xsd: . -@prefix dcterms: . -@prefix skos: . -@prefix voaf: . -@prefix rdfs: . -@prefix vann: . -@prefix foaf: . - - - a foaf:Person ; - foaf:name "Maxime Lefrançois" . - -s4syst:Connection a owl:Class ; - rdfs:comment "The class of connections between systems. This class qualifies property s4syst:connectedTo. A connection describes potential interactions between systems. Any two connected systems are connected through a connection. A connection can connect more than two systems at the same time."@en ; - rdfs:label "Connection"@en ; - rdfs:subClassOf [ owl:onProperty s4syst:connectsSystemAt ; - owl:someValuesFrom s4syst:ConnectionPoint - ] ; - rdfs:subClassOf [ owl:onProperty s4syst:connectsSystem ; - owl:someValuesFrom s4syst:System - ] ; - owl:disjointWith s4syst:System ; - gopi:inModule s4syst:ConnectionModule . - -dcterms:description a owl:AnnotationProperty . - -dcterms:creator a owl:AnnotationProperty . - -s4syst:SystemModule a gopi:Module . - -s4syst:connectsSystemThrough - a owl:ObjectProperty ; - rdfs:comment "Links a connection point to one of the connections through which it connects its system."@en ; - rdfs:domain s4syst:ConnectionPoint ; - rdfs:label "connects system through"@en ; - rdfs:range s4syst:Connection ; - owl:inverseOf s4syst:connectsSystemAt ; - gopi:inModule s4syst:ConnectionPointModule . - -gopi:inModule a owl:AnnotationProperty . - -voaf:Vocabulary a owl:Class . - -s4syst:hasSubSystem a owl:TransitiveProperty , owl:ObjectProperty ; - rdfs:comment "Links a system to one of its sub systems."@en ; - rdfs:domain s4syst:System ; - rdfs:label "has sub system"@en ; - rdfs:range s4syst:System ; - owl:inverseOf s4syst:subSystemOf ; - gopi:inModule s4syst:SystemModule . - -s4syst:subSystemOf a owl:TransitiveProperty , owl:ObjectProperty ; - rdfs:comment "Links a system to its super system. Properties of subsystems somehow contribute to the properties of the super system. The exact meaning of \"contribute is defined by sub properties of s4syst:subSystemOf. Property s4syst:subSystemOf is transitive."@en ; - rdfs:domain s4syst:System ; - rdfs:label "sub system of"@en ; - rdfs:range s4syst:System ; - owl:inverseOf s4syst:hasSubSystem ; - gopi:inModule s4syst:SystemModule . - -s4syst:ConnectionPointModule - a gopi:Module . - -dcterms:issued a owl:AnnotationProperty . - -dcterms:created a owl:AnnotationProperty . - -s4syst:connectedThrough - a owl:ObjectProperty ; - rdfs:comment "Links a system to one of its connections to other systems."@en ; - rdfs:domain s4syst:System ; - rdfs:label "connected through"@en ; - rdfs:range s4syst:Connection ; - owl:inverseOf s4syst:connectsSystem ; - owl:propertyChainAxiom ( s4syst:connectsAt s4syst:connectsSystemThrough ) ; - gopi:inModule s4syst:ConnectionModule . - -foaf:name a owl:DatatypeProperty . - -s4syst:System a owl:Class ; - rdfs:comment "The class of systems, i.e., systems virtually isolated from the environment, whose behaviour and interactions with the environment are modeled. Systems can be connected to other systems. Connected systems interact in some ways. Systems can also have subsystems. Properties of subsystems somehow contribute to the properties of the supersystem."@en ; - rdfs:label "System"@en ; - gopi:inModule s4syst:SystemModule . - -dcterms:publisher a owl:AnnotationProperty . - -gopi:Module a owl:Class . - -s4syst:connectsSystem - a owl:ObjectProperty ; - rdfs:comment "Links a connection to one of the systems it connects."@en ; - rdfs:domain s4syst:Connection ; - rdfs:label "connects system"@en ; - rdfs:range s4syst:System ; - owl:inverseOf s4syst:connectedThrough ; - owl:propertyChainAxiom ( s4syst:connectsSystemAt s4syst:connectionPointOf ) ; - gopi:inModule s4syst:ConnectionModule . - -foaf:Person a owl:Class . - -s4syst:connectsAt a owl:InverseFunctionalProperty , owl:ObjectProperty ; - rdfs:comment "Links a system to one of the connection points at which it connects."@en ; - rdfs:domain s4syst:System ; - rdfs:label "connects at"@en ; - rdfs:range s4syst:ConnectionPoint ; - owl:inverseOf s4syst:connectionPointOf ; - gopi:inModule s4syst:ConnectionPointModule . - -s4syst:ConnectionModule - a gopi:Module . - -s4syst:connectedTo a owl:SymmetricProperty , owl:ObjectProperty ; - rdfs:comment "Links a system to a system it is connected to. Connected systems interact in some way. The exact meaning of \"interact\" is defined by sub properties of s4syst:connectedTo. Property s4syst:connectedTo is symmetric. This property can be qualified using class s4syst:Connection, which connects the two systems. If there is a connection between several systems, then one may infer these systems are pairwise connected."@en ; - rdfs:domain s4syst:System ; - rdfs:label "connected to"@en ; - rdfs:range s4syst:System ; - gopi:inModule s4syst:SystemModule . - -s4syst:ConnectionPoint - a owl:Class ; - rdfs:comment "The class of connection points of systems, at which they may be connected to other systems. This class qualifies properties s4syst:connectsSystem and s4syst:connectedThrough. A connection point belongs to exactly one system. Any system connected through a connection is connected at one of its connection points to the connection. The system of a connection point that is connected through a connection is itself connected through the connection."@en ; - rdfs:label "Connection Point"@en ; - rdfs:subClassOf [ owl:cardinality 1 ; - owl:onProperty s4syst:connectionPointOf - ] ; - owl:disjointWith s4syst:Connection , s4syst:System ; - gopi:inModule s4syst:ConnectionPointModule . - -dcterms:license a owl:AnnotationProperty . - -dcterms:title a owl:AnnotationProperty . - -s4syst:connectsSystemAt - a owl:ObjectProperty ; - rdfs:comment "Links a connection to one of the connection points at which it connects a system."@en ; - rdfs:domain s4syst:Connection ; - rdfs:label "connects system at"@en ; - rdfs:range s4syst:ConnectionPoint ; - owl:inverseOf s4syst:connectsSystemThrough ; - gopi:inModule s4syst:ConnectionPointModule . - - - a owl:Ontology ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:contributor ; - dcterms:created "2019-04-26"^^xsd:date ; - dcterms:description "SAREF4SYST is a generic extension of SAREF that defines ontology patterns which can then be instantiated for different domains. SAREF4SYST defines Systems, Connections between systems, and Connection Points at which systems may be connected. These core concepts can be used generically to define the topology of features of interest, and are specialized for multiple domains. This ontology patterns can be instantiated for different domains. For example to describe zones inside a building (systems), that share a frontier (connections). SAREF4SYST has two main aims: on the one hand, to extend SAREF with the capacility or representing general topology of systems and how they are connected or interact, and on the other hand, to exemplify how ontology patterns may help to ensure an homogeneous structure of the overall SAREF ontology and speed up the development of extensions. SAREF4SYST is specified and published by ETSI in the TS 103 548 associated to this ontology file."@en ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:license ; - dcterms:modified "2019-06-06"^^xsd:date ; - dcterms:publisher ; - dcterms:source ; - dcterms:title "SAREF4SYST: an extension of SAREF for typology of systems and their inter-connections"@en ; - vann:preferredNamespacePrefix "s4syst" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4syst#" ; - owl:versionIRI ; - owl:versionInfo "1.1.1" . - -vann:preferredNamespaceUri - a owl:AnnotationProperty . - -s4syst:connectionPointOf - a owl:FunctionalProperty , owl:ObjectProperty ; - rdfs:comment "Links a connection point to the one and only one system it belongs to."@en ; - rdfs:domain s4syst:ConnectionPoint ; - rdfs:label "connection point to"@en ; - rdfs:range s4syst:System ; - owl:inverseOf s4syst:connectsAt ; - gopi:inModule s4syst:ConnectionPointModule . - -vann:preferredNamespacePrefix - a owl:AnnotationProperty . diff --git a/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/saref4syst.rdf b/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/saref4syst.rdf deleted file mode 100644 index b3c1b1e..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/saref4syst.rdf +++ /dev/null @@ -1,187 +0,0 @@ - - - SAREF4SYST is a generic extension of SAREF that defines ontology patterns which can then be instantiated for different domains. SAREF4SYST defines Systems, Connections between systems, and Connection Points at which systems may be connected. These core concepts can be used generically to define the topology of features of interest, and are specialized for multiple domains. This ontology patterns can be instantiated for different domains. For example to describe zones inside a building (systems), that share a frontier (connections). SAREF4SYST has two main aims: on the one hand, to extend SAREF with the capacility or representing general topology of systems and how they are connected or interact, and on the other hand, to exemplify how ontology patterns may help to ensure an homogeneous structure of the overall SAREF ontology and speed up the development of extensions. SAREF4SYST is specified and published by ETSI in the TS 103 548 associated to this ontology file. - s4syst - https://saref.etsi.org/saref4syst# - 2019-06-11 - 1.1.1 - 2019-04-26 - - - - SAREF4SYST: an extension of SAREF for typology of systems and their inter-connections - - - Maxime Lefrançois - - - This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge. - 2019-06-06 - - - - - The class of systems, i.e., systems virtually isolated from the environment, whose behaviour and interactions with the environment are modeled. Systems can be connected to other systems. Connected systems interact in some ways. Systems can also have subsystems. Properties of subsystems somehow contribute to the properties of the supersystem. - System - - - - - - - - - - - 1 - - - - - The class of connection points of systems, at which they may be connected to other systems. This class qualifies properties s4syst:connectsSystem and s4syst:connectedThrough. A connection point belongs to exactly one system. Any system connected through a connection is connected at one of its connection points to the connection. The system of a connection point that is connected through a connection is itself connected through the connection. - Connection Point - - - - - - - - - - - - - - - - - - - - - The class of connections between systems. This class qualifies property s4syst:connectedTo. A connection describes potential interactions between systems. Any two connected systems are connected through a connection. A connection can connect more than two systems at the same time. - Connection - - - - - - - - - - - Links a connection point to one of the connections through which it connects its system. - connects system through - - - - - - - - - - - - - Links a connection to one of the systems it connects. - connects system - - - - - - - - - - - Links a system to one of its connections to other systems. - connected through - - - - - - - Links a connection to one of the connection points at which it connects a system. - connects system at - - - - - - - - - - Links a system to one of its sub systems. - has sub system - - - - - - - - Links a system to its super system. Properties of subsystems somehow contribute to the properties of the super system. The exact meaning of "contribute is defined by sub properties of s4syst:subSystemOf. Property s4syst:subSystemOf is transitive. - sub system of - - - - - - - Links a system to a system it is connected to. Connected systems interact in some way. The exact meaning of "interact" is defined by sub properties of s4syst:connectedTo. Property s4syst:connectedTo is symmetric. This property can be qualified using class s4syst:Connection, which connects the two systems. If there is a connection between several systems, then one may infer these systems are pairwise connected. - connected to - - - - - - - - - - Links a connection point to the one and only one system it belongs to. - connection point to - - - - - - - - Links a system to one of the connection points at which it connects. - connects at - - - - - - - - - - - - - - diff --git a/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/saref4syst.ttl b/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/saref4syst.ttl deleted file mode 100644 index 5295d83..0000000 --- a/src/main/resources/saref-portal-generator/public/saref4syst/v1.1.1/saref4syst.ttl +++ /dev/null @@ -1,157 +0,0 @@ -@prefix dcterms: . -@prefix owl: . -@prefix rdf: . -@prefix xml: . -@prefix xsd: . -@prefix foaf: . -@prefix voaf: . -@prefix vann: . -@prefix rdfs: . -@prefix skos: . -@prefix s4syst: . -@prefix gopi: . - - a owl:Ontology ; - dcterms:title "SAREF4SYST: an extension of SAREF for typology of systems and their inter-connections"@en ; - owl:versionInfo "1.1.1" ; - owl:versionIRI ; - dcterms:created "2019-04-26"^^xsd:date ; - dcterms:modified "2019-06-06"^^xsd:date ; - dcterms:issued "2019-06-11"^^xsd:date ; - dcterms:contributor ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4syst#" ; - vann:preferredNamespacePrefix "s4syst" ; - dcterms:license ; - rdfs:comment "This ontology has been manually edited for publication on the ETSI portal and consolidation of metadata in the context of STF-556. More work is required to update the sources on the ETSI forge." ; - dcterms:source ; - dcterms:description "SAREF4SYST is a generic extension of SAREF that defines ontology patterns which can then be instantiated for different domains. SAREF4SYST defines Systems, Connections between systems, and Connection Points at which systems may be connected. These core concepts can be used generically to define the topology of features of interest, and are specialized for multiple domains. This ontology patterns can be instantiated for different domains. For example to describe zones inside a building (systems), that share a frontier (connections). SAREF4SYST has two main aims: on the one hand, to extend SAREF with the capacility or representing general topology of systems and how they are connected or interact, and on the other hand, to exemplify how ontology patterns may help to ensure an homogeneous structure of the overall SAREF ontology and speed up the development of extensions. SAREF4SYST is specified and published by ETSI in the TS 103 548 associated to this ontology file."@en ; - dcterms:publisher . - - a foaf:Person ; - foaf:name "Maxime Lefrançois" . - -voaf:Vocabulary a owl:Class . -dcterms:title a owl:AnnotationProperty . -dcterms:issued a owl:AnnotationProperty . -dcterms:creator a owl:AnnotationProperty . -dcterms:publisher a owl:AnnotationProperty . -dcterms:description a owl:AnnotationProperty . -dcterms:license a owl:AnnotationProperty . -dcterms:created a owl:AnnotationProperty . -vann:preferredNamespacePrefix a owl:AnnotationProperty . -vann:preferredNamespaceUri a owl:AnnotationProperty . -foaf:Person a owl:Class . -foaf:name a owl:DatatypeProperty . -gopi:inModule a owl:AnnotationProperty . -gopi:Module a owl:Class . - -# systems - -s4syst:SystemModule a gopi:Module . - -s4syst:System a owl:Class ; - gopi:inModule s4syst:SystemModule ; - rdfs:label "System"@en ; - rdfs:comment """The class of systems, i.e., systems virtually isolated from the environment, whose behaviour and interactions with the environment are modeled. Systems can be connected to other systems. Connected systems interact in some ways. Systems can also have subsystems. Properties of subsystems somehow contribute to the properties of the supersystem."""@en . - -s4syst:connectedTo a owl:ObjectProperty , owl:SymmetricProperty ; - gopi:inModule s4syst:SystemModule ; - rdfs:label "connected to"@en ; - rdfs:comment """Links a system to a system it is connected to. Connected systems interact in some way. The exact meaning of "interact" is defined by sub properties of s4syst:connectedTo. Property s4syst:connectedTo is symmetric. This property can be qualified using class s4syst:Connection, which connects the two systems. If there is a connection between several systems, then one may infer these systems are pairwise connected."""@en ; - rdfs:domain s4syst:System ; - rdfs:range s4syst:System . - -s4syst:subSystemOf a owl:ObjectProperty , owl:TransitiveProperty ; - gopi:inModule s4syst:SystemModule ; - rdfs:label "sub system of"@en ; - rdfs:comment """Links a system to its super system. Properties of subsystems somehow contribute to the properties of the super system. The exact meaning of "contribute is defined by sub properties of s4syst:subSystemOf. Property s4syst:subSystemOf is transitive."""@en ; - rdfs:domain s4syst:System ; - rdfs:range s4syst:System ; - owl:inverseOf s4syst:hasSubSystem . - -s4syst:hasSubSystem a owl:ObjectProperty , owl:TransitiveProperty ; - gopi:inModule s4syst:SystemModule ; - rdfs:label "has sub system"@en ; - rdfs:comment """Links a system to one of its sub systems."""@en ; - rdfs:domain s4syst:System ; - rdfs:range s4syst:System ; - owl:inverseOf s4syst:subSystemOf . - -# connections - -s4syst:ConnectionModule a gopi:Module . - -s4syst:Connection a owl:Class ; - gopi:inModule s4syst:ConnectionModule ; - rdfs:label "Connection"@en ; - rdfs:comment """The class of connections between systems. This class qualifies property s4syst:connectedTo. A connection describes potential interactions between systems. Any two connected systems are connected through a connection. A connection can connect more than two systems at the same time."""@en ; - rdfs:subClassOf [ owl:onProperty s4syst:connectsSystem ; owl:someValuesFrom s4syst:System ] ; - rdfs:subClassOf [ owl:onProperty s4syst:connectsSystemAt ; owl:someValuesFrom s4syst:ConnectionPoint ] ; - owl:disjointWith s4syst:System . - -s4syst:connectsSystem a owl:ObjectProperty ; - gopi:inModule s4syst:ConnectionModule ; - rdfs:label "connects system"@en ; - rdfs:comment "Links a connection to one of the systems it connects."@en ; - rdfs:domain s4syst:Connection ; - rdfs:range s4syst:System ; - owl:inverseOf s4syst:connectedThrough . - -s4syst:connectedThrough a owl:ObjectProperty ; - gopi:inModule s4syst:ConnectionModule ; - rdfs:label "connected through"@en ; - rdfs:comment "Links a system to one of its connections to other systems."@en ; - rdfs:domain s4syst:System ; - rdfs:range s4syst:Connection ; - owl:inverseOf s4syst:connectsSystem . - -# s4syst:connectedTo owl:propertyChainAxiom ( s4syst:connectedThrough s4syst:connectsSystem ) . -# this axiom is not true: it would imply that every connected system is connected to itself - -# connection points - -s4syst:ConnectionPointModule a gopi:Module . - -s4syst:ConnectionPoint a owl:Class ; - gopi:inModule s4syst:ConnectionPointModule ; - rdfs:label "Connection Point"@en ; - rdfs:comment """The class of connection points of systems, at which they may be connected to other systems. This class qualifies properties s4syst:connectsSystem and s4syst:connectedThrough. A connection point belongs to exactly one system. Any system connected through a connection is connected at one of its connection points to the connection. The system of a connection point that is connected through a connection is itself connected through the connection."""@en ; - rdfs:subClassOf [ owl:onProperty s4syst:connectionPointOf ; owl:cardinality 1 ] ; - owl:disjointWith s4syst:System, s4syst:Connection . - -s4syst:connectedThrough owl:propertyChainAxiom ( s4syst:connectsAt s4syst:connectsSystemThrough ) . -s4syst:connectsSystem owl:propertyChainAxiom ( s4syst:connectsSystemAt s4syst:connectionPointOf ) . - -s4syst:connectsAt a owl:ObjectProperty, owl:InverseFunctionalProperty ; - gopi:inModule s4syst:ConnectionPointModule ; - rdfs:label "connects at"@en ; - rdfs:comment "Links a system to one of the connection points at which it connects."@en ; - rdfs:domain s4syst:System ; - rdfs:range s4syst:ConnectionPoint ; - owl:inverseOf s4syst:connectionPointOf . - -s4syst:connectionPointOf a owl:ObjectProperty, owl:FunctionalProperty ; - gopi:inModule s4syst:ConnectionPointModule ; - rdfs:label "connection point to"@en ; - rdfs:comment "Links a connection point to the one and only one system it belongs to."@en ; - rdfs:domain s4syst:ConnectionPoint ; - rdfs:range s4syst:System ; - owl:inverseOf s4syst:connectsAt . - -s4syst:connectsSystemAt a owl:ObjectProperty ; - gopi:inModule s4syst:ConnectionPointModule ; - rdfs:label "connects system at"@en ; - rdfs:comment "Links a connection to one of the connection points at which it connects a system."@en ; - rdfs:domain s4syst:Connection ; - rdfs:range s4syst:ConnectionPoint ; - owl:inverseOf s4syst:connectsSystemThrough . - -s4syst:connectsSystemThrough a owl:ObjectProperty ; - gopi:inModule s4syst:ConnectionPointModule ; - rdfs:label "connects system through"@en ; - rdfs:comment "Links a connection point to one of the connections through which it connects its system."@en ; - rdfs:domain s4syst:ConnectionPoint ; - rdfs:range s4syst:Connection ; - owl:inverseOf s4syst:connectsSystemAt . - - diff --git a/src/main/resources/saref-portal-generator/public/templates/desktop.ini b/src/main/resources/saref-portal-generator/public/templates/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/templates/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/custom/css-compiled/desktop.ini b/src/main/resources/saref-portal-generator/public/templates/g5_helium/custom/css-compiled/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/templates/g5_helium/custom/css-compiled/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/custom/desktop.ini b/src/main/resources/saref-portal-generator/public/templates/g5_helium/custom/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/templates/g5_helium/custom/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/desktop.ini b/src/main/resources/saref-portal-generator/public/templates/g5_helium/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/templates/g5_helium/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/desktop.ini b/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/lato/desktop.ini b/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/lato/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/lato/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/lato/lato-bold/desktop.ini b/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/lato/lato-bold/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/lato/lato-bold/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/desktop.ini b/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-bold/desktop.ini b/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-bold/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-bold/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-regular/desktop.ini b/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-regular/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-regular/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-semibold/desktop.ini b/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-semibold/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-semibold/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/js/desktop.ini b/src/main/resources/saref-portal-generator/public/templates/g5_helium/js/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/templates/g5_helium/js/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/js/jui/desktop.ini b/src/main/resources/saref-portal-generator/public/templates/g5_helium/js/jui/desktop.ini deleted file mode 100644 index 6cfa85b..0000000 --- a/src/main/resources/saref-portal-generator/public/templates/g5_helium/js/jui/desktop.ini +++ /dev/null @@ -1,5 +0,0 @@ -[.ShellClassInfo] -InfoTip=Ce dossier est partagé en ligne. -IconFile=C:\Program Files\Google\Drive\googledrivesync.exe -IconIndex=16 - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/vocab.html b/src/main/resources/saref-portal-generator/public/vocab.html deleted file mode 100644 index c72988d..0000000 --- a/src/main/resources/saref-portal-generator/public/vocab.html +++ /dev/null @@ -1,341 +0,0 @@ - - - - - SAREF ontologies - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -

    SAREF extensions registry

    -

    Here you can find the list of SAREF familiy of ontologies

    -
    -
    -
    -
    -
    -

    -
    -
    - - -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    OntologySerializationLicenseAuthorsLanguageDomainDescription
    SAREF: the Smart Appliances REFerence ontology - html -turtle - CC-by4.0 - Laura Daniele - María Poveda-Villalón - Raúl García-Castro - - ensmart appliances IoT - -

    -The Smart Appliances REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing ... See more -

    - - - -
    SAREF extension for environment -html -turtle -xml -N-Triples - - - CC-by4.0 - María Poveda-Villalón - Raúl García-Castro - en environment -light pollution -photometer -SAREF - -

    -This ontology extends the SAREF ontology for the environment domain, specifically for the light pollution domain, including ... See more -

    - -
    SAREF extension for building devices -html -turtle -xml -N-Triples - CC-by4.0 - María Poveda-Villalón - Raúl García-Castro - en building -building device -device -IFC -SAREF - -

    -This ontology extends the SAREF ontology for the building domain by defining building devices and how they are located in ... See more -

    - -
    SAREF extension for energy - html -turtle - CC-by4.0 - Laura Daniele - - ensmart appliances energy - -

    -SAREF4ENER is an extension of SAREF for the Energy domain that was created in collaboration with Energy@Home ... See more -

    - - - -
    -
    - -
    - - - - - \ No newline at end of file diff --git a/src/main/resources/saref-portal-generator/public/saref.png b/src/main/resources/saref.png similarity index 100% rename from src/main/resources/saref-portal-generator/public/saref.png rename to src/main/resources/saref.png diff --git a/src/main/resources/templates/beans.mustache b/src/main/resources/templates/beans.mustache deleted file mode 100644 index 578a915..0000000 --- a/src/main/resources/templates/beans.mustache +++ /dev/null @@ -1,2 +0,0 @@ - - hello {{name}} \ No newline at end of file diff --git a/src/main/resources/templates/header.mustache b/src/main/resources/templates/header.mustache index c33cccf..516dda5 100644 --- a/src/main/resources/templates/header.mustache +++ b/src/main/resources/templates/header.mustache @@ -79,14 +79,14 @@
  • - + SAREF core
  • - + Resources diff --git a/src/main/resources/templates/index.mustache b/src/main/resources/templates/index.mustache index 7624140..3f73a60 100644 --- a/src/main/resources/templates/index.mustache +++ b/src/main/resources/templates/index.mustache @@ -1,22 +1,46 @@ {{> header}} -
    +
    -
    -
    -

    - - The results for your search query: - -

    - -
    +      
    +
    +

    + + What is SAREF? +

    - {{searchResultsLabels}} -
    +

    The Smart Appliances REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing assets in the smart appliances domain.

    +

    SAREF provides building blocks that allow separation and recombination of different parts of the ontology depending on specific needs.

    +
    + +
    +

    + + Why SAREF? +

    +

    SAREF explicitly specifies recurring core concepts in the smart appliances domain, the main relationships between these concepts, and axioms to constrain the usage of these concepts and relationships. SAREF has been + created based on the following fundamental principles:
    + +

      +
    • Reuse and alignment of concepts and relationships that are defined in existing assets
    • +
    • Modularity to allow separation and recombination of different parts of the ontology depending on specific needs
    • +
    • Extensibility to allow further growth of the ontology
    • +
    • Maintainability to facilitate the process of identifying and correcting defects, accommodate new + requirements, and cope with changes in (parts of) SAREF
    • + + +
    +

    +
    + + + +
    + center +
    + +
    +
    - - - {{> footer}} diff --git a/src/main/resources/saref-portal-generator/public/index-save.html b/src/main/resources/templates/resources.mustache similarity index 62% rename from src/main/resources/saref-portal-generator/public/index-save.html rename to src/main/resources/templates/resources.mustache index 163078c..4105f2b 100644 --- a/src/main/resources/saref-portal-generator/public/index-save.html +++ b/src/main/resources/templates/resources.mustache @@ -1,412 +1,246 @@ - - - - - - - - - - { ?title } - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - Smart Applications REFerence Ontology, and extensions

    -

    Official ETSI portal for SAREF
    This page contains pointers to the SAREF ontologies and SAREF-related work items

    -

    Note: This portal is under construction. It was drafted in the context of ETSI Specialist Task Force 556. More effort is required to automatize the portal content generation and deployment workflow.

    -
    -
    -
    -
    -
    -
    -

    Filter by title or domain:

    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    OntologySerializationLicenseAuthorsLanguageDomainDescription
    - SAREF: the Smart Appliances REFerence ontology - - html - turtle - xml - xml - Laura Daniele - María Poveda-Villalón - Raúl García-Castro - en - smart appliances IoT - -

    - The Smart Appliances REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing assets in the smart appliances domain. -

    - -
    - SAREF extension for environment - - html - turtle - xml - xml - María Poveda-Villalón - Raúl García-Castro - - en - environment - light pollution - photometer - SAREF - -

    - This ontology extends the SAREF ontology for the environment domain, specifically for the light pollution domain, including concepts like photometers, light, etc. -

    - -
    - SAREF extension for building devices - - html - turtle - xml - xml - María Poveda-Villalón - Raúl García-Castro - - en - building - building device - device - IFC - SAREF - -

    - This ontology extends the SAREF ontology for the building domain by defining building devices and how they are located in a building. -

    - -
    - SAREF extension for energy - - html - turtle - xml - xml - Laura Daniele - en - smart appliances energy - -

    - SAREF4ENER is an extension of SAREF for the Energy domain -

    - -
    SAREF extension for the Smart Agriculture and Food Chain Domains - html - turtle - xml - xml - Laura Daniele - enComing soonDescription coming soon
    SAREF extension for the Industry and Manufacturing Domains - html - turtle - xml - xml - Laura Daniele - María Poveda-Villalón - Raúl García-Castro - Mike de Roode - Matthijs Punter - Alba Fernandez Izquierdo, UPM - enComing soonDescription coming soon
    SAREF extension for the Smart City Domain - html - turtle - xml - xml - Raúl García-Castro - María Poveda-Villalón - Paola Patricia Espinoza Arias - enComing soonDescription coming soon
    SAREF Systems - html - turtle - xml - xml - Maxime Lefrançois - enComing soonDescription coming soon
    -
    -
    -
    - - - - - \ No newline at end of file +{{> header}} + +
    +
    +

    Filter by title or domain:

    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OntologySerializationLicenseAuthorsLanguageDomainDescriptionVisualizeImpactStatistics
    + SAREF: the Smart Appliances REFerence ontology + + html + turtle + xml + xml + Laura Daniele + María Poveda-Villalón + Raúl García-Castro + en + smart appliances IoT + +

    + The Smart Appliances REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing assets in the smart appliances domain. +

    + +
    + SAREF extension for environment + + html + turtle + xml + xml + María Poveda-Villalón + Raúl García-Castro + + en + environment + light pollution + photometer + SAREF + +

    + This ontology extends the SAREF ontology for the environment domain, specifically for the light pollution domain, including concepts like photometers, light, etc. +

    + +
    + SAREF extension for building devices + + html + turtle + xml + xml + María Poveda-Villalón + Raúl García-Castro + + en + building + building device + device + IFC + SAREF + +

    + This ontology extends the SAREF ontology for the building domain by defining building devices and how they are located in a building. +

    + +
    + SAREF extension for energy + + html + turtle + xml + xml + Laura Daniele + en + smart appliances energy + +

    + SAREF4ENER is an extension of SAREF for the Energy domain +

    + +
    SAREF extension for the Smart Agriculture and Food Chain Domains + html + turtle + xml + xml + Laura Daniele + enComing soonDescription coming soon
    SAREF extension for the Industry and Manufacturing Domains + html + turtle + xml + xml + Laura Daniele + María Poveda-Villalón + Raúl García-Castro + Mike de Roode + Matthijs Punter + Alba Fernandez Izquierdo, UPM + enComing soonDescription coming soon
    SAREF extension for the Smart City Domain + html + turtle + xml + xml + Raúl García-Castro + María Poveda-Villalón + Paola Patricia Espinoza Arias + enComing soonDescription coming soon
    SAREF Systems: typology of systems and their inter-connections + html + turtle + xml + xml + Maxime Lefrançois + enComing soonDescription coming soon
    +
    +
    + + +{{> footer}} diff --git a/src/main/resources/templates/search.mustache b/src/main/resources/templates/search.mustache new file mode 100644 index 0000000..7c5c125 --- /dev/null +++ b/src/main/resources/templates/search.mustache @@ -0,0 +1,22 @@ +{{> header}} + +
    + +
    +
    +

    + + The results for your search query: + +

    + +
    +
    +  {{results}}
    +
    +
    + +
    + + +{{> footer}} diff --git a/src/main/resources/templates/view.mustache b/src/main/resources/templates/view.mustache deleted file mode 100644 index bbc31c2..0000000 --- a/src/main/resources/templates/view.mustache +++ /dev/null @@ -1,23 +0,0 @@ - - - - View Page - - - - -
    - -
    -
      - {{#os}} -
    1. {{name}}
    2. -

      vendor: {{vendor}}, version: {{version}}

      - {{/os}} -
    -
    -
    - - diff --git a/src/main/webapp/WEB-INF/lib/collection-0.7.jar b/src/main/webapp/WEB-INF/lib/collection-0.7.jar deleted file mode 100644 index aa5de6b95fa45dd3ca55b4e9441db7f79ce7e8ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164973 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

    v%vNp&yJym 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 P`tJ2@y+YFWde_=j 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�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 z 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 Bjzs_f diff --git a/src/main/webapp/WEB-INF/lib/commons-io-2.6.jar b/src/main/webapp/WEB-INF/lib/commons-io-2.6.jar deleted file mode 100644 index 00556b119d45dd85a3c3073b1826916c3c60b9c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 214788 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

    M`<`y}6#-im4-#}g z&>B!p2GE>zxnDbc#A8Z(ObN_P4qEKD_ZJ#x95~WbXhGAH-k6M+D3g{slJupb-w3!Z z_Qfh&U1S%sqBia?@kCBf<^3Ai*kV%N>K<8=LcY9aCY(r+P%j<6ranM5cu3!e3?uJM z_0ve{qT}%tRakRbIQ-YU@#>yGjbQB3vMT8THIn;?P?V>3mG-jJ?A1d6-Wz0#L6OIU z;`>OrpwnUVu2Pm<>knsZ&ypA~3|z6=$WTHsofW*Zu);BfHSHC*tei1t_nVneHG077 z(RLaf>A8{PMErO2XKZL|Cp)aMR@P9X0$*Q9Ult)KZL8MexdkKL8IHk!(?iyT^e$C| z|^7;n3$jh?={M1GMxH(*Q0+t9Z5)>Fej-Lg@v)_%WE~baK?4};Z zXn~q<&y()%buQV9_el2okLwZ@1Fj;hjb`3BAwAm6C!!;f766^?&31CHuePWX5TuwR zR;iZ%ZNZ0dRgqrX_#zCipwd0W z(nyaD;*5zOWd#WFuN0%|M?%}jfss3HNr}JlV+1D?Ogcg|C7&TA92^5A+(?FshiVE~(S)!ksp6u@zn>$7_3J08;!mQm z3g8_`%ufj$$Eu1qEGJ7eZz_T?_!^NA9E+8pS`5XTvCPNBs$L>cOcR7SXy)Q@0o@G> znocJLjz4JnrqUI#`_p*$Y+;Z=n|6WBKzN%mixh+g;IS8dNP7b(%XzG-T0&~ zJH*bWY3V1J?iYsG&w+-(Ax`K&j3h5qR>7;@V2G7Fg`hZ3vL~@dWz^|P#uM`l{T#Om zFh3}~$WLFhL9jY1^iO+OPoI(^VabeBvx*`!p}|qeogkN~?WDGDZMkW!j_IKLoqHA+ z2btA(q_rG?gKFJNQe0igc+d;oJQ`@D%aV|Cm%BzPGcNNeBE}9IdoxpWfUp|kcqMVE zeSm?nciY^5YJF1RS&^w74>c}wMO^vm;USeVZvi8oQAL?Xj zE_#9#HO`VMXDQ?((_LS++V8fr{5pQRnzk`NyRyE#Ftg%7?_tnz(rKZyF}qs+#%k+c z)ncdK9| zI_8L6>*D0hk~J^PqLYGEhN;d)$UgE?DQH<3={+IG*&g`=rc*vSiLV2}b%m`&sC@~a z<$6<`tgNFwr#w_th)T)7y<6PuXu#362G9pufi-7#4M{rczC37qG;|g6>8JBO(!HZ1 z4BvVIxTYx8=N(M3FZP`+d`HW?SThQk}*_|_s<1A zLnAC7gDG#r-%xz!W#(0E&C8iJ%W}JkDOj7;=<%8GIfVePaAE%a8Q zWuf)Ws_P0_P((_JkOQNBGDIQvL_}n=4-_#^gHAakI|IR>QI&}BB+l+SNb<6JCk){a zU{X>0VMUY=WudN6&FE>J?2{ii5$wI{N?L1Vvb)PUC+2fdQ+jcx?y{&k2#+hPg^Zsblq9_>~5{kshj3@sQG(xP(My&KQx2|M<2* zrE>E|t_6-&V5ta3QpjPk%$zqb4IMPYB1p7qo3=*6<@#rC6k z9sEuQZ_!U!j#_XXToSUOkavN@F(;9{RFN`d1N;mnoc+Q_hmEwfuP(qv@JfrTUW*IS>>H`P*k<@xdd*+&XoK^ipj6UvGC+XjL z7vKt0;8BiICQ9(G*BYK!y`~18lnqByBm>b)H+c`;BgX&uiA+B?0e*x&teM4s2u4BA zkUTEQ5WmEGC>${kt!!vaYG|AS?+HfFQW%}Hs?kTTP%mq_5wQ}E??~#;co(P4aFlFf zU6jJIr(l>IvX%0krzvHN3Cufdad#$UYC5f(O8lyB^;`q_%%+Y%t1Me3b;d>v@m;+$ z!Bm-g5oM^r_6OLGO4`lUbVU@TPB$uYIE|X#_yVo@INGDS{&a$>1Tjr?Li#l`aqI}E zG;I1i1uRTXBhy}b?Wli~ftiuohTix-`YT-)!n#_ZlSfUqB@GG+b#79JYB?cZY9aO< zGkYPd3envN)-83vf4mG%uIDYSQL%_D9*kZjYxu&h+$d30HwBIi;SQOqZ`H2zKpQ60 zVO$M@PF@^U3i(1z)g0y#^r*7i74EM{EjcHoXZ7A@f5y2A8Yd0P9V@%W6{9J%#=zA6 z+8e1d04;NvX;ibrrgCFyhAGbk@Y`U12$lG?rEo{(jEJU9PYoMph z+c)mtgaGrlBt9>hW&*5BP_m`~&5$k@0FQ*VfdV0fML@F50SU$d_I=)R@J|=o?8jE$ z7dI6xPFGUF7!(_P$KisQ=wIa(Pyr>ed&wDk<$=+W^#a0Wt1mGFCG*hDBYelb**_KO zd9WfR%O+$spbTNm#~i!OQ&JO*)D48eF^91vDd*l->A8Hq zF_oi<+2(Lc^wc6Q(sOhvvmQWQva+@$tV&=9&8H8&SS1k*{pOQw)QTa+0sjVTwrad1 za&Mf+UWEiZ2U9;M?6L#zzIXZ@y@1}7xKub`IX(gAg0(o=EbwGk$^oA334S&X-UfZi zn$Eh1L*&Qb<8FyWf0UAQ$q?hFNpKf8GhCkvpUD{Gwk~)WBA9wcoK=%a7QbB3Hq$s{ z2XMiKo{;%9mSdHv=SXOw;3TB&xAB|4*0SnYReI)DM>d6`R&+o{M4@IgTfZYAltpwP zEq}KHvCNe|Cs#m0uDmq4;}=0_W`erlNjC%GGDGcg;>o-(YLVZkCF3<4#uFCBbqEM| zNVkLxNM>Lb3H2;DQLZmhsX~w)cS}LF0~(I=IBn}CU)qjB)5n~9r+eAZ0Me#Db8Gf; zrZ5Co(Q0O&nO)`}Wb->`ua05t`_4b3*|eTem-@ zf)UCV3Ybc0-qHxFs=Y)3w(#HkSD7JvO>NA{>ZARHfl1@*PX?SJAT2SO&6ev6v`@p? z^Sb!3yIA*7P3m=4BU!y~FKw>bC!c=ImvkN(wyE_79SZzT=Q{G*I%1o0o6LNB+77D% z!0Jt-Z>6I!fT0m{RSUwrqbH=i9x{UnqnBsxE1DV=-AfO@YsTHl4Og)h3qnnD%kK4% zK%l4hR6T@E;87+l9|hNqFfl`@q0Ud=RlICbKPw*O2}a46 z2EjLn{!(!>A|;SPiWEN)&N_@VW%IEpGiy%!KfYY_w;-n#Ni`j$m_F*P#88yw704B|)V9aNz9tsDlNKJ>Brgp^5Fos@6-b zqoshtJjimdiF873i%5frgFK@H6DwK$h1)jc9p)@2ikNB47%qb;WL41bSCgenHh9Qg zbmD~vsr_z2x;0(FoTjl9nPsssrM5Ylg_@RJs9GP!G35Uv>>Yz_YqV^^JZalJY1=+& z+qP}nwr$&X=1JSOZNI$rz3#X-s;etv{n)W0)}I~IbBr;A5*GVMy}(>JW2MQldFwUg zi+JIJoE;pPL)()q?F_0s|C)0`{R(M-m&O-ewr1VjIlz9HiRqSqIO4}kFOyj+IR=Ot zEHzqK61wu+M8FSts6-2BDTO{cL;dB7?NMe$q;OS0mdzzy6(IsAbk(mkl{|FPk$9h7 zI-?fe?~M&0NE=9}6eYVYa2Z>QS;SM*F6zT@;w^HHx?z@om=*@RDWcWp8IkIp6VH?T z6#}SVo2bv%h&V`>WKC3ypk6c%`cxR|I;MHV=O7m{A*59-j%&V-+dmBpCv;uVjrh$t z_LgaT1^yvQKGJW)c?11GfkYg&ux3c{5p#^-KZ$AhOxx8n8u!iz|(O90@{fE(uGwje)-}qBO zR?zGy0SiofW!5Q!)*37u8|=yV#UX))+8z96QP)F@~Nf&o~;=mc1U!T~YIT8IqP zUlF3cMExFcO=NQA3wv$~5g8*-q>iTz6=<%hXw zq-RC+&)ff(l^{QEJ^w>g+-I}104$_cA1g>i1+NMWg4b$9fl~3M!l)-ZE3OD*l-6W# zW_B*WQ>%fIq;G^RAfni! zV``t4L7yma{Ecq?E=Ry4J?w?gd+RNkCBzHk>e+8pcvfzPT0mx!dj9BuKOJOf>LEsO zAUAQZIWw7;GnO~Nh#MJ*RJd=KejuI5Ar~(NS%R&gm|Y$NMgHRY9)IEc0@k^M+@5{6 zG_f%aQpOO|=k0+IS{WKT-Om!R$nC@(RnOpp7(5nXcUE4H7TiXrcobo%8u`~ol=GO7 zKKC(zZBl6tS-zO5ap`gTgUTqp@mP5W)#t*55y!5ex5?%hoUaQq6k# zX1fprU*Eh40wNuuZVW^xY2c>QMVJQAwBKq&8-aX2;cx1?V>DUR<=Eko`VPmGD`?`- zswm*D!R#FC!~pk+W!EIu2;wk3ORgW>CntTJhlh@_-a?KinzkX|0 zw#%0tI`-%61c&L*A9yiV_V?p`4M6oS5E5Z4N2s1A(tUO6x&9WCgTRE8nA`S&weUn` zD+-VUP%5jQUSBUYPz2_L^!ybQOGWg)+04~9QY#h+)$+QFxt>xG6MA$HmRB6?rS3EY z^TE>7rHJ$D<9LPk`|rwNKZ6!y=1jZJDZZV`w(N#Iw#Omc)e4)7>Q zt98p_7ILgUwU3g+THd$?^acqu`{ac44%b>8r+CYxXbapWYDJN`R1cC8N;Ea6>))bQ zimhC1>vrmt`gEo5-=*wv+DP9ZAMs?SyU@kdnZ2b!^z@`d2ZNdY7O2wW)u9fk;`$_m znuCqOP~zXkmzPN`E49w+aQr3Rv(A7Ts!peJPfq&OuHLFA#iLacnATr9lgyD_`JbP& zQ9J-`uBynY#q~=U3oLEW4vl_Hj=R%YG>D~-hMh+X92DxMkBxWpJHUHRYg}D6X(>A# zYVM#_iEP0%B={ucBueeBk&b2`=)*GQCv2DO&@;(#gIMT;8GjL{&`I3-jD)Li-YYcy z_!Tit(tw&M;lqoa0fmq8GWaQFzjT|Yobn!kPfO5C6Yt*O=;C<^%6z%_&gkV|3*@~G zOVO53)45sWc=f{q{oPPOFQNOUN0!a5PvfK=S<->swR#g<>g<)NlX!kseLW0a0l=bj9rU`RXAu8FP|)n^ zr=4i~DzwAr%H%cFmcI**9`-0SS%J|_TDZOeyC!@xic+t+AA>3Xrk~nJk~B!rY8R>3 zNHh+y_Y5cY+`3frQ&TXkwxcHF6D&MbC5jssoE!TJ%Ph`1DJU7|i~u|LaGyIp7qrGE zD1u5G#1{@yfYu^?Amc!c!Zm=HTk>!e?}W4!HAyL0+IeY>yhajDKx=u)=fSff-@;S8m*M{-mW5$0*lf~Yc%km#t zH6FzOKa|Zs(L~0RQhl;Kj-QM$^6umrHjd_K;=%r9Vkj{VK~`Pu5zphOH&*w3KXg!vh0V-=fnHL z^z;4ujQdp9q%rH}!|lkH$5obt&+*3gPYUZO`F8mL_Dy;Tf>sDV6o5eFsqD{Yh>zbW z^sJ3DK1EG_daH$dcXRb6#`H#RN!~SJI~f?U!(we=93y=hAXR%qmdG(ah1GTr&EWL< z>FF7_xHmS&C%rZ{t_OfzV~eKgK1?vK9T;%$_Vnoi5Kc+&NjUO)s^2y1P6? zWDGSrfXNB;lrxNqEf*VGN`=)Oep!o>NtvJdCMVj8jnF)zHi@;Qw+~G?AsS9bs_*T4 z9v6t|6bP6z6s<~GNpD}3#yYDhbLxwiX3v>)Ejdz=IC`pORX1woF0^ki*^8qDr`NBm zR%u8S!OUf<41O%QfVt#SqS7NpQd$*QRV_(vYE$l(&pdc#xll?pi`p{sw9VyZsGD$X z)ey5*e1c9YI;+YpuH=(A;hKgJmoPV&crD=PPqbdp780eU7E0@jR^z zx@UfLzwLEJ)OvJ#^C`!8`&QES*utAMWo9MGayAqP8lm}(*QQM8+LRvYB3Y@ig5kV> zU7SfX)1Y%pNc8VP_3D?FH#`7ypEnB1N0c|S{MNH}S!;Z3Z5EO_byTM=Hd`&PnqL(K zKgg4=+Vu@T4c-+j1Xc;<>w=&xy5|V5B{NcpsS zXzXG}RO3G-eUu&(Lx>OIxffyJt0Fa5B_BSkn;R`{);8JcRr71e%u0r* z!nKO4*4AJ(br`3iz(le9L(0lZ-U?fRQrV}Dp`&o)g>H5onfdO*ZPO`71ZPix_GTOkuXcDqJ08Q;oZYKH>a;;W+7y^X!Hs1ew z&jZqWmQARYdp}Y|vYv z`>GrCJc?-=mJ*>c@&4MMCz@6GcK92pRmCQwr*u2!xE=dGoyF2gVWawEr z)6pju$d5u)mD49?u+f43J*qLi3d0cTT0lk+dgZfD9HI?$iZjt!qxEnE`5VVl znqiKlcX=V;1FyhUMl=^5Pv!p*h*$1;uAa*q|}tMcn*^u=Bkm zTUSSzyU}I#%@RBxn*kmo^adz*C!!j5pf!&$B#z4!v?L6*o*UiF$$)V;5)trsX#R2 zfHo)vRu7a#v(9zdSC;0Zz6bsyY>uJ%G<5!#3yYckR96hCjFDKGFPZDd4^0(i&usQu zS@X*#@R|xbcWibSxB|M!hg>=;J&XZvUTrt1d|qlgse$s@2N2C^d;{np+S(HxgHP3k zz#!Vg*zO|CJIF(?X5uHyWI;M5)ZKg=Jz+Qx*cgKviN9?2VLKD{Sp|!BjpeYbOKxG~ zQ_}_1%$>szT&7=XmBr()c@@PK*?b7!Peo|csF*WRu&7s*31488F ze9*t%cBY1rL}s}BgfvKNUC-HQYB~u5WcS0MlNE!-%1!d(0)InbP~nW!CsZq4?SOMt z7xazHTwb`p(kZjaBP|A^RHSPA7r{;`9{gesLS^;*mXk ziN@WLu6^ai_3D(iexS7M+X$X-+u?orf!)e*1^VoYePGG#a`Qc^=ac&7{$3dnJk+-V z#MCD!B|Y)Qej}wLLM(v-Rcj08+6^EJY3bBo^|%pVUQ%onosZ^siS`dq@nC?_oVXq< zXk*&R4OV0kfMl~q_P-kQzd~pOr5eW(2qM&C#xjA$&C-8OVNc$sPSa=V^+*Q15n~1y zb&#W6%$F-iiY9}#)$XnPUIdB0$e!S9pC-ziX6Fm>er&`}srID`y0h(4+wf!(s0{o5 zF9CsnFL?g56k1KO&F6#!066&3PyU|;1pX<71Wfhp6^!hhjI0g*y=VV_1Oy;l6&F#y zwyE3_Qbth0MJN6O^Tk8JQ}I)y6Zz=^>5``ZOHwhv9&I_aG<-d0y5zVW-yi_o-zJBj zGcoPB!{qeC47DQUEZHJiCm%5mvHfZRcd7_qSF~Kt-F3&aPWgg0yL#BAIdu_jP!OPZ zHfzPoNebu)S}WMa^^^{NE`RBKcouW$5%u^(xJWsPW_TVzaDorxQ74lgqU1RnLTi>9 ztwn)*tJeb;^LAqd!)S#c193hQ$dQX55x|dwXsv^ARx9f@$3-)VRR8MBBx3j&Dk~Di zK_Q=$xT|7h%B-Vs>x9?6JHX1ku-e~Uv_}p?3{yp^%v8O-G1pio=QmfVJ5ldSmBgZd z3L{Kp(EbY#xzu9GT3f5fJE;@xmC z)JZKRhMXh!I^~n z^vYJe&;Q7^zG6ufJ(gK!whi+KjN#sVS}&nN(Pbt7>l@^5_drMD1RY z4g0(vN0Gxm8`c%?3f0)*3+}XD=NwvufCUn{wZgER%&eFJq5Y%~Fdx|Ryy|g?B766B z*b1L94wjLJqI=+l9vqVlX)9q3Q@XZ7U9BtrxJ^s1X3Vm`FjAiaEqbN)HkjZxu~#IQ(u8UnHG(0| zmPyi}vr&AHN7%X15HZY^fm)Ny0cp}S%p@M)K}a=KDbl~DZ4VaYtAEB)eLWpkM4p4k z-x`o_ zm4VA1Ce3zm45}Tc?N9h0n3ETJZ-Pk~jP^flD50rkioZ9l1_1})Ev-J&qI33zb{EgU}(Ysz1eqILFJIh6C%`aYiRu$(G~>~YQu-C%l9_|A(UPG4}mYxdz@ z2oVbRWm?roa%QE9z%Dft!UUIw2I?BqCL9FI&=Kh3#r6s6XosaBrKcS9DhD>2SrW9@ zSK+4zIpp0$B+jZ7>DN(iYL)EM=8x;l7VOz@d`0`5ypU=y&jwlN zZOtGEXpR`2AcRl$6t)4@oV6lOpS`rme)nZS7Dt6r&I_$gD4ZlNrM6M)1%vnZ>gK}| z?UAeLAk*=mMk3^StLy6OWPuaihoL(7ZREC~NYZ#-r@@LypbNfvXxV}+g2>1-_LFV# z{XSY{EL~XZRHHV2VuDqyOQsLq>QKcDxR9s+S91$eh`FliJr;> z&hQjLVd|0e$7b7}HMMWG$GaUjvgPT@%nyX+I%0XSK>fKN2>m}IMFWYssZ+nrs-O52?*!WX zY5-9VRf7*d;;jz;2BBc*B(Z+ci5ES^(ImC&KUT8+{0l*gH4SfdTm$ZX%^i5fQkDvH^A)*e)B0_w0w|> zTcDmhtk^UnL#$~ygeM*#ljjlOEL|arARy>-@Ta>?QGbvb`on=3I^KYos51aQO=Ut; zlL|OQqD*BK*ge4=XZ}8hiVkQny^a^3RA$o=o3i(g#@S3*119{CilgVFt7;>O=!Gr4 zpa6rXL%+61uIoyju8%RGpvk+Dpa)7ZU>WZsV_Y@9B4bR7gWUI|Ae7rzxU!m%4f6vR z!JQI*-7g8KO1I}c4t%dmFQF@jn`ceV_Jn7Qesjqy?C&W$`s>Bk1jp#`!W~pw#ZCZ_ zEmY1QN&z;98e0+b=F)$@WrBsU5oV`vjLMwpbm>6*@ZwUisJ7wf#=@MjlG89l8IT^% zV1w$gzG78&pW?=uoaiP>^YHM*I|-%2+1v7c1F-!i;=W6Be=!)CNwl~KWs_#2Gv$XR zJN!hE?#^s;-{g4W)Jecfx5tV&%bJJ7%4pm|r{6Ls*Mc8#`9frUJcfh48P@UA1IB4f z>%8~tqF;}vIA_PAW3fG0XycreC0Rq|Too2+Bs8foD9k|AZqZ223~E*jS|m8pt7%vO zOM_uV4##)bN_O}l7`ffY>0RsQ zwi>t1$QgGya1}A+85wsV&l?`g`nbd!-h1Uj9Ro*Aa-1d2^lVxjW9Y5St(pQXLvHqm zQlq^Xg==1AENOv(tmnHSm_L^&)EO4@w8`>Ux!+@^Jg!y)Zb6}X&cP*eR)dOZ|Im;$l8^_6nxeA(B@vv7zwgJ_Ip zq7*-!_GEkZ=S$69QT0|OTgXczZ*R4?*Y}zn4^OVhHS5Iz?b9C+% z_59N(ZFYNC>T<+6x!nVq^-6`yRg`=zVrHvzT^@M)BP}9$E2SdU?!t7^n3hyCTQ66x zk;|JVB*)*Pa<=Ij@L$8af3HLTvqEK_?BRC)8U5G%9QpX)M*jl;l6sf4`PalwM&JBL z4gSB)?Xr|KWUxfgxdULJ#z|rU@R^9w(j#n!VDhXm!KK81TQDfiFv8Jcj~ZZ{uEJyx*L9<;lV5d3m1Z22iQB?(a7d zKp#FPsosM^0lOWcrEs;fu@3jUaziHcIe(v_Ukpgiu0susD2P% zJ@gv!@9oXsXWxzg!!k=)Z0-DUk*-n}G(;y`-x=%q8(!zBC8<|*>Q*sNc}u>J)qcF_ z&~>V%==~39G!JX!?MSNoq61sNid` zuY?j9L^Pxft3Ikd*P`l8$dDXnZ*cGK$)2P3a-z))zA|NH?Uk*@Q`bC5=fWy*rX>&& z-9{9|-ILz^46PX%Y{lt$aRojkoY{62poWF+KX+B_6*41KZ%w_*711;vS5EmEi?67{ zwdT9v(U`4PyRb`C8$;ZF4L0!sK?*OiDhINeewjgBkctZ#B^JAYG?1EJ+a82;PO>~; zo(5H%ja&SdEW#E7=HBoN6nSgbQ0!?ZuXK`+i50$b@_Ky9?9aD?^%;_pIJ~7`nlg@W ztnOU$n}%F%HjoR^5+ti995?-Og71^67mrU)XAMZ;$1e;To@HewRR~x58!@`bUTnkj z%bEt7Aqr_G@MRCzC+|rkJi!6GYs?|uJP#yC^uzP3?rg*KzXUn8lm$DGQVoy9uE1KQ zcYy|*hEwzMxT-l^xIV%3>lSQIJfdH$d6K+?{WeSelkIp7p6YC7>-#@1QJ>_NvWLx< zOo~t=>@xFGo{9TW-GCUaxZZB%7UtdV^0cu$zlyo5-zBa;K?w0Q(xtCIBS$A3-QBCj zYF-p1Kkl|AyngD99c#V@X6AK_!q{PWO4H_&*A_5OiB1@X4Z~@y$d_n@ZNdONf~WgI ztOH3Jd_GW&VG^|ho?T-+hl#(nZvZ{K!&K}hKg}$4&P=`sw$KG0G-fN6w%%EEU+0u{ z4V?wgn%CQZ=>`3}AOEL^lVO9=Nd0)Y{LgZa?tj@DD;oXx)-y>#%I0UC$34wB#T2~{ zJR&WwpOPFih|@toBcCe;MT9*1mq_SUwUK|)kii`E0>gqU&uEok!K*A*wa##$SbklU zN_Sd@A7yXjc(yQ%N)YXS%gyDg>v*Eg=IibFnHL~)gc-`_m@eAIo@{4RF8{t>Gj`vD zT{E%B_Zh_N_lW>s3b0mlt>JEX|6l0?;H&I@$9Ickjgr%l$)?ZN7QC8~xMN3J%E-2? z+G}c3volbO>1n&?&SEU*4!xO_t8Q5qR<3Iy>!8YL%ESP@FE?F)s}pct~urVfstqS)DH1l6XD@v7v&$gI@u zq_(z+BAK#aG&(JiLj7pNgQbDbzmGikLm_1a+pT2cDCGlMW>r?h-X%FB$Q1RSnIpg? z_pTsAT;*&=y9r!B%uP2c1ECrJTp5roh1&0)MeGS5Vx5@&j%^&VoHs{IKsLy?}fN7Xsd72?Yx=W&J1Ashbe88=KKwGGTa>A*d_D-<;x_ z<6K^_NTAP1&Ru%gzwcF-B^@U1z^eTVhM;Fp`EaH8l>QW`P1HsF*86+Xom6;DGfna= z*5M5>V9ga|rjkS8vC>nzT|*GTY_DY!L(3e)T`J*5qL4irC=%-#(MKjS9!j@$EVf0x z0)}3f^ZT7q+Kw@&?+vBs>36&Y!6Pr;d2%rgb7QWWI*{kk3U#DjhK+UIC(F^Uxt^O= zT`agq)HHCU6jVu0LGPnYH&1~EMdwsV3bkDGq*h{5>BZoj<`G(CSY(?Cde%F25#9^J zOiZlzgKIR?Uxe_aaHW z;jtsTU(a;nl%zM@pD%n+t#qdGu!Z56Q|7eg*h`(sDneO*b*&&^2<~OKF6`Wn5#2Tq z&L;n&jOvuhuC*o`E0$K;Ypw`1zsCjq2*c%Qx5hD+)usuqfZK=&KuHKC#)PXbwA8-- z7eD>q9r8b26@c41OX4RH`~F;x`JW|${uvkje*!%I85R{OYuI9`V0AeF8O51PwHx+x>0YRIfQNoqqdr(e`o7yZ!w6{TieFbuE((W(zDc zcnj;f(krqDzFR>5u=@qf11gcuZg!_nXVV+)V8xd%WR`5${<{lm&f|}}P@Rr+F0e>? zyjVh&b^BGF`s%G9^l&xEHt!jN|xrIgQRy|j`!^TjhQuCdJGs`s@0uT4$g9|P3~2C1}jDkHdh5-j_r}#)0AeO zp^Qq(vE?((ZCM`S@j=y|+Bo&!m7ImHBET^0HfKY?63-uq^)eGt%a5M6<>a(QtJ99V zD^!VU8%FdwVqB`0$Eq3v`&m}P(4Hh??(Q#QeAdZ|zQSPF*9Y@08V`_?1%5}8)M}3^ z#fWUsD9(P6kgs(UZp!c8L?vbMiq1Vtu9cyA0-)oOL+}DFZ7o%J`@H*o&|&t0q|wp0 zwTXWIp{K%>28oC*M6DF;X&xiDrI&P4@>2~YHw{8|7_Ny4l#caOh9qK-Ej*UyxWisU zt@R^CNh;}%>iy>86_V==4?uRt(p{L3}Rr zy;`Q6*wg1dRRfI*X%b`G;X$w=vJmn*F1G9qBbNE<_-JFFJ|cORa_+i^$E^&0%`YV3%7VlPW6K6 zhyxRqSqkdA9Vq85EOyr%$Ojuv7!OrA8r;drIAW)*HHg*Fx1GCq?5?*^Od zDaOfDSNv8ugpTY}xg_!XNIN_{AYW{vt&i@A0(k3T>8CV&%k9ZD@<4W|3+bYoKN6qF zc^);tKd>Lh$2@&6VbcMQ;rlQy`nlQu&ThSt6vl!o+Q4J9FQh7}Z9kH)g(juBqq@IQ z5a4H8xJOkqz2i@7%okv|GTq{CE}-fn)_)L`WOewiqgZQj)aL?TT+P>$WDC;~IV~a8w;{O7>OEm1J z9NOHku5T|`2TQrM+24-Cp@x+T9(o=o=m~YJ;IyZn>Hw-j(m#TGCA{G`=4W#A4| zw`;26$To-K7B{+rA_w?D{8$Xw5&uRko^T~~w(z?w0$dL8dWE2$mF+ltA)@K=is1kBtG6^)RVM((+@=#shuT#doXTuooP5i} zld0>ktb7C`4Uzih+wzSnj#pTe4!i~?ZVCSBxC3|iO|02qu`NZhHpxF!NbuvpgA6?M z_;G(uctz1)dVAcsSqzRE4h^(-BQ;}yejRD9iEN}<17z=cZECE$T2U_LF#euKTBlXz z*8xA1z*`2c$YtL#fSDOYNv}p_^5pemLi^00#mh~@e3&Hy!!j*qq(Wg`VEJl9nWA-j z7_U6<*{kbOwtaHwipht-)?39BU5+tR0&WI4xBfLu`nBd;v|ML{rQ3rax{bJU4Sw-# z17Rtuw8IMGeB3lrW0CRl>4&bZ_n~d{@%8ewKeElilV17lD0p!CB6njhxOiZZp&c1| z-SP#nJ=E3#B%bnuBJQOgeJ#wI6IIry`9`cHUMl3~UEuuC0QQmA;IsR& z&HhFiakA~YbMBe{-3RzBvvuYJayPEvteoV7i^2uVT@Jc%D8s*nj4@#tVK5 zq*M#f$^O~F5IQyCA0xzf?k^?jx6(r4 ztqPj<+;A~;)f5uMjMzZi9Dko|=>zVg8lrgj65RLyTJQXOR{qa?otnH#xbg$WbbtZ? zVEbQ6YXuiQTU#STK|M#k|JF7qB}x3N#2)!x#`X9}Jz8w1F7zubs=7>Uwc__BDYU{Z zhBZ^LMHC$FQfj#Z&<#HU3aS7^Zr!?6Lj({3AvSE~0o+ z(_}cE4hvyGKqZ6szm0?Q%ag{DHp*$0sZ!RD|MMoXwO;F zcF*vQ`SR7Zw*~9wY`ouvuR_3=!uL%$DcJmKN5$Xu6Klr|7H>U@W((d+4nD5V7A&ac);_OVIQ$oBzv=s^cF(Tk;USnq5(=-lkm~%UK+2n0z-JjoY%o zhp16GVhWC-P zk?v|ejYd*UV_({|=gZBNr>Lvj%S7)zO_N{Hb1ausv#u^eZ6;kdR)kN@BkUv{pp<8g zrizVKF16Vx&1hf$C6e*)G4em7C)v11dg6}?3G~lkg5!UQo~l-s|3KLP0SpSc8W`FB zOOxcEhNntlQyNJQ{tI?Vw^~Sg(Gm&|7)7Zsg z=a(lO9v>1GBCRI?-Wc1lWl>XQ7=H8UMCPa`CbWF~6H;`)oC-hWad>&syU&?kRA%f;vZzjyiVi)Xedw=wjFSlt~* zt6$yw%oz4f&r4wAmTKDb8)1NB+=a;@*5_&=A$mPD5@laz{ZCz?92;14kOrh^q|%aV*<_zRNpIe`X5zdsk=1c{PS5+0 zyf3EV^dPNxZX(1_e@IOU@rjHe9|fu{#f=n3`_m!yXQGjWhy@=uY@l9}JQwvxRry^g z_8%smw+dgICTa%-OZ@!}1)3#Ih)xJ87_yhCOXO93e9x^D%OjOaE}78vrvx->NMb$; z(g12P-yZr&$hlLLMF3Ydk3B}V(3HKpXf@?2tC)LRcEoD0R>1v2 z+<1Dwnsh?^=TSsrq@3k7R*tts!GLHkj|A3;qFc5r7+E5sbuS%ODb0}qH)D8}hF#kC z-_i}v2-CGfpFrwsLF_x#t4#s#&H|T)35Y@LyARVfLjRyg&`eeu{-@LbHw*ty+uv&X zhRORO080M;xv%}d*uJ9P&oznvdq|>56~G3h%eCC!b|W=oO;9|`@SAwN*;w-Wiv zFLDTY2q|BZUd)s7frDR!1CktRrb*VDRn41M>RMVF5l!AZXNp73s`tN2O)vZNt28t= zn%8M7sr#3vH=Q&z@wtzu#>WjKt=m^8Y1^JRJf_*d9j>^aH}3By(mrJXT7CUFoX=aA zVICEn`+b9bVvl&tu2M*@_m9r`xpi|9;Kpw7&7MT>YnirVk22;w$78x&1xsxt?n^@- z#pg>3wtEGkMH^(&KN-CKq>mK3X^tRiV>8jg$eg)~KX{6)WV768eH1W-7+%);`Sc^G zc?lP0FWz!vc5>Bfkzz+r9 zFqc`ISZy@>^zo6UXf;-6mb&$E^z8XKvL+Ttn}-@Um8-qg@=U0&4BZ{3QT?0C;&#^J zCDj6T`Fvk9Tqh)}ffkxmN30~xYkKAIH*lxi#>2@(p>wds}`wuYYz6$i-cBB9i%gG zpH89VNUCbJ8Inx4kHupgL2-IcT7;`;ZQfE+A9w8?HoLYnHWc8;)wXw7S!|e{Q=sUR zQ+6@8L*+k?m+sT1J<#ooD#eUifUtc^A<04w%pdMsryTjc$<@tcEnw+_EBq0 zc^g$V&3Uv_Q+8EGO%n}aVjY^{ZY>R0I4BFSVD-35$wb4&O8lbiHb6il10JvoNODCZ zm4Bi%Z!~eQhp4b^|LPB$M)I;eKdGDTH1?uN)2GIJ$uSriB(Y2;!H*)IR7RpUMKRA{ z;*_!+1VysArAN9{HPP>aRxyYQ;~gO8h|X}uAeD6d>zE-*Qm2)UEMj2x1Rq5z^?~JW zvWGI8HHb3j**~cCLZmn6VZ~$9%J8J*{O%R7Fldqg?9`dJFNL(ci;472GwJhp!YADo z>f31Vx!(cmE1OO)QI_QvER*4u#Tm8=t}V7rynl4iXCDWNb^NXIIYtSo#BO*{H;lrh z>u;7^K!6uXs^G;hGes7C38D1V5*SNtM8BXo$MU5C@dSq6&22Nf#s2j}vpk6pJ&|0B@(J zp0cZ}sdSLzaPap8D-j`x-0RgSvouV2uapFAhW;LJreKE~tb!}Kfm}WtSqWF&dh!Ky z7%S{!e|_B^Ge|##&tSizr%gp%YfXf%*-oC6^tUN45?)o*iNMx#iw-m=yON4Rw&PENUU#HgTD z`6P~HQlwQUdX~CNCzRVX9J3pgXD1Y&u^W|l3q)ZNx7gzuXJy>jS$}7WP}>IZg6auc zoR`Zk!98mSxs*-V!F}mJ?jmRoFGK>8(uin!jbe=f$|vfYiQgM*+`GH}&iUY3;z~gA z5J$oDMT;RHl4}i|mAi02ezzRr5A!gBB+wHe%4GzHhYzjoAPDq6DWVH;t%0LVeI3j8 z1wyjb1%#FC4Mq@unymuhwCaVT8CKf^Q+NBkZ`CjM$eZrXaH zDE^p7A^vj1$bdpx?~%9+HEuBu)H2e02I$|mr%D$1B}D~kJTDE%4?#gLF3T(gQ7$3p zf2gdwZdI9xBa=s#Q`S3L2AkWCTvJSz$q%djw-1Wl6(5YYu+x#U9A4T#vp(*fO&$8` z9QMySdb>D9w*D4S>I%Z`lY#sM+HKn#eAvqy9s3?mbGiD1JT#IiLh-ErM1BNaNHQ5E zZ*_jbR9$_vjZ{T_{Zv>x2kF^aW@&{(e)UvzJ4ER3$&!m9rszoMcGZTL8;JD~Cueuc zOypy~Uztkn4%9-cR+gm1;A&XA_ME8xv;DhdkuE|5#rdY-9O!&tgeSVdS@RHUC4{D% zEb2%xMw8>FMnI|Z;SEhE5H}ob+F&CV`=L{rRSpp6$cEmUFIE^*7Af~|wVOe}v_d zozWgxGvEowAiOO=(BVDOj29t0LK_bC!83nlLu)7K7Er~bht>q=J_P)MiGbhdTmW9`=kLh;E2TY;qyMt}^ln{+uun zUTJ_bspA7lkyvWWsfGGl6PU5U=v`7-xiSm-L6dMdyIf7g;bZXlE7O-syG`Xkx@pdH z_};(Se%*Y$+qL{$LbXw*V(Y{XPpW{SbwMZS3-D;Ot~fY%W?7DOA&dcIkMcwlx#6BT zv>E;Um_mC?z_ziuUEVjt#T&R@cmXZXrI;wJnd@@o9XFGN*$HqA%q}T-dSRo;Q2d}Sno*b)RElaCKH~Yver1Nj>zKQ)YL2Gq$m!S)l;lWiJj2bF zan;Z6$jY11VaKx>F%;R8eAgP-9nHoaXw?X&_6F*c>y5NLtKIw{x53}ln(>4$6SK>= z7Q^ib@cF>@G>^nKd`@}_@pR0oION65EjE8j&XJN`%x z?H=H=E3_ukQylPsXu-?3ZPI<5c1?EQ)$7@#-<^_r&Gs3rUA%oqlbzd=dW?MEIlxtN zsw7pi%*@-B2XbmeElAo(!BHlazueexf?`EcvwY*u-Bo5kVm$?SY`gY>{N?X3hD#&P z6J^oX1(DOIvsbfIV15*L4y5k0uS?F8G7=C!tyR0_6@NA4J8aHctK&M{%z@NKmWX_i97KaW} z_2DK%F=mOLkc=p{g=?UXe0{oPc`J#`#AoJbIHwEzdgKD{N;o!{5(A<&Sv;*55|#p|DzTZi{20*?4c z_K2y3`~2d2H`(N~kP4Lh=G#H$lL6p(u3f`P9Y+EM!+2HcVS%W<($YrD=7%r-sQobN z#MVnBJ1o?Z>rLjKQW=4p>cG!t3Abz|-6f6WuF4s~$7<6tO=)b!ll^v=nw@!*!|UqE zCXMRp`9fyx#j}=GOJ#qsUhlTTX>XG_@Sb;tG7H)(*fssJl*qUmxqHFAOJ2Vk<15$yv|C;?D!rm!L z)@JM0on_meW!tuG+qP}nwlT}LZQFL$EaTK#|K6v4tDU{}xyY6+?=mBMM7$&Vh^G_e z_=dVxE!)j_W7&M+7-5MZ#6aH%9#CexmP1)2je$6$&{n)gE?q(4vl$e>0HPMzmr{(r zq?=xLWNol&Z&8?F^9{7@ZB){fDr%C4-l(YV zANl-{3(WPc%suq~b;3jY@2)c$eQRTBeJ4Y+|6K@cM{~pW(;)|bN|^hF2XpocfUcs) zr@dgb*Krq=6eNAW?2|L5jp`u?rt}TI4w+=?a~{!g)nN zge2qx%0ico08Bxm+~q&=nLs&;-Zw7*gUM8%Y?k z$JMW4%h%Q9BqWS*qss1DGsHkpn9~xNg(Jvm#oG%=0=VhPlOZMT*X|dZLiHw?U$d~s z9JDv9iIBbF2HO43g6&{Qf2h!MD@NqoOKgL?m-2-|g#<-Jhjtu16qX}JbLdlUf)+v% zFyesQ-Ny0Q1^P)L;dNi~GE^JPfs%W<&`TiY^lq?HcYKI)61|epmL$?_ zYs)gtDK%+H=uip7Z45$nY=ZCOfZ~`)pv|m!8Tn$_zaJ4o>iM-Jq#nh^3F!cJNEjsg z^UMUFD$azG>T$;4QJL9`he@Pipf?!Y=>?4{SXDYO8^F^Tp<$U(^vgP8ll@fDUAT~K zT#KsCPulEJ5U0alGXOJy33(WT2QqKc@=fm8JL9z2BD?!JDjxV=I{gHp zNgtB$nwH>It(I{IW(n}1OdU|Tz{SN^jH&x}n?;c8DgdW}q3N<`KcLm2#LB}nYCM@|IQh5ecRyBy!K{)Q zK(Ro!lI!C3MjpB)uB*|p`qnls&!x#~O3P$G z!z#Qt%3nbh?^EZ=h1os`wg)%}H~ZW)1=79m1U2`uIA%z7SWbAC8n8FpPE;uq*)1Oy4FQ=vCnF|WUP?Z-Y^ZH7XjJ--jg3ubAqvm=))E`$D> z7LR5AT;?i=B+@1(|H@K9QgJ>I8Lf8&ez8{Weu49Y)T-mR0F2J}vfG9oE>=>@nTLr( z@Ug_e>*jOuWCgk1vL_TNC$5=9*#1fsPuEqg4rV!&RzHc$+iJIvIpS!comwZpAs}EO zxj0@@i$|iV>5`)?_G2$HV-gK7PNFRDk-fkwh|rP!cFN-wru}0>XT{LXvhbWDyh9LO z&O6J-$5^_Thak7J$OW~`6kD*T&ek2w$mry4tj03G07c5(vD?q0L?Ff+v1L|}j)?>` zWd;x>PkE)+2xQb(o4s5vC7ml()Do#;AidMe9BL5Kox%sACHL{fI(LiG(#(SB6L-tu5E_f~Jff-l>j3eV+!{)}m zk+U)zCbzJ-cztd8Y+pTFbgK5jvkJ#$vE8KB#tyZ~(X9xaw1#c%v1=#O2IG;@lnw%K zS}`gS`5=jZN;bhuM8z|DVM#ynvX_6Hen4N+uk9kN>EicMHU>L|;GA|VND%saV$7fN z!dR!E)arr1wH!2vnUX~Z1ZS-uz89zYhC|Res$=Xc2wFvkhAuqkA(q+=Witl8BYHQZ z2ENg3TBQ{2B7c1dBfU|UWIFmN%^Khos9_H2un(bGu@H1<7+3Dowun%35gRfGFB_5> z4UroRQ5)iv6L=VTUW3hsR>o+_mj*>CyHwqb=Z+EVXRN0IhDlRLIgd&5d zL)Nexs;F*mdbeS1;vS(X4b?bvz43f7K_tmqa2)l1-g@5o{`!9Y{(j!sdla3)0kb3D zUa>0;p?%-&)#g#s?+EGewlnkuP`!>H=)$~Su2v3fQL_2T&*n(eT9BnaR#vE^BG z85rya4mYtz=@hJjy-R;8p>dm>aty&KNISJJ!iKVdNO-6AcdW{-c!8Sip;w=&~k@^ zN7EE|ndfZ|M-jYM&e%(BGk!RJfcYXS8d%6kOn-;Osl@C+S}UO zQ}bZG{b=H19R%C*9HjB@*|ZGdnq>I##b0R;V-A#PWfoCSMJQlMjY4gE?qnHEz@b1M z)j#Ebibu=rIMSK+%RP!q$Z_eL!J%)Wh7CjpwJfDw7fJvO0I%%`aAfB`isG-C&ly?5 zU;$*EnQ*0-AlW8Ns*vrNi3qrS+#H!~8jCtsu*O)ty`v}#Gm!MTn-ye5jyjr7C9J~~ zX0ncj>MIp)<_55$#_b9^GQ*TakdnilDoC>{s&+CM&J)DFFBJZ6XGmarux8sQGnW&3 z7P2a+%3Dgn?bHh0$hW6!V(QG^67UYf5Y8J|O|uQST5eacc)Z%Yo@{4Dm9!QmSC`u| zBtM^u`;duYZgJp5yFws~92`FxLxlHvwC9{&9-=eu10IY^9h&zMi>xCYJ@akP zoC9;u>t*1Romg%nvUn)S3*_$+gV-iQ3sKEU0&R&GuH+S!K-)-yN6qAL{vtUG0(azP z6xGN$uAzSwX6}@FSAbaHBup^O;~Rqaf!T}Uq|gO1Io?@jTI7kva1E!_x4(?9doDrTEJ`R~ zGt`labyd!&Y@BKtJr&2)=Qb8XFF1;_Y1~l5xQd>yZ+GL0pH~k0fz)lSaWB$!U21i? z$2wr%)lxM$@|d$x(@iKKm2T|8cqFVTuIceSR4!1F`$Guc5CJdkr3wG)UKZlOV5td{ zm?b@=URPI0 zHJ`TfX_jcRq)(GL9$S3+ScvQRX~x%tXS?f(*?lvT={6CIw;KwGc9=#omQF)+RYgiE zp+>~~L!dBs+la+GAjR}KADOvzlwQFPzzr2dCXIt zUVe)oCQ&i*iBsNEVG+x~5c}2lpd9Vw(!?h&QnIv~X2OHXPJroiGs5{2i2PZI2PHQ} z!h&wZ%j0j2`E@vwdxu8;T7$i9=zU~Z1pt{+)3Xg;$}p!YX^oW-K1Bi%)!b%iE)yqe z%velrO!QYN;0}i+jt02I_^BrBxx~{0QC!8ukSi-}b{E?ix2tp{Ote1B^(&$2KAahu z%93N}gpbGB$k{ZtYPz>~iUbmhL8q*V*uw&7sKfcm!xiHl6DwRXRtU7bxq13DuD)LR zNW|3AcKr7?NISF_+nk^b^wHX8lBxLLIjXNV_M-&p8JiXpUq+|lUaY18dXj-Epnf6@ zi@@y-11s_JZLy#E{+A&x+?oqe9R~(N#e0=tTYzwSUiRDsnsOrJVT^i|IiJ46--9#> z=1$y$+lK7e$csRvG$*F`GFWf;`a_5_96dXsn3>&E*oJ23Sj2e9oJ zuGFO{zbCJk77g|hZ&X3T0J;nMz&qW(P?`7Gn4CDCh)UKvn62bcc{(ZV?e4^x29EOb zoZG7tMPkVV7;tS!DD|LS4e|kIzazD8M%4jq_H|8Zq`vVry78C6gciGIg`U>%D>B=R zL!#io(&HIb#BP$}8F}b3BUdkerr%jE_`TcqT^+X*eBnze&X8G&jS;O$=sH|Mnxy~1 z1+0C4i#*M=NN`aaGH(Pu>{ki8C%C`28V#{-!8bEL>Cm%&#rpZWLcgi~A^7kTbUB^d zq$EztdarzxtKJd-RyxJouR-)pHj)O*pxXG>VvJ+ykM8ssYhs#>Ru81LHO*=Fj zMX})1Yh~z5$o+%7MJY>>Q0vEL!{TTi1g&rWtuQ!x`K&%6ntDZbv8%&BRCvNJz^;Wv zYCa$Gz!I*8Mzv1aS!lOyV8Nehy;5ZC^6gMHK>1IvHHnX5xfPqm%DC*xdP?R1GlFHX zZpi2W(Wgl&?i1u_w?c;+d{Az&dIr5nw;~l>3afaKt?A;^6xKUyXl%SeyKZO;6?Q%V zxd%{6CR6=r_N3CCNY7=Z;kr;Fj-5dKo6+VU3L&2KK+lREV0GSpLoJEvt&uX#!YZ7MB z>^X;wJ~o-CO;V^j$}qbp=HMZCB_qb*Jbwc;SH@d9A)@PHvNlE$)} zBIzlSoL?M2kfwA5*@_KUNP}+oLybL>tAvIjla!uw+okX_}OA{hf9 zH6I|K&MA$hrNh!OBIz8Ia!Zf*3_kS8=T$TT(@|~z{fj#T;LD?J1)!1 zs2?4%D>NkMsO~s{JjTImfCE8anbtA+ElL*#Oq;DzMe&-{wwuDnrQgsXO5L43Flm#S z-l6tH5_NQ*?F$BK?L}%@Sj%#p)6-`I|JkT+vI{A$&OfB-5XW`86%O$lPJ@hys?N@M zF;XdgoHZ#KcIdf;U4OK?NxMx*c9XdMEdlwBHFgRVa&$w~;462X3w*3=bnLr< ztUGeZ7@kd{5ksXI!)78=N+_RF5k6#IT6cO3MQb4pa4v+8 z3el5IiUPh1Is}A9hh|Xaw8nvTwP`NI%AVCi@ze_2A+nnP6}hLB*?I__TAxqxd(F0y zD=T|rB6hd`6DW{|277iSQA!?qe$mqWycWEm6)(m`WTLHzzzKapRT+C&SiO3nD5^}< z-z?8M(m|qob)Lr5#0e682U*(*T8#0ltd3&@dY!DWL0Y7=-6+)x$=C{s@oC~cXv^sx zUckSnBn~a%oPmGa1Y~V0 zWHVnbef-2k#~FLoKzLYd%_7*FNel1(_S+yJ1PkK>gyBW;@P-6)PB+tE+7lG* zhL-(Ud%vp5J|Ry{OnEFFB-yibBWRp)`>Kiz#%)!ay{3{{KXj`9(O}4jbM1uj7@ieA z72W(!d{VQ^=;mtNavM;Xgt}E>gGsbjIkr&|FbK0}ImKR@JJn=VX zjIP4?&HqqW|5?ENXK7<>SoBf;LtXv)X;u60p^^Wqw2^VPvid(%HS*e$Sp3M`tYaq5 z($SbrK1(bwh`}a!5_kLvjcRIYiStAOhxk^@%AzdkwQJVzErVcv0=|B{5+0`Y(FDr3 z`qx?S_S0Ri$Jbv^aDK96nsl`$``N+J%Oq=6nQpRal}%bLinh!>O&QrD5ASYAdw}qW&uz_=m2-x`UoUR>lu$aqk4OKmv0p zpLr>d?fi?6?f9a{T4$bnb!ZSrrF~jn_#watravf+DT()9`y^;*i1a6b%JBw97aS4& zSyK_=6POyM7U!1w`4Q7rrm7Fd>orZn~k~h2KXo>n; z>nr)OX2_(8&=YfdIZ!+$sVxmw%QFyDFa@e-pYZaBV?a(Zj$5n+D?K%+yvJTPr)W!s z#~Mp|M4M-O${T#ELolytcERh1>zcWLh+ws2roBZ^j=|KgjB15WEFf7$aA4WR}aHY^TOfQZ7iufyOMl>_-;QDYGi{|R~f)RE(@v!hq5^;R@M8oHy7-52Y^7cL-SAY9>yjOSFyW~Zdw@+z825W zUT_7yiAs246T=cH4(RclYHo!$4Og4Td7EG{D&G6(Kh3|N5~oN0d?YHkP9s7W0(z?s`UimM#nU+rnAcG z3k(#1)IgMsSR})WV48A~xt{)FKi3OoQ7)b;){dV_>=KF(;Gj6XP{ZH(Z6u(AU%9c< zclpFhrb|}QTlCJL-diGJ{q~$@pvO2dOi}ZzJXKj&(?gSX`yAu})E!1^>ZgX%S@?o1 zemw)DfQg6lf>L%22GL#;>jL&pIRVlMlf3U)_QKr7$65 zYiGCrgSZs6Ws!asn*~(V@%t?rNS|L6R+7dD@JRSX5ot{1EOkZUcjg^cR|Xv$jUD57 z``SpsLP!SecA11r0A1T%>E|%EOkU7T7ASO`n$5;zxnKnzK9n2j^FDAt{ zu1i%=kEvM|mT&wMsBUg&{?TRqcTomt7jGo~9<10acdQ`$9wk(9tM^af>{@nO@9MK< ztJT`!#B`{D$x|sv2BMJ=J;#k8DUdpq7HQH86>A|!%$PYFDMs>6ao=V%ubTAfmJ2=#tXBM~lO9U~Q<))F{WuO)vyMyx{S-5D2az4g|lck(qremI-T zaO=#&ElzSSr6oKD3G@ zNdP?hesBUVy=;T(&;zIX)7t|$dPw#ry<$)31n(GiXd_|1Li^ro+|%-37`;S@X#x@H zm`j8()PuRb$*{|kD#I8HYj9%N`6rYfu14*4z{Jnjz;$|3v+$2Ws@}t z3biES>*6`c^9CZ~M)bonNGOB-_{a=@#gFdd%%U>sepRqe6Z@_TT>SA>14#Pd`d&~$da=KjkI`=_S=Q|+(fFtT<(UYPU` zDE9w%J^fcgqN;kG7&ckG0~# z*&Twlxrb$jwy_UPsoUW09pgfr5OIy`!HhtMoOhca746UU=fszpl+9g1A8|IunOqvF zZKP;HljW1oD?f6pyV5MdJvbC2NtruBAlow zJ11-H`Rxd@VuG;|(hJajkSdcMk@^=+ev!2*EyaY# zk?h&GN1%_(+_9Z`xBPYJQkfE!S(b#dKG^C%_?zf7;l>&$RHIWjRj@#8gwmywTM9qK z4w9d7h)*?r(G3!=l&yg3^ZnRchU<@rfP_dm9uSa zN*aw7Nyg~_m2`R6BP3Z>@GKSt@O?ldEN_9lG&4?++0w&NZo%0eWobIz#4XzmP?mwo z=-#v&X!?C|(<2A4Fq34bQWEkgG}lCpS=Ra9dS>>ZDE(Z;dS;JHt2bT+`k zBc7r^+%PS#-fmz0-x-}cy^%85z5F&It?ZLiY^0Vh%2{-d@T|#iFAuclA~Es zm&19ea_;sQ1x}|0f9Rc$(#kg))(c;_7u#kP)6t?jPW2r^)_4+t6aQt9YJZK!I0;1cIYO7jE^t?m0P+LdGAAz4{Po&W{nJi>%Mm!pU3>pD& z0}czLnd)~zF*imVl;Eu;5TX-jQluLR;O2fIT%ifo96k{Uc{O6ND)6l(X+~Hyq?3Yg7c>x?ZKw!s zJRu)lkz2c@a@x}8gbKMXDa$`GrQ&efHSE@(P!DI5hlDql0gs0p4+)Fi^!X&0N&M;& z$$r!SAdhPiTiqZApQs+(frG5oAy zqu{h^D8qDSCax{p`9!GD<^M~C8r$5#E94Bwj5ey8xmPKjciq2P#N$tl#xb$Z8@z}s zdXQ=7lERw8oH9~Z_0xe^{FfjlmMKNMKuv@EOeccj)hZ7dCfxmg%}-w{;^*xb3crw< z4T?IZ2>03_@g>%zV%sy(Jx-=Q&#FPVpclfXb6F?vFDbL0JhYzquO09sSAo~Snm@b{ z7kC2iQ1Tzq3oof(;ayVIzQRWDEDcQYH;tq!GOxWmy_<$3jxZ_}#F^0hytucNVP`}^|iNId$Al-+?v(6SQtWKlO zMm@ub$WCdZJ{ghbh&rv=nit1@(((~DtyJE8#N$BeBiFVay}o6}49V^4X?&d$@M>JU zM}ArUN`13&{nU=OZMTvcby*4G+~Pg~B#o7wxEKp z9kcCk=*njE@qrxjWl=)j+59@Oyd-lM>XpY}TAhn{pFu$d7Djd$#-FCX^C^>-h209G zaHlQ|C$V_VXO_U(j!#5c`4JaZLfR-GLztGPxkpfN6cS0nG2ta0n0EcGj{ONXs6Wyc z{7*-B08fW|dJM5M^0jvKv2e!pvEsp>f<+H6z)%WIgvVyM4P;03p$Yx{-=4~lU~g|m zhxD$bikqc$JeN58bhL+LhqO?{qIp{rOCabUU<@*^vSp=@&{1>i92}uc1&i3()6MTQwJDHHF)pR_Zv>rxY4Ka#BeVAl7!zN>Q}N}ajQx<0VrhT@QXQd0)#t8 zWh9BXrZyQGOv`*w!RiV+W@?*zBgnC5v4?^RM>7bROV2dvY&6)ChDEi~piP*zrJ|lS zqgXY4{NwK%Na++$vJIp(uJwgb|0KvbdgeZYiG0j<>>1ePHdzsKO6|I~+*Zt>DXW&;Ok<^U zgYHS$tz{^%8924JoaNAOes}0S9l)~#G~A4CZRf*7j7#E5izX}o6g}ic-?y{^%KA(a zu&D__FpSH%ZagBIwCaursOW=h5Fq?1u7A5RZWf&j)=il#rFG|-_|8Sf^6gTmyR9D8 zBV4zNNT^_&l-pDA^zN4tUxsma2S%zrcZc--?{2k!PS^jO$kofy4pQj9er41C`bGX< ztFeDQnA-fbr~MV0y?Py)Xd6I3Ywn+-2x7 zKG1}8Hb(y0H!AC54Qp@I3PglH0*VOGDwHOdCKc6=4(pbtChd;uW|s}?CRwN{pOeY# zF(T-tBm3*NlaCW$uM^(y?_AEE*O8T2AU08}hdiJj2f>j)*={=nC$>fpytryF)t8?# zPhYBtAKQVvyFh3>PW!PAx3UgzGxg7CYwwjvz7KlXKE#=^Mh~uQS$6wHP~W$C@B=mg z_*_;@Yo}Ti&}(U0wAl6bhI)uN*Q@!xJU}R*;8jGsKWb z6GCfJ3DWV%YE+)YGV3@4o8L)WnW3OeBXR^z55?OPk z`bB88u*qiKAUlF=Qdi@o(%NXRIpC`^Lmje+5Z(#VC8(iX;((tGd=S#*pUuaVq&yuj zr%Y^Qu4Ae&IW^Y&b}yXHu0l;qGk&{&f=!6hZDwy}R$IV|vZ^qb9qf;negL^wX=c*p z5Fk%q1dr0(+H}yrIDeW$x&Z0CvRvoPNHLX|w!LaCGZ#J%E2P1OAUy|pyiczLjv6*| z4Rf04kC&U^+X<1YB5ciPB|?dC0r6A?G1Pyxfx`^XvD4a}G@e^6$JC37S z#ESw!nnMpxVwE7Mt_;l+EvW0(vwfjZm?GmvDNJ9}bF^;!3(xlB>ouvP9l;9qZ!k2% zEA`>vx#y-W7ZI-`pH1gYp2ajrnW^Up8yLF86HI<*l6(B16>}l@wCo)oM+C42Hh?Gf zs8Ba$gqE4-NejYrQUFSpxcJpW!GKFk?4wwAAmBi*qI zUi4ehS!$$4h!`}_@I#UKiy~}uV-|AV*#8qcojkwO(GCMLt}G^a~5a(_uN>jIfc1wBu903bf2B= z!!Rn1W+OL3L7)8*vO24&vO=z~)BK@Dq%B6+@rZ!;Ty=gFg6L_4zaH(Jb1C3pRn(W2 zjZ#7$bHY86t;28cPKb%3Izht4NZ$CJKitx{RyNi}wsBKw2UEJXd90}#Xh zW8YbU5v3R=9fE}3rHv_$YX^(%m!*q|CVZD9M)-(jY}IE#lOW8|bK5#15Ds$CPz|zU z;qv09p1u@!!1Xm{oXTdOUZuYYT|M0tiPF%+?63M|D>PMHD0H>Qe#ob#luXi8oPc7!ZlCJ}JxOrv*)6<+p*a4yJKa1>8pEx82um_*Y6Bd1}|Vbdxcb*(XiMN*4E zMQs&OVN2%ombl!g(#$miRhXZ*>|FZ_`IPkwXhGOtZ(Yk z^a0tSV_E4LxREw_du3G|_}{Y_3}b>db= z=B;txKq;pP`jN)_sFIHnJd#4dI3@xq2YTT?bLQccz;m&YK~9+fP#5;;idId7$@3kI zn|02CLR3TI!kN$=BeA!(Bm`qo+HW)c$TLoVv?c3CO&cBPaW?kGl(#oKYwFZXE+>KX zN5onvY&!}*rL6rY*%FoPeH>HphbGizN-9oH3-UlQT*fm^?+@7nK0m2wfh&0CvhfKI zi3-N>Q(TVJD~lAiWxgPQMDJmTv89sQo0-;7M7uo>P)87{2#CdGIzXk)sVJpIp11YT z{HdsHCkX;4rT59iA4HB*D(@w35`)iz;`JfCYANvvtz-z=6U+t^GKpwaqh0*hv*!73 zpvI#R@K)hlqG^*7>dSX2XLzn{QlHmjj+Le78{HIjd#aSY)SDGc8Un1&Qcpt{x>eM2 zFzyw3#Q3Lk^g4;t4G7NZJ#ww^8_RjuXENmWa#)x&=N7Vt1T&6`4SsJk9?z%O|IX~Z zlbDAbt~Mi5M;+vC>uj>fJS<@*`r{$;D&@ZR!&O5(VP=YNFBLP5ugMKtPdYlfs5eV9 zmbw;kX{lGh|DBHSxbXa|9KJ+A6zmsiL>*#f+M>#X^guCLKW3G5&z}R%K$!QT7p38s zBd?oDH@N%ka+Nvf@)N0PdZ30aGG4d4u}ug@JLG+cCL<(GxZGYCIy*v-)rJHia6`si zn)GHX&<14UxMw1!n>T*8Xdt>rL30_{rhAje^1m6*0F=P#Ay-Fe@luFUv`@>I{vB>i zP~3q-TNn{hqCNG+vQy_NGBq~o#|tWF5z{z%D#P^Xp(Cdc3ZRUv`;cN|zx5eUiGW_S zO$EkiT05D+^gLE*!IMhV&M=D{TC3#VTswsIRQd zt*A-MP~Nh}E3NUVXfJ@N;`;hN_b@_9Nh;})t>#jyrMrccvS+i4+GhMAcCFdC99A|g z-(ozEw=pz4U>$QY=1B$+DB=ZF2C=~Qe-dqi?dtU`=dW;hPZK=6=pdt{^PFJk20qlQ z);okMVxxZ*%TJs!6ne^x;U3nt2%-^F9#IUORyn_F8GF))KGv`k2eK);5S{&wFlK$# zICgZ#3p5So=^PmHHG1_SNJ>XMk}If@h=GwnW-NNsn!eU(nYm)b<)bd&lBjN^ zu_;_w4u;F^=;+XaU22E@T|2<-rT4PLR7@{m>huOJUj9pdotC--F6NFsbi!*maMTxd z8S`3uP5uz~iQQFS;H+jYu)KSYdS@Q?ndf+Jk0!7Wa~40~HjL)5fiCm6z-_oR83Olh zBwb0k&g2imRrS#@ycLjA2>L=88*B9jVWU>qYQ(P<1CBG+iV_s4r28`)E&D7#NkmuGXR1nD4Wmb)w$F%Pof zeh^zl+aTjP-xVJX&9ITyRO{8?iCxZl8@kmpk!PbJ4$oAMrqlqvXUYkgGw@o6!jR2c zM@Xo=VE6H0Q_({B@{T=@CurRpb&aVVOZajo^sJ>jZcCWxEk=!9g`g+GI5ue&)PvjM0rmso3;Q9uYA@M?x<`Q=xbFbu0XyhOF&?_~)5dhC9T>2m{449a{4k+OngUyUWblD0Bln>q@K=Bm% z^J#wz^vEeX;nFd7byLJPj7Fzl zfJhl71UE26sp`M^-W_v=_cHE~Vh!dWP=o||ABiFWnM&MJKNa|qBt`DmjjmA}!|58u zM;9dMbSQ=WSwIw-cuOoy$-1BtH|-;&F!s?8NX45E^Y-`1+5B-q$hQg+)P$7O46)ac z49V)BbHK(OZ$ok=J~Fevx1a5!D8{~ub2?~G*mBqaoK$~>lIVH>JrWA14-+rmwtO|f zrBIf!R;9GCqo-yKp=-+dJz-icFCygN4XSAxKIbmh%~0bgtnTg57&W$T8Yh<%Z%zbZ zr|;vPj?9*cIGuMH0w$+&uKoU-BqdD>5g-vcsY{b$FYgeu!Vr7jDws#P1h=w0vfL?; zp~8?N+$OjDik~NO0(XryS=(axh|$_u%;3WOO{#6$lq4C;*a7qN-5!;`GvZWN`tc8c zj0-i;iu0yF7M*+tg7LcP>0<7X)0HE*S*~btGm>LdW}RFIh-4#efpiDTMdOBD+mo@? zoXv>K73^l&R&Zuxhkd0B-1TgC0QWi#SIyNh(s~zL!B(hgYka^{Xfk^sl|h;ly@U^hWzGZJZ#K1 zZewaN-Lfz~d@w#@Fg}B)e^o+2jm=>?o#4v*+z$0*HGtrpM#M#I^X<^3@Lp`!lC3n` zo1K=E%cK+u;Es5dqNh+P6w}m2;J_Xe@Uxma6Bd#Q^9wRO_&E8uWEGzE59PGFY3O8D zNhhOCXO#z0Z9W5m7^zdzW6iOxMIGJb$e<% z-*{u9#EWF@{BQ>Sp1e?Gm?ru~qbJ!p28&}_aaql1cO@+D_xt3gS+YSwJ>zQDt~wKVKwq8+6CXnQ&v zSNyPkvv%L;=O2!c^SbH3C(tJj#o7;Jk8eI$BMD3~%+ADz6alttewS@P|!j`~fJpuQX zyYv=uwpr1DhNzIyjtov@k~iktkrF zw~bdDxX|SaYteiL&`jkPh6tL@qrRI3C16=iaz(_Wi`ru2DO`vYS$RF z^M0vrc|F19!xL%xodFyN8)ghTLx@kQSbs|U{v2?ahfH=la*jI?4&3L?-nW>)&X~P&rkQbb;U31TF5^Jlp!4i&p!I-$zcJS+(U;${g9Gpf9adqO5b&`@u zoBAf5o5v6hlM;wWQ2{nzJO?~|1vXDR1~a?dK6U1=GBPUrl&#zHDUav{=D>*sPXGQA zm>gZb&zMb{lfwDZ9QhT43!7V-M)58GA#t*jtFiI1_W%gS^b`6P;4xL}F|mLW~QR|A6daj=>N%O0X5J;!8Z-LzJSvLk1lE9<_g37n6O z&G5~Xj+dE^zdj=glOtd2%!0I> zd-$gWTmnyqb&E6#rw^<^znC-ZFV|s%K(v>{7dYovm|a4h2-UfZ={~$$?+?E@YG=6w z!f$h5W9Z%sd&m>I?D=9?$nQ_NVCa-VUIV3Ui?>Kqvu!R%Y-bNB-sX!VG_u&Q@KnI< z;4xc~U;x|SYYkB+dew74SNDqh!V@{djGy=WM^ArcIIMy@ldxNSnQ!lo=gWT>h&KD$ ztzfu3fPrbM%t6IbLdjmJ(E4lV6yD$y#ACl5D2q>M3cr(Hpl$Www!}Otuy2)KwK}ozt+-^Dv-He*HIL~%}>u4!P*sG#UHer_Pf6S zo!tIUBjP_T3L&cFpG&*Hel`8H(UAUMEeb&^V||HILA({r30VnxTnr6A))kK24WPdRURlq z+@f?+C?9!d58BtQ{VpF4YtIzTk5?$_h_4B|Igb$+0Iu8Ndj9#A@*WD@`lq8ttmp;q zzL_46C`F_>suP+7YA2e+?Ps(vu(Z~b=!g>rtnjd^2ATS|%1es%R4hiqh+D)n z4=Ab$qx8_&l{G7Jp{Azw@3E`K@`w^u@p8lwc+oN2S0S7sTJL|M6VnY}oMdHJEOa`w z+M*R99x!y8myW#JJt71!(2l$_>g#4G1SP!U&YLJZQ5=+qmj1*Q4YsqJGORhSHF(aE z2ZKsiy)N}4P!6M&8*XPTDNsG)8|Q;{p@P~8hw9@DJE6DG`HMqg6rtB!A23Gcm|GRh zbBRaI(^}2ZPT46V6=-KY4aV++aI7^lXmC1$>3KGW=j9rtwq^ASN2pK(q}r_|B@#KM z?GtMdzFl(?w3T~1En*Q(hPpc))R{BLNfMz3`mJdXI9qTT$*>BHX5#nSfy?nFxhzio zlDZ*WkE)e;m4)dSqkaI#M<6)e0-wU42ehmTPMbCkyUzpRRUE%6flGd zrY>0A*F^e2%Q#$&2U#c~jr$0GIR-%FgC-LD*3E5aMx!R)~Om3O0y*4gpyX zWmNk9W(m<_ps`PXtd}Tss+Zpdsxje|W>MvY7Acgj^eg{bH9gH*XnL+AO?|&_cV=g& zXOHoRNI=?w5Dy_+xPC>_wJ2&yRi|cDyk|fPSqE2GV_1FlljXdLYVhTn02sgLz;t@ zK-GJ~@K4Qfbjv$qm^ql6UEqTH5W<~%yaL(KyDI2fKQO{-fJ;H+ zopNu`8;rWau;h|HGdnpAa;ueQZM{RFj-W3z$F+)^b9iq5cqxhz{3R3m;G6m*1gM{BpuYrA-)-)fp3?~aA`TqDyk#IV zvugcT4jh2Ze^GYiV$%S1NBgP{c4MP*$cgqPk4`{Q8<1rv>S1gm? zXlbWCJ(LKu^qwH9Y;N#&#;Lm)Wi90`QMX@6uve!=)vw3juz-B|g%xIBN`3*qY5AuV z98G*}IYakGy;eJFtSsBied}t-x3?2O8g1e=m+5u$t?bVWW(HOlF|L0amz#HM@t8!{ zEYspBv*I^rh}rgV1R$}8wlgXCQSvyC_6HY)Ve z(PR`BV7e)ZX1%ATOvOxC${mB|-8OQPT?ahzD*sIVOjRByy{5FA!y5J-dM%mwF3EG0 zT_8Yg*9pYif4OVc$F&zf?RRT|Zrw!-8wZ+V$FZ0ux?e`QXIo+I-XWkTMXf&AZQ-29 z*fU!P35Und>OGV*2>c>np_Z>)^mfSKFmv=gf33={L!<8QVu>ot{k33>A8YiXzlT5z z1aWAMdj6K%rTw6FLvGJ&pJBZ6M6!{RdiJ28sHjOxZZ?Jc zz9wO6muqiFy6Bk-a2(}2EV#952ywL)Ul9c*+J;~Ok~_?Exl%g@{+z(5JgO{lN6Flc zIQ$fDlc`_P-VoD$=B^qP(<7WTGU<0PkC-g-7^mYFuD;sge{g2!ueXbFsy(f#<+ITshO0hoyj$)-(JcB} z5JGZ<#V$}29vnCPsMxbsCP&AU7mFlL+WIHtEU?v${U}#r^CD%2L0eDCbhrX8cn+3& z&+p28y1$n)K6pPx*f5h5KMaImblV6!@udEiH1Y!DSaeV2s|lfXyo z)wF~IX?1Lh*j{cpl<=Z?OM-#zW8gEhk6fCnZFjocJDqF_n20`Z-+Z(9BzXbuIeMT< zd(H>WWgAAh-TA=f(1XMp54>a9;OZ}pbcrdu3J0}+y>xT+)DXlu`#A75*09k`%79~e zAKJb8_N%y&Cu3sss*5v4iLHh(&1wQsS+2(!H~c675|iGtzW|Qtln|AH&J=HyMu*>F z{5{%ruZGF?kbJ%;2RV9H+s?`6Aph*6Jqs+?1!Nel7UQZC?sR%9Nt0{TAlRE7O!#wp z`mVcF?D`>~{Y~3!b?vIyh{`5Jvx8uD^8h>%T=jhg6{qisQwJD%{q!r%^v(IgkMl&Q zWL7-i@hB2fYM8Zqw8IXDOvs928xQX-z(u)jTCAPLpS%hYMlQ|G^y9k9TCEWv>kb=~ zofkMcQH{8Ns@~N0+z8u?J)HL4(iO0Vx$yVIo|7B6t%{mIZAnyj#AT}isFkV>B9dC8 zvwIiByB+5=rR3YmQSLt=ku6kvS3yPRi@Z((X}fiU_y%G-E1A2B9Fgy*0QEe*dE%(1 z@UU)s{M&}LJ@a@dU)NQ%1&yhnGhl<-Q@rE46@}G&y<(d{l0Frd* z;%W0RnH}ynj|%=@VZsO!Bgo8u)Jf+&?o?D&w>r7{W~^;BiC|Hp$ocK#8v}V69IuB$ zXMcRSdF%mBzKBPt;en{A=Q7QMzsl6{)~6alC>F@z4MH-L?eK{qa?7K|Di5>7_J0jc z;q)T(E5G35e1t_DWAQPtBIuy^$?kg6d@#U&Arz|ID?V%-2%S@)8vBFd2K*XA%J;*$ zgT=YChbUDwuEs|1Fx z;}JS4^3hl32R2yS;W;u#{Atshxie?vb*7H*(i|@`h^0!nV!csf58Ko6*rwVmd&@=Q z4^En()HGibQe8$aQz)Bemym8J>Y^k-4&7FP5?xlt@8d9m@b+b)5j{%y4^iblX|(3m z!Q|DLEbq`n1hwd|Z#Q@mmiR`BS0?)2YjZ;X@M2U3~D4hJJd zlpj#y-5NbG|Kng8BM&|g6S9EmwbI*IDyy> z__IdQp>3+W#u45xwaPlvkl_YW3wxW1_SG`__w)@k{yXVAiXb2k{#@mS_Th$!U9kA5 z^3U&3iv`km7WQLR*Iw<%hc-z0C*wSHvlOg6qY#DY>F=ZhiqV_`3j5_!n?~J`vCWxx{OV(n8Z)v9{lpw}vKA!_C*W zADU!6(Q0gIQSJ%5bojRklL!x6V&@53;?V^XO71uQUdXB4qk%JlrMEkGh-_cP-$J|n zq+W#9PGAWvSh9c%2I*m0D))1ua#l*=6m-6+0#R6Llpe2j6jd)Q3t(XcbUEZ;R>Ptr zay-f!>HAI+|KGbY?1{fcW^8fZsRIiWz#n#@g7LB?dIz`5j_`3J-d?r#`y)Sb@XC(J zzaUlnm<}o9zmrv>C&VB4f%T%RwQwz}j@V4Mf#=$e%ppjBD1mS^5(cQ2*2edyG$Z83 zIF^WTEvop{LlJn9KZjxNvbLVF2(;MSy7Gjk#pCdGZPE0$QvTQ@wSgt+ulYW{(Zu2Xo4ruTVGQImBIf>tuxE%VcxC>uDJ*0NX{Dp_I&ZD)YHA#RmP z;4Kqthk={}22jhBVEbmV_<%U3?rHxbrI__R>q_!sLS)PIa{M!kQDt%qSVD7L)7KhS zRO_afwJ4Tfq=+nufB$sp3R=?7Uet(bp~yEo8|`*%<7c2$a1C1^iRfrzQLcD*JWr^; z1w0#WCV{7n?P&3ozHZ3LJ7~uo{%pdmdkEQ8Dm34^6#6pZSWOI6(>lEPF58YC(oZ9( z<=x_`M^72(fnpCK5t3=sow}>fZ>c!ZyHz#<#`S8E#{lL>LmErQr7iq_xA1s5i3KDK z6bm(?AZtl+bbp0tvkbBL?}*K7S^kVy2^%P1yuNyS{;dsgc&H)5)D47St6VL|Q7Wuu zc{e@M-KtqH&)Qk%26r`=u*UlK-{@U9oK@{wGMd%-q3#ukeAh6V;)e0LE& zy5sRfC5<5+SYjky1AH5Z0=c1*>X3Tt#w8Blf8McUCAlIW@ZqNSdw{>3@(g+`xlngS)hr4JlU5W z5Rg3!K(!iB4cJoq3MrvVWQox$?~||HAp6msip1XgBLsj4%&qkkt%`F6CjGHb1560* zhLOArNym)F!bRAXyb7Q^pn$C*5)T_d#DA`l<-om=`jJR01#xytML2y=fO{4RZWa<< z36fs*6JPZcT`AIce#8A75?=Lp|3i2R%{>muj3geoCmxmz8ilp<`?hE5{6;7wkpSqM zw>Y~e8t=2Ay{JKEzCwO^H;*w6e5i(GhijS)5>j&k5%cCz3@KGfMv8iVqwFrgA+Ij5 zCKSrQqb$A7Ons%=ju15#r?hqB~6U8|4z_yN7M4m{D zV8|nGj%4&0Y5$(WU`!^?%W_ZspFz%WJ>0+r6#g^R;02V4M;ZQOZPXjP*k^b6dXSR_ zYpZau5`NG++J8)7aes-$Y;nj`fqn;4eCANHsA>=DV0Y-mV7%b4e*F0=G{r!vs?tT#)m-&(S6kqnDNwvmkezPF z6N}Uk86(-W7z@>nKrVAtJIV{0E*!$I0Ks**b#~K=B!&<)JrF|s!*zV$p9#Hjso4=@ zn=%`Iz{V@n97?#5qLhSr<0rdP>{wl^0uVt>Cu=+uysQ40r0WwGu+Rnd{YC_vTDJf{ z;aM|=r>E?)&Z0M#OkD#`I?}~-)Xi)3AdJ;>MHDAWoiJC>gg6=VJUHwhWT6tkrQ){^ zT-9_sn+gf6h^26Ikn4uYEaD6HHR4isHBY42l$=b9E;Ry`PRbAdOIx~131`szL`b)94*%}kWUK<@NW2S zXdW?g94=g_9K$g%SyLLx#E`Q0+`A!T=rb#l}pNHnoIKld^Y6*aNw8g-UP} zq6H_(yK7EUwr+D}HbZ*kZ9AfSfw`5IT5|#9;PHCAP5>CoZBF=VT98CjvmKt&NH%>& zdAC4oaI#G&V3gJ_WIi&!jKzA#n}xnkB<09hK}h5%w{ z5?H4p1f(Wul{(6i%f^fwY27CGJYAbEz!pQcs)-&ruZ|8tQ*K`;ima3| z!41WZWo45qmZcrmZ0rmZU!Wi`>~_c77M=))IA)E4zjYcQUt8?CPL^kFUNJd>c)977 zy^aWfqY!{)oJu}#j$)M(D*@6MW&_8IxxI^YVITl7C+0DB+TS0WG!M1Ey(@LVy zk!oP!`W%d|JX29F`B6SDqR+CIN^?e!+)qru$Jr_V5z!X4Qb8{Xte zAUAX_caeLYZ<+8y)qg569N1qNRY)E347ba~T8}LFI7x6T@3^^Hk&}O7Vr_k+pgv-oyUlgtL&Fch0W*3|wUy=TJsX zatYX~W2k?;%w8T)$-Bi>&o<}GT+CL|Zw{>?T{KIm1C6ee1tb}2JhCyhLf z@2Q^kRQAn@DQK?Zmu_hNiz(GUhvYA0dwF;+_4vMv#=EI0SF<|LZ-^ImhAC5mIjJ5H z5u_N#OXRg9<`p3punN}KHB0i>}e{51upVjL?LFY9?4pgx2ln_g|wM2d~#e|Ms1FW8|bm{=jyRKnIH`1*aDX86@B^ZL%*fPYxA-&FMth@V% z8yhhBK(eW6&m2aUEi9au{_3;xPi#|$cUT-0NplW|JkPc%ahSFKgUV_>bzxugS)>TB z(Kd%BVbO%Y9bga(YwM?+(bqIvQ6B7wfAGRF0JS4g^^|Xn^2rujX`NDuM`bQ=b)(0S z#*du^KS~&CVn-jw(Q1COf&hH2#yiCinkjF`J!4$CR@a|hpY(oTTgKFa2;edPlz%t& zN7Y%4K;v+xI_N=T@ypECn&w~$>}X@q`y2{fmuYpE{-_0;T}G+omn&oTIQ|C%2kjRR z)TaRwm_~wQFr{RLi;D=bt{Pj)Z4%%r#U6515I;n1iXPHgSlD=`ELL``!MM2uFT7?p zdvqRu@`nWUT?4G(UibYW!Q_$gJL-V^oIqIoYK(pd)tjCpdvb)WLzFEIamXB=Tq~sJ z5JLQfFpYm%0EIEGywuTI?D1I&jPQer>b_HKJ}BkCe>d$imp3R#p(bY>L7LW~umgz4 z^gxU>T0rYeDY}kvT;|-Nq;s`mWv3mRfgdvwx^*@ICMwY!Q#&S++#@!xcC=gt;0uuv zDhc=G*~R0iNTxw;4(*`%mLzOs!F%}!1wrFRtYbzBt2T=t1y7rZyU$_J3{m8eQb|r@B?2DH!y_obwf zM#t^d%7%@K0mC3MkE~>QpSY`>8o~MWu;t+`+ejMG7=J8ySDyQUfWMJt_vA@nV&;(6 zfY?=e&r?J;NS@d3m8`fAOPp$uln>MV=N*2?W|H4a~*su#Ns&p#n! zBTp!zEx)}2J1P%Ih`qI{Ba^d`lZxZQno}!0Jvrj_qYk6}wG&^#8w&5gQz*gdGzHONH*2jr#4jiem`#Sfz*z9bC zT=@pssxcj1>kLyZyv1Lq{Ns`?2VP!7$r*i{Wj&Tccoo-U*^b$yk|~i67IIyxp|JeM z+@!`_<1Ck2=_qZ86*|!#6O3!Krk)Nr7PH%WYSt7;HWKL9tENoMr}a6lN*rxj$FQVyS$%<9I5<-i#GMdq z924W`0#hH2lDQUo1w7Siqx2@bO87XTFGL1m5WdG3$+%(HvJ9DudlFBt)SgXp%e1&a zD|jKg&w56~s1SWi50ndttX#?rJJazGej`04J?ZV3tX61rwxPc>Ugy!F51ByOOIzbpLkXidW zG2X(%k$-Lkq1t_ZJE%?qp}EB&SAAjnUw(AO5wZTqj7tRU(Jdu>-ale-(m<+#a%91` z2>7+u&l06fGX4p zP8X5&h-ceh_+kJ}IBkXX1&$KvY7WLIap-1}u){bJCz;%sDG7_&YChS4j_~*|GUCRN zFY{x(*a|m%c1;=hbd58ZyCdJkAc|SUzBmK@VA#*6?Y_dwKO~bC1Nv1NJ<9aYMLJjF z?GJ#?flnl8z91WKCPM8vn@e zkxQFbW|L>n$6nk?ed?}yPf*8*rfi{;S6g$*fGMZugR?7cst15O{~0&Y;ecM}C}n3n zO5{Pc1pS3|&_o1IJSqU?Hr_y#x46k&<_x1-(HpRMefYOb5HBNaZ*h_aT{LmNh0G zJLkrZTJgj|piaoMSC_uTbrog&h_NbA4B&xH2qJ?J;|Lrg4o%p1p;JXvop>~%l|t@L z=yHe+5pVx+w6OJHaYHHrNB?|I5DF;DnvvuGndw!|k4X#fO(abrh%)fPbzLO66#pt? z6+9TSzHrE^6+*5v-5Koxl8X$#Ai%4f#OE=jy1|Ape!{*apKbRZ|IN_8MxslA=pjm! z<;1=poVl^u`W|=KK>+VE@|EAWXt1M4J*%jyB~E~70D(Q2pM=`GX~tXeo6i(DZ^}oU zI|CS|r?4I@F@6Se^Q@UofH@4}n!VBlK2GSuvYD%GwqK@acI*5Sk~V z6rqXG8&uZ^7U<$NGtuV)M$$G5$fB==5RZ=@@Tu`?P?$*P9}2K#OIRsKY~a)1!r*0+ zWbXA4s6ki4riP!}PSF4%c{yG8~; zrOHg`@gdA1M1bVQjb}futdvK(GQ2+v|1@KX%Q8edcpzMso0A$7LZf&HYW_qk)l2*{ zYsbr|MR%&vfwrttcj~AiG^`((Z-$}~rz#oR4_5Xm z)oA|Ro7a`VlWBl`t{5r4Zt+JM3v?z}=;BccAbjcVIn}+^J&@dfH#QUXKI_6O#B~;T zU)D3|gq1K#_g?M=l;}U47M@&QzH2?8-|`CIK838N#+Z@7*LVgi{>DXnBp6q_78ia5 zSUm=06$yZ$pE+cOSi45NK}~BAhIgGAR4EgNj+}WG8GJS%!&(H5K262tW+xLgW3PH zs)W>7O0+FR=?7a;?T9OvnUz(LD0hzY^VAQ3)qd!ukWe{Faj~vR^d$jXGyg(5T`~QLE@{LyK_n8DF|@Rkn}a z$|7>DTI$uQ%2aVbA5ubyzLe0_r+G1Zs$h_pA3Lpt?u|$>AY4sKGT9A>JGBocm>Ii( zTx0O(R)1>84YCA{4znW-f`R3G)o1R?^%-HPZGwoE7tqw-vE7`#92J-&bL5Msv?D+} zT6}X#uUQ4-1*y`P0aSW~Kl60BBSz+^3UYVOJgwz`c7_WA zj`aZRI&iv{l{g5q%=`rz3%bZ(2pCP40dc^6W`y;(4@a)X={n?UV?CTNJoaW2N67gK zF8B1!@#})F5=ypK&^u%F%)`^uZ#}%HoHAlPN;c4PX4G9)%C1oOJw#0fX zf{g_}9c3!ZV(+$}QL40OMUZbrVA+#1raNX!z}QMC1$>b%_^Or65R`k_&&v(;>rWbn zp(pES(Y}W1n!StG)1{Yc4qo7x@dl%YXeRL#Z}K5+(jn~vLW2lLzp;$}PtSWpV(c8C z!;44=QJ9-WQ>DXp=DX5;6SGxJBd~PbZhY+Z@VL$BxXti5zm3T#wk2ZbJJX5r@|0w1 zvEzIMw{3Q!{E`xA{$Mu&Xq^+HALJXVzbf2RHp%I|?g{Et!i2`%-5PC5ui^+d-kpY7 z>fP2|B)`g}IBT!>Hm{M1a)IX*oMBln)7-CU1qjdCn|r?gC>(5WEcTA+fudWAco}o7 zW>{<=@ZRD=A?FiyEL6ZI&KvgRn|l_z4=6_1cG%zfjT72yA=Q)PkYD9e>f{VTfg~76 ztxT5NR70aMp*!d$QRX77q++AxJ-p(h_@JrliX+seSNz*1dj3Z2x+0QM!nsTa>>Xjf z6Fw`dUk|`9PYz9V0wRG<)#mOzbwY;kgwmZh^C(xKj1Z+J@k3ZMpr~w&YBp57Gl;Nk z;5O|w6Bo-`&)lkae)A@uyZ;T*W#WUvqh4 zpv*v0^F%{DSisuLndE9it#v}J{ROs|W=GSY_J8$90b_l$5Rc90xz*RA+Z$jH( zD5dvnoc+;lm$NM*(8xe}m%-MDWEYbn-0*^Muk@ymLe33xx^_qjeyAoG{ zb;~Jd;zFPJ8%ZqePwE63={TE3hC=P1@_2NVVZgKlO(Rlc?c?!XMa*c-P%9dqdRXZl$=x$?@ZCocLWIv9dRi`w zIuknWsR`Avib-|vBJ#8k7k@MSv!KsD+-IiQXGNoTu%s1 zA4>gZ1Ma{7BiZ%8r?mdhWY;4YKa=erFsL*<5YP{i2FTIHlF``7_@^ftqp734y`zIG zqqQUBf8c2TGuQivj;Q8hY-;l!1BGupx>;5FpNSTFpSn%Ti55+#VOte175<6r@HG=hPLLil zb4i%BdERh*zG(PZ73}|l_~)&c*@QhNE++-`&x^F%Nn}_T<;+=61cI{bz#jQp%BoIE z!Fj^Eua|bgMIsCbP!@(^Mt(5R=@i5GiUdQ_hBPY^MKncUA%23wqm*VefW}N}3_4pM z5{_bM$G{NF#kdy&pzPC})jQ3kK zQJpZgi_xAQZz(m`um1IMl;?=yC2-@qsmhqHYz|v*2$BHjek+ZXMmz~-vS=JO|dvlJ{UtM|G%`)e& z+et0EmBz9cjM4b%jr5gs?jhwYc2*uyx<`8|w^!7bx?Fy$!4u05b`WHR zadn%egH%Ef^OI0XHk{caHY?p3I@6qNp48~E1Yj_wV#zIwt$9-rmoGJWGU9;!xhC0a zxv*uWy_%SnW6Wy%Jwlhed&x+|V_*css8O!PupVRlcalsMZt*azF{YDZ-`|gDpD2R+ zsL2-K=oK9uG%FrB#AbR|qabd^S~wJ}tjfFwZf%Yr@S&{2qyl8vb9>Jb&Cu_Yjo|03nZ^BIj2P`wK*+6!B-oTTp*^k_a4y@mNHrcoU zbIGog{ww!_Q01poVTEUp?IS0A+q>n^bF{#C(FL-88MScKaYBQh#9;-8kd^?09b%?s z$3nqEzP`4oSp-}+y(Ao3%CONW+C|>bqjIb6E-qgFVc&%Hv!J>%@XSSNcU~39x$Umv zX_ogyPW~d_a~FPlF6ds@3b8)^A;AK=o^in%$Nd59Vf2`I_?kE=TXG98@wECnA>*MFkyq&}_4vf~WoBj+}-T?ST0(m}(CH^)u zK>fW{5250wM5pB#pN6ZXdqQbbsaMR(lGP}7UHBPSoF))or1G5cANTP>h-8wyPlTNL z3n#1^{EeKmwHUPA+qAXq;b8J+_?}L3&WqzV(qH(J1!}q@y|8ylaIjI)!j>g*fg?gOqq$30 zp+%i2LE)Y(dy`cp;IAtLM+*)EMX5vw6Am;Q8yg94KBK^tVIxg__8sSWng_n#p0Wnz zb`}h!gS1qk8JX}aE~r~KWLIT7VbzHZ3n224D11=){jp(b@`ZDar;<}4sK6(P3p4Kj z?tJ{*h;4*>V--Y#yT3gC2Lsf|O*mh0Hw)L-=GNgx*zl69LZbSnsrW5&w44KWT z2Y-Y=6R~R*vjGzxqRjA)<5SDa8m-@FI@BLov%*Qr+nj{upYhz5ys6-Y{cMswf>_E; z!J@ZG!C(GlhuS5r<-ZTkE`RJ2u2ZX5PDH}Dtk8T-dYib)ZzDD>xPG&uF=vvjj+THf z(3=38Tc3$f8}~(_(4peO{rWn86uXnPwmnWfTZ~H`$F2KDg=JWPv{+ot6vpO05WX&# z8=_uQVIS#0Q!uF91~DfKYk5zz96!d-UCvA_`mJgkYX*Bz%rC6q8$&+1IvUCqdLI-+ z#-y4Ywu0v54YFCTN9oA@NNScBFM2XNNgTKH(s5z?&eR43ZXc9_K|^5K>p5+@3zC7J zSdPVxEEHlfB$=BA{r^mzA4&vS^um^*Pq9KbXSlUR}-d}R*+z{H})`h z_7?bArE1ii=%nOkrPOca>11bA znO0brS^udZFwCglC^9HBv8gk$wXiTXv2Z9kdB7tmGqEtS9n;9t)67oKwX!d=?#nPv zGSc73HOtS=&CJZvuFOmy%h1tG$jQnv2&04lXD!ly|G)qHN~8@HWj7ypAuN9E%Mbeh zi)Q_E6;8%3#y?iZsPF>~{7<#^zdrge3scuu#Z|`&KnNoX178#>o=5zvA}bYy)}#_% zVx432(}ys3RHd#n3>+iHZqp7+(4qG^(raHF7KW8&-|IN;dyE$U{QZg{+f4Y(EBQI^ z`JI2x`|04hKky5DfUO1?&bSz#kaQ~ni3J!e89u4|WJm?bfX-=vSZ>yz%WOZxx)O{b;BXSZ@?oLtr1_{Ng=NJ$wXW1EzPwtoW_zaHvD5sRk!U zWx7^EeQ8QjH4%I`M95NvQB%I$?kL?v-k!Dp{b^3{OJ@h=WOkHw;&Ir-g1Qf7j=llv zq1-dwpIn2r-Gr_r3HhsIx}_`DWn zGFhs6OemvpBZ@6%pK1Jh8mDi=9JDi}kro+gbGMwL-{^f_JOov$9O(c9iE1tSXgYxl zsF#aHHh@wm_NRqC8~J>Pc#m{&gGJ_k7RpU-w;hg7w$~qAg7(rF8E;+-UFt>EWq8$p z9-X^iOFGMW`0lu14iT$*taV+uiD9@obPg9a;I2<~;g-*H=rOaOU}nE9(CCoB-{$tX z2f@kYOk$8yigpXauwwQ3Qko)3%)1hwsw&Vq)kQ_}Ol7EG^>kdFPl$Ql-U8|8q(o40GoEW`IC8^8 z$Lq^)XF~6lDKE+31RtG~=AP0ywz1T|t=#M;3Lx_PQXMxml^miKCtbfrbXZX311k~u zz#_ZkxQsk)ECKgq8o-qESzDBpPV9WBk|lIK-DmJGkw#>mu)e0mbuK($v%Wt-ZIekh zjT#5m2@pA_rQNqr(YGS+fsRCmf|J2Hj2<_cpRvHgg0-W|7*J(^A+Jy^UTku zTxnq|I%BEkiq7xluzb;apO@3SuMNIk{;6x_9q-Wga#MiViqzJ31dRXN;aG7Bn@pCz zQ<~|HRHsz(CT`&x%3kmf;!!(7vnhMO_1H=-By`#{eIOFyd;)OE+;(-oGZ3you;(L| z08i~V)MYUcw1a0@LXy}!sav00J1fo&ZpQ}r{)ZY@`8D^8H|c_@TUTo(Zp&}@^@;nI zo^RbJyaKLuRs^&BBsX z1=7oS4*TPOGK~Mb%le!VEd1k^|Id5P|K`l(j9uO2e~|nZ*5+pa zC#P1fs;h{qjP#}8xWN!hQlcl;RW*;{)@8kn(Jr)*Vj>?aABT9GUirtO3#nGv~U_aJW^L!@@XBS@Vx=_Qz z(AbUcu<~$Y;rw)8d(3Z%l?YT*?z$$T4!gc-lf~>9?=XM$|B!rTs;+0UD=3QRavh#6NIlVWPJldzTs{b4c4|OKd~QPljKK*f!%U`8lVH z!&3~a1$B4$g?4}1CmZb5epzAMilI8(on`!eP>D%0T?fO9|25ra#O1)#yfesz7ub}z z8TuJFx=$}2bDrovBmaGcEHBQQbJ{4(pv$hiBo2c!RygLNOs2vVqzdEkuOfsC1tuj6 z$s|SCn!MBqtQ79_TPrmLm1}~@)hZ_CE3F{_*9Ax${1c>r2dzNgQ!m%n!Pi}9y)j^N z`<|tMJ+mf@KJK@yoMXLUz|EAjniYbw&#c=ZGMSD(m&CDy&pR+4WyBwn_1^_sk{*G% z^b6TX@<08^Xsji8^6Y|s--{@u#(62ATT0Q)0Kpk&v7yS|3^F2-2r_Xs#}1JBzX7B! z4sF9g-4`8^5SByT-v}RE5R^2Guvr|C4>!cP6x}q&4R6lKsBsVP&ZCyJ^X_dB_xSQb z!Y)R!*l~xsyvf1(N_olL%}46Fiwgg3480RGZE+Cti7x;n=jT}wJ#e~}f%AJK@q9R* zAnV;MP@mCAb+dBcq9;qgc@Qsur<5%bs-a;%cW@t<1HB0l`}7B|L5>&BJAd;ZK%^m_ z_#M+L9i;NtxR$9NDF5bB75vY}y8qqW{-+@ZC@(wp{iq6a7$6{l|38K(?&W6g;QAxi z|4&w!uc51ns)_c607el842FC_Vla;bg(O^`2}D1-HX31+9i*bh69x>Cip`TvWJUOH z__ik+j?sOlqp$C8wR)CVv*l|6HG#FT9GTa8eZ290(MtLK@xE~l)UfxCG)ue{gw1C) zAnk`QLTe$almwk@rvUJSLRqwXOsbX?rn~u)M~dwgG@CIsD3J2PDM6A&={w|~xmAOn zB6cI1nuZ}PZFWdsXE#{Uu3&8+oMMIMhV~9d1)o`5-t4tNcU#Jm-9|@x2G7~6P;OEm zD$sNluWxvtJMIaj|863iFYro}E=xa<^Pv`C{WP-ipkZaDolpL&^y`n+!iwucXZDU7 z{W3>=mQZL(BX*5`8(Xkq4NiQI%2wR=lBoJlv}{ekyyim9vyy;Y0_nw##<;w64?Uz&Bj__92EPlI@?g@EGW z9$E^kGfO$z*_gZNFG_HmA<%n};La`)bSvr8hzy3KOm^B*hGVJ443<{4fOLjnFGZ}T z)yI&5%V)e4`elZkwGQkIYo|*Zm_PwPJ~4^qvNfBh^|tQQJlRjOL8PS3m#}@i&N~O1 zuHZ7EEgI!gkePHEMP`XXn2}|5f8R7#cR81uW(;*ZS3(-u8#XF8(>k`wbmYYYRf-YCqvi$$H(1Ol~n^Q zLhy{K(bq)aeaJvyw2xNLKjc2kiY~VTY$88_OR+H7wMaOWsM{I%Q_Qf;Q6HY6ICdlQ z1vrwBOki(6((j`wk?{6*0j4j02X#R>Wr4Ny5yv^T47F`46cQ=4r|K2Fy%9h0yp5wY zLjxSxY(9$HZ!)8S-{Bv{CEj@k<~h0d^8EJIaLh+MM9ecO2r{FEz4r7N+C8-Tel=?A z(Br)c%ZQeB4yr#iyW>I#4m30LK2lr1c@TkN%KiCcklg~Zd)u?b6Y>kX`zf(!KR(t6 zcKeWiu>YU_JM!#G0M-NKkQ!)mx&n>oqC(88*nliiDRswHSsv~Xs5rZ=D;u6>$ zlbmn(Wgw{aE|74I^pJpveS8~JjQ_a3yx4W=Yb8pW&zN~--Rvhr7^*5?d+)qvFV8BX z1j78@bDzPHzTr`R-I4#^elMld&V8RSv};!m1ZiNAdsM)?m9M*85=CQ#u%Eh3w>>3T zl22%=TJ95no=<2(xPBgw&@q8Rs~4s|>xYAQscK?K<3)@O;Y*Ef) zpmv2QBhN*B{jv@0@;!MJkl?f*PcHZ$_c;E$Km4DbQfBrp?az;7;f4C?(Dwi8DMhV} zU0luGT>tN_R=T>qD~>u^fCG^>QEr8NZkw2VsttM*L@9>~>XHfweTL8wij5!jHeIfn z?%K#qLuueZ;6KKjP(%CdW_B-ikLzBcN(W6`gVN*6 z9+fkAN~<4+t31qHoKk*K%W}Tx={bKeUiPpXi zI!&u;HsVnkM7dFBc+;cmTH~y|!oF(DH?%^d#JmxHMsY9p!08bEOx$E1n z`H86aaew&1S8DZ2HfTx2&g!A6N8y=gDCyMxk&K*R^38p$E*o?DRJtW&-u*1vrTd6Y zP`Z&vj19VE&ZWXncXFQ)ZRLh@Fa)U@&APHo5Cw<@jEkz~tL$lc*+D|2Tz%y}%a95+ zWE+*fLSJI|i}di%--5$w?o|aqfW3i@uMz8~ZNU@UC_>~GHJ~ZpL>+4MEQ++1M>xX` zsdQGun)SJM$`x79XS*;h!drWVF_oaB|`Ir**#T3s@Mx@T<5 z67NEIamdrKc_y`W&GRXTC&+^r_Kwx)G>^Jyjk!NsvW|PY=!1Ao+Y;Cxeu3$XJINU3 zdC|CiKdp>t)N9LmYzNz9GwBhw0N2pTiVEri?^J_>7IeXYm_cy>bfH z{rdLx0r#L+U$Ed;cvW~4Q4d;*>QbxWLge#uQ4^VuR7xsUbz1sM#v|1DW(}dB`T$8w z*%0HAO1})ZF#N`S^+NLkxQCn}hTQ?U#&x#3Mrv`CP;@4*i4#`%zMa*RQ4;> z-qP(1j|x6QdBH-Sb@m9tNvS@yt607==w5}K`VCYmL@=}p)4SeGDd4L2(DNRmnXJ9& z3H^&%3(cVaIf*02Pl-)h+W0b^srYmqZ4#u;HsO62hHo>;<2lC`bh}yu*A}G&^g#sW zGIXsGE?FtlMb1>8q+!sOqDks#7=mnCIy&mSZW`Xi*|4b| z`ZWD1i04W^kPWlwTCL`M#bCV^Ga$cGK^!AadAd=9w7C%fV9I#-bMrK3W+n4drV;bl z4*wGf%l-!jn-N|D6hw{15$Yo6a4lme`gBM;*N@~al~V?x2l2cNYrp3~1QmO8F>;#M?6Jx1bKYyRnX;`YJ zR3H18#DH}b;0kyC)EY>q_TM?PqdNm>x^2!b=`dTi_%J=&L}!G;=jg&92t4}=nDu!4 z-0;M_5QtI+LmxEZN4U2n(Z7-Tx#5UqLBdmR3Lk;vI?nD^X#W!2e}}<80pct%$uI#( zBT4_`_8wCJFaR$AGUx=%{;J{upaS^x@3f+<<+LG;`mwA?t)Z~LB(u@i<}g{z4jrQj zyq8#HLmRxzE>VsmG+=}3aS4q(KE^oJ_r(tgKfmi|2t;~56bREhkk1jp4coc_dna-n+9e2bFrfna@Flm#zihbGDP%iA$&DxXXfW&E8blmLRbPd|lSupSl z(0R(t_C-Rt3<1|8v=i}cgasL1XxZh`q4qoUK3mNhvs#~&9Wom(M}k4;-D+VAG`Lq! z1?5V?1*{TEl3&9-gRi}df2G}nBY-QYd?=Era@MZk{jSWSvKdXgcQ-3c7)F(F;M;Z9 zl-O{hARi$(YX@13;^4V>i{t7onT*ADW2Gy+g_6R9{(TP~Eg#ugP%SkkFc#Hb(m0)B zH&LC6Y{qC)7~g21nb|shRak{x345FM7QOf*dgL z>i$AFyR^wKFGlHGa3rm#O@%+cAOGOdHKMr3pfqHIN;>wMvx2dsxpKX3OCAy~%2ADa z4R&pJ@5&h!`&!N{BbfW)M(#Tz;`wdHe~%iKJHiQ*_!Y|2Sn=>kcyN3s;%c#Gu@#th z&NHFwT%HnQt}4*;%VVRoXQXP7t3Hy2XFx95dDT4&caRy7#Sv-Dm(FB=8>D1OuVqgD z2~IzPNR>8(2fexMw=T(ZY)17_dRwU*7)7B+MD8qq7^yN=In_`?hrQq2`%bmv9VeX=Vc@`2Pa3LfMikz;0xCOC^`Se6`}^#PXC=P6#u=jb<1|L zLoqVkKTmx=H9RW)x1bTpkC9B72ufREyG0XfA;363xAP#rKD`5&U;G6TfH#Lpw=>pA z0w_YPOiwdY9A-0H?K^(H&)~aIsW$3mDfY9XK+RB@sY}ki!4RZNQs(s1#Y73*_accC z?4BDQ{e8Mj+P1?AnYR>o9_+{>J3ft;uLOSds2e!C*Q7z`!{dEN5ZtRMwulH}!EPoO zJxTfB6C#E#ty?VSm!n)l9ZNSh)=yf(tyxS+8qHuuyZ4yVtKHS;mASDZuFO|4#?i0C znwTz!fjkZlIp6<1flBAd;n zUz#zvQyD7^*qB7df@9uTO@Xoy_AZP049O>$gB@_#a;3v34R{=(cbfT0JnSMr%shA| z66H)E5gA0Od}1RfWBvFf!tYY6eez>$L*j^Mi|kjBCkVA7iUzYJ#b6&WnSRh7@`E-I z{Ba7{#LpC%NHQN~Si+i$i_C&1cTT^$AD5) zv=)8um+2Pfj`EDg=hO7^1~BcFw3)pT^#cx(gFNiorjeYtdxV%QO(Bz3`>bO|16fJU zc{bo5wG`F_gY1FNSjR|_Ve2mz9#W_T3o`}i9j|}smA?b&pAZY0Jcs!Mu}%QQ{_~F1 zzd;PpwEb&MDj*;ILE8VHlm2Vx^u~~@;pPHPw*%ZtQHXlM*8uE*iY5^Og-CO86?}f2 z#yOE#oi%ubH{gA#-C|`TLUUXh?e1K@sotkL;JvH1A3w+kn3ig6w(3}N!KNvzH>Q%>p zyW?r^AS!QK4)*!X^5E!kQPU}>zdCFlC+*t7POVLM^%QX=CI40PCGbO7*w)4=C>qYD zik>~#)|xdAIUNma><~z(MBS3XxN`4XzkLTS$oz@xI+5kC7P;JU&l4muS?O`voHb*$ z5m>jdq_SW7T!|6v0>g*7c z?kvC%?L3uU!O8}M?-vI@;4B>4VthJKO46X36W)DKNYw75WG{+apo-Iny{qt9_^Coi z!ZcQqp*V!qebH1y5;Kgy+7mi8XORTDOyP{zSj6%EbxHv{zQ@1OBJh<&rKsm*@s0RC2SXOobTi^mv2A9rB$8MqMQ{7bu!&LcuI^my1| zd)YVLm%oVY?^yaL${tS>89f000DFKc{(mAe5gU7FkN*>5DSvAG0;nIMHl3HQ?UG5dG;WG6vb%Lz5Mozqu_fqwmJdiMyw_hFES#Rm!zdS2|J8FI0{ z0rN6*Uu1Kb&AQDz%0$5lS|6R=!76Zy`c`QLt2%$j zMy>nPRYbi-ty;0?$bDI96zx7_pcOs!=Xi#iYye?>Q`bvdK&%Wq3wgHj+(HJUknxBY z5$1Z7tPHh{>PkrO#EMR&Ga66Um_vcMFEJ+6H`%^;s~P@O0b184pO@Am?;A~C|k&xcF;Mx2!eSV zVK*e_*TRx#_#AYf*$E!*@~{%*=`P*|VY$7<@Hr(p_Bs41(1#YrA6Xt#Xw5No1q-L5 z#|z|L4jGKJ3o>$ntNeplO$9NJm-m{Qa{;^@^y^O&55_FQhX(SZah`Jb@MEHlo%$Ql z3sRK==;`@O8o+_jl_XTYsnmlU*>=PLHV%j1_K9EZ^2N3Z3%X0y zNp4^IR7i}|Xa|5N=jsLVu9Pkl&sh0CWsvQG-Xq0Y=GCsi#i<8L*WHL7Q7G}!nkgTH zC}ihzhEhOG4kFR#I>S!ZX$`sNo)Gn3zxZH8;9+h^j`7ulH6)?7SA^34#`%+_{|@1Q zg1g%*S0fETpC$lB|NjJTMH4d<_x}d&WE-a?Wz^A6Hv(*Rr54vzMSIHP?=79h0%ss? zb&43!TCO1u%}l!|Q#Nf|q77@L<3ukLZoUw`fjthQ0sUA$rA$4pBX+x`_Di2K1B#NG zqvIs)azC?op7WC49-j{KzEBtH^s(zQ*_#ri!i?=c06*@|V1vq&g*}Rvb z+2dotF2Qvf?H2S2fA<#aIG;es?s+n}OY~Pq!L+;Y{+g`YM!S_iu|oUt@#BEl?~PI) z))&ZM@aJ z-M0Y4$=fBb!R^preDOH6YGhhIS?r1O+2m2}_LEScGfgkPD~TW$c9fG>PoBn2**(pt zZINt7TGv+bDl=+@9x`0s@cySRf)+a#lLDw;6OBalIlx@g;-}Byu*xV>3Z@mr0EK&I_yTXpi2F@?dsB3mm z#&%pieF0{1ih6R76i)ez1TQVAu}KT?lxa;d5tPiJ$GMz#9W`f?Zo}8`UK22MJ1guL zB+z-^XE^(sZl%x0%&0sh%$zCX@x~x}jEBokTEbh*HO?*^d7pos#QFaa-X~B=; zX~>i+_h}3xE+iLXeBsjUt|xtu?ch?*tybh;uUDWcmcAtaK%NDPy=!HHf5h|?7Ly+W z9i{ulmeNl`hn{o5y|N1FE$f6%G^w*&JRuZ*R*U(Gl#!LR7B=>-UCt}`0TJypdPxm` z$01_0OYO*B>Sy8X5nyoE^`Ltgs)iLVN{VX|j};q*_<3VL(g#?|q&){ZiV|pd!aeHt z;1Ou;bBmE4g`n>pa}C0^HEMwy(`K%zO071aXJsP;x{%nIReqS;825-rS}PG)InTl3;^GBCSNr$uD>(w^kJg zPhmzp78yx2jDj1q35+nk!hG3*D(^T3)vB8>blx~Fx$qq5q<3pA#?uOrC{gTams#qD z>sYbXW54cu|AhYE1N@(%PqHg}_yv&HiU8ry^8X^xl^tFF2Yr5(+Mx*jN1rdD2Yq9> zEgmwjh|eq`X=0vlJ!MQK+|Xg%${ZuO+1lCrOQ7Gb`Rx%fY-i9I{uqj%-i*s|n$7NX z>V5xx57sACbqLt+V#pB(D~V!kYvnXLtb<{KffiaGAfFh9mk-Vu>v}eexe5~+)y$4f z!Y#?kjT?EfajnPJxhx7(k46V$dt-bQEi*$fL-Elknd(=0F^ zDp3L3?%DXmcfCrXzLAzVgWI%jA_ZPyd0(er-h51)Iqbbg-ew!l!mI-cf+Qx1e?lzF zwSgQ0*6I^uPF0A3tbb47D?DLUXjK|WQRz#x0 ztg=?8B9hq9tLT#+=9wQ4q?pZ5ty_68QJlf4wyD>SB_X86`=r^mf-nhGZs~mfYfmzR z%1%1qGtUQYxe9PgIjG_0z#+=r*|PK`vHi(1D5PJ?0>DZ*JaY^J^CIl!a8~vFP{TSQ%;Lb+HD1 z!9LL!2?@T-+lSAoh14{S#ucH53;X0C;HvoD%;zyZp%}|A#A|MA5_m z;9&c&Mue6VstD=_=bCZi7I-R4Fl4wu;aZd_Fp^zF8MUxlnp9#)y8Gn?>stT#)H;_` z{--d3_fbDYBvmvT0d=0wuSZEV%YfA0enwxOM)ZEcNbac&r=F|39I3qA=d0`5ULblf zmT*FD9{&htMSDEy5(|Qs{jslUdG-6|-~dBWB~RW6jQf0llZfd;JYZPxXw{=5c3Im7R5Lp(yTHamXcA%YS_QC}|P!EF}(Hi&dqokeYZcdQ?YT zguu!67a9yaGI#!cW=zTiomSaRAK{vk&sr3E7H9fVQ)^a7zmYCF<_SC;ggv`N35rLL z7QBz%O6N~*XS!^OrfxZBZf`V4pCNRc@{tpmtFE5!G4N-eHHBQ6!Vp)jGg$`eTclL4 zcOjpJnICd1GgaEgyo+F|3p;Z?v5C>WCj zxnL4ku7s_YbxuAmEi3woJJqPYRzz9NjndU&v%1mzy9Sm{O-4oPFUSSy=g-jH!`7a7 zKEq3#FSWz)uM}bPV$VEB2xGfq7b9{*z9YT`iN>k-U+|mr=_7@7Ui3QdrH0QDSN6Ok zwF}^^_2qY+aOI@Ir@Ub_E@@L)>k1*Fid`<=V1=OCqEuZ$I#IaYOztcnCXO*y_W7O4 z_6YAsBG3~`x&-dYMl$*o-XgKyMkd{(UO#qcHo7Ex@5tV<$oV9D9XxqL860y8A3$@X zVKmRsnP<#`L*m{-C?TF@?uFPX)DSCX6ID5n| ze8wPj9C2UdIZ?rcM33VuM^D{SM6Nq>Py?xVdll{)NwafQ$b&CgEypUul8khl zyKmuiO8HXEcH&HogdZNCKX=cK#45@i37T`#@@Bt#$!eLlqRmP{+S)NZhnZt_lP`ArT;^TF}3|^);C&TO@Xw+k%V!1jI3ARzKy89FsttN&fo- z^)ql5eYuOql6`2C)abS`7XnF{cvbWqGHtw!({gDxfdSz103pl46lv<~Q0qHPPgK*W zeMX(cFUf%}ZUbK#FS7A2)0&#(IQ4p9*BjoJcc$ z&B3>vGYQnlk_YJMlzXsO`h!y+f0>d04%dGIdDSITRtQiwQUQRO{eJ0@4lrSqf$d5SEE3rN_VqU$j`EWR{`3YJ{o}vpKh$vi!%5A$iTtl*!SW*yo zBmfP~>yJQsRlC&Yq(}CIk5l)3wwqrxAvz43mU+`E#BprHr+;w!!U|MqDEOE5w_xw@CZLTaHXJq_ zlEA){_mvxW5n|Yf10%qDH*!Lak~CE9>Y@pAzdzL=A$lWhk)Q9m7h~~QP+>f=zFw*g z2To*Cu`SvDcpCklcCoE6KVH!(sWMo=sY0e>U!SZ%eW}d=`HezG!;Jn1l>PZN{nZG) zUc##cw`!B9s55!DQUSK>a{J?7m6yLij(<2+~yM56#V;~4;Ne2iwTl0QPKv4Le3guGuGTz*J$*itD`SGzmuuC+jiF@wS^v%syRb|-4hf5)i$ zg$8$7+@RHvNDDjB2`Y_t6Rs2|7_e4#BxkWXB@4IWHgmcfI_+9^ zHpsem7s?7`!`+?l$^1|5xYFOq?{7^mEnPDZ1YH!4H1+M|oapY&FsFxZ0Q&rP5f z_aJu`a7ePojErc`bUFpo8%xZBm$K!!^C9QCI^{2(N0CbV@!8lV71&Q9JZ`enSPjYz z7>f;A3e=n9YEtG0__Y_PY0UQ|VU^jxR2?W)a!B{&Yu2HD5w;^fujUqwkC`dA9p?lN zmd7j%w5KSJ(|Eb6d||C!EYG$+v%o;g{CRJzdSmExCCOn%-~^bzf z#*~{>i@6#L1)?=?r_Vpd3X8o;v~7Aneik2KkZveSJcgwnY_rS3ZKn@w3YrEReINoN z21-U_`XvcGc0WB-=kt2Ve06C*n|WpiF#RjePv;YBQY+PpD2*aHTT$k+if)!xyTu7V z)SU}3<%7@}hRt(JFxiOzccnugK{@cKt2xn^OL$)$5k$_>%VQtVsS~O|Q-ph!V42MD zb{{mG<1wm&C)5FyrVYe=JfkIA;d+Ri)iCyy^+2fo(%Yi%NGcby++Y-PmW#YHcDK()upPazze9~71;l*jb}+yBjPd3cWnN*m zQPxneBh=mE1cTe+FNp*uRCm8rvosMvjt&OYDn~;iBkZ6`?C*7uaZ&VUC$n!Ckge1c zu+c}fCiHVzPj@Px^9<`}v(y)02UX4Tcljt&eeZg|4{YLc@Fy1_R|JOOz)Al`X~Y1P&OUDB(-gM=&aoIT>@-BVo7>Vy?A|3M_J^#Y>hx_{leOX;Uqp^e z@y3tt=VVDgQI#HfG%OX!-hx!K7`qg|l*fwBFU8>bomZ@Q&9yjRH@wAVayfeUDfxPW zZWCsaDhHf*tSWBcac*edJK^l{&c9jPmD!7L%kv3oqI0;a=Cfts4qD5;&!{PJ>qlNg zz0?tkl;#y6Wgs-p`h+?-4hbKce`0%ra*mZ&VZA^oekSPiv21qMXpVN?BzFAB)zh4Kairlr8VwU(KHk;C2^4DHRdesI=s(z`Aq}1O_4fOubz#F6hOU`0P3arU#M5!(azlia9}h3FU^*tqUDAH;9OJ2 zapqIh%v9iJ8ugGwGJYgbFim+XaY@g7Fy)&8=9~roOk){j>JK0~KK}c03^alXN0t1V zBM^6uNr-o}4@kXXyS!}KBzbh|tRGHmW_jJc*Bd{lp6_<@2)?j`u8d?cSog1Cawfz! zU`6fWGBV<|G7!EOsh1RS5DYS#8aoSQMlEP39@AKCryk>3&~CID9_WB1>}eCKaTt7O zN@%~@b`EnK&bOG&xqCYZN`qA|9OjtqJC?55l~Kkp6< z3DI8b(=R#E!*P_db?wKQK*zv{3TYUcMw9$8F_)~T-BGNB37KYW`MsNitMC~Y3z8Ik z5j>juv)C-NrjL!s!;|tng{s{!0B7Bl%Jy-jO-s=pbr1@qzAt2MAmUpgm3BZtBTNs_ z-9%YTGEmmH)26D7BWR2}e4Q361?VZ3j@_5iio3f4*lr@UmEL0&U}hOw)@|aTUoqMd zI)>Kv(GGXf=Jtr_hOMZLli4PB!wsdTM86Bpcj9R*GC~}kq$YZ)GuDl5N;Ij^0L5h! z!^Umz`KOW;X$7~Q{pV%}?|z!8qi#-@<#Oh7G7Uqf;flP6nZu&cOP7Z=Ixg6I8||6< z!(mBUJ=eLAYIxnz@Svx8vjY$auDZp3%IF()oA{-EifzQwVCGkfl%UE6BM5kQcdRhH zuE;|8*uAzOg9tB0(b~PT0G?U*CRl5YNoie8ECx4Qd75Q1u?SWce1YZkuw6}){2E*@#%JW|-*7WlXIM+BypTqGot>JRk3)XW6&483Me&Z%3sclc zRJ}q{)^15yq2(X))WIN-drj5qYq{xXREFPEnp) zJnXWog;@~vM}bn&=a$;xtgk&)F0tzFW(u!Y=U*z;3B`qvHPvT9uJI!4T9&Mf)g^0W z0$uD8{fs6>Ldl$Zx)8d6NG#`@OZ4P_Bb<)>T}V8x+i<#r0 zk_riRO%nxjD%CJ{gidB~^y9Y%M(llxqHqy?ZQtxcplJhNW3>D<$MVSB*mJ0@3j-Ja85t(|Or!CkJ- zIo-Naz3%XYt=80>f2qfNS8}%LIr)Yy+s#GVWt?<=;s3U>@@44!%PPHx6!?G(6;6JqOX-_mSQ^m$ zrECcvmcplB#ccD|d9_6kYy<1k8_h|d+SMQj^Ek@{anM;6gqJV!HoY`BVjil1F%4Ug zq1oe^Bm3<&<6q0${?4-hHqs-``>mvWk0z;*OTpV zl6gYELKlo7pw&AkMTTQDATxd?TA_hS3j$OwyJ`erdRc@Tb_X{vOTGYLc4M=GMsj+CQ6`^oNQ27 z?TBi>3R<*wvVEXY<`<%nH?i)HvrS%&R&}}78;TIp1_8B39Ij%uL54vER~Il&qlxmB z^>}vAQYqzIpB-rGri1eMJxsEZ#@-Qq3Qdz-3@9+#vpN(rF-Hab}rQ{ zrcg&$^GKb8gl}kyE@T8Wiy|IJRF28k9Rjv$^N%Uj#gop3*BKX0Wh(4k2G|@wD;&?+ z_R9*(J!&4&oGXDzdg;N2^N@raYRk9CZ4=&C>6xg{l`yXRyS@9kf_yb0VbxG;OR8$M zQ<9VHlK0RAJ}@R|y#z*IA|GXTkz*Wi-o;AP;=o+kY7tods4uMy5qR3fv)+lZ=jmSz ztrGFkwUmU@BTsD?YEC3ktM}Uz=)6aFDVvGMbmyG!lp|B zXZllG`fFY%>iwV>S#JTL7yhWEzCd+gO(oMdda-|7jCb=>tXEK}dnBlsfx#r{Z1#%B`0g1xJeUeUZo4x%a z1&;4nbQ`W@98u_R0@4zI7CNPLRBoSSP$JKZL=ar)U3%EuX}|(oWNt%Ez*yAs-T|=E zeUrO#(PF{E4cAN}QZm^=n-)T%=#C94ugm9zjhpnfzX)%!$60WASDk#~#I9l9TssT> za9z9}+tY=GI$}5!gEkQF?C>Ylm@D`_Q~qrupQtK81zZU?gwdT+B!>i5k~0J;It6p2 zBHw=JI?}a@-m8dvUOBHgfCX6P-F9~ZL(*B%VpW z$sWWbw7HTxykjYB-CS_n-^f50qxQ4b54KV*c!&5Le#}H<# z;WMD=9YI?{j}5=rl0VQjx^NV2brpTXdP2&suJrx@@b57DCjd{7BTM4})lN^qt#!u# zg@peS!T$|>041!315m;<#)*W4lyGR8pw{)M27&_RB1g-qk~Z;L`A7La*aPwv)>+9X6e3Y z4>W{WK`|RK1~Au*u65=0q1uk!gTSyA&qkVPW+D`4Abo0JO-nG*O$Rc!Qd4WHD~88- zfYoy6+n2Z<2i(nJ-M{r)=eOzTQl)8|IW^g7^mkp=c0kK8>GtPrY->A6wdSO7(@Zn@ z&WzJ>k;)wh%v0BTX+eW9`JR4!2NZJ8uk>ejHt%7yfUlr_?+T9ZJhS795o)4l2~O5? zhfn&d5H4(_smOnOD{_moPS0B(Zy#>>iP1*btnBKD(7SE}zonw8QV-rF+5dc82ZxqcIQ;aU1xa+*~t;ecr7O{bSaFn#n+qjs0P zWW!kuw-%qGp-pnwEmJGqo7j2OAQv&Z;97r@Hesu>qtl@6u=1AJSw=dV)7+p{5xaOU zYrt|HnvBoWArDSsXgIz@d$fs@D{oak`{Hk{bi(~n)NtoEq3ioCLdl&pLIIZC0p}9^ ziex@uhGc}k%Kj{UOd{GyFx#_eoP@!@pCr_Hmb5Ep$Rxm1P4wD8IRCR3HBxXxKseG+ zGqws#mr(lDe*9wp$UO9|_`5LD2Ko${{tZF+TEp&?&z*LjA{EqBmKZ`j3Ep{j01BeTajedRVZ&&FXJ zt0p3&ekFb)ZzloR~CH?O{D#!ggi`IVI@ zF+o>m3`0#NOmHV)n0Jb7M@6?6{aB6m%Jj9Hv%IOSNI-pDLf#6}y+_hO ze}_EZg~l+jIbKvdioSi}yGS~6BUu3#B4ME~jjAXHN2Iv{Ls{nowz~x|9B(%$9nJmh zRsQX1wogLvfgFo5NDu*{?Q-l!6SpyxUohFl(is`jp_(jizV$GOnDkXL}g z9Sr7r!cZO%hFiHq#PY+4bSLd_uTMJHN$Iw412c80PPk_LzCUG?spTcE?&J z_{6r><~sx?6C?W&Jx=3n;uA6#g`0+4z?fM?v*~?d`@?sCXSILwoli*$895-~5&}5y zKi{VXbZ0CKtSvnMy7oaQ>SApzWNqN&^k-s+jDa&?;@ZF4wmC{VcE|##JRoDKCR!9| zsC<>p9saJB)g$6cM&j56b-enS>Up7;kc$^#YX~Slcb~rv3oL#N5$wh>Zflqa36}F3T=BtANGUW_8=BqNk~R0N1zoC zKa}VqJUoAn_wc$MO>CilY|ePh#d!8W0T(hfMdEr{|J=UT%%ypGz+BAtFyWrZirh6jm2-~PZ5Re0iT$h0`b|8n6ccm8j?DK%x-2HgFbXFMT?r5h5C{LSkyUvbzGHS90;$e$P0o1-8g9+=py zu-5y8g9o29Ktc{A&n8dut4kNteg;{ll35jD!}CD7U_hVz#go74XoQG#bIjkq>NK*l zazl%fR%RNtq+YWJ7iNz~C!2XtNDw}1fAaUpkdb7pncPjyEtiD4`wsNco4x7|6}z?U zkSjjb%c_w=oKaOLS_1q0JasIt<3C4vC=*W=X>g7wgt5=}1y%iwSUMkJSP&b-J=kP3 z?j;c*^`!eMbB*19UiLkJbX^5JpFNH-{!PW4!IQRtQ~D;E9y+DgPo(7*PZK&%PNESM zxQe0SjZyGjX@}UmEc5!22g8$J<^Tj{%Tu{U6Pjb}r6;x{gBTF1A)C#&Ums z`d63n-<=xeKjuqJo<-YEXPQ8MqC5T|5~AZ@swcQLsg+wpT>Y zhgE?g^Q7_?;)P+l-s*x*b3Rg4=_q;jxRai*rEk8iNvMH!xh- z%W+}$Ti{{2xYHXQRPnDol;a%SJ-5FmE#5V=!?!|j{<3m>j% zmZ}U9N*`_gxw@(ePtu%9)vd^?*w+-*>FUbrnwP_N3Qj~c%x66)ms@+t<{I$bU_rqq^G8H4(LJ4rGZNmk%Vmy8;_W z2I(q;uXX6v&~gbRko+{B@tM{u~9^Z3XcyF}gSC zVFcCL>C(hVKlvO>INl(L+Q{g{;Qr0WEJ90N!?6iPP8}XowG7x zh%G$2QOw_qBx8Lsf+ctda~pe|A)?ZJkOgGr^>r6r+ZaUFd@W<~vS%Q0n#bv@)o^2e z`U7-%dWtv9Imm@|x~LWvdSu8BF><5fp5yYuc98YS!^_iUeq19Py^tNc0czO^jp6pl z*DHNUkq@RRg;5{ll?3M$1(*`(V}hSqt1^lX_FkQS*>! zbsNYxe)aIA!!M>_vNtlAGNHbI-QD_oy!I9RzM1PC@BKTOiCG}P7dZX+TtfG1z z^<|0$$OBfAt;8#>1sZ2kos-N^aB8-qc>YG$9k2CX9viuh#XKF0MK3c^BM%a!7oqE| zr){4nUpJq^w9nTik1tv`R!}l+azhSK_?xp)5F}k-b|z;w++8{YGVTz0ykmnx$lDQa z3=g(Q*HF9N$boHq{!bF_e7t=aycGLF$k^3f1g2*ONO7PyNMw8ySp=1&EpbfO#~#Qr|=c#s2Ea|^kj7H8?!te*8&B7y?36G zUl<8boTwbC_z4FDhYpz5B-)snZyLc6zkssH)r@*e?Ii0VW5&{IX)%3*RL7`TQ|Ke? zUn?iKF#OV%sv7o-DeT9Ez!7~E^zcJ)BDO*UcI~B19z*dF=qBPyV-f>tAxX)Sx?o-g zVNq2wqUkTuXj@q(J|lHu4uMKSlh7h@u2|Bg==^yaph~JQTtj1)$6^5GtE0j}aYi zA?lHV$lg#5glaoFyR@XMC5-cowk!gTNh)y0+|OQfke*by_f!HU;~?Ls1o{w`oJ~M@ zYorc!{KnXK(yf^o3tI84eRK)!pya&3#e0I>sJW>cKEF$iq!y><#hLM7z%e zX?DyVU5Jr(Khb}rAU(ifloVJ~!<;=$0cAb7gltfgwkkLY+oUbu>}MImZMCe-HM1#W z6U}}nWA5M`BPuMCV{1n1&t_%C=?Qlrx{1}8G|-`sS$LuCYiZIFlddVEmIGNVo;H~g zgBBa$Bu3leb760}k*8Y_EI#86)u+>EWkzWjR?V|Rx+c~aS}ip(Ke zxbb-i7_L_u|7bF(*Vf`l`h5d0B&Cp-O6FWq!LulF#pX3TL>X4lrQfmqj^GdxEM7Q!!fiP)WG<-!xjD4C^Yx)uH`GkEIjm+S z&dwawjXh#$NMWunL7)MPJ5_?1#P(hgBG-bvG8J@!%L`Cx%e3;J55lkJ@R^Pf*6p1Z zvsU9a4X?LV@c zaSKmLYCY$tFgQ)(DEYWkfPag&-1d zSe_iZH~I6Aa$6oSi_Z$}TL8H*kH-{jwz}wP=j{)wHp5 zL4IuB*y|sk(LMd)WRCky9}G&JBTgm%2lG^6yFZJW101Clz&BeB)|4xuXtCdX!MR_GYZ3jK$lTx-U#ck zZNKdx@}Q+PW53QzCUWqKI2IqbU|!Ay(vopoO}t)jNQY?q>%Of(QKpbk&ScEfYJ%h( z58t!^qb1NvOM}`3@;+Pqtrp6@YSdZ)rt??uOLGR5V9X{$+KR^;x2)=yBAtPt!_yn6 zsw4Te9)xPr(#1!s$e!9>{z@0xk_Qv%s9WoocxkLi<_I3mVcS4+wL95TF~4zgK5`b$3Dm><3Sd4<)D9U1KH@Bbtv&tH zY=+v_*t^r_Nr^Zp1mDvp-|vB}v~IaN{X16QH_AxXp}d`=@g&!#*Xqjsr{$bqv2K73 z3%~i0mo21QKI(lXWHBcV7Vx@iVz4W^5Br)g8b410Ixp#zB_CHe=O12&n-zj+i>k^F zMKB^MEx>eFF$pD-mZYX5d*-(0p%R4I{3O5_QEe0Q6HQSs@#a1*!t>LF`4^0Q<^v^p zAXAfJf{n4(26s)Xq2u5QC3O_WDLgbR2;ylwEx0k-AnLLp>TpN6xEk-lrEjCSzy)aeQUe#J^iN7Rh#`E{t zM9Q1kGTgS`{+hz_ccJx92_|vKCfWjMs#gMrl+*sldg8w&*k1+3ziY1?RSma4PA1#X zZB`jEPWi0V?@e%Q;#7=~V9lxh{1f{53jBMl?KZ%qP!iC?W?@HfAh>f7X$WVU-!a3E z2AXl_j%dOy=jW{U5kZzccp-r`x(TME^E>E2mgTYbcskP{Dpa~3fZDmB1KZd^*TXm_Vm z*{F+vKO5r6B8%6E?RkDd1@SO5Lx-xkNs!n$5)*dCV+%lh=xQt=d zrel4nL-O{y=qKYlLRgHyGi14XFob8V`+bgbG%^qt@f!^EkvLk>fbncZ1ksSVIZPmq zu9|C*{%S-h?Z%LNwIffH=Qmb6)mnHL5#SWhBc`6cWO8w9R7GA>JE=R^TD;>>{fm75 z_1}H*4`+U4FT2jbhWEdFe6xB%d?7CBuCx!158{>(Iv5Z))g_%!z!*vLShY|B!?PfX z58-Mvw`WJrvo}e*jMcqcx&h?0CflyF%;uHU0&KMQ@U;Pm*sU4|SV7bFOpew9)K>+z zQQK969nozq6CVQAmxmD@wIW2AjqxxB5Cc&h{hqkh=D37(%MN>abpk-lD7`J__jf;u zzaR-v2JG~5f`*+|gp)_scm*?#xMuhZs=!+#3?VX7^R98*pN;qgl|o1-A|@CIaDa=% z4r~0Oh{K$iju@_nT{MOmh}&({yRpcf-5?*OK;LZ!Y!};z-C(*eip=J#`XE%!NxPAe z>aa@!24zZma%wlf_xmB&W%5BGRT2tk_S#WYr;(m<2n&r_!2DaozVX6cqlNrxwN=%Y zNG(o+-)$SszVoqZaj~7c(VMUY+`^QkXUa2xren;jZPF&{!(>D%Q}V>PS2p9+0y@M6)gdw8`n8?tihnYhgc@kpfKZT#$=TW}r7dhjQJ=Bl}( z8-ASVvO9L=fd{_=>WN$;2$52dINY`>A+IV226$5L*FXo%J)ZS-0cPrK%!C(&Pp>n+ z{b4A#iK-i#Bpl{jGE4<7W7H~3^iAKZpJIqfC=C2^vi`>rW8+RajIP78YSLfJx9*~6 z?0KJPMz5Ai7~|0vQs5nPs3*$D{1b#Q$rFOV48&IZi{cKTrm>aR;OjockD^Fl$dKPd zKC#Ty5-hK*RQrk$Ps<1`_aYFSslRWit$knMB!6Xt(s^IdZ@lclFqH;%xSqWr&8_2Eb~sw>{R4O zuj7My;ncJ?7Owt@I!S#_h7UMne^<(aZ44)~Vm69&-J(%2+!Cw95=QBKZ$`Lfqg=WE z{ufI0pXdI+-w4kWWftQkQWa+z5gWwwA^=|3B(h!j|PvhjVC#WX-FxZmDtZ zEn6cvt(jIqcW@qj$bdktR^i6JUM6vFN@f-QvWJuc5Y+oQ7HQ^!jKScy@!Fav-SOAa zWcKIN=K?waSL+%YC#%|WjGJSD@Ov+% z2sktG<=ti~{Ya}NKLGutlWK>yt!bD#;wtRnj{RxsmEsw&6_04Sf-bMUL~e}>nEjaq zUddOcFt`@CXVME{R|Z5G8K}?9d!~UsGdIpJA=JS zOfk?ve%!lOuCg6j0G=5_`n8$eXz- z`XV9fm=TOxGJ>zRHKTG8`B4%`a7Qqm@xs_z45e5%2YF;Ss>a6|f0nWAdBR;#jNU{1 z*%DVt!Fi)+M$1ih8^pQ8XE5C+dXG`p$6eO!ZKIYu+cMaW+M1PB*y%4?nLd}Zl+&8t zp=H`Gl*&JUm+Z``dXdev38x)=3 z9==NX{Bn7A4_<{djnL5yi9~(Zs^T{9*k3NZF~fF&QaSBBL_6eIjdE`oD(}zx&Q3{u zYMgp0860buL*A~mR5i^`h?`(iO#c8Y)Cjhpqk?5%-N2>p7GIGz%u#M-G?+4{YPZmp z!%zz^O;RkCb)H>ZCWkeF5{X3QER$u3&*Tc(VK;8nu=Lf&G$cjH2rmF6{? zgQZ39{mRvvtdX}*arOIT%F+NIWAAF|>`;=_bC?R()zrec*(psqxXWF)=v4gIf>Sc5 zbgHE?9glg*uNoswE#4*aI5yPzeHZs>`(Mu@9vMyxKB^^=OHOTSRSEP<5Y1iQk_7>9vfie^b9dfWZe<+ z$hrfPR@~oO?R#$K-*61}a0O7Y)(V8cx@@0K>n(jSe=<{zs{YrTno*LyRSkz$5>XL#Ft2G2Q zjWhM8^7nkhK2hX|XWK|xI(q4d;;j7Z#%a-%Y!TS}F0mt2*R+>km}E*>SgFc%JjXGU zLU*Q3?`q*4@f3ENjPLfnHg|u)3yV}C$x*SnL6vd|Yk-L8+VUP4Cou~!Gql(~uAlnp!8}&w+ zhhte9zU_4lumUW0yhmtVm*lSIiBTqW88EMiSUEMxQc)uQ9JRQwQq7wahM;Ze?76Vk z2_}2-w+cHRJUeZIA@H${1Idt*)?JFGkbMKq)griWufr#T<}ESrH%9C}`QnHy%WVO# zomeLq$u_P@gJvkg5;Y`Yu_}_FR_Lt%Xgxa=BhK*b;6mqTAc4=ABiOOO75V;{$njj- zWwt0$W~L}(X2g`CBr9reXu5VlhMB37^u5`%$#uRv-meOv%}9`u+=XX%i+x%R`q)b~ z0{`C;x9CPMfW(^fb3E6cFa_8UKc7L$isTcp{u8i(6C+Y}v)wDmtimqgd0CLYutd#? z>^QZ+?T;!Kt2Z$JeZ`NV)`jU?=4lZ6p8dpD9?7%=;EOo9#1HGgGo7JT37H*Yn?mPE z>tsf4Vb%i)u{oetJ<$gc$GBb34Lp;wDh%q^3!*V!xq0M0AMaxzFFXr3;AAJUoity< zk$ekB*Ntz`LhsZ$Lp!Um-+FG}!g$|M9UA>UIa~>a4FV(_UnRb1bhEK2K3w@+scp#m zhp;e#L-^*Ukt$;?v=rZRagD_nKzN?;A{VR%bGgBskBQIM?FUs_l%h^V#F{ZcnC+@wv=-N)n?qbtTAU!91H>%~fQI13Mi1m*8!Lt@KlZ?jHb$RJs|$-TFE z=b9Z6v!Bx^s;}$B1*K6^YN_MK_leK6Y-f15Z!NBYJL5e4p0+^?ZTDC8qFhITTy};9 zd`oQUQzEh@hpym<&D$-P8m(&yQ!QqTLoNyrOu`ju$SL;8*ET}!2-E1|cZ`*8z;fyI z6!_kiM;SRw1yughYb?n-l^)lM;*RjL1PPsi(As&2-*22LQFQs3JSgu8Kad+1dD62(`rq*fhoP*I~xlQ$+=l8B8mT+YKwM}Q!8OT`46L(5q?Y5$;o_HsB>f(L< zm)+=}xA?!`@86$89)Ev&ou@w%!GHGLE9sk>{>(Ya{vXjZ6AC|n0(r8*#X|s*2mld< zz2c?fC|=-NFx*sS_ue)B9TZY!}WRnBmuQd zAXbzlkCOu|mYf#UG<6L0o-y7Si{%^I^wHgls^4@!UwqgTPCdtVo7#pECT#9XxQjB& zvJ|VYZw!7*GmU!unqiUF_WiSA3`V*QpwgOGbZ0!_b+oI2rW%=PF(yNf$N0i{)ILrh zw*>p><6Tjz;qGsOF_}SX5ub>3cx5p9B|U<0SxyAS6?9_8k(ruPc~dTl;uyx*siT<6 z_Eqx=6zFv9E?%{MpdX!QD!}IS!%wy9G+(^4K#sq<%K3AuUp}7cKqy6%+wL-f~5{3RZzEb|q zc^`%cq2ltf(WjFGW56EXTh{^5C5&RTfG1uCd7>^uwHM&VZ{{+bfUZDO{B3Ozub=3? zZo)8hd8~JHFtl*J@J&tOsCurReGudfP*tXU629J+ zNS(YE`0wK`)?`tLJqCMJO(i1fWUK##@lBJ&qRkQXB%eFgef9$dos|0$wl8&NVpu`r0nH{0g^z0m`0#&2;{=LjJvW z*m6TvvVI;?b3gS%{~x8be^kv+BhySs-`Ualza0Y63L7#TKV!zg;#xm`I>_0S4eX#& zv>OZ%CBQ-@d1`yenMid~&7qF?E-;@+@FBD=@fI86C}zaxh(Jy583o{^qftC8_g%ijIn(}LH#lF<5x)K zmQ}iY5)51Psi{dw$bE_+s6wGh@TEkg>>EGRi~pF$f4 zc^%jV-Bl1l-doz1)8(YmgdfB^?4jvke=jvL-ta#mV?t8XVY+3RR~W3Rlo=G;YG6}q zq1ULmGoII#@Wv1gXHniidw<^rC6v7PL@7tzN#9rfMZTk`g=fd=1NRw|HsG30C)*cU z17C_>$30mNBwIyW1J2xR4;JUGg3(LsZ~Vpu@*0FmY*mD85L&;Bb4fK^(Ji&v)IZ=j z$CF%tu1p3z^KaU13o}*rn!!2p_UT*MWNZchuUFAO*Z1F7KBE_lZygx`z=aF|fcihK z{C_bf6y1Liwbsf`=2rhhxQP5K)hdyq%B)GDsA{PhZDZxB>H4v%soC2? z6W#6mdNX}Yit*0@+wl+g+O_-hJ=c+z4$t?Fl87_X_poSY&K|z#6ahmAz$&rt9)@>e_f^m>Wf~fWcSBOr zJ&*Yq!>hV4vT)<#5KYJG#+{Rn;l(T7(|=mBt1%{ zy-!1GO#&H(G<;|wq@>~4yiWEz%(j7@FoxCR9czrlLX9JgMa0ZL7PL zBbct?jY}Xn%(niGOkfSmO97bgsX5s zatlMWC8#qehNLZo2vdrX1HAca+f_cQC2oSO)Z1`#%waZm$3b#>);ZTYZF2YUf%d}M zlFRAQW>}#3`GsJE7inURx8+TSo+2~Gx#gJzIdL5?#jXxc`0shiG@K@9?A{6%yyi5r zMo|M5(c+$wpSk7OQ~FiPE-# zK2>0XDup?LkZjy*{?5~2Vd)q6V6FlQZI+IZi~O-!dPqKN*VDm zFwB@3lAy)df>$v?;RkRAEQSpwep*_A2fYnQF6?dsCy1veLxoGC8Mx&0qzjZYH;F2o zqS*_}qqvYb#It*&T<+CHr8WY{IdK-=OV3guN)=Zg#*-v81x*zhjuL)o+-`tzdAJl- zp>)Otslq_91H1i!bQta+xd6-XnSR%MqVf(q4OIX-!saiT6$iTnE2~E`0#9Fz-uLIEiGl`>kGmxOwe`dAK9d|=AO zbeeBIDvTYTmz_eck#c(3l%V4FYf&lZBWXH!`IQN3nh)A;>DAHCuUbr(CT*G|KJpj- zG%2Yf3Mi(mT3w}pR8x`LQZn(~T|;mGB*s*8pB!ccD3iD5Lg0-SwL1P)LB^+n1_InJ zv13i?FQ6ThJM>qV#Oqx;25BDgwE>0(sqVyU#@C6xwD5vcIU<0Owq*dXQWikd@&0(D zKa?0|8OTud$>=Mhxyj6@Y!8~f>0=$g-?qGB#b@RnOQXHMT+z~cC^Q=Z{iFG#4S30w zkRe3-$Ir!~U$LP<47q^f)oi)_IN?XDQA_>LSU9g4Ua7t4?%oG(+sH76dMRYcc1E5v zKLD;-PE#MU#^CQ%d~d@QBfL!SUVBMuo^V&cmRK@|Zl3G{wjE`+*ZCblKeTcXTB5*wf&0ly*@dgy%z=*NEejE|C*^ z`dUstq!aOpF!*eP%;}z{{Vt&WldNFqO@;po4m0rqRHvgw%`t~$NQwxS%&SRxv#0Wm z<4Y!v?ZN?4r@y64zf1cB;j^6n^1$XdyEF9aJqY}09osnqrf+37JJQmE8GXu{-eGW$ z3l;9IWtL6*C~Q5B8{0X&PX9o`XMHvA9y&06c_-tePXEIB?majrCBmm1hulzFU0g#2 zNE@g{h;dACcD>Ufk&9+zP14T4M@;k`rK8VQA3RigjMKEdi*&NJA!fI@i+vfH{}9Gf zyFtp6G0E}}GUO}~v%=!~>mml7L_~`eb4eD*GnY+X{Hb)DD(w^OYjQVpYR!Hql-&); zsE?!g;AUY1lNmhSL;tG$Me0Y!Wl&)ZAmqn|6GO8#$RKUJBhFD9P zD8UL#@`lFzC~P2|Ut=k05EJGC5&SIOoOJ#tcCzeV zFdpF@L9q}vWN+iL!F-Gw@Cpn0t@2?WZ#6?)^XadfgSB=U@a;w7h~i#Sbg?MhT5oE$ z$|=)jaYEZe)|#5)nUl4sL&aMe zEJfwbAZua8adrLM*1G}H1vFDbt>j_vnUg52l^P~9} z9J(T~_Cg))Lozge@NEGGV!Cto`ktCAzhB>_`YN;b7jBW+Pt?tN2NXcz@NR)FK2mTd}sKy); z*L4eZ49>S_F!eZnusEMIh%Y;#9TTo}avB-ka#4~J7V@<|C5h+YvC3QC=OQ_(kWmf* zRm=H|2(W~8p!rsi2dP}szh#Bn$lEJ$dt#IeIb21z+eSBH-xtcu?bV^clLRML*eOA+ zjyF25ubx(`LjdXtFQ=5wB_;}_I@Af)A>9&eL0UjR5JKAud8R|_+=+SSg4*s0dgg-O zzV3fdh2D1E$5mw+LJu|N9x;SlVQ+jM3)SJqlvVvixCLxF@M+ZHhAiix6oUU_x-Q(P zT6U5Lep-=+3>GP|OQ>P3K)s=UL|5Oh~V0jQWHJ8TRp zcCFcne~(Xc7GGJKZov~@T}l5`A)7`l`1Rr+g*U}$;XmA8{(<1$?!8S&g-zlp0y)yD zxSQrsbXkTg<`YJSQ|$p^czy~0Hg1o;&xYIMIGDcR zs_5=LfI`wcICgNpBf5RD@%0vR3U?}!{%y0-w?hXFQ z$T%!Zr+Z2gJEFLYmJkcujQnCl|Ezal7HF9EF(uP;50SnX1$G;ZucEXq>FiTt7$=j- ze$Ja=A6DKTYSwN$OfZ#nnqJN(=5JE+?y0nOc{6o(=JICZ>fGT_SaK{Tu(Whh{@meZ z3IbMEymslzC(zVed?VN;*b{2;c?I9h5(GhP|JeL&k8NSAm*Obb`2= zngx5K^@eYIQesuTj32;=r;sLH@l?uNSa6J4Fv!lCJALPV$EBf(T5Zs?61|8`6WE(& z7(p5lGzHcId2XZ9dY-KefkN+ZoYnq|S6sYhq|%zD`pfBxc!m}o=b0z0E$U#kgAE12n+y2w}?Bg^MJ`=b0e8DHV(K zPhcazu+-?|@wV)KQLGu<{2I3FY3KEz?78u8fKK$Q8FVqaSN&__!rQ}xJ!&%?U2)!R zsbnwIsXYWi%wn*sqP9&@(>pYcQACY?O>^95MYfR>2bo!u?hFrhaqp~r*;}~wNLQlC zm3i0K0w<79{QF0$&8}4hDs#q9zZ_Au6up&tPglcl_5|3EIvPQk7M3mW^XR1#G zCph6_(+40A8Im1&4@4gHr^=#}Zwl<2wF4eF!?c}((~lV89v!@r9$8*oC}mGk@Ne>m z1YEC6*2y%x@#L^~j*f;}=jx<#Tlt0#3%1vWJS5lY2NqMw1s?AQDM=d<9qMdd(jM(D zaC3(7m1~h#R;SAX2h~0^A=L(*>y@nlYZir^ayMD4b=5f=n3dN;I z(DfYqY+0|2&p7!-TRyS2YY0uOo}b$S8r9cDQ|0@exmfiEoA7eIwyk#)Q^t>9^&wVJoX`q4(EM>5rCB{7AZ>{sUg#{hHk{DAYr~!= z247IHH=j<#eEcmpfe$Fx1qB}nxci}}&z-s3d!lOlqV7O^!@Rt`$F~G6cl0f{$eUxb zcVN7Q3U=i55<>GoMp9)mhUp?~5A`eoSvwuYt{I;TApB7?1^nUG?9v>E1ByRme1r{3+e!zIsU z(1Dy?8oF7fJ(GDTpRk7Y*6OeWPIL7ZGq|2+SK>sADZt4A5X#rr?2wN`1*OL@^6&b} z5y!J_ja1OM$@LBQ(0WmLGT#aZ;XAXoeQ-H;IDS;febt>>5HdyOstP!w-bcs_LNc5=?^sSjro@If+MC1~M(XzCY@((+gvVo+xyv zv}a29ymGU=YL`otKh2-|+!I)16;6PiI!LvD93eXei(oe_`Z@n~KNRs@qc4Zqs&GLM zC8HRk+7DdZhZcW@QEdI=LJ0XBwWXxpTIx!Jd+^xD&d2WyUHOPTqnPf;590F9bGIkY zgx6Eyo`uo8WDB#v+9T?*tsn8WHIwMT-{ZS!sBlBPw@19^1^G|`erhrLm@3Z79QzGm zvkyre6m_PUXWV#S{xOT|+jYpm>9s=H{@Zb{1n zENeJ63&&Tfs&I6R`&Lj#$wsCZpsEnMxifa4c90XsKO2zk=K?K~nI#Fn==@}Uz(?07 zy7F(SKr}{dOs_!YLYN;q{xehVH*M+ykQLkb7yD!$I|{*y!)z38_I;u&b3JoC#48hZ z9bbst&M%gJUx{DPdW^|T4?7t5y{_VK_;0!w%^ah3?l@rZlr`96o## ze5ViXGQKL8*qoogsbY?@RTYi9MVJ1t0~U3X>k=-#u2gY;UV_+A?8^#-W)Na z^2S%p{vF+Yu4JlHaP6^FX8z!<q4p+U>LIWvN^{ggV6w9au14 zvWNZehPFBX?YjA=F!=A1p{j)OO7V~5#{LJcLHQpgLnX5xOr??Zf2Upjk4mgK;eh=c zh38i^3l>AY0f#-Fp1Qal(HMIG2vV3(?~4GD(IH`KMHVQ13bto}iAaDtpY>iBj0t@OQfoRB16^Five0QI)WJD? z_Dr_L#_dXZBquAWo=7!$pbiOv1rYGoDCB7_#nQN_F*Z|QIm+mgwl1s3b_5K1c5<^) zQ((%1j)S1;<^Jx_{9i2573uh3G6o&^{-*K;dyVt@btrDSn+|2RFeY@Mo#+6$xu<4r ze=8;jja*uGT-foLcw;swPKiPN(mSL+n^ta5MZE(tpGo?B=N9TX7*Ag7vd+Qb@}tHg zBkh91L?k@L`P^C+SMQ9)Dmf20*RKqIldH&-3t`$d#|0P?U7&D zCG=EwU%sO)3^C9^BRR)5d(F{UymH^?tZ1`xzb9C)D441z?Xzkb0uoutZX)>gYX+_P z67*Nkg&mwzJHk6yul{}kR&r6p8%H|ad*;3K?Cj*YH7`L6or*@@CUfa=#SwJJTd8c|zTRSEvK~|jb^Jhi( z7(PLC7Tp7$sC4q1nsQ^POYaMAU-4fZz*}V^hSMHTOtsu14jhcFpog9JDZx@?v0o3! z6g26v6Nky>6EkbcP{kAiQS|1g5gbwukHy^Zj@`Ow_t4077IslFqH+zcFn9!q0+LD~ zZcUh4M%9o^S)^~-$fTC*?C|JDgiYJ15LFK0(~_l)SY5~j-%&If7S*$< z=Y{u_W2kAF3SSPWG~M!k8Z$0MFCc5tTX08@*YM_i21T*q`zPzaqf-k;8GaF$$Okzz8fTbnUse(UKiwLK9E#MtYzrX=>juy$E8>>S|ZHTPtwI z5&n!Z=qBHTe;lVa5F+n^FA7;+HbFF&6*HhtdCES$5G%8#X^E2knuTI$SRF66wSg1!Rqk zRnm~=2SE?Qt`c@gX$_%yG|oEmvBG^!OK#fVo%b+6coBohsduxXBKhIMB=b;+B)kFe z0%7&jw~O}K1aXIs)4Zuo&pMu$ubTYP+7#yW z%#-G6E42i(yqcMrOj-rZ<|m{Bs3%i&XRZ%frw7yAu8cGYbZ0}L1xakyLIlb^rl(I{ zHsg-co;hs!j>Xn0?xOsY5W+IE4>FKW@XT`FjeP<9CzXms3ZWo4HOZ#1&*i+9lvX9B znxI=OMVGcAouCa=wQSd|_Z(eBLSv}e4r_H4NU8x*9w8N;F;OggZ?8_x9%y1R?jE;K zX*%+w5%7s?**%)fR5{|@fYt&vG1#s={=2;dOpxkS=6&B!V7n*6`;hX1#X^66tBC%Y zszh^|cqm)vtxcx}wV;OI00V0|P{>&ZT#sN`VX@kQLjP4_Q924mHCOK#Y9eT@Tb3ST z>P=GXyZenmikM$)8z1N>GQ<+mPENhbrryBQV1+VSE}kP|wQ=i|o10S{# zvoA?4xVigbGKh|#FA$mx*$o+n-ZNT&`0g)EWlX15Q$;0|Qd8!wEpWIW3W@*@l9=r* z%aznp1oZK*0@Cn<)iCp?LOgO ztw~EDa=Qe!Z%w_6o@IlEE;iN7;0+}WpR63)t>fOajF;4-gz^-8KaT;DM+NhUwpNiQ zs^G1SkAt&-bFb1QW;MOPF1MCAy*8brHFgpyN%*IJG^H7oMAHlq>Za@O=HAf=s=e`( zP{L#{5dIgoV%0?K*-%vkohjY{qdbkK^|6TVAeX$Hj1^&0rm6@OVCwu;aJ$MP%!AJ80kW?Ye+WzdvaDOXWp5DT zfxnixu``;@$#RV*-cH7bRT1NO^#0z(>lbL7O+lPtigY6zbZSl37TMs*SQ8Bk#@qCL z6Xk7)I`AGGt_M$<>yCg+mp#VfDH5BL7aPMuswqHb zYjuR?%47Pgj-*W@7#@xp zX0Ip@6rB(9Ar^Fjf=^sxMId$6j@R7lm9K~N2+bQ6_v@NZhs1t<$c9(OoAhysCwsj) z;L@@_;5ACmxE>zc;EWLBhSKpZD*q+x2|ej4Rl4r#Df{7O+8p&f&f`}*ia&98yRBUc z!y_dn1)BoFIZEKX_>4m2j4iuQBzt$k&h=a*eg@LHWjO%PBkLe#?98kw&&q&ACBGLc zSFvIj^@*mXzGWFC^Ht#RD%bIg0@3EfMDk>%P=zE*lCHu^fth7#E#9qR$W73D&)orf zP8FN~1eq6_JxX7x5|o|5(o6nNKjV*MkTc#^{xp~7xtCoeC-^FygI6Xl?Qxy&zZ(1h zJe2?UaXqFZD~ZGWT+;h9FH_3~06_C|Tuc8}68I%9BSL4b?_z92XJ~8vlSk_K%iQ*# zU+rwIY2B=?F0nUUHdybrbp4mcgw8bz581m~>orDF7sKf|QWluKPyNNh0;G|&02(VF z4t89@I{nedV&+}Cj;-(v98Bobu))#*Sw2pAp~i3%BO={;*zB4;`J!1vzR#Z7AP7x2 z4eJbe=K@YJiNPTscW2b391%b!Z1`Vok1c#$ApU_iRN! zKQh!KF4#9l&!`Je4_CKW_!2;)Vom}E1rwDRB3U|~)$#?D;;1DAWej80Gm;(scz6$_ z289*>l!zb`6|-XIc>s&<^`tM4<(y9+JBDJp;}Qb5$j$Ho7wAOAzEd#4xub_lQPMB= zDAM+ICW7WciXF^Bj$+PpaL%xgvg47YN!B{ySRp2R;;pUXmBXlnfm>{V=rLj?Zug~S z#dsbZ_PscD21{+{>U=xAUS)LhwYGD%w(|1eB~DN~xVhUqd3bxc1KN@w?Ct@(J9^kR z{>DgyKGJ^<7l!4RiYYegzO_UY35LKRd8tM^x}|*PZ(x_e&<%f8UPld>@I=1k#Z9$7L^i7k;mZwwt0@dr~1aDvtvl^`)yvbX>+O8JIal4qI6xX#@Z<>DG* za~q}Dv9viL_CoW~L?Fx)VguW(AFet%`dhk^HZQJ_R*rHy=H6O6Cr!jEiSBj4ikqVg zryVTD(sa~NYl#2bU!DV~$6v%5L*Z4*Jpp^wY`ps2UJK z0ki^bIU^-Xgsfk>cv8@TdV=gG7p$*^brRbIg^H3yt+!z{^gyt&u&#XGU<@rkOSp`U z>2!@jr!+h=PAQ~-JIsM;T_2)I9Y>YDt`_()#>Dj z4s$qT9Hwe2=;2B@qRoKzt#2{_sl|jrh3*daWG=Ow3!-e zID{fHFbgJFUZ=6-YL91;-yiD6YJyIk2xV{tWpUJ0!Hk#hQEs$9h!zYmtbMcIM6hKR zkh@t}SvWxI6+jQ0i7640dDnxEjfMN^nESM({1>gVq9hQwSZMVSrQu}*7g~O8=$2zC z3)$(OI(&kt-6!Rm?Ohd3skz=^aJTw51QRQZ%SNrUqO|cjA>&ifvXPX1tX%Z2pPd3| zKh!U=18y36KGi$;Ef~dFz_8&D!)B)~BpT3*%^}S%UJvPO3JxmapEXg7va2FY309>( z%I&YLal_~rD9=O3ff);)wSs4iQ_3JfdiIbNgQSHf^qm7~o{8J9i^!Ah%xL!&7qXTI+lopjF_(SEyQ5&8I7Y z2EkztjT!<z{t-B2{ zsf}^4<*5>(s@dbqhjmx^g`71DAhf9ZACcid4a_9qEkvC~O-g1^@o#B|S~`lLlz)41 zn$D^B8dkOBcz_4Gji8&mX+{uf?vjEJNVAv%n$~cpduI;VA4uNwF#8MtTH=)}PqPUa4zRB>!Gk23- zr+$lLGmp{^)o4jt)JWv`-5@PdDN@E%+9CmqMwJ{C&8&#kf%>9#q@#&-z6BBWr?R1t z8nph1o)wP6ZB0Hdm75ideFt{SM(LPd+PK&0xE4p5o&21L2<<6KZ2&ANdX3i2TbSg7 z*(l~#t%LG%Rmy6f6Zw=Q_*V@a_!0#4Hb$?Y2&$t+_MY+RRo;E~JnsZUtKhg)4`n*q3cwJ>c@MSY$J0;k$aNj07MUnzli<@15KDNE zawANwZ(SJ1o`fVmvOvaH#Cuz-B9IDPNhq#;>3+~pE{}^$2Iy|7SB6c77aB{_;Rgz! zhjg=o#of)4cS!M^N-ECtAvI&aBQPE;#m?QU`sGm$@84j$YMOyQa~Q<2 z3x@I-+>-h|q@BN)Ih7>7+{s0W=pvsYKm~Bx$ptc}!IhWS^wcd8=`-ADX*#KmEbAU8 zQC_9ZFjD79C*|E?Q%Ni$;X!MYO>1P>P(bPGxUl6!#;z~WXjO~Z+SV3S3$kLuMjlS< z-nYTBk9utkxN#X$jI2R>;=tcbc}&curO!pwf!CeqP=w!0Hpzr8>ufD)H^2%Qq`E;3 z!J;zs%3sY0MoruVmY=TasK(F5%|NKdG%2ZeDErzqwqBC@iB1QmDO?XhM>aWv=~O<2 z%EvwZ2a2*rGd)(9*9d))#Q$<;`ffr95$0^_CA%##cs78Wb6>4y=$$8Hx2$qy78y#2 z7gPvmzpR1S2Y#0z!nIZBdo#=S4V^khaBC2DpgIjv+h(u@cC*ZqI_x{gOsOpBQ>K22 zux%6jXr0R+>8q5R2;bEt0yU|?Gvw5O?%fdz5QtS>Mq3szHq#ek&fSwjLG9d*yGq9j zX-r{A2B1hpQ4LcLK^-9z!EncGP>?9h5yE$fuis|`WB7Y_L*Q3J^jsiQ%xB3?{(Cn1 zvDrS19`bGLf`!R`^Z@AC?T@bWSO@3>W=z1l^fM_x$Tj@1H|H>(jQS2g-p>bZTuBx)`DVkM$zOj~$ggEo9!9V07K z6Z78DVf|=LnCmRN(9~4fMWk5)-Gw6EKh$1P@nTnaaq6r$IjkvlASmHF$RU!|fX&Yb8NiREiAgA__=mZ41ZM9|G z8>lAsgjV0#jwUL%bZ$~!N+A*Ofe|xS9bI|crF?;J+_?_vcycr}6tbpN%e-%2JB`^O zLW?8XGD@Wj->$J#joCeQ2T?)L2)&U;Jx#_^Z&u#Qh0xJjoGrC^1*F-IVp z9l2J7_U2uj-VC&C&4F{MdstpYG!V4mIc9$>+CP0Ex8#lPEr9)z$vpjrkGTYDh&*BAhYZX~iDNOkLnrg+G zXJ&Q72`vM$Tyez_E68O#muTfl_W_E_L{G3VaNHzRn(3408SRzxf(Z-cB0WPKDw_X( z!weEnAQVr)q0rwTnR3+JCh(oH8%5~VGfbZ|W&8-{WKlp-Y~Ly{bD$-7A23Kusue=r z&Dgl5U(=A5P|;1~ZgBItWG|I!^*h8o32Zp%?>u6^E!wccjOBXl+jcyoj3bGxds^BA z4J6BZ*tIyLrU-2eKN`Q*a!aQMuCDuOA}@=yc{7bwbt@Zem$ntK!?}Tf2r?}xogE4s zBD3)DrZ?E%E+9rPrpl}~+ay>7DgCc-6{A7H1~NIBx%n^s4*-*~%{L=5#n93|W~>W$ z&=oX`6Vt8wb9^nd7a1tdklY{Y@IK(m4_~g?$0A^2sM-ov>BV7>`mZ$EdR$XW3B_2~ z#9INzp9BftN`1I6E*TjI2Qlr3V-R%0AvVBjm&;RJ>Kn<2&;(OV+wD=TU;oOZ`se%a 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

    IIr2ba=6h$*OdEnkmxc8lR+uKJYBal;f* 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�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

    qLdMf$3RiAB^rs!cp~Vd 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 diff --git a/src/main/webapp/WEB-INF/lib/jena-text-3.14.0.jar b/src/main/webapp/WEB-INF/lib/jena-text-3.14.0.jar deleted file mode 100644 index 161330ad30ea24fd6312a10cdf1760a83598f713..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130899 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 z 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 E7qnlmo&W#< diff --git a/src/main/webapp/WEB-INF/lib/slf4j-api-1.7.25.jar b/src/main/webapp/WEB-INF/lib/slf4j-api-1.7.25.jar deleted file mode 100644 index 0143c099699ee843cde6d95c9dbc7751039d2463..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41203 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 diff --git a/src/main/webapp/WEB-INF/lib/xercesImpl-2.11.0.jar b/src/main/webapp/WEB-INF/lib/xercesImpl-2.11.0.jar deleted file mode 100644 index 0aaa990f3ecadf60d28b5395dc87bbe49da0cdd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1367760 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

    Yooh%*xCpZ?Hvg5QY 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

    #3**idHpZb90Gy- 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

    D6L^4uLpQ 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%0D(W5Bx2?t#jh5|ok84K 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%0A+^ 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%0DxI-SfEv+sfYv zA?OBS+}|N{*bYeXLG7AEK05Myf-_VfT*}aQj0I=Vc_5&6todroiPaX9`##=5%S-UoeoG|H%zE038V&>RZjXp?bEiL;5$gVKpo?Gja=1Ho8F*MP z#(3!uO0ZiWqiQQKWK7T;sdxho&H^%3d8)nE@tg2G<|t}6hrNtU>|qCgQ~WGgpPMHg z`icrnMz~#;1LlEYh2XkNef*b+vyoIK7@)|a0CHHm)9TO9MQBiEJJ?zKop9Ulep*x3 z?1i6SJ8_}qYr@!`GW%Bui-+oT8e7EK6vc2VVZ78~Inv-MZMh9cgS9G&cbWdvu$y^E znyl%AEnnIy@eC)8y(hWA2=(^Uck!Joi2%FhDGgIV!+?R8Vs9}i{$Mc~f8a3K5^d3T zf)pe}goTFAUVUVpfd!J0DL2YR%z^a3X{NKWK8;}bNmiaZBk+1*9K1y~;U2d}R{;8i zdF!tJ_0FQlT!A}6y(QfjTxh#W&eV(&a`rF=X;&Bn)l1!g+Kq~T6kA&Hjuo=rFb66A zFbYf;)h!(_)vb+}*k1cf*1+@Y6{Ne+Ug%3)54Eb&bmHQKrK#gV1B*CSck=k5%%t?O z6GoHd2c|&W3zZM~t<#54F9X?sS+TuXO(MI#*^&B0Y)gFL`^LWfXq{hB7<`ZFyKBa= zk26swk3-15#>&2b`BK=e9V840+{pd&-Q5Q1B>^Ybb#!CZVI*-T0uPGa!&IOU>9iN$ zMGZ%#UozAU+k237>Mu~|`qQuKqZE1Ol!)>)wJxojcHQxW-km(!aA6}6eK0Qp@C)#{ zOwE!yt2|g94%UJ}NTccylAP_4ClRK>ykl~v%~Jl8fJ*b)E*Wm>>Xnne?^zOUToI|S zgjTB=zCUoQSh5F3wG@W(w>`O;Lc*cWTw#ElYN@_lYyg5v773@2Q^h*Ik6~oN$~P<+yt#< zi6$R50;Kf(RGO4{^RxZEZ=F(wBr*9gFiX6mx!lT3&udG;?E7N2HiSQ&V?xmc4o5WW zL13FeCv{HC+ITH}z`K-5#Zb-G5yTAFMX%!Rw~a&#{h4WLu01f)ik2r&*7a7{FO|Xy z27?Bj-?Ew$LuIs^oqRl}QiFaEo5}1jrpw~oEXqe@Gj9vp|7O=|o6CX?sW$%wFFqQn z{^eRsc2=MTXU8iQ8yc<;e1$WyHR4QP*~E%?Bk-^@ zrs3%) zFbl^>v-b4#M0S*}nYHXYsH?_pb~VRrl*sGyrCNr)wV=&{XkI;bS!xs5(yD~JfcMG^ z-jq*GwQmtp2%V2&v#yY%^smr;f&fEYt$CyrqT8x^BU$P0dENDu370K!n2B=>A zL^PSkri=n`E<-*X8PGWUG-2COTIJ=+swbYIEt)a5=&Ge>C+Fs_bv$JrpgnMH;i-2$ zg;y9LVySRqxJ1}Jw%zvfi7XLfn$b$ABjmDS$(XDh2nmYpE!=3>-19bgYL-zLClx)G zuWMs&?rMpwZdV*5!mfoj@|k5n9X-%=a(=JM$1CCvM0~kv6$-LafcX}rywc8#?sVq6}5Z?q3XmTxWZeK?+87iCOSKx zifD2KUTclz!Opmoh3#or2TdGmpZ^M=Jq@FVLk8uT?Q>%JxhuKGm|tKYhVQD zEhS>DZsY3Xa66?#7+#X#7y$uNNPYg%OD4P6MWPA8oKtlqLDIG=h?cczsivWOn``Nt-YNN>v>u>v-%IGvhqx!_cAf!}8*-%xXiE$KN)4aX>CGfO@|dp?O@Rf0u9 zghe^};NI8J(tD{*ZBN8!LXVc8J_~kPAtVR-GZHz-j?5=@zeR$y%k~+Uz|uFOLwB%B ztnP*&&oYcVD#JpcD~L^_F2m1qF2gNegy@kRoACx}iDJ&uddU}^5M|zL>%vstb0Cys zG^gV;gl)St@b0Abf8`Qj+?8!%y@1%1H3vEH8cpmR{7yK_q<9W`@e91kQ2)SQ)EM}8 z?5+|lpcsU$ybM>QvP`-(wWDAEtlE-($iE@QoyGbu!EEM_JglHd1#H~i9pVxKZVv>p zwY}^vYGZF6pii_hca6D~+1d1OJw9Vl~@o|x%dM87;fGLmjlwWxX+yE<`-=E8l z?x2YzxObc?7-Av9>~S1)Q(6US9|tt-!0wX)^20+htJRU7xOJ)>=U}q^so|ha z+M^k)lk3++UM5E-k>+;_@6PDrDw5lC>4~80>h!5;y`Ielt0{D8a-^`E2!g_^wop~I zg`XG{1||a+d?1&UORa#RBJI0xRdTBgqk5>Ay_331?=q`!!L?n(#%Zgh4GdWf6xTda z8Bko)LA8g*@+on)3%khXHHQrtwD73k0#Fxp4$8-cx8?w6ba?`#Dt|G(`qqK_S`Cra zuJR93Smc$l9Oq{1Q@>VGa!$Baj^U>A>yIfzcQ99CHmM82t-OHL8WY+Z=f<@saV0ni za^dG3>cWUX9v$zv#z&w3zqik46suuotZ&FQN{ZF1+khh|bFvTAo$@w*?v5K@=D9>Nv-f<`+6_nxhU9$ANFOCc$Dahh)%B* zrYd7lJsbv)RAgj1OmbZEZCpT1Eip+xVT20SGOAYq8&-ONi*`zF?v9f6SWE5>`4VQ4 zEWJ8lvDSmCC3xD{YpQ0!MwY!1e4du8&Cj8AIYD4Um1X8)Zjr~WRZz{KVxPWTn6!-^ zuix4;+e2srD*tiQIf2hbswSz11F*P+QAc%F-HO3FFLB}wO^nCED@-^HI5PPcsudlX zTuU{xPLXDrv;xXg~@@AI{81U9hz zoI{-Em!x~XK>o2sNxjS0<)JhM+OJUF4TlRvXR-<4bvnwQH7$mMyBX<1b zW_mWhkqhRYi&~e;IUpjGs`1mtpZNYisfzrc#Pws)DP{8a|Ah8wITS(EucG#grt^Rga}mTsA%shGW{f>> zL-8AZ(6ihSOgkfT-n=|lz7G~a~5)?h%d2!=>V1^&sOtL1dKc^^lZ+vGm&~lcR((ky`dZZzPyX0JLAFrA(PUTgTnr8U)M9OvaHgBm)$3oH8A8HHn z99-~wE5G;oh-jVe>zNTqwfDi!t2@Z{FefjD6n_!prD59cq`#%ZELv34fp;mk;=O%0 z&TZGxKV-gA*3S>A&rMGx4w6#IKh1}JFxyDo=);OOB0^TB-V=n=jIVYy7VYf_?6#ps zJKw9o;Scy49#j$NzaZ{st*N4myH?YBl;rsgMU3@PjsjU~a=8DHt7G=TsD{?W%qvZ3 z4~ut-k3g9PpsXz0R|@~Y^$ah}NsExg_GBb&!Yfr6c0UGEU6en69S6=<&%Bus9~f6L zn)n%}DYcZ&bd5iSSBU-SuXX$0VgGNj7x+c`7J)ht5XCJJ5ZnJef&4e=!W-IaVes)~ z;yK;UwHunqz&{vhSDrBA5DM9Zi!=x*j#M96Hl~IY2P%lv6a~KgQRrM@U2~n<{fFul zLrpA^_3$`(y28O+PQ28t_9*RToxs%womxM1oxDCv#Uc5=met}E{%Ef zAya=(8uC%Zia`Og&Q1CCpa8(hh0w8=Gk@R|_=)yN!*rf6(mcKBH*%3q_?OAah3VSi ziC(X=?)ULbD>9&brZwGSIp_PYbCt;&hL>?%&Sk`j7c}5}=9QUyIsYEbxhs5XIn^~V zMj7e_C#@;e!qeNhuxUw5)ttj%Z<62M{fSPxeNjv`V#Efj1|h$hqz4c4txc|7sU0@o z?R~^sGbKhl-y0O*>9y9m=IwLobD1ISi5MYppwwgqiTGepg!iXA!-DVRnfVg&Ei~VL z6`yY3>c6t2^63L$Qbz~J98)BYeFv(`J)+$&0C*FZx`EtbGwqMFwM`K1cj zCsxsCrbV~@8UxFS%UZS9!T6e0>WdY@YJTTb0|(=)Oi^dB1LEwq{_1x6+BM@>Q|af{ z!dCB2d)NyC{~^dFpVB+Y{MP}A8_^|(xi5R;Gt)hT&mr|?we&lX#s`PeJI~xB!o=$g zWW!g2#dqIGciI!d#OugHv@nh{$UkmyC>?+FGiq+^oEaCtxnIthH;NogB%o3+j0cdi z=jhyNJ??z4?o|lA@=bE3Gohw_34yZoc?3sFmXAQ_IJRdb(%z)Wuz4&nPNGI}KLR+T zGo!dz2Xza6Mje8fDX!@ zvtC4H9)OsPcSz|p>mxBOpHxop4AsemXj=r+rLqDrqAzxM&vIM=*GLZ3{PEjJC?_KS z!f`GOfdd2M<9u9Lur$N1LS7}?qsY#A;R)?fCUb@UzfuMfU#z0Ud?yI*@!8Vf#mE5a zKkXp9s>D|;aeRy7no)A4a|)xUVAX`JNXF{hLAjIs+;Vn8X0T_`i#sP;-p>3* zlfw=3L|{|s1Uh~eu#7<#JJz@J!5%2wykJ;lsS0@2OUkDV2-^sr}gsg|nm>iL~F*4rBihQUX-;+ZRn}zY&SF@!~6FHo%&>DkxxeHwXk3(9)KryqxwCu z@eRQLN&jhEq#HDK@>_a=WQWMbtOC|Qp`vQ~qqbmww4!5jk1rxyQb*ca41!Q*VTr4fcVKS*39iu_%a1wK>GmU)z*4rzu_u3>hVN9h zK(%l7X^t{S{?c~ECg^=5{8^*MHxajh(6NX;V>6cHBf+`A?K#6K!~0|QS+)LSHS?z# zzXw#gK*2XIK#y>NVfGbGR8ROtFTX$k_ux7ITjCeQ{Px3aaqWiEn-=1nZ~w!#;ei|f zTjUpe-Pv=|9m#{>Zqo@8TxY}-!OUNT`LD2Cf!upD=dI_2dHIX`A7k&O?*I$mL!yZn zAOM~0(DsZVpyC@8fH3##TLU~ehVt#T0WQge# zh(*qgg()&={qh+SY>^xXoo8xnu!iVdSGyt)cbJn9F~#UC&w|rGi{(Eh&Ll~MDjlgE z87%~sKRaqPg!wSc44Tv!HywF{J@V17Laz5Bg$_2o)kAk>l{AIg$9`a7{b-hVHzH(5nj8W z=;>lPdP@Q^!VfumPtq6y>2_%Q0%k#fOTrR`MrTT^g<3OByi+CKF{DrqL1h4jOh=IM zkELRkH^Ujf&}ADFB*T{aeV^-;?Ery^J>=M}V4!Shixwj9i9<8Xg%ZJ*Cd$V0+glB@ zaRTU2$E3m(qU0*+q(4$Oil6dE^I{2I?gH7d6hO)9>E=AAdS+(4=mK;mBY7 zWYok81)!{+T?#R19Qrm)6=g{076X#lwIQN^w!>O*kQ_)1ZT=)ig~2R*6NA#}8zop+ zKjFx{?N6*2Vr!+%T4S&OX2YZ_njMQ|SLVNF-shb+7pv(nLgI*mpFd%Zx-7wiC+S%) zs_kcWWj0E&@N>|z@`8|PAq<>gr8gcjV>tl)FAO*_SGEz)OCwv(TQ7tbR%4iKCM1@N4`&sZ>V?)a1ud{kc=P$Fur$N}C zXcajOu;MdCiOK9UnF3j5=LE?cCN(z;cqt4t##EkqW$(Nm!clSNLfg(F3BS;Hk5MqboOv+ zFqwZykA5mjmT{sQrM0p7=k`a7TU9KB$0!j_OG`sRsjZ@-u3$>XRb4`4Fr3ZBEU|*V zl%||or?#cT(&86czNDJ+VzOE#bvccOqL!*ob3s8E*m_d9+-NAvvxTCanjFT-IJruS56XvTmW;DDTv{bYw<{6iY@065{t5%g%4F(a- zfJ*&*P8zAQbJZ$!1>gYr`YOlS@bI>^coDRb#`HSHof4dX{!xP+L=ofYm71DrjfM_s zw9?DvHM|fGW7MU=uC$uqGUydWhpEE;7_#v8W{Z+pQ5rDHI;sk)(4;&T)KDtSi4Y*_ zUFxi`+*qk9idWP*pv@OPj>x~n2X6N2=3pq|1n0|$EF=KGn+tF=*c)mkC0$*tm6SU2 z@xb^ANn24udLK+?Uyhy#8hie7K*4DMw%Z*mb)OpC1<{eN_ zZICJL?Zu6-Qq;_qtnOWD`TFx8rjm$)c;y}9oCO_P6N`HCWP3nAan968$bqK^yAX8<=P`!&9)I{BD_De7 zpXaI=w8i|Rq-j|p*%@H+xLjw{j2Ml->k!vKp;|PVcl_fa2DKB3DW-$}ZtXC&$3b9A zX#sOLp`fL}UIqZ?KT=PdNKqSM%#HZP6(t`cXOAt+Lqt{~Fx2Dp657PDwblGmzriR* zJ$#$ULf3{mhQ~C>?sHPOUm&!nEz~K}qP@36Wl*;4uygU=5VzthuNA&}ZEC(+|RTTv%(jA*6FF-@}i!u}` z{PAyfxA~QN<~xMuzlCDd<3|Vl1q5`A?!mELsa zNo~&Sc)6sKqBo@kX9jydOv!23lAX>fwpauf_SUR&%)R7Eh0kK!udpJPD{JixB!vl4fafC5&Sub9Pm%K$cXZd2{e=UCaQJ^3#aoTa~4^3D7aLLCp*cU*9o(c zKfQ&QHgy$I@Z~8I!Y0Vs7{+UiX{IzrX}pT$DGai-zZ4Pkqmv{wRM-sFa;s2Po7h@v zswkyoM;|X3%N4NQel@lr#VWw0i_`noOOBUIsi`D#VkQD6xAr$o8+YKAzc&~Uk9=LF z%$%GQR-2llb@Eizzobv4#*`V(8Wh!0fx^}EoE6Y=K-+NQ(IJ$I-Qj8F3Whq0l8d6j z6HAneszM-Su!2@Y!9TPs7e{vg2CCf}zc+UjR@Uc3O#H+&-*DbR#s}@fLbgS>wKcuD zh#yh3qo?H83lu9bV;Q`#mtn zG{swwlf5bS3;kN=VIS=PZHmxUQ z9f*!e`;i!ChT01n`o1$I6KJ(R|JN_*$59Lz!#ZAI(D)p#%lvmkM^rkpdWf(oD&m*j z9qIIu_e0CO$Ut>RTw3}77})~%4QDW1xU0Vb@%G>18$Gzw@{lono&`if7#NIEB@7A^ zh=TNl;(!GG;6(x~8OInakL^kNXh+U66b5Kc@7OXj70TbFZ+WhdJ$o@R0<%1XB(h`@ z%*^V8sg@-NoaQ>D(|D|k9EHG;CUvNEn5;{ry&$!Yh!g{sIRzdP*dti_7c^$$kP_y; zd64C7p_cxi0bd22onKFywK?GSp%D<_?md!jP5J=R!7O!XVOoHHjAD691L%g0gs8HlRCa}fvg4hwIT|K@iH5c zc5O*c&yfh%)%Fpuz}o;SP{g*F!5m--OV#$3iQpt0L~A*tRPQnGEw|*U#L7CE_r}259$t%N2!rj%udDB+vfhknXX69%Ms;OT ziS^>eD}Q!5aS@q0pnT(uP;Ok*wMVu=qlA5|;=0T5sZn8KL|FS462>!3*mhkT&Wj zVe%H)Ad?XF@nLP=FGOcyO}ALgbNu zB~|`n(xSEb06nLyj?a#)OXxTZS>7$O`0)%sRw}d-%2pteyOSF!8Q|Ta9;ADb`!n-G z8h|Xe0(#y8_E9{TBe8|oOpPDWE>XtgAHCcDnjIGV&jQ+E9*M8^*iBhd|NJ#FNN!rDt`gyo5&5nND=bpq(tV($-)yE_W0u?!^vI|2Wb!{k5@d{@I2@Pk~rEvA{2DB`ijIl`-fzkv$L~tq%?DqhK&<&c!j?QX0?}qs%Vcs z>y&3;k2T5)X^gVK}EDZsp9 zNlq89iV?&l5L_z`)Fdw@4?Lp$Esx6p%Bq8TGc@1Gg4i$5*pvBSez739cZN8y6qnwi zk55UXq>^%*G>>)5ONP@7{+qK)myCjI*O0m0F$LIk>)t4vv>H(J4Y;FcT;4jd^qGq# zbe3u84Auj~fy8TKUFs81C|O;ctL1`#VLJ_pXE)(P=Qv*ExYyE}cxf`>t?V$w+GdJY zWG3Sqj;~(U9AetXlESM#OTN|F*GOGgS~o9UF3E-z;zO+|w3L@+Q#LIn4`H6U&D|Fp z7NS4_&^m|YBt%WgJ3G#dikM+?13QP5lhC@5h6J2MD!OD4r$8H(<}dO};RPb@&y0$h z1#r(QQW%_&I?IZhF>@=;P|0sKFCcOUp9IaW=6KC86vvw}OGTC8_#@zNT9rOpf|Awq z5Bb$Cq^_BlW-Lr5MxMG&H7=05L=@Vp_{Xarf=bya;m|(vHX_kB17{s+Shiy~FTkTM zY`-`c<4u9fN?j^9Yn{P6yXMuy0`6yD;kYq!oNCj>BzEzC+M-| zfrE|`m~_h^X4$&TN*67o3en4pvvTS;i@FQ5il%BKj~Ax3hVF-+>0GKk5==gN+(WP! z)X&rwsx{A+7jS6zLx*B$_eC%ThhmtnDUxsFZ<$$qEU~If+!*&&Y8>Wo{;IgV7L1uY z8CktIse}H(Z3JRTHft-)%A0D6%q~?^*949pNq}%>HZ5f+tuBC+<*yOm$yRi{>yhn4 zd|O0$_L&oePku$??kUXH8e&LPOTCpEe@VJcH~Cm|-(=om+$tz|*~g1E@a;Ci>Spq> zvLHI)eiU_yDcnlV>&kr3Om36=tSdw#I(V)r_6-H=u=&_htOldUxyHQK93qH(rrnP@ zyQY2Q24epLqgK@^uc}`-N3t7fJvmq^E!6- z3H2lWf(^295);!hetQ6{r?<+6iMh$z1s$4DR4f#YueW9{`Qm*0?~>+a62aH{}E{m>n3?h4yppW8NCZmu<-Rxo=2wS3e6o zIYrM1YLOG#pr{{3&*&@agAv%$C9vJoQl2+8j5`P-jzBAMQ$IV*;ZhGn>w^PAwP5*O zUBj4RTB=s6re)2|{!^f4(TFSjlK+ewG$ooXrmS|KLL22fsgd>Zw5naLz~pi&8*8nQdyqy!soJy1bycy|Id@6}!EbB~YzHKaZ}DbGDg1uDM2BxuED<@dak# zIjdMK1X&9;@uO47FspsF_8*irgBA2ZeoOQ%G^|D5*NC7q?70}Mh>XvfJT5}#C+~kW z%w@Jo9!%CZ3N6M?kKo3^acGzkil8$Yr&W!9%mUt+m0gqt{m}$ir!Cer{uuu}Rnk2= zt)h}|P`hMtZyT1cSW4-XB)Q)jQCX5X8>#F=ZUD8%a@c@K5BJ^x_P?BrE;a)O$)<|6u13c zrLX;tl~}UUzOS<{OX|WtVpjZR7txp)xLpc~+iR)Y{(FIU@K$ZmPWKtycQ~3xw_dSr zA5ZGu=Rb#yd!tvpjEp^8$Bsg}1xeaR#f3($M?8Z}#63dFOQ4BRRmeF>lH@nM$C5(+ z0{ohV(8a*ywaO=T%W97iMFJIq`i1_pX2KK~A$m}nu8d1R?IsjQEOmv@)z==9C#(pa z9{PqAGpq&nwrr~;^!8MpfT_Zg2zucnUf>7lXlNal%LNOOkVF z+9wm&&cQB2+{P8P)n(d8v$JWsM~pKDI#LgMV7g&*jljEnJLzhl}hyXs7>+Ffd^4E)EW#n7CFx8VWUUDCE+5Y%B_xh#HCSl z|G@^qsY8`qe;@9y)QhGI8krM>am!zCTG)Hc_I^V>GdIl(de`Q`wiS+^D&yxBSChM` z5bd!x%z^a`M)Z}=3;u}B=`M>}$d$mz%jOl~p=Sd}SB9!fle$6p8c4b)MoLH5SQo8| z&_`z15yQ}^Wvut)!RQ(>OwR?wnB3PIO&u0_Pwqz&UF*aBl?sX(MxRYXIS`>Rev?|e zda)d-+EN~odhRu&S(^>`JtDRFEYocXyIX^#C*$@aykoPInf!~?!K|M%fb!_*_&;TS z{)h~Y<(lip>*__5Uq=Meg6`> z((c+71bc_~CK#zKw*@!4M+8g{1b{$bziyAgr*P{0qClB%U4sL5Ng2Ve^b>!;2RNWR z@1Dc?D|!l2{etU>*hrvhMK1OqLrn^8qts`}psuNa37qmRY|RyL;T<(;eYVEg@*)qN zO&vS95M0Qq&e`Tpjh_0M_u1#qQ}c}PtaFD^ozq9j8wmF)z3@xvGo=tI%7dYAPUog} z!MD67GL?VC3NN|HqV4!0{pcyW(5C=jPA+{p30+Ewb7bmXyZ#K58`*`RitQQg|iN-t9TE=0CWw7*E&zMwYQGU0{T-3)Ir~B{@^jtr z`+re(PQkf!(VLHLJ9%Tk~OB?bVO9%v9zt%faF~G4pWCqvOr1=vLUETjJ18e8!FZCHv*( zbI{+nY}4n^^Ee|vG3`$`C>KDEXO_pZjuAQ;t=`*o%8eQaP^Y*;*7GdN7O$2{dufk& zAXMt9+ue_KkN?#MT_ukUD!*i@;FWWiaXxUh4lW!YJKnc~rsnwvH^SO@r}&22T*Jz6 z11}OC+`{m66WsD5HFWv7T3kip@j>O=S=K>gnlgXq=0)<&_x~j{Vt*cNXtcBgf#=QF z_|lW)TAgIB9yF{wSS0kgE%9W&V1a#ku*amR$So`mFK;hwC~6_X4%>suy_Hw>+F@mr zD=>SPpIQQw_xKoQWt*Xw%_++>&JtUWOV9e_YnUZAL$K+YWs=olSe-T0OjA|UwzgEf zRGg06Phqh`(9cGIy!w8;taA)g&x&6m(SruMAnkDLT|W#Zt5cY#@XLMj9v!Pd4BZA( zx4~gwwe(JZN1bM8C#3Gi)_zyk>Aw`Zzk7C@-lq^^b1f;HT*R*4>_k%u9`>71F|T^e zO7|lqQ72-1K+3P*)_w@-FUIQNG;a&QxV)VEFmoJ-ERiR;DT1+wV!i;goXAo`NPktyxjB)7Q!use*kIhitN(VZ^%RYaJF=nQ2M$_tE#J(2-eUH zQGQM1SRgMO$}#Ku+*Vw{Ov1B`KBxmmXrtk(2pAq}gltN+$Q2dC*l{l^&YEj~vd*XW z_B1<-K~X*f<4X<36@;g|p$A$zTvZ-Vmdy#DjVa5*8Y4p4YIknqbv&&45+2QuE$~US zsl@8iASJ*CZ3MGsmb^{bnnoPIY;`xAZuRtMqg~A|>e^Oz9lOdSAUo@t9UuGj2XuLm z(hT&HzoV{i$L}7joO z(^zfOqtxzlUDDhgKxm|GJ9jZzC)sOJa)iG7gdR{u?La_%=quBc6j&%b%u@DX*Ov6>xk~?d~&Q5(=^N z)np{{sgF14ZUWtO5d3RpE1t#STS0=cYWY3bj>O$N9zzr2aD?MUH(ILjeq;2}%VTj! zPkdg$y#GJ&;9?;et|3zuXuvVZK&6C zqjN|IL$AACA=CT`n`e=abQoDcSw(JAm$sv2nbLcgf~VM4dhv?rQhUNm5)aka^R^zC z0VFgzFy3vt?D{PdqsqmrVBbb@!({da5`WPxIHD(@*a0y)x`T*0M37+B<@W?JP3_5? zk(+;`&AwkguENJ!_l2_2*NljX7XgGfe(b?ttPdJk_+<-NMss7t*XbXJp?O z3djh=qq%L2eOwx6TkG(xSJjun&Mz;Kc7Ml=d{yFXe8Zu}!;SJ;DajyqgTe#oHCPi9 z=Wp7DGHypG{l#S>XutX8+}CuPBRipHh(&*({aP`-eMrHj*0M?RIBiX(+owL*G~Ry? zyd^VtsZ|3+UKe+60@TX-Q9?3-JMATj+@$Cp;Zg+=EP~r+rU@5q!nksEM=}4(f!W}d zE?L*vP7xdJ=-%?Sp#j@DatZH(lt-V@MY2=-V}N}&`jx_e-arE<1WXqTANXjZzMBX|)3UDGPp9ktkaFiU z2I5CW<5!5qkDabtJ>{koQp_J^yMI3)Y zm>L;64F<-8z7b`eu>g{i?&{cYX30qoQkiH4?x@oAtej)~YV_3ooibtBVF!F}hf4~p z;zwdF`}^!*X^4DE0Q0u?Lm=M;iN)w*3n~VL#1_Xg;Om$jDD};ZZhnjeFXQ)0i;R9&fT9I~o z{!r`C8T5{%W;@HF!s2F<46vm*O5>*XfsvUpv&5YOkF@WQ00rxZ9yAkdo57$i7b>Bku)`&pd6!rv~?YllHi*s4<)JULY0dfXD!j42zLhe%}0T?@{SI+%Tf;9cLX_QAC>j`ld|*1H_;y&H7v#S;^kcRlH+zC+D{)jfmNqM$VKn6z%KLDR=j8^VkvjN!HJ zISGXzi7Q)&;5VWG3Jtu&?Ygx5dN$9dDiGwdKu)<>dRTfB>QDBnaM#8vbjT z+n?!ku;rVi&nPEQm-P}pZOBaDNKk11q@DKg~B@>sYim0VOR+_$WkttGE zM-_n!@_Rf5I0oMir*%M#Q+eDE;sQt_kLshZ^v^Eruus2%jeiZs@(hUo<R(fi9{Tvj zY8Ad1GwS_rFF`e1pZ?f&p(U)4U%B~^-(A`JQm*ZR?qE6NB(dgk3oPzLC4I6eNzmE< zdT8P5qf1%6=yXF#s4ERPGup-WUA!(Y_p#vcQ7stZ5Zvmr)Rdau_VLKS9&tGJG|C6; zEMGRM7aV|P_&gc&WbMMuChU8B3{LEy=;v(Cm_}H8w?w|if6F3(Td0sua#ldi?x)ep{RFX-@ApNDvHKY=M z{H6~QyRpm;_=SV!W1BTgK;=9(%ysaGD7TvL?kU|)`OP!NSAt9`mYyZrZZDU7tnp4B?Dn6G#6px+bZ20p=~q-k3}6mE$~}$`RAtjIdZe|yNFY4WsUngJl7^Y2 zO#Ut#iP;Yw&UPli?C}m7uOc^d4@mCe!md9;RrhO~V$=87C&6=<20wKuW5dapn9<42 zS$t7Y@9OyZFX4Tdd!J2wKkE5_CZA6ocZZyC!c*Za=rJc8Nqy|d!GipMt~aB5x0SUG z20Ul~UVr(Ukf-b*{OVRRV=QwwfAQJQut@^=T0Tm?B> zf*f&iCyf#GO2f0PW+s!o9#h-||H;UbOo>v59GqmOt-KA6+%m z7Q2GBHtgNg)94J+AWSe_|eRIEi7W8Li*fjj@Hj zQVB$@J1me_y-ek38ApDMl+qY9%K9u#J^5Est0HBK7>*ww>n^oY>Ka9s(%0>^+Qqh* z@aKQ=5xu}nCCO`F_WoW|4Djwfqi@ly^~1+=JoCW9z3A_qhGrnE0a;rmq2FdPtz5Xn#R`SEd*?rN{EF8I?akr>34^=VcuU z>)F$~==&e>h&Ra-AKDzT;zfWNTv~#aZfpU=)Q!XKtkJzma@MZ|IhA|kZ(5GCo{{em z#7lGmtgPciZ3m3#p#6~o$+khd%eD?0MT`9#v@S{0baWcKt6^nh_Q{K669wkm&zS}8 zX5DL>qR#_wQqM?kv9YP4vVE8(rur0m+A5lqlmAG^kwvHe{!Le3iKJsI#CX+H4rg95 zlSRYkp}3cuuB5NmR@UyU?i`KJsBJm$)SUHdXG$RsZX2%VRnCa6u`l~GleeLLnOgc8 zi5V9MoW@7q;vw6o$&s*Xo1GjnPcrZ=AR*?w^<8sjF1LF30dQC3j1_ zn}k0!5*=4at^lfeg()4WN75W(MSf3X_95;IDGsO2i2$+dUhN~l7cu+L_WPVi>cd}c z>RwSJzt=JQVD{^~_A`Wmh?+o^$iA~^14&652a5ei-tq4^I)C)xfQ#a9g~;z&^)EX# zHUFFFn_!@a?j2#`cOBgqZshksm;>?fj?0mU@S9NQc^~S2fb&2A_o$UkrlyYV7i;-i4G87% zT}>Ry@^x9G9NeHwH|}q4<0#`^G&p=>JrHO~!f=s?i_5)0;jr#pu-- z`jj<$H#@h#^$-kFJi`n{ZDjEdK6T&D-vrxVHNaT2AURz872)EEU^n# z7OYFAM>}{1k_7nlde+S9iUWn|m0al~%^AuelTTueyg&z^fTpo3(FlixMz$=riav}H zNiE1ti$bG`3VupD83x%yUa|{w_veD*%ib9CCuKA%(t;vb3~k_2+|iOWGX>_DGI$7W zK$w)9AC({pCSDFABx<)(+|gB}^^ICwO}j}UrHbRimCBSGa2zT}m6|s`>we$$OCRhz zQ{2&(lp87d4TWGwo{}VhvY3q~DL{qP((vy@)a#+RqYNoG2P(ZZgczhX7mYYo>@2%$ zc?nwyiO*$;sW}(TevsDIAqG+AmV7keHnKh^cM@IUg3^Vg&@Vzf)t(i5YL;%^E9&i3 zEC}+nU|Svw>lCdPg8DZEMyh+tNR*)#X*)TpZZ-^~EW{N009(W76hI&JZqi;Q&60@K zcBGTcltO&&l4516^cWyTU!Qg_Kvaq!Ap$bo*h;c2uOU*kqGT-3rDYQmAo59y00$DG zHB7QbG7>-oW70-I&LLn*7-z{|jQyPWG$Ps0Y)^(QD(Q*LLt}XQQOE`l;Qf=4+X6lO zNTLN9Xz`NhLW+lkoBvO2HqKJyirN))_!*6?@(S5npcF}R3F`yo+EW-|Ta1e3oou@;b`KxyeG1!%8@Vopvs_UH8uFZ64s$`u z2Vx!r-b8_EPB*v=BG&}Ilnd8{XjBd^H${Y#0kWX7Dyz-ngpn={=@8RE!Y3JA+>e6I zRM_&t^T;5A#S(H1>bwnDWYp$D(!uJ(47V#z3p@32MFoGoHZIE1OF}R`^_<=ilZ0T4 zPX@8DVjdb9Co6UNp)?pmJn1(I?1S&71ox6$0QmkI!jdn*G#Wxtf>?N9VL;$&s6@6) zOnHwp5(Gj|OpHY;ynrviq0nrKu_h$W1rq3i2(uewLCg>(#t_|Wy>`KnP(CKcw1n@+ zGCISKf+>wr6ms*R9s~>4Nj{MIo2rP+|C42uNcu1MFN?8j(vh`Ox;B3)yd>Kp^k)#D zn0?R`iY@5AP$(03d_7OXXWXnSVjhHCIINBM8x_RjDRD~#9-VO~&xt?L>ESL0azZR= zoX#HdlYrf4;>2@nz9HmL=8{ZlN7)(Bk=dVG;SUQH4n@P&-`}qA*+?L7K*}p3b^%81 zzQQtSsHBGo>@@yDb)Mms5rGmkfYka&dQ5Z=*@E-?H!2cjp-J!f#5Y=K3nIU}p7;%E z%8=A}#y`lXki&QV`!u3^b#a1gfWZ*J(C|Hunqn-zuTw`AOnduk3|SCD?GLyNejsP= zR9#yINh3J*XooEw!kxf8hfmjpI!d<{;k=s*SH*dCu1;XOj@KzCRWq{HHJ~lTLkjuL z8&a{G4T2QqoV1thkWtvZEoDc2;-L?;(XVTs1Y!p_T^!=DJ12-A#;JE-2+;tLPNFVc z0rf=+8%$P8>l-^A{3;*?JNY5N47yX(58-Q|{z@Io34&nbC2;uF!<=>OnTw27$wlSZgqbfUJYL z*)`Nqo9pb1)C0;b-vxUOp5s|G4zx-71SW)cx{qJ=@9dN9Ce6I-AXxHdnC=V$vTQY9 z`y7Ql9Vc|4csd`17;oVfpv)H-)$AgC)K4vl@O}@|f&3`L^oDhd1S;H^aLe)}jScEH zxFW*j)f|&sushj6u4azSqd84lai>*UNm5%J4}RnsOMm=|is60DvY?sJRees1t^k6{ zUNvtAJ%K)Gd;w4tojgpO_h0;qGz}#c#Jhv`ix^i$t&xQWOq3?o7P>|H^0A83%xc6$ zKt&LcD83}#1j<}3`bYg&f}?7FKC(tFDEhQ9q#kbudupmYl8bD!zK1c`?EfVgUCnwwdA!}Nh`2Yz@HL6b#DG z+;J$YIediS@m)CYRth~dY!#(%{|YXX_X!8wT%cs92^d` zfIOd0@fq*?>splo-WU)9qJ}jnr-_M0b|O?6v&^s;S&n%jf+$5iJO+)3;}_K-H2ORI+bT5tTg1ZK0fmPdNTyactNL zgfneHBFVKOU6L5It2JX$xB5{Dv$1MjOyu|IgllMU^Pw&CFPv%&gL#j@^W6KzV8d`E z^5S-6)K8Ot`cq(^T91(~% zKKyJZg8Uthq&M zaN)>LrrZ|=d+u?RH=68_$VxFO{AjTP1kRP-U?SkZu1R->eYYkQT_dOaupaCfEmn1r zz$#;=&^V((vXB^4g_f7eE`ey%FMMyX&lAAA%z}}J2ouOikdsVhFcADl@ZYw$V_%=y z1i}s_?{ul=aNq~MF^7RiI3QU)5Mx{RDNu5z)Ulg85#FbX0^fo=L~S3JE5-NmIBk>l zj^5lI8Rk=WI$Ec(21oyiviR2wGW&-e!^xuKO4iwM(;2{8qlz(@I|CPr48@j^-%2Af zpyd}B%#Fp9v4=KYnZ3lePm6fa@Fw3o#|12({P8JPB=_375Zc9DLVB60sdy38)Crnc zb87>q@sPA^Sf*}F;}W&V05*c=Z@IOF(|C|t=xD8wXb4L#jD&H|VSP|9P)IV_mPGNF zCS(7?eNHnOWza+;V8)>2;~fb|eCYrV!JbQiFD;#A+kN?nS7`L)w5d4wq%>qLgI_Rd zmKkTwHkzXO%r@QA*&tdcl%`tjYp&V4a9S!agXH8k7e(kCj+8+ZC75jNQ_g3<1}%An z6-QTaEs)*!M7kdCUrEo%*!rK7Q6J;4jM}KTfp}wK>1o?7Vcsf?|xT^!}ufhsxVQ_ zFCCVXO}^cm_{!?ozcAkHi+S)&YYT;)8T1%P>i@mY;Da^Lyh;7d35vBz$qf(n8>Yg` z0PxSyB>54`6l*=(ruI(wP2r|~5%*JrmrU78 zt9Y@oRHkd$!BdU5sZS>6{ZBKs@>#NYnQSs`4|Hu*Z`$m6{i5popU2dnHS{z_`RYeO z_TzUo-mahBAAg#;mCqW*%chcPKg-_(Yh80{+3|Sg6w8Lyui6i-k(ZXJ|D&6|(YZ6? z9h)7io|9JdlT=wjuKo~M$3Ls@arv;j*%U83ijtYqOQSs(I|n@pl(QXh;(<=QMR(2j zyMJo%o(Hd%6P{@+>Rcg0uB0G{&b1eN3hvp)wyx@L=?~|v^`8Q_&I)vPBvdB83*;3O zW@s)VQYU^0q{UXEc(&g?I7eS})(0@0EZ&NAo>FJUZi8xjbK$0B%seNdLZ2E-(_R$G zhH@bPef>fKdrB<0gv9eoWZV)vHaW$a7%!XZj7*Z9BJ&ne!e+yMsQ|Loek;k$jI%=WW{9`I$MOCCTJrqnEDb^~Jl=`Fq7yS}uTPn4Y`+MDf# zzG^SMOuD|T0RX6I_)cfHqb2oKo~b=Jubq&8c3jOOiH+4_T;N3PS%8rRnXGg)OE##v zsxlwo)DFd&e0or_5*%+7)@S^UmY-#%U(&1tHbfIA>Vl3MhMSPoN!ZdM&#QY$pbBAM z@3kL}gIomV5STOS%{WnUz%~5YYi#8FrGZ9%0_n5{hBe(eyz8xkG;qZXqTFUzq^@gh z%ovmf7a#$V@DElCAt24yCNQxxScyr`U_~OD#Zd#(`6rrC%n%J~HmKhcAs0S~0AX2# z1RNY6ZR7LD$l{)U4!2{!sz8QE1@_hQ^Fl-Wj9+zN0xbFs7=U>(!31C&cq3$!UO4NK zMWhHTCYEsFc+BirVk`)VLrP@fzBuclKA^DP`R+)O!+(eE@fPg78Rd#j*e6obZarEF z)Ch~1Z*%QO^L|F|H$(TlNV_42*u*{Q!l|Mh*}|owZ#fZkNH>GCN6WAI&Xs>{6%_V4 znjFaU&!#~U$KixUSkl!Y>(NCN`R|j@YC(T;S_`&cSj-*y^1%FO8AnGcEB?3 zqchj-YY*59s3%m-jsHzZR~<$9*Y8~CjPlfV-UOD21(xEwdxCwhWs=-P^!l3w7xi}~QbcGXpGd`rldemGi36Rv)T!5n zVL37$Xt~{K(G?B|vL<*t1I)YLNT?^%Rb(dQ-U73K5J#Tn7cp5{GC||AgkpZF1r~L~ z)qNm59-vtm8y9qfPbDR&7(u7M_as-CbI?#+?qbDD&lIxReBhLHbK9#a;#wS8MMg3t zs}r7TMD)K|i4ya#Q&NjhkvR`EtawJ+&~4zfy^NHY>rahE+^o4aS2Z`q8xhQ1EWE!@ zHAZ>%k-sLw_W^wl-&j9HGLE~OfIQ)chM0rBBR2cENxtyDL%whsA7MYTf_J?JCDuL> zcxci^v?0Yf)X=-9oavER`DU#or6+WQ(o+aB2Y<5hRw31}DvIg7Ji&Ea9yMNpeb3V) zj@T$JIP^i)2({%_U% z76mtw=A+|&;ioNRmPh^j*qa2o0Y_~w+s>@lKXkx!{ zmmEVitP3dqS=yJd(uoJZB-(hjgs$$vl5ro*jAXacYq8d>O{}*X=;BPc+Gk#33nPi=*nNNf{)}oWN1Zl!*)jH~CDvCl zNLLqv^93o%-YmIeb7RIg(sO~F?*vVMC%NcK*rScm_fO5Gx||3!-;_Ki5iasW*gxP> zC7}w%R-KRKf%U+g$I-zC^;w=n7U-uA%f%CRhkO@!bU_s&(hYQp)VDI=2Q8tsd|s@1 ze)#i>pytZVJPHvj$}f0RrfH(eI{w7Wu_pgkMeykmb)n#jtmY&S;Q=m0Y^42Pb4bV~ zwO#~%!N2<^Akll6i4w=F0l$o_<**_dmVfLEDT&+ssMx4D_S9 zj0t~+zDK6N7GNZcnOL&1Q+fsPj+qP6NU9}uswuMIi^xR{D#s`15J*9h?wjn7S5BQr-;=KkP1p_% zhDxR9?ihmTf5Zl>8 zzoQxXB6(EgKIN0UDJxwizO}Hp455g=f%PVCCQV+DXax7SBfb+sW5joqy3$4g$D24z zo=1wjj_7l678%Dl8i~?$(jc*6%EFlDmLo0{XSVQkgsG>&wMK?@f}Ko7Gj)P(?3RpZ zw>E-gOMwD$Y`OvYEvHXf&%NoX?tH+zD~a`*XIQ1w?IJ}?&pEI)=XHM7Kd9QS6%0&@jh1`H%cvW78OE7JP7ZRlC6BbGY z1}m^B@53^ZK2P+{Q0q=xzQ=f+6xb0#FMI)g>KU5MaVjJ;v3(G5J-A^5a&%FY09cj| z1?wb|qP{KIRf1U*E5K;u01n9MSZ1MUhhH8=XrvbS@&B?12_u~L4BiYJV)qRdL{#&K z_NYNUwnP?i4;5@u819YfdAK~#Wx<6sVZX!*@rV&c;D!AX8u|2I6A)4jU{t?y?eJq~ zam6Ty-o>OB7?0-&BQ+0&e;X0NY)=rg z+Y&MebPqmI6DZ{F?hSq-W(UEqb$dy0If7q8N|q@vo$uk~^=RWmZ@mzgsWB&0blvK} z;5{|}J|&W|C8%B8&#G<(vt5W1o0prv)O`Z4joy9YpXDK);&oaUFA@Tyl74txRz*wt zYcXBVoSj_k_***X4&X*a!SkX1j!|U;&?HGh8Q&0~_ZzW)v=m zO32v3Z=oNAecBI7Mrno`k|KcN8aUB;(0Zqrf17?=k`M9kb>eK8^SiTKINc=Byw5sm zko$P|sQn^DA}7jH-Cw)Q`ZUmV(VBYdugrenK2Xss60U+ZatP3|Lyz)d;y4Pl!1Pi5 zh6ieUH2w((R*2?}gzwGrQvql<2&IxWenbbGUAx(dFm46Ib^L2X7_sR8bbasWn-v@bKI(RPF5sN|BuhZPMt^R0wK^PnkcDT$FsWh$vl4 z{-tWf`JpEQllj5v5iqyq(f+~c@!h}mVvBLZN39PDq1FBhD`FNP9{&l;GnzJ7>j*Mk zB6RSyvNYm3R+8mighx*lK&%a?k?N1F{MIkEEf7)p6`V3{^sX6%fDk_;!Up291|2yw z{6>Kv`Gv1dYu%4L<(qlsXP9E!Z?eQa%JyGis|eN}glX`Ta9iYiljC#H>5d+TDRmG+ z=`K`PUVzj3o7CDYm#B7uJEP0`uagOPto^#|n!NA8w8l!a(p7(=XnZ2}VI!Zj2!#V5 z)bEN-PZ3N9;PK(;cT?Z!_e#l~c|cqN6TT2Q7n)w&cZSD7h0E&UXikCu!3kfSgN!|} z@52TNt#I&7kN>Sfy|H6(VTZ~zdZny+@qMuMzDB^=@$`G3Vhb3$>mY0YCH2Yi?Vvxy z^=|V8wgyyn99vxh9<2J-eWqj!#SE3R@4P=x_`YWU244fViTUXm zq*;E7Zodz~jd=N|)O<#RxrA3zDK-l!1qRYmoLZ%}d)+FX_VovcA;D`WYZbnX1qW0T z%U~@J_{J{z$2G%@#0tR)ouF_QQ3OBhhG^{RShE-+hl6*r=kyCgvh`@PxL>db5|ak{ zy_B2Oe*bu5YcKUP$(+)=S6ZV>Ib3_D@CL-vzRYOu~A8w8*j=`@a%fJjso~>~bH_K31hIG(8Wd`=LA+%LA$uLC*N;{GT!v;I{8rGWW&oOF+Mz8^zdSktPpw=9#2nKr z*ZMt^^kEd)^;s|w?rpEF2p}lt?u4y;Mcdd?)EIrF1c}#EA%@8&fms|SSX%?LZt3V3 zLHrRkiXN9s@u76e2p--Y$32#$&UICx)R1x_Y{*FgZAsI2$6dobj42(7-zCHHyWS{} z8`I6C-Wl&OSm7+V%vM@$^pe&&Z?9QRg9UqXrbv843a&dzauG1ooP^{8)r5bx`IR^; z8^Jy#i8miETMA#grEkiVJMS-rh#c*VBb~6ETBv{QLKwCFO8C2i8s1iytU1ZK>pbvx z)IwL7Of@aS3v~tAkQqHF-xdMTQPXJv`h*ma7NAc4!&P2bpV zMinm%`bBKj{*w^MGpK;yrT5gUjvnFtoj1x@B1~5U1hJ`b7*A-B%TYHMcX#7BxedP)z-yejJ zu)jm3>@=>CMHJ8ISFN;|E(z__pmWt(2J8{%BFp;kf9Wu^X=_F_HBj4%{W1La*?nie zTD$aIR}{B%xn(sW_8sCLo$y=i4z5G*btZPhLd|Cc6-TnevWKhD;~XpqG#27}9wBy&qrOlW*wVf zwM7Dlg>nAXE~ltJ~2Td3ENp2=wYZ1}r0_n#7v7i)jT zy}LXIibUULOw%pJ0?@l2Uw>9kM$-E?zW$>8M9jB`P^cy+KH_!F9hhs67y8=a-d(4& z269(PxU>3ac}g}$J7_6(qTkXMD!-#(xrBXJqv@8iDB`2Xy(sbFYh=QhfcEu|eR?1f zX}9ejBBp-)t#cTcoG0iWBK9`SUL1zLl4nUM7aqS|{_8u9gDdLrt+Oy^7kb<61P&;> zhG$9`mxQNk7*~;0R1g=E$!l{cFR?=jF}Z{nh9Z^%s{Vhs$H8qnMeV^^P9Jv#4{cock#7Yl7UqJjrA~SS-hXE4c9%W`D z?#)m;diE_?9G?;VcA^uN?Fb#qb*Q;l+~BX(@Qj}k00vL^vAlV0M-12;3QEn4yDal!YA06IvEttLjjuca>b8d4nAsygtvh+}CR&b)BrgK7ofG@Vh2jX=F#J>ff zKULP@aF?6GVq(a;VV!Y!I-;MNj%tTuj;4TOE=6;KsXrhD7zKm`B3Fs9rOqt^*c0Nx zzsY$cX2Aml^?up(*O%p-V%@eaKAeT^8c6m@z6ADV2+H{s@>^GsN|gzSu)ZS1wmB83 zcct0f2BSUC)0D(G;?WW5sj2V2KTD>F)xtQC+yS&P+@1%gM1d2P^}K$QbK)iuxo+_6!A~s9=|+xU29Qg_}nYXXX9TG z+4Ol{qI0N|FXra{{<#N$qd+1w)vK(mdhjwV#@Kqyh{T>$UPCdY(M< zzl5FByrip*Tk5Qd8%E5DE?KtAE?EhretLgHkLd1h_MzTx*JyAOdnU}Ojh}lPvLk4_ zsKkAo&eeF+(uWqiLjs(^ORqX)F3W{Xpu0oRe&irMi3LJ)>LFhcfqgkY-kRCMSqlh+ z`x=$*b5VplnbBQHu6TyZy9uxx*_qv!GV|4cm6u-kYFF%4O?41F(_r6Vct%FP^45Bx zgk->BOXNPLaF1qqQLpxh=QQR%#K>bMm;`i>+B22tVBlyY?y~58Cu?7k57z=wF|b{q zt~K}=u-?hI@1l1)jC@``ZlP%|1vET?a077`c@4%z?Sl*ZlselQh%I#Df+d&BS3*>A zz6EUX!Uc^~_@)^M%e|AZu$_)22Oyq9kKY*{8y(ru!r}pGx6bwsyIix1Bez6vv<-R}nx z)lHQTD$SxJuNmHGMtxT3daM{__z^4|M{7637b5)*x3M#NOCn%kJS3(%xV}W84ghEP zfu>tTC&=OYKfE`mDxA>GkdIHmN*_t~BH(~__#9G=*GdZSnUEj{)57i1!M}bbH)6Zq z{KRuA>N6jZ=wa+T=$V?dBUBjotHEX3FWSjn*q*`N38w!e7uA0elK4{!mh^{5M&Up( z;E;xZ9f_K2L!e-<*FV7qi+(yn4tx6mOnNgin3`$_;yhrvY!+!MXT?>M^}!yMUO9ro z?<8-M8@8;QN@#KvyQUHFsWBi6e7)$Y4}Vc8hPkhAP#J~!h#}^uG31M;h>z636?G&K$PBw+t}&&;#zlUv+$A5u|-}>wN$L^ zd%o3~Dhg_*N_=&t(mdOLTFbV~=QKF)(mC>rU^)=j!<>wFEb|Dw-Dqw@n^F$oW{J^U z^G@T`46+fo}#J067Kgnh>(+WfOG%+amVbZI}`tAhe`(f*Z5M%Lnagv_W9-pcxX>IR`9T6beOeLW&N+h$+?Ecy!JUM1G9409?X60d*y z{}>n2Wj4d^{bl@5e;pO|tirr~nNU1BB{&-*2PCMaw5>KAvYs4@OdlMDjlE*hQTIhm zBMTJqt3k%pMZ9%Fg+=Pq2(c~z-VFZ(wfA5ddQcWHguoH^@lMr0;lx;&Y+=iV-X7*6 z!lia-j_|($K$~{Bm=3?1@6Z4#)i5h?Ucwx`^wMew;4t^0>YY6izrCR|O57LQ2sTPd z?ZW1$grW3{*4so^^Z+ZgEwm>aDl2cT7=N3kB!{#$gtOM+e184Xe1N1VvKX(4L|%$% zl>e<(tLpY8qf~bfBWMG{=;^*#!hfbLy?9kR=DB!~XgZ(mHm%?vOeF+6VZKvpJ4E)! zVIkrdli zb_6MS?qAzo2n>xS&D-r0|DnI$8bI}l_<$^%h4+SRj%iDeeuMu{;_x??lp-x82nZe$ z2#CP{2XXiZF70e)uI6myZszP_=KO!i!z~&YF6inQ-+Jq&DUYqf(YvA}@50&5MrDE0 zo|blC!|9~*{jHG=TbrrE$%tJ!i?q>9zA^hTXBF>pbIf_nB_*nT^SIyCV=gJ|{CJ|- zxJ$D$ez`k0{MS4u#{~fa-|&IqIf9pxt1)`3H$$KVkBg4d12#n6b%y;hT+GxFkqP9* z>i-R?Tt)_$+|#>%%ON?uGlv>Mj`^+zqC$=dcuvJ2<=z@T_Lc^>W5eb??qh5}7r~p{ z+iph0WhPF+A}dUd@KHo=7OmlS(?v9?bDUH|cM?#_LhJJ~SCdXe^A?ee>|Rtod-Oaj`W^SDTNe*aC9QEGl!L zHu!~mdkiyNAmN1~k33>&wic^K4r(S>UisGvK|Jy;U??7{pUUM-7Sd@G53LEouGK7* z-Y6%_s_~fi9ziFAqAQNp??r;822(~jTo_y?(pRk%!*}?O;cy|iQ3 z8Yhq~MVsH_?y^t-aF%1=Z>ks zuC5ofG?Y-zpS8i6C_PMSVj%?;FM<0z*61UpnprR>kDbjlpNTh@n-7DKIF88t7FkH! zYxo-Q4EN+Mdni9eqbklYMV^5CTnn+%&}fcgx}$9aTVZ%)Iu1oITOo>b?nU6gvPbH# z4~xWuLuhs@<3RfmueO#V^KG`;ah^U?_y=upUXUV}4A(_vZk%()VU0)WSfH>xKx&Jo&}q8 zncO$EaFZ~%9zQ;sjPT#_d9!)<9DC}}px(bzw^YYF&el8pO{Rvi!SxP`Ao)u=Kd>6qpEgIDj0}{Xp2F2MQMX*$ z>%5~q6`nBffc&jcpG<0&Tf;O7`l-zu_JFchnWBv7)n4)0*5?UzWGlGDe8cuXzMD0z zm?GNvrXYmM*6nZvwCCUtFEXyQ*)borA32OtQBM*^io+j61Ud|5Jo@ zVZ}vrengn?M}&p`KSWsJ|7L~!KQi2-ai)o`iSaD}$jUkd;ED6K#K^_~0;_cX43wcN zsfrcmS%PltC(4mzLsFrKU4Ix~ZLhCObbYKilX#z7B^2!Deklv|Fu}vb)6BbMAI^13Zx{oj56+_dH!Ysh3J(h3-5G=3(Zo>n0?0KGvw8=wGJsK%D%< z+gNz~1%~k^xTKTNx5C&I)<~Iuxaz+i~_Qd`MoOqaI`bmuByzCXMldCjGZPDm~ z4z8?U+8?-!+m3$;o-azgZHI3YaLuR3-%`#NQUmBu+T=cKjgC)GZkBixPP05GnK!U) zP@3u4cv9P9<59`nvk`I<*p}T*51>MHvnCwNnuA^VjK4fNuWn>;t;kFmcx5a&)3Kq7 z28yniXWLSeq1MOc}Oh%-QlJ=~rg&sNG#kladmTa7J*E(0RhuD;}FV zg~}|#Kk=^E*`|#EV@cSP;hVF%Irdt1XTG!6OHxvZTe%jCY_5}$T4=M*xkET(?Id#t zknz}eXhZAUKqXq-rBRpkr0WSajbW0qlnw$&lUqi2cw=ZLm+oK|*m~z~O41(2aeUEx z$}t_!oCCt{sk?lXg0T+*>|4;W2+_MFCEr*@9H2)+W?M21oX)yBcUF^V>Fz5=fs=1M z6F1|&Y&dUy{zR&#dtsJQobZHnnzGD=hOOxZC#->!?%+Ryon4*y8%M1{%=nwT5R`A~ zVIe1AtO3q5eXBIBqd46n#VS;UGkK&|+uD67^|iBJN{tyYZ1~m`yIExdti6VUgva6+ zH6r~5Jx2iyQ>}*f|Dx<2gF_3GEzsD>iEZ1qZQHhO+fGhwo!E9xY}>Z=GVk81J2S89 z-MRnwk6qQZy8BzbdUXvKdQ2$iI~Y;l6)hNQL3S!h*9csw5RQ{kwO*8~3zPM03sZSa zX;?jlChs+r7&sBntUmJslEF-z*G3%NgcJhtR^Uj#WAg`8&ORl!b)w6AMcpuGHPoOmV`BtbtGx?}O2FY>EiQ z4u~O8Jxk0$znv+7p`f+Zd7tPUXMnNk{GyBoPSM12cMQnTqt_7R{2U$I3}}JEs)Q(e z){;_5FUxwCrm+LbgiC#6+HKi=XS z@2O8FS( z%qPcFbWJ5^5%5^X{q0X70e)ruS$YAa<2f;AX>IE86h&2G7;}i1rY%1#IrWZWiiNd8 z3RbHd&^dJLHKKBEMOhOI@_}!DcK|rhUzIAdC~#ogMV=UyZq!Ac%(?*6){^|KLD9%| zi4!}6!ZS+!dzDcn_i*C+vz-0`LfNGIW*U#oMqe?8TGSohY1EWTNx&^um7Kv$piHwo zcs>8Prwze;P2kQVB@aNG0L~^`Fx$lNUDeF}+(DwWnX)ArA;ohb#)xLf_shWxa)Xk; z%aRmt;QyNU@AcJ#X5j$2vit;)1Q!rmDpTb}}YruOORC&AY7$Dy?xML(t%B&KX80 z7|jKPL<*hmpEz8zxh;2`cjREBwCx2iPr zJieqN)l*KxZob=cakH*bwaw64y5r{Y!o&5^ja0Goi@6r( zOWvQ)v7gd?8PX5NPZ7coitq3=_x54h;{`hBD_Z1Bit8f<_zUxE7?SrzOZS}%_bZ3w z6PygWm+ubj+c?b6^ycSNw9t=AfN#>?9;Z$r(vySyT6huay%0lRDufx5ow*6zlPLly zbxQq=X2Lu&GJtth9Urv3N&c*-N^ z-@s~nl!3dJjNmm6dz#uKwU)S+?l+c|)H>BT=h-*-Z|>^3o9{S)=dclf*mAIrAVjA| zVqC4sgN@vS{Mk75!C5ic?e@A9xY%NBl7 z-Nq-D#lgUco`)eljNff{4A-0D>SUnM{ zXBqiG2|9o|i7_uxi6P)FAF|KES6oNIF0_cI0E);Qb*V{FGY^6QvS4e4lZ)2^dWdP` zqQ^_*z0$wKAx-1=P;L?h{WT3Pm~g$UgCEz*$vCdnOope4&Y*HMdnb6U)y7L%{Cd;r z3QL~(CfJmGLurzTDd)aS1|Q{NIg(tMkS7$MQh8rx{FG!If!l358?XEN&LGBCc-L%y z{yQt4n;kubkds5kKk4$jYpfQtyyrJf2Zy@~rf$HFVfZhtr>Z|pPQxbgn13OL5`?{o z6RZ=G92M`4E;};}u4<&OXdZV`C2D@Is*CDw@ zv}T2^*GUcHyRJLLg?l;VhQHT|6=8dp;#?!%0>21=;pyLO68^oR32u5lB{8H66?TUt z6?Vs%gXn%e4Ml1Y=U5D12{XR9Ydf>Ug9<}YoM@wTD)|);$Y4F7y&ynI@^DW#!7QY zwN%$saMlou-^0sQUj2zwM4mSiFSd}03C|_=*rCowx>cfHE%kVTxnex-78sn~lSPQD z!$_sGPZaskrhQ>9yeM9Y7!pYjo+tGE5&P^oM#D+=M;0^!$44Z2hXNd1Hk8Xxa?+)&6~Jw?UUR&}OSHssW5HJ;@0R3I2&?s3q7PEIDvj zq^m6wvM*Q#E6Og6cUl#4B#F0iZgc|DU|`h)x-V?LZyh`2nOG#sGPd+zKHCv8VQ)ma z$QR^adLwo-K2By^Z2-B$X2Ra6Jr-h;;M4mQ2t6^|2)Cfv4f|1qvHMblvOD91B^>Nz z9_%qn5Lrjt1bMhe!ntEUHjd&F&2VAK0&o-vdb>dmU}NZirXo7C+uT{<6(T4(lf$u9 z$$=~|<;|oIcQq>SZYCCq9b%e=--yOQCi@*UppU8XE6P5{f;i`&E;_igebkhHIP-c3 zuvqM9;uQSTzg6HA#}p1t!&*u~_LCo&)SVZH4bG_31XT>-nHV8KvHH&*(%rc$tPiQ(HuPj)*Z zT-_2)wu0kPguZys1lCi}KvSSPZeX$YO5F=GU5!*64q(;jN0BS!p%IHJ%d__*cZNmE zE9Q>^s5$(t>z%c2`)8CWNd<8EwdEaLGxgv6W=djIk9dHHL^Z@=dz9n(#iGIM72B1b z@$1npQH#NS2?1N`$qRJ0HrKrHFwPgYc9&PHKW_Vzk=g;w^n-esYG6jUMN=gymAJt) zq$tzgXWFXDNv*CG`Hz1)s@57ub(Qf7he>Y3Q?`^3JrgHM_cB!UNJrA2bV;8dPqB}m zIMw6{6BCCFbd(F@gjei`s*eNJVksaaa%Ws8gGYyV#0kq`K;GbiUZ1-gDjkr(T@KXD zk8K`kJhGOI(HLDVTDedUp#>~3Fr!5U>s^=9Om#Ax3YM+OnDW!B)8!MjRbycWL&I~M z-rzz#C-$OtmUXApE1@-AT`uy;P|lF6Iu6-2Q1flObLL?rp)&m?cn#BKY?ULjz`7&e zp;~d|-qsfPd&r@yJA9Yt3{k6&WaZ; z{9X_CM??8Ad*cH8@;)NxY$-D_lU+<|R_6Ebj`pl};113)t-oDDjAYju0cOM+SE3Di zW{$9-xECXLUz|=U&)Y!CPU|>x69XQ47_wkQT?%t7R*Q~bC5#26zbMDV$;CuyB%T_Q zR?m=LeG6Z<=ax~fQul{-(su5WDFIz=)vRhesAj6X)bz!@@KbfYz zTkInkpq*P>(Vv?EPt7k^w$_H|p^U5u9dr9VD0^Q=^G{GMBppvcEGH~c$Rb+QV#SgV z!cpG_i_-aV+IS-hcw`Szi5#AoJ%PEd4CX5gAZD`}=qRL3a0!pZpxt(t7!4 zCrZOX)_jxb$#|knqH@ww@gA{-c*G>Gg5p!%SMqrCwR=Rw#bo>F9{wXuiaN?!v$7#GK4L0 zY7JW{$@#a%P%hC#31KtiVJ4`NNDBqHi8~w1z42&tib#cYXiE1)V|+#9iMVOA+b-hj z4yHDF^#O7&g$E$X%6c+Fm#|gjvsFmwYaQKRS1nH;hwsHEeD4}zj6&5Q8~knkMWuF>f4JPunK(8X+VH}#4n$Kt?Y+q?rg%* zmeXn=>W5$a4@*ljK%O*o1Bqw?-#>d4fdP+1p0nh}nQgneqrWW={VTuKG_v=k6zXFZrgxd7tLDmxWxphRnsXhRs;<4id zuJqifBr}i^yR=YW&me^3tzST{(h^K9-#Rubv%`$^c~Eu2?3~v1ObafXto6>QWljYR z8#Nn0ZA&{j7YD(k%IB~IS}Nt&&stzxJC_}J^acEcYu+T4V28yTHZa1(6wM!|g5-@7 zUfbGnlayUs@Itg}iG57-kM=9+*wr4?^+N~N9omy;PIz8Jwq=}Qv*Ulvu1s_03l319NwzP-`mJ}>r zCu-w5AY<>(WCjL0m=iHw-_WIK@7q&#fqmE>d3W_FQ~nP9R6K=Qzj}}?PL$ejnAams zks0tDb3jPN6s006EY{~(Js0f}yHh6)Gcl6CizmTR)ihR(`I7l5+mRE%1=$F^Gik9x2*KMf01~OhT}_aY1SHc5Uh-0`0Urcq%28 z#2)4o_aV(IQfwDtj0bjv*bS32$G>o`p>7Yx`N^G<)F5r!$Rb%W&m4Obmjbq9Op;dM zSh`fP3A(RmVop5+Xii7-s60CmKg{pByD;UXJULaS4>!1!_LEs; z_afnM6AC0`+g`a8*~-c_`Y`QW^rxt5o2Y8d#`vE=FS|&_CEjGo`2%dl+F&2U6l;qU zf*2-J-y{`pojdJd!lkj2a%Nzr(mosx*sBGWvQcySg!w!m9+VPHbgufBO{O1u=X4gC z*^H%Cwcvpq19M{t(;I+<02WWWuZg;RaEg2(+dlBF{oTLW(=D|-lto9TCYb~cJaV2L z0(;aI>(;65MV!9Ua%`ZA+v0>rz|0Fsut7pQFjPXi#k06x;sh%MtIJk|@1V)qy{Mi7 zf(S$-(6@k(Jxq5U@)M==SyVGlx|cu*^W6c;1WKQ)B<}!bW1dK%EGH}2924xrc#i)vB$$TVh3&;%1~dZ5cUqIJ;BA>n8@aYn=^T;~BGj31*i=>e$^1m;yL zV%EUakr;MB5foU=y)`cE*X-V>(v5#i%>k)jv0A|;-^75}3MXFiV%XhcP79u)z|w@c zsuqWaPjr$>d1@7TSzJk8(j+sI4OXF#H|iRhVr?u96Vu~nzjGut^Zreq>$P;h#XjYGn?v!}gd2i2yQp$*f;DYN+|}E3PMFafjWD!#zF#aS)N&HC z*46a6!hV)N-OQ4UHU{?u`~J;ngMHVCC6~l%r)+(K3+ZlDA*LBq!9M3coq~*&k3F(+ z%pK;RcLkiL*c)bN!B0mh+go)VTANR*w1ziJs0wo(c8QTm9?#b|$gN08n9nnpdpVy_ zNXt=tZPn_$_3t{fUQ-ShI6b1sky3#hO$skZQXZ3y6|q^(lxRn@}|QGgnGC%3zOWplS;k5r;Zbq2C(pW;b|XfYuMuiOg4j zN_Vle@if%9r`_FVb43P@_dp?#@6mPlrv?E4ScC=u5d1&zAkhXByn1PQc1ZA>&!IE!lQgtEU)(=GbH87FJ>DH} z1DvcV+M_67Toab)gE(aTDnvvy*oe=gdI4ZFi8j#Q#cqLHK|de!ly6- zN`fM6rBc6+SS5qv6_JF=g&d;*wJ?T5<3$_zd<&dF!^N&QJ~t)yCNRjvXSP@?@r&z? zJi>NUDMk5lJokxe1G{&guSkBRk$cu@AJdNeehl$`18j;iIg)jziof$&)-Hduwv54$ zYtz553hYf*G6vZNmJP(i#O20fdnhnE&0uUuzjUjwkGEqi&QQ2o``u`y93sC&%kew- zF57hWowkXZ(p%L5_PTu3K(xOqlEb@vkD!~7y+xL-T({(@BIh_^tr7%yi-u0XhtEKT zhfjbCMRe0B+KK9X;)div1(}{M!0HH_Rju>(BEn^&P*opVrUP zPYh+2Q|W4RFc~E|DsfdAeQ>H3d4)cCx%yBhh|&;eP6hdZqQO9dyh0tIT0D=ylZtX3 zh3PZ|X-CLoICMx5XrOeb^tOLzQjn^V7BrkFO*BYDT_e z^hRzen(l_sI4+KHw=H4nXUj!LrR8rcwu6>xl+uZPIH%G~+{c!A=PeVIkw+{=jAa*g zPq)JAY#Tyb=rVH*gtS+cWz?He?KE2?X)!%AKf{wYUy>v$>gj1yys7&#LF+@`Pz)Ec}lA1CeAQ@GX<9uKn#x(Hoyq zrJdTP8zTA_ZXihnG>vh)319Lz zYT{8ox4H0BbYQLo$NMbg+DDD32aIP40~|EW?P2%%XeV-# ze1B;P*rb zI48*P$aN3|WC`?SznmPyk%k~K5O^b{(|NP;4kP@D2qA-8PYb;hXle0|=4}Cayd9(E zaCZyEM7TqBWn;PW3*>@B$-~N>bfc4ed2#IVX?KEw$#BH&MH#12^ux_X!jqDdM)UlY zfTY3Rr&>%Q;B&nn0@EWCTy&h6K~Sp8v5|=wC+9R~EOEYB_0Bt9P7RYH3JQ~z3TmJ~ud1g{VU@eBL}0Il2(ofj$rmTEVDn<;~nD$AnF%7tRAs*%8Y4D1~(qBMfw@ z)Ac(*fApBkTiie&aP6Sg07n4{!_o+)CX_!SyQPx6g`HKmCS+-PhVy#faLJmYvVSM~ zwjQEXaiLt(^b%fMmgRnRY{;Ui#3Ot@^x<69!hngn>ns|%G8CU;wBNx32x z$I08DH;(7JbX)gJBM%QQi_%&5$GmN)Mm~VBrmBh=BSP_j4zzfN z*vo!tNOsZ*q?-^{Xv0>4vIUGHX_Ohc+G7T$6MW{2_ef8c4VjB$!(28^_(UQ5WhVX%6zEJk7N= z$h%Jxbt%i^<2Sdq>;`*+9_GVsL;uYZ4=elNxHJ@sy6tMn{9X(16z+5D+AU zM?jOza^2LvK5pp+x=`*#YwTlTD_a;WT5YF-E3+DWYRt!_ODlIQLKS`pSRA>Mbp>Q) zI+{7Q+B5SK>#CoSlbeW5)SQk+hs0^~Aq}MrN2}S)rgZxh!zkN~q^A#m2hS*BuD>1jOQIa8^`np8Ol30Q;O`J znJ^7D`2&H?WN2U5IdeGl_pS z+;Vnn!}}r2Gu6(QkuG;qtWUapNELxSi%z{RP5*cP5aV3F%qC8!) z(SnAxG{d4AeS8x6uCC3HTA~rdrFcR&KxUa7lMP1EHLFK>PI12U&F$FTI0twOJef4o`Z%6KNi~AlRC)5Ms&Wq7)ECG(}T#zl7GCS zm|FusQ5x&-spVE-lc`b#N3lkZ1`xqWa%Y8H0)?q;E}@p->aO88Gs7W^kQ+CG`4nfo z7u%~X_{GDNGqusgpf;lfn`xNYiUti+<^yf54^Kfc%|Ig^yI`o9GL_lMXQ-`(Q<2@V zC1m=eyHS)OGMf~U3S$;G6O+Y((wTA2N87kq1k$kxtyW~=248itoJC1*&iTO>}Bq!L4!){>#|9b=p0!|jU1TEL|X}iH{D$@KF%l5GZ?77B(Dsv4-pNxa^ z`P1P;_M<;P#YI+(%X?EQy(=C9!~+%vl$X6dZ8eJawI*qKkyOZR(Q~tFh~1Y%-IJ;k zmEw@Ol=9+_sAr2Y+Y)63{pzXGpxl)4)_aTnGI_V;rb)W0j6tmv0j;YuzQzKB><0Ns zV4k_mJoA)~oMn*&;^hEZ+LMTea`t+*d}%MBx~VTDz9hF+AEJ3i#SdSKtm8N}GHmTtmiH~dB)3{0v2Q6&-o(y_kvdSm zKMpe=3izGvX<#9PuwT6^;emV-9~c@DJv*TFg_VE)RGQ=6_3rJ|8A8Hp0E&O0_$9q? zeG%NseMt57kbDIpF#|8DHvx;b55mS;xoS*gi;>mZO@7X_R4*#-&x%i8xje~v(pZF| znzi*7ev#tnolEJQ-RpkKB0Zhz@kU=5cyXs-;- zq-o4um~wTFa<)b{Np9w%pYxq41Pxhu`b6!Gi45oO&bs#-UD%hGzq|zWEtq>7)4$qx z`pN5`$0!lc@L$doKv>^ft@#q=ceNHxbp;?ko_9KV(jL{df6Hg9N^z!YIL76+ewR@v zN6u4CRFe+UWw3x2);e~2gt=Je=bbL3cr6`t&4aOn@sf!D3g_%yvCv_vWFfVW;u5Ur zTtu3yn~l4Y&Zl&B&ps=m{d1~>+J;?ZP4i{*aGxvYnb}`;^sq-s%^a$gE$}yv(l+x9 zBOu5i_fB^^h!DxO+R9YX)P?ew^K9C9(8KFuD8MvMAkaqHXW%PYq~0yO zdN=#ZmRp49?9g19(g@3aW_+7$)1sJp{sy;9lP6iDq$gNzjy@YyX1Xo$7b5@gxfXev zOE=*o0z&8&duv=46A*|hlG+-WkX}z9tiKSV!Wc1~;<}lHvy7Rit%vH3Zn)JZjUqWh zTA=w5<>qk@j81YGScPi#9BXLd4;z>e!jvn@qTmd!+9LBntawO3BO`LxZf7J(gq+FI>g`G{P!IGes1+4@ zR;m3w;b;^S;zEz)oU-MU^kVXoTNk-Neu%+_C*n!Ft!P+Tb3*6<5%v0`&-D6nRyu2L#8e~PV{G3schpyjkB@&qn2&}7Al6@55OuEI?luw zxm(p~Ay~z|gK=Fq?YrG}@v8dvakvQ%fccf;0Ix&=vrDZvCBaU&8yJl%P2!NSp8Mh$ zL6>GiOizPEO=l3gPR01NR}r0i8x^fFA(5Wu01J)in{tCC_Aym>hFBx@5+tCj-r1(z zt~C=i4wD4hqPqw)O@FPWIbV^L`e(ILSH|j1lc?58Grx>Wmxz4DH!q2Ay0(;2>kpO{ zOqibi{kxRYP%=YW*ZU zH6~;N1MnqEA8uSsXla4l<2*m%>edcd&j6^E|bc(1&CBiC))vvcW9aU zJD_zJ@({q2fwl75Rmx`}nDbY4M?A~8eD&E$cV#PeFbbM_WB`X) z_&Oyig2b40;tEU`Z4+^K3%DXFJX5hjHhl+ArGSgXR`AoD%q3=xl^W&liyuKgrHDk; z^XS&W#*en}Q*nHPUZie*?IWV}0@g=c%RRB|(G5OPWTUQ+P{>AK*uOD&&ST#r^H~4( z9h@^;2K^8#1LBqWB?*^{|Dq4!2d3fA7Ef-ISGq8qBTyb<+#aF~?TFQdCz35KtU^Pc zrDBq>zNABa5zE*)vL(p6JlwtU_TB3Mm|Z9&9^aMzK0|RNUlYWT$%#v*~vF&knuYdEpxfEcWGe*&QsttrkM3RT(C45gns?`^Wpdb*zr74<-^_cL` zjxFN1G1@z{^>NeY^h>C?N1XSRQ_lVC+V|JKihJKvtH2pY zX!n|6rHL(L^cL*~TMx@)=;?wGdd8tqosCwthO?3;yvPcGe0>%@iF*LSact4yf&s zh^i*qYIURsuqbQ_sSZ*@HX8=%UwT>u{V|p9IH$jreP;S~;#wvEhU3qRiJL3NWV%<2 z!gwS#vCgxaSM&OwGbT$8l`%@5?D%Jb+O*>+&7mjBeC&zfG%P#=LU+xZ(b(L~cU}7< zGUh~SSft|=v3Pb)sm2^`;v?Vav^O40&eh@ciWN^8F9I}Gs|8HXcP-)Am)t`49p=m7 zZ5h{*2s~$>CtDj&U)>6}k)u&sB&uG+&y9r3PI&jYyC`FWc0q{W=EYBOSO}Y!(i&Td zQR?RhPqXt%nGJ(M!R~cxJD0~` zBtw4%FU;?WdxecWi64|C(39SHkGK1AIw!nI=l{TV)|@NyKQ*UsC!U&R1$l|a!$DsY zt)OO1X-9tt9swfO{WpALIvm)30|5Zg{Lr(E|2w{w%4{6ME;B4Wf@r*~*6JtZm-;xfG0=YDRDMC8 zwu+HJSWHPyiB8@3zpuBPuAlYr_<-f(<7YsJqFl50O~nU2AZ4}T9qJ%$h1=SQ_v%4@ z@>(mUp?V<9P!Rev(MGf*6KOu=GVxw`Wb4!?J6Se7!x+Ad%yyOxkK|xd158kaH$!C^ zC`(rnMWrS~bqcaialDeMl;rAylcXbs9y5~XShN!J@Xk~;TGW{m*ob$czyvWfkrgdN zE&HLUvk=?J2@!p6H25)kcG9azOkdXG1Wq121mZ%{6jn(E7D+!yVqe&Svy#@X->rUP zl(vi&sM54ku$Gs$s?)ZS+L;v(lj~|&i5-u^8r27zTXg9D!j8CEiHkomDzeQ-O4vT6IlQaX& zMdIw^J(FlIVIyI?@Oj?=PY%LmOW}^g6aJb$}=+*JOwwJHp z%Q;me6YB_}Prbg{*3%Z|qy6x|A86yLAx?Is3Og2ukF7m0Sv-CnS{xd`pH72=8w8}v zqfjGn1rsfFK% zAF}-M`?g+~g(Tqq13gFL7XSRNn>S{*JEI-MbZDs3+RTwaXPNdpe_3Ma16DqN^M$v` zB{3JuF9`Vy>e;C^IOYbewUk547@BZE3Kwa3X?7Cwb2i)$8aE6_7b$&v>3N{7kS^H% zw{K?+o#dM*wU6D5W)PbRRi&V(mXJ~f7>A08(|SIXrZ)<9O{BLio< z|K1CYNz}2M(?=fpHYtuyvylʳl5;*skW7ciG2n6{J33=O`Y*r;@0V&7u^1E|J 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 r42h;U>Wj*=?5gGD-I2jF4i<_vk7$=kzE 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

    @cIKkLBp#*Ay(n`JA_h(Xh4xpc8gMGALYof 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

      Z_sY*>Sc=zK;qnU-RG#{IpffRWO?WYc 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 z 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 diff --git a/src/main/webapp/WEB-INF/lib/xml-apis-1.4.01.jar b/src/main/webapp/WEB-INF/lib/xml-apis-1.4.01.jar deleted file mode 100644 index 46733464fc746776c331ecc51061f3a05e662fd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220536 zcmbTe1yEkgvNlX`5AKlQ?(S~E-JKVAcY?dSI|PEeySux)26xFv?%w;Jz0ZGd?x~-u zML|{fOt0zgr+a#)m#hQ`C^XQoA1#v*&j0%3&tFhLpg>Z>iu}~#(jv5P!$3f?f09B1 zX}*&Vr$Irf0RsV{Ap!xRytDi_sT9AoxQMWVB8`;DUV=u{G95y|M$E&rws592F z3^ZDaCa^lqZ5&gf$k@27y8*{I_+lL%xXm3%Ix{ZVnQ)Rn~)2fx)0=vV*0gqi8#jC5d;LS*PW_1jrmdI65 z8Q^VZ0aiq@&tPlFTiu7e=e&EHav9pV9D^+7*{RvlfTZxb>z^CF8i3@OzyrlDFwNx=%nBOc5VE#3VvWJg zv(fPZflwrLi<^Fqap|g&{tR0HSu7tYwbzIJ5iY8T3$M%9Z$f}v5qu9Vu4qNlDG^38 zV5g>gTC}_RUQ?HbJO(<*^)rRW0GLrO@fP$>^UgrNjpAJ<%qT!yKardVA=&Q;I8Lod zXyOxO=&i>}~W6e#e3I4-OkWJ9~hg{cmP?cecOHVDDfD(6jsvImZ7) z4sZfkIs9%CwEv0A(ZTe0YxU1pcd*m5vNy7}`_E<-)bE5A8+)px$GT& z%ZB~Gvi%?Hj`|NqCp`<(ck3~=w)%~#5dOj9Vx#9^@*8T%cWMh$1AvwN@2m^-oyywI z_&4Lg{7IqrZl@-{8|s%${2J;{!gt3pu(q_cw)&kN{SxvQk29meZ$yCo8uFVFougNeg$vFGEz zkz4$3Vg6m1ckeR>{Ep!lF8o~>dk0qwfV~L-@PFdM-?`ow)af0r^nQm6zX0y8@AUtPBm5fw_elPi<@}=hJyQH-1%FWjTpWI5Grv&pui1Z%YXY#a`8$CBkt&7n zPjukFr%LM}KtMR}9RCUts#21I?>^+9_YTN31{Qku_5raQ_S1X_1NSE6F>m?H6wC8w z-xJO3gz##Q*^mWIQgX=S{6l3%Q!@D=fa7p{y%S}|A2vU2e%fmcL1Cz6Tpw9CzHe!9 z=6rshn9!kvU?4MPY9V)t_ZH!ufJH)zNYp8v>kx? zx^AaCf@}J61E=K5O`D;TN|vgN6l;=3muG3C#_E2W>3^Z6=|TohI~0i8XH$L@9HS?> zDgsqD)<@zZth}tsX6@#v_tH-{Lw^0>laV63REs+{Tf}S+S{+kZ!cH2IyKgdHbj;)- zrb{eI%h4Bd&i+J|mpeDM6LJogNRFARP!k?#d6-kIZrrT50=QNMPU-A!sb4@lhZ@D* z9fuk{X@hA8U8(f@1V6x@n`afIU-6wC9CW_Wp6A(PNQ)l`^0dMKup`HT4Tqw~cltU_ z4@)U3Qd=R)(RI?8W`IXEs`JkAa>Rq@6U#O5m(Q45kf-b46ncj1SGKi8KHu|(tVU|% zv2>_uWS4vq^(0Zh0z;PcII*{AbJRLfon>%ff9hIiJH3X-b{!*&l=t zM{l4<_^C&jztWmNOl!vcUN+zz=JBC`fLQ-wTK}D{2>qG2yc?R4sj;Koe+4387XyIJ zuZZ-A)kP?3D6A+WyusJU$i?%)67hY;|9}+zL2xJlr~o0Z7NL`zL{`iVu^twjP)>Y* zdZ7Kb$vWeRu|jH@k0eDqb6C<_+*`P)CAJbSFlBHj&)(^N<#k;9X2SdYjSq!9d$)GYP3Z{t~r4@gf2ij#4k5D4+Ncn7Q5xP`B!9wWK!V z!o!aLxe%15U#iE6sYh+n&XxP-{Aq%kw;i?}`J0rftA-4Q0C9_Gg`gCo)gtqlsE`g$)R3S%Myay58N`+O27rh;J>~DlgA<0s{csrvB_$1z z$3(c)b@bMz4_FmDz?cI#)Xrkatj3@r8KfxVcn_#A2lCfHb{n}Mn&TO2Sh7Ud5I#%{qd zDtm$82mPbQk0-g+y>sNVQtg4?Com1k9Szl4fdDE6dYLu(oX68!wcF~(23ZfVEL}+- zxDtLT#Qixw0qrgpr%2k}66oUC%I~@#UxBxjUfCSZFyTlhC#KgHe;Cmu&f|y}0;3?r zpx*UDVb6A;Z1O}Mwnz=BS5CcGSu=^M0#L@(hT9t!bTF1~BYhA(K; z5R#yA&{dq*_}#cHW9cBKnGa)xPK$ zAD z&k#)MJ4_%TEto`AN&BUx-R&VIA%ebW!{j+O+*g@g#-|}UGjTI~uq*yTbf2Ro#I!*P zqHzU^-<-!SSCMXh7;YlV+g0mB^||fvN*NqVBmwH&dYEm6fV%7gE{fKw&;z~14qqCG za*f7M^-f{Aj)ord&NchRoe2bvpfKmvEdeBJX)vzmBiYvYFcJX1O4 zT3~O1D>0&9t1~%NQfke##*60fX(O*7!1ve`6eA-DX|cEa^_@ zPp(N4TO0#pYH9xZ2JHx$HrVH<5&kkwcgku)Ys>j*s$=DeQJFLhH&NxxQahJ1)v2Z# zv}{+R>I=PHQMxigzb+TwBlbV7tY4w%lI=Zyy1nmJDE>n={i&dYM|o^fgdq1x=D`yn zJDP1AX#tB)mM}?aK{2$mFH|wgpU>N20_c*k7IKQGjgY*>1HtbVaf3D^3emF4uQ&qah@VG?y&b)HF0|Jk4 zDRwc4GM&ae8CuL+A8%=&svVOY439OH0v*!|*`{DhqE&VRBeeq^hFF@2as}I=R9a$A zkX0~POmz-wDD1f5!kYPy$mW_UMf39Wr4;wCoM2-t*JyrSo;AKP+Vj0Wl+kyp(i+9GF9Pcf6ps$gCX0*n z9o_}erfaC(Nm1W(86%W?viewgIh4E46wXqERwfkFx-0lV<}t%Rwdd4si-JMRDs~oj z<>UzUFu+lMwZwVbn5So}+J8(!CJx#fE&s+~|T3K#|GRCBt! zl3_`hDa}%A{haNqNJ~K{#pNP5Wrlp5xTEpR?ZWtvduZzuzOl7}&|5zgr7!fgEjlY_ zd=bEeK}T$O@Tr9?Ysy+<73JHeW%2ri`*n$VGF@*jCyP{ zm7_34reh9zfp)B$+A(S|YOzW|v%E@ya>0DQn@_X0XgP!n+|TDjiLaTglZ^huhbsCW z9~WtF>cHX0{4R755ZigJ`E}S4p{uwdH~fRMO&Ue%`MIX^y!bCoq9P&X^|?7H4tdt| zd^G4(rD2JY+-*)tR%wqu@PGW`CN|j<8wkctaMYMBO3Y1iXe%xQ$$@_)&MzbGral>* zZHz<;mJ!QDVN$vP369K0QmJEnG3$4@!S;>r<sAb2Ctf3^2Y|JVtm)Qd9>ybopqj3#Vo%kTeD2L+$+o^T)= zpCAf2&!f*C^D88>Fk)M!5Rx2{%~X^GffHl5aaFJO$mwm#S6Zlt>R?aF4Hb+R3imb= z0livnO{0p1Hc2w~){kogC!;?d*Ku{T85YeyY7=4^buNHjAK)2B5H7Uf-9>|91&3xw7ejJlc5jYmn^I`ddM>h2O=baM#k(9;O`kd z*6wDAW9C+8)b2qDyNO8>Qhg)S7WrReV1bdsacAcVmQ}%6SvmdhA@^IRSp&wg) z{5-UBBGnch?uvyGs*#XNSYJphM@7m2o*Y+=S*>A-SL z+$Q!p^;6t&Bc#9rz~JD|k4}mb#`Y!cd882f#>jUy$a;+wCV9tp3~70|T2CA7O>x}M zxINAU<|PcA1;zV@>y>Eil3bZvoTjd!m^H{#cno_1Lm>x})N!meCG@$+sq_`8IL*iC zBHa41_AheCPB3q_NgalO+x0QfD8l1C)mN7#OeJ3YlOR)=N0|Yn5X)(MnDRtwV5y9+ zcJ-`xwnO%2x>R?U4{l_4i;+(d)6Hv6#ISnF)00ML`16_2<}y;xaTjW^&<~mZ=Q|Ln zk(SsbX9Bnc&X+>-+5Ih9(5 zwdHx&Os$7g#8z9TGKXS2wp$ZFwx4PQf4Q5BHdj|*p+1*as7zOvYouE5na2DE%bR2a z(Gh(iQQGL^f54(rJkn~vNX5tU?+75i{y*Yfk~MBzIks42*C z8xqNV*Qd9@LHBR&q^hF^s0v|o^=RKCsI98&AAKnN$*Gxl*>t{QiCxga;Jn^{sH&h1bA>p&Cj4h-Gup>|} zPQ~&Q5L3?x2CL4?A1E3>o}PaP$^bU#?M(cLOs^5?pY=eI0DY`vxEhoD&B$i<9~ zF6uT&now?5)F#xEfut|>A-l>X*%lY*$39+x;L9Mt@6mV;o}gQJ0?3!;?k=%InTFw-JbF?Y{|ECkho zkb_)3VhkODNPr5ztMVM*>IweGdD&PhHZmXC77InP_1uSquLKnQ!tw$D|MO+NJvwnT z&P26cuxsP0k;wiZijAhISAOOFhL~dm8rA|PT0WCX{h9nSpE`W=v>0^y*Lf;VEhX20 zm*&|Xd6s_&imwf{&r+y&mjQ%=@#RHUD3(8IZn39Ct$IB)u;J&Oprt!dZSsg`UBH1R z+-*g6-eNDJ7D4)BbKS&G*)Gf+5Z`c`T;Du$q+X!N1>@#&j3T!~J=gS5UR>5XD4L+9 z+H5A6dwy7YX7Nw~PRCi?doYn!U143H23z@ab~ojENA4Dnn?k5FYS7}o^=6vWqdGYprj9{t z0Q($PjO)?}mmRtB{Iq`LwC}6^j--^jEFR81YpvJ zpi`C0C}?{$adfZs0AtOER_YL|&*elJ>LSsbk7zAC8uKS{b9q{(qJ~=}zSVriju2;a z<-Af>BLbLNPM$@v4%7JMpy|mYJi_s>0G#57=x#L?du(8*-JUs~%G8tZlkKWO^Y}IF zW+pmzri4NxcU~&#_Ts4S*HNW$?WeIMA+n#@#&4g~og9SrQz~AJbfOq^9w~HO2UI>W z>Ri&pO|W6TJans9sGN?0OOzQaY`rPrJR@X&)D&d6^S(Va%%jr$`jhvcDM%CvRW#ds z3c~PyLV^Fkq#%D*4gbhJ5|p34QB+WWN;A|jT9EF3kZAUw%*nQL5=0Z0_4$l1u1B8+ z1eM>l%y0_7)U~waV4N8HRA06{FIqMsR9Y6bO*n_*=odjf3t{5f@kz=1>iTlw4eXem zu|`ikQTA#n-Tnvnx&1k}vG&usJ#98#+GPdZU8mXy^a8s2O(unVdbS?j*sfRD^}fwD z*!7;xHimW5omV}kPPvN@{htgkzWPF-a^-IdLi3bv61LvkU{K)cokRsr1x5`&V9@f6 zZz40`!5DDk?0YbT4_uP3zd2xJbr}OZq`MB-JB#TGFTuc!dlq{O@dnVdI&qgwJN69i<7peZOV)u^34Y6g)&cZ>#wZ?X06e`5T<{v4(He$v z7|1gQ%b7LmY@T^r#jlGRgIK_+{c!i=H=Q;l#=EyMLr}|RQI4?b(=sQ&d|}~fJK}JZVB=a&}9R#ZHJJm{D#fCE$jp6Co`nDI=bFDy}){CbZ4>V zpkaE13Y9grCi#8ADXj8N%e7Q-PU;5Q7(=n<>OH)Fs~XeP&8ab}bC%c~w!?#snZB_z8R_&+81+5oxx>_0>-tOP#*SWL5W;TrN99j{k~Xr z0Df#NB~m$NvKp*s>eTnU+>exWpBVP#EJN7V$L+dsvl| zc}30cFjy}k(t^FFBru#04bkJf-CySHW@pe6DeGDn7D`xfDjKLUXmovHo()h%=}Wdr zAINWG3+@&Av|NHh2?9ZDwE*XoSUUl^#Vaa%G&@$9DvB?#yehVkqK2*c+vtm=x}J_J z)un!5GlkE}j^Jh$R`$gV%>X%*j@}Bx7xg}CI(*$3kqYMChavad21%X7npv_A+!*YE&`7VzhPuv-QZ+e6pf#D-nE$!Gc$?) z(sJrxRRXy#C?YC<$$j&=*PF6EVvmq98b| zdV`1VT$Vi~ml?_Xax|yOY4jufg21qwc3>i}Jp4(^U$}eCpSZgPDhSdVJtR6MI#@OtvQA3x zwVAxsGOIf^m@QyGmGhDw17-P;;TbJTZN64xc_Dt|9l< zybz{2Z4Nc=IhBFd0az{R;f9M5|CVkx0u0Lhm;txaW4!~ZshLXM@ZzSq+>wbgqTGNz z-K13!syXX`_{E*W0e~#O$+pmoL^j77;p0r{CEb`9?bj9?XWeaC1U~O=Xpa3V)2&7w z!2@*KojO2kxGWJtFOf=jUoB2Veif$~D>ChInU{+X5Qt}>1)h_V*o_k-{U2(gb z`+U)^d^Y#_Yy=73n22miE(z)-^&Giup)|zon{yjw%{UtuZ`zQOT>_94Ab)a_9RVd= z-x?!IGs(qTV@NUK8t(EwuF&dHW^D|E&Rs`H8GI1EVfRZ*sYzi!`bzkij;pWO8s0CY zXlSI<2@57UWQ~r8d&LPpwc<1=cLa@r0UMxd zqd<(BeqNMD&oy0?@c$9uUF!IffN1E=a%dWb_$&ozWtV!OZYiD+%czOpiM%^?3Q3bP z-|Idj^2>OmPKywe(WPeOIH(M>4;Pct0ysov3bI-U5y&S-;AHh!8MzPV&B9IS0TeBk zyY;v+kO+tlcy2pXatW~U_6WdY0v{!8hiYhc%5F9(Dja&_kZmw%0uf*TE$xsd(k z5K$PkkWeBrA~cyKbXN0JHEf(14@B0fCX!qaA4uMUbo4Cv2qBP2kBX0f9N)~gdbhRX zM}o{&i)F{_Y1dck<$NI%k$)yQ6vutcX+F(FIE;_B4xnHVNXdlkXLv+hUDxr<{0N1~ zel!xJN1bEmMEJuW8*;DdY{M=tn&T?LIuc6SK-^ZZwxV@^IAskFe+n8RR@Z&H_NS8~ zb_*q`#o}UhjPQ6j%a%=HN@JYfCcHnQ5l5_*=#A93B3vD~{B=FSg?83?eU|lkj#>Y! zlH4_=FUQKCbHzmbyQl90va7r2M)_VlShL4@vw#o;;l%U#D)-e={W3<`7gaMk%|}bp z2Qcl&*I@>iyhTnC!xZ=~MHTgl`tz^-7kgU87k4>FFa|g%#JoZNnGC}AtUZjspC!A! zUnwE^547^93RIvxP*gB~b{IJuJ2CL70#~CfQ-cq-mDQo5n_vqFfV9BGf=Yz-4gIjF zu1s0_F)pyJG_f6`!u?G>s^mi%mM=-wRIVkMW!tgmEcS%kr`vL`jZx`4U7u0f>$|r5 zjGyN&)_7i5?ay*S@QAV(NUe(9BSfv5T~@6EIeVNaTo6I8i(x8HmlUn)-R39{wyOQ+ zt{%7@kz_91>)D$TE^*l8bdT&|ojyc9b$VCS8jfL4kAwbnN)ZSN@m z`(c-?aCel_?q^~TzJ3T-XWsxk1sj}Cv6p(7_gCAZL>`L$122t8aSYOf$@;>ikGHl^ zS+XXt@cU_r^gTPJzG)ZYUTdTVk=)NHVUM-p&w%vUOH9lxKr@6P7ugOzR92jgdOs#u z+NCR))`PEqkn0tsOgq_@1ecduzsh1|#js1f=L42ZJIxOE=_c#rEj8FiKO)pd%!L-z zM%<+*R8$ov==w*)7uoJ8q8HWAla^S;H#Yc1YNj)XLwlp?Uzd$B+{!ug_O9Ku`Hmu; zZtu^-ocr8@@tbuxzXdR+(&PMSuroDq@#_SRjcs7+SuO)WH-BX<{)id~);rdlF^NR@ zG@hP9EH{Gl!#82v-&K4<&6HaP>803##u_ePG{k)}4V>#(!kM5onQr(*r6} z!EFG=J%WG?c^l~UZK9u&|A}Qz)&`G#@5&kWYylZ91D;Ki5@zHnptYz7V^~%@ivg4q0l-196q8{wv<`M+b>wF3^%D zUp{;o)oI^Re&4YqR{q#&#PjD8`yHm+bDYjM-{(Kw@3T)7C$iNku4P` zz{*Jq6sNO)A!!AoRkTI$Mr>T3$0Iq@Q*mz;kXI=CvE_^$>`#H;Q!79om`?vjiRuhB zUoBQf#0Q;{FU6f7G%d|4Zl0KFsCZSW_yQ**_RtdQy_scLMjgjQMXJBD_u{fXEh?y1 z^gTRiF-QKowgSdM)CB+rLG^9E!_Ur}khY-u+#p)Go|o%3>%}J? zs;G|Lg7`L-D;0YJ?A+F9c2J&id&Z8YL=DkAj#%QbrnYcJ1DFj=u|lRro6Q zB7hHr!wadf5aBfNDpm5WXc(x{hoZ6|#UYUQS_b~Yj zwi|s&QsNzi$Y9+rnpTYn#dOmAnBcN(pqq{YYI9{M-NY1uW$Gomt+uZpAbl(rF3vH;ZveK(#8xS9N_CL?4Tlymd^4@D~S_6QC5+Fw%C+TFoHsj<7N3>df=6n@+N_fzm@up@A zq>`+}l}4jGFMy^n-cbuJ>%2A*pzPm>H1Y^idD~rd?g74{64aN!$lscbxr5GYW-d|& zSwfqK-IJc~5OqXof9O@?4XhB$w^kKFf+zxBQCvozvTp!MPPYc_M?SMtD6(R$@ zgkr9sQPFa?eVREjI76g9Cn^a*^OLL&oMKU^f7kc+s6lREP-P8%EuK)4*lw^`h`h*{ zu|94jwWY;8u(o~Foxd2ESXT6|Z5t@1zIH%Rv!yGtm^6L`@%)JYisiBX~P9i%<7L;U5nwZ_hj!DC(%UKa$s+r$0JO0Bl~w+vx-LB} z$K|VV{0Asx^Bg36jmc1XHT-`W|11ck;_>`F`Tb*M+|1hY85Na@X$X zT-vN)&Nhq-^pb2^6YlTPYwTmG7*!sM>VmZ`8`~D|AP-q*^$!m%;wYcln$p^v(mDq( z8zXR_R)|-nYU4&0<4Ot}eOQ>;3CAk`#^4FN6M3`^S@vkU${SYHKX_Bi1%jnf{d&uktZ$SCTz|rO=x8_0(pO01xp}I_H|qDno#6 z8|DeG(m3tFW-l|_7+gg-zd7y@_DhY+vRv&_V5tpUQ>s5`!Q*5!XrcQPQ#sTVUOJzr zP$4~8RxTXFwfel!X;RWN;!QR4M6xr%AvYZHA$4;#ot3?q;hEdjQA&77gF$TWiejX9 zZ=bgxp(x#5f_QC=)AD{@?a~$b2scW?m`PXIB_uZ=tCl31qOkZDr562{SH66#DVE7W$2OmS_uo%M-dIk9J%?q9t{2g~`N%RV0;3I&X!Ifm!3PB3e@g(fO-g zW!$sf!8Nd)#8W79#34Rnc%ak= zXOY)Sbz;j!KC?5ZfYsY~<~r+X0Z4jRWt-(rb-(rz@w<>l?r7g^;{!j)-Ap}TaA#N4 z4jjdmR6v_OxskKvTykK&wJmCz>p1G=4eKsx87uZ$1gc<~0p^5aB z9K2CLVisAE?pu~gD3IS=!g1f^aM0_-YtWsWLakcKG;y3b&tR3K@Ra?+?m*OmYy8rveV^99DalVu09Dg<6zcf*47(NMSKB8H9+ zf*SHUG<^Nm-41Xl%madB4u@D zS;0XBmcqc=l)g7a!Dzti3l1R~(?k~a1&=Dwq1#=bHlvVObAt4>Tv|P&Tzf`6etLLy zb+SiN#aAi`BRayYm?SUKPq9=@@mF@nU3UMB5;UcXjA@64l)APKef(zI&COh?r#BH85*p%(4Z%j_z%bjb zCJACZilSgTiksxlNUnH1zRea}V$c5-%>y}56CNayhzo!A=QMKUwNiDflZgDNaHl6v z`(1o+Ek#}$lvb0&jL;={&b~eKw3L>0jue;zDu_z)-Wm7Mc;{uD^QAh5@haJ}tlRZg}HIMQa;D5S7CIL8!;`{pV z{pUJh{6hy?a#|9={3zTz3&-^dsVSb2+>phH&yxm-{zQ;+KA&$I%M>C?Yes&Q9(GWW z`TKhD@lrI`2&;iO|5$aONO%7+`aCd#JC|OHbZlm2IXw(}^bNwe1q2 zv1J>Wa2>;FYq7PW6&i&B{hFe9uL+fe?@X01OA1@CucK<-8GZC1NFWweW%!LrLkDsq z#`$hf71KPtZ*p?4m>bvqZc;8X z6>Rl~Ju7@b>g~?w3&A-yLm4Eny{tU1d7gVehetpol9l@c!I~m z?Lp9JfXJGgT)EtWWPsQ!@Xl6m72fbC8w17GTY8~o)7!p>|E&+x77?SJ3w{le454fKWxhNtRM|fE&V)P#l=Lkb zD?En|IO=4ipexg z-!=REpL-qiADRWo4*jYMd5*Eb)(?|lp$m0^(iur-(vg@D(c@1AyIrsdgh};dGRz=6 zpmcP8M@s7T`?M*FX&&8M7I%DH;->Vf-R9lejvq{I(VLB*L+EP=OP=pIioc_CjfKWU zWvXffc`xsCUF@~?z zgpnA!gbw6L?MnX?K$J--z|SB+P*hSd(Eybl&K&1t&>kh)nCyWX#K6V?lUgCgY!OvN zkjcGVu}7q0#Zgmf(Fh2Hx7Kp&heqK6R22T(J#FAA+n!W&gn`Okh^a7xv8zAS8hQLF8(uY=dbnmvw0@+>+BH#?`U*xb)K6OAqPx^*_b$iyhY^Nd+#!3fMj`5@oLsl-4}>7jz=@qXax%yMu8?`6E$~T!bz#p8k`#1cd(Qq=&-Z z;E#iBkzW6%Fx;-_sGfH>q<`9w?x(X~ zUoSMAn+$OAkYRMgiYoGB8=;KqM;c`Ag!lp}MuJ5OgRQB?mIESDBbC6oU4}2icba?= zv~5~(?J#+2H`B_4(PrZF)MEY;M8 zS7HX{Rkb0XNh-jNjg~N%GY5KwilgGHr2kk^mR_`q(c@4Dk!h;8GFs60PQ?Hxa}j0j zEl(L~F+^P^7aWb6r&fBRhW zm@_^aQtgfzYJh3pna;GPVh}$QTg8T zHT<($jCei(yW|y8AHo{5-#mmz{YPX1E2EOE`LJ?+we#!-_?l^iUV@vGLIU*&gTDy0 z^JS*q)yAbG^Q(gg!L(uOH(DWr475nXqJer?!8@wtDyx#7%I#07g$3WSW9-m4++##) z940qmV=ePsL(PVMCQ^!lD9)sHHCI(|K(gI`Via!n9oP%~WFn&N;yjLsMkmIa?g8x3 zGj%g58$PYVTgHTc7_Q^%c?+b4(bIU2hhOR8CSk(aD)fxXQ9kARV~50MV<2Lhn!@zy z3nUH_>it(O)J+gBA_Ay%!t8t;iX08#1j^MWkqZy&JK(m3!)Lj|9G#D4aX06mB|h15 zb;oB}gj>WCDheFZ@wkV0(XQ|juNX)^4?^k8^FisQoRvd_Yi_Qie;h$5a>mJcV`=%u zu~)aEBlw0zQ_=C^pD_u#QZQ}xz26J({bZf`e=elHH-CxR0gSEfO!ce;^(+8ZhI)UN zwBOrtoRO7K-U^!30~*MHy$uvUGc?qTuMUDW$VKZ{A!;|$9pNC-w6pan8SJYe7b z9bCWZrO@XgR3`}>iCHD|D_b-*CYBf?k8Es+CP0M?rLPbYyALox@E7ZIrxEEkQVopd#Gc?(npFlGv^Ld-TarTyw0`crv{$P!cgo*Sgd{_*WLwtnpd zs;=B(Q*~iKRptE4%v~7EVjIgM#Ii1L#nQS;O$HqE2fR}tfMbhzUp)w!;0SzLxyq_Rl+;kG29 zzl-IhD>=C{jl_uFdK;%uYLtE#g9=4*_wfe*3%Q4NxA2UA&^7peq^f@iv4`O{(s){9 zXp~gzKoJZqIwl$>4Wp*sdn?h{t4%CZ9C|J)jmT-ErfkPv(ZbBlr(w?aoq&6s7R0ND zoR{ICSQ6&txccyk$$MLzo03DyG{VAm1fwIT*u~G%svSKK5%9q?q5*G4nbR+5<0hHP zTzQYB`wb~WV^r%?Rs+#|>1+l7(xPxk5blM8+M)FQ^!-*NtZ*mh3ayMjAa)RGwIxV; za|VIc)KIdm5EuXatM51H+C{t~PsQ4J=eggKjS3$;Jv*|`(V2CoTfaS4?^BMVT!L&{ zt*V7`@_8(WMwg?!@!PS@Y}qq(>-y(JMoPjIB`1o~mqlLPK$V-yz%0*5c0GZGxD;Km zjuv6mL3?+F+nkc-Z%-gZIqKtTy4xd**Cb+;l`b7i$$zpQdbwy3q(3Qr-w;x}EP9Z%1ydSpK-uWW?Q^z` zqW*iA%df57X9C)Stao_0cz^zxy8i3y0n&ecN8tSg%;CKs^^b`8uO1hg_wE)aaA^_n zx0_j{j^5STZQtJA*~!l`BH+w$S?^6RLa*t)tq!l7vALtI4(3vl_#)ua+4Em>XKP2H zMZm4tIDhrIfHWW$5T~#|WfB()hY&vs^9d^Q<)S{JHnBgs(itE2;O?epsl=+wbq{|2 zN;mOGGfYIxd%sM`2he0S3?DCjJzb#bQrXl9A6z1^zjed>dQHtcS6sUH9Io{J!T$#u z{_8d6e!b^kwF7|cADgDQPv$4eMt2|hZxC|$TW(50^=Jj+@gI50lPnFLm5oHFyp?2x zKfZqTQglEK;Q@c&GX2mSUv=l<*;tS1VTad5*-WV1(nr>Sr+|0DnFS4{E=XuY8JxrR z^zq=tMFL@*0fNL7Z_J4={nxJnvVtjOz7j(h61*wfy*CE$%#DR5DSK!qwz1NwQ>v6f^e5|AiI zBKyc0)j3t2Ajd{OJnmO6r+}&;)boAv%DH3xWtl{EY(4>e;iEugm?Z_Eze=r z;>CIk!__H<8>F(oON37Sz$}e1Dy(}6rk4>-v{TqsSVhI5s`)N-btbgp>dbDO*7oRc zU7^30d&O7%UC%gN@^@fg@AUo27a_1vL2_1?6cA#HvOQ(TQrwJq~hQW*Qhn;Zk?Mrn? zciR-|ikdjq#UId7-|_u(DgnOKruBxP@3)HNJ5ln~oY<)N3`UthSVK=Pv5;wm?1 zSCO+Ke=a76C`jx$m7%QmB$R%R=TtS7er^c=TbilxCq=3tLBP5^X&t7WLt7S;yQNGh zO*50Ay&K!9`I3pjj`#^#5MNdbez0hkcus9dGg9-Z$4UJ0O+`p)eL7JnM1wy_Gd#>&XYdb_31A>paWEeepyD3pOSYcwV`v}nPzz6 zW>%75CcQH8NhI+llo&EU!MAugj@@XHMtF4LbC$%~3&Lfji+^_wf;PKO-nnGiI{b3t z#SDot#Me7=Xf%=?oMaO$=m4f5zc5EGd|p=w%|2(7IA(ij14Fw<&MdD^4?7b>qDXFr z;=oO@HdqoEPl5q2Ohg_Vmf3WOXq((5=2CVwnkt$+9VvxOnER1bD7}{)QPftfmy@k8 z$IH_y3Y~;hDQwF{rPp#*Z^WHIdIuw@@nhd@nVVOE_{b<~OiCh3#FtEb#Pb~xctDLk z0Z*?e4h&~G8Io-UkNzAz`@?w9>2cHgvFVg~sU(pD&6TX{ z2Z7!sjNQpbQ?q-ANkK8JK(pJUP|NSLVmcuYSR0c->RCDhO?I^GUJ;R9mC}-6AjvcvZJ#S{e4JR5znU2~IO$jRCo1l|e@G3dxtC$^M zq{he@FFNQZn%d1a5J^bdlD7@& zCqaKWyk*fv2b+n=#v6F|F@|Q_dfUBv-dssz30RHl6+aeIi5M@nB$KTmM6I)ZH4LJ0yX&s4{Er^JwQinNwiv! zV)`_kOqxijUPoWd>5GyA<4&R_!4qxqlh`Jaw_cKl?Qzg!N@;7w z8R?X~wwyairHM~eH%S%c7BX`ki3Bm5bUKw#31a1vr42X3RKk!aYxJWkyHK$-nosqq zDmWb6<`4FP!s`B!9Y|oHus_a_lluAO5u1^(XT45!UNt{(GvpqrT>RKub)Mu76$Mec zF5>NZHOSi*AAi0L|a zkZSYitx%!%tg<43^alQsI*h6(AZB_Rs)=|2OIK>+Q+%3ah>m{05V5!T&==Aeay3MP z*Ro{;xx!I4LDxcG)gsT@ZU9HBb75A^-C5h3-M#Dm+1uMewBS@E^$U$L90alx$-b!w z3<^fG?(TyMwyZlv4%L>Gz>CBHi#l1kjOI?SOXXul1cP-5mGojl>~1eTw&-F~&Ni>W za%}a;UQoaROXnaWi%*{dicivoNC1VAg3ttDdv!kU!&Zx5r^m{b*Vt7PJL~7QAK8BE zl0l{q(Gbo>l#LK%`=>0VtjQjult<>3lGi0SSKnOo_uzOn>NC0-9~ovWA45%7D)yrY zf3?)=jnFTCRWwe@#w23QIvl-(ccc;l#_J-VRUC|sy)2Eiuex+0-fa3^*rWaEti-VP z82!ui*0A*0sK>H2S~`C7la;kC_IjzhaaP_@xqW#Hog86-CNrN*rP90?%%|=TpmXR@C+x z%PY{VqJDDaU!p)`Sv8oe5zpY7Xiwj3$?tfkK-GDo1UaLfE;c&CLrkA>wrA!Rqzkvi z5<%>^6Kx9D`ROEKaz&j!mACIRan^U8;DESk%kpEY((qySrauQ2>7Q6IFpaV})mh4b zh>8oNKa;>gKysnQ$eYg9j`7Xadb2wgJw408ujo{OCyjR~y}TWvhJFGD~;e*p;Y{8&^T`w?FFvouZ1zRWPACNr{c*&hbosVKj`AJc{aLrswHL+f=M4-*Hzbcl+jZdOyLQxca%#E4uFe6le#k*Cwhq*2xoI>dGSwpyxQk(b)A^%@C*{GEs9!~!#Bc5iHzfXknHTU zozJn)kM>;;>wU$v$8Q>Ex}dpA>LG&|=#Zbx8zJnU`q?$<7PV{ZcmdaBkZEl0b_M6A z&a%W4F=fq2v{+7tZj+g$GrakU&E8g=xy_ zpgT&UBQ=ewfd26P^04bUJk1?C_j|VVt?=meEES>Q-t1*{&Ibu?Moasco`mmtouuZlfj8) z1b23P9At|i{Wwq{Iqh=zDO#kLEwopel&l%_vT4rCw~)`2)QIh~Wdd|z0|F-nj< zHA3b!3!qL$$y%{D4RMCc*28qksarhxRcT@4cyrf_9wMx4_xXP2 zmd^S@!2iW0+kUUugCA6bJ9FY==c&srrEDE~s=@0xOIqL6MG=*g!xbpu*ggg(c9 zii-+bna_7xUWrw3Qf{S^5$b0mqk;EjKy}D$+xJmkQJMaSpD1D+F1Bn-=`fuJE4-wb znow8o>NR~}L;;2e{8y+nM6}lr9S0upNAyLkXKur6x<(pcfg7UQE&I!?=}ND~+h8Dw zkpdT7D&N#^EIwID%%c5jF6Zv?l3+V{J35)qsHl}@JHh>_81b2bWsl=X`8&a)U|du?NR+|c z+yLpYcqKfvm@80ID#d~96}g8KST4)uf(VgJJ+oArx{}CL^a4wpoNPv&)(|(7_VD{( zh6I~o&|LGCzl>+ngu@^$Cd0H#j6B(YE;UMXG9gnWTnF`7pO;?8;;u|PwADo1Uw#Wg zH1!HdZ;v5V(Fp70a2sNjR#t=Sb&i*%vru*B@4Xd3zATBDxM-1Udx6DS9x&Hs&ImJ2 zZ5)BYq}zuqV+6-(oG0c{qsDl2#m?55&oH6iGwCt;6bE_hO^zR4qOGLD@AeZJ+hCg( z+h7M5d1LqiVI%xOcp$o28rFrZMW*QP)@PgK8-dS0qIZRxuux%#J|_RVZsh>91dhN} z>$psqfJJgU0c1kZ`HcRupZHfKd#~r?&NcG=WI-fH4Vq#XM56w0LGHFo9198LnRB-H z-1}TIq57^I*w0E3`6@XKq9_>~MxrrZzMk}EsoFIb8sqcJvW?{GIu&Z17X{*FozzvE z_o;sIh;MsMSlZp6`fIW501w`GX77O^4qWi10T1GxUM?K>^byFv9Kyyk&df8Rb%J zfg-UCvl!-=6pCP4XE=dv;^BtS_V}V+NIF)E zbhJ2UO?(^QV2^_%_qsiI0GaoYsoW2?sJLCMmhB@x=`MvW3qdLWam+0jnezhUxhSH| zRC_+|5X3arLd%)mx=ryQo{=3kP2B8lzTGZ@Te2#rN zLKhZ{+w4}d$ksRyA2v)lfm{byV2Kdpr+Bj9BaENe?RY1c(pT;U1>e6g?*w!2ATIUU zz%i^2OaeZ-lDk$JBf>9|9xt{AGHym*P8Q8ap_zmm)+Z_Fmr2M}Tv~6PK6@WaD zpbeXEA|*r{A%vlrD%$eC9|mB1P_x+9Y3H@S(=Vy_`v!)JZ1?0*yix7Y&0Y{EXD+3F zS@&@3@?94s+JW+ZCE;?eq2bmLr;_rkB2 zL>;&ib2q~b?Vc$!+A>7fv7(VnOvJv27!-0sg|u{rGR=Q?2N!3c;IDs7k$FD>{F zoLSG^HaXK{v7WysCdp+^qbCiQeR4Ge+0^VJqe!?giRI*B+q7G*d)eCs? zig8exzIO@;mGn>&6As1rymrX}!p2+J!k`UFzpBoWV?$aqq7uBSb5`(=ATlsgYN-pW*vKFwW z;pP+vrnZD;%XA6+Ax=OmUtZc{XCoV1=w1q?4BR~HjGwuR5QfzpUZzku1Zwvi&qbhj zkA!+3z>ChtMz>CLM#3hn`wlRS1^K)n0wo#kv#PcEZ+zueBKj5)vbXqr3{b)w0=YUu z>7D=EYxd8I1>=y@yb_4%AOO{p{z9gzlh$rlJ1UPS?J zm!oas?UDdb@^%FYv~$c$5NN`LOJXlgfMoM)aYXdi4$7J7kwVBret<&YROmBVMuNTI z`IUtaKhZWTOQcTwp)hpz-klT6)1`-xw=e*6DUPuwjZyX?EC3t2h%CdbrAp=@EhJdX zOAo+laRueLSXG=!G@O-R%OiRCvFh{vbZ zZjEQZ?npA#22FVLTCcv_bzb4H2I;A1*2Y66!b2u1x|wZeHcy2}TZ~DWj6S~1jUVgx z7^==FH*|xA`cj*83ipK)9>nVY?(UQ)0ZSn1P~nb1_J+a^zcbSL7FJW*b0sRv4dJ*Y zcMANoV)s0n-3lPANV|~2i5_CD7JkI`XhtQlS@(PK?>ctR6?+Bok{ zP`o@e)amGc-S`-2n)V6;EYu0}3^+vsL4B=8&UNe3VPwYFN8N?uK|G$z?jO z)ZBSGlMCpqcYcNCcK2aGtRqzHDsLhSj2!(G`Vf*U2rolbJ$PYkD}1?Owkx(7anBjPU_C!g^%FpTUV=tpx$Zm* zcin5vC$FVK{3C3B%yO7+f4cIfc&pdBHbO^5{6)8i@gl*`3;~sWNBB^oj334)^o!Vw zOi$G%E{H}OZ^>Q#DOS8?&&cZ0r(3QALqt>&XlJ!V*a+3BVV)T^DFELJyX_|&7@zPB zrL?`;JWzFoLzTcvkroUpu7K|_K}>RL{c0)fJKjrp6;J$G1#EoghZYSaRc7W<=C5FH z#hVHbb^cwO*dX`>o7Va^)aSTWE2W_CRd}C_v5H_+_PLB%CdMpfCZ2a&XhNs)p5qp4 zN2PP=l5yu$+`g8wX(MAF;;*A0E8O+lFdm#V`*&@f?-C=<1lX1&8K#TVn%*RUCP&X|)~q{c&9?iIwLixY z+5a{ah0wO+{&4@Q2ovUGTgNrbURCQadvs?xyZo>tnlTgkZ=T%45x4LYki%FAY#VoK zCOTs#^|!gp$Jw;Ejmfkgkq~c(rgY|AFC{7nIQMAnXGWOGmfbO!Q6`itpZD>NOXm~V z+0M9oqw|kw2^HY+e_i7bV?Q!~S>+!(nnr4b_s{3m6(NmOEtg9V8Y3@sqp?CAXRiqT z1(;crXi9-H-2J4+0ApT;S$?D*I!yuMN`a4)NIrLcChp%@j8xsa2?0BoWGH)3)~}r= zczCeI&=#4I)ph2?U8T`eX%9crCr|51fIzD~eoRW1Le zs*O8w`wXhGsLV31(q4GTD`6&i)O5oJvE@~sD*`A4KD~J*i4fY3PkVCndl$pW^Zald ztz-w^0BU7rAaoc(OLVPutl%~cpItP^9YR^-fiR5%Acc(~rQOe|pLyp~A2&{HQr-rO zoV^}CKqd<5-oeML&hOpcP^F+-%{Ipb(pQ=m#+D=nq@SIIt?7 z8zhzZhwa_F?2WG74V2maZ?M4zScGDU+i!h*(II@V+l@eFs2(-xgEPL&*x^(d#d zKo?a(k-il6u^i=p+pEkTgrAx;X4TA*o|PytO(RNgwCXXx;M2BpX^(ILA5j!_l}6_a=+D z3B?JmovC2jx%D7`F9AhcY(r1&W7@9;ZRp20hP6`@C2oFl-I09dF^!tq1LUj3#Qk8> z!M$ATWVh`b9NuL#q;!~OoyKnQ0I9Mh(Cwzz{`?WQ;j@PsNZYG}Bah?*0lhoS6n4Ei zu`sHFp_*#OT)s+z^>i(US?D@8IQye>3Vsv+^k7u$?b}z(b@g+ACMql4C`$1CHX8we z;i=`4ENejDGP?lM9f5IEaJFiU@Tq1KGsb3@aJ&}k;N98?TAtK|4Z_5JsZ8_c;sxL5 zsHIMK=5C5hc2&xOmLVsb=!`c!>Vvq0iQr!U+ugN!6xp(#tXM8pw?Avlos(zKyaZAn zPg|lh6qd6rNgi%Dh}8SP_%Qy)5)<<>j^2Sp77rk!>whVDEUZlxfp+Dpc52Gf|3DNI zbX0WI&<5YzxRc57K7;X_`)OK(^yXmM7O(|SnKV{m9XZ87D@WL?P;D&-c@_n>=et3NO{Z_~7^yj(nt5?8>AP35b zPr6V!h_8lloA8E4JRf@%4I!AxUc?=^@CMRD!lOxvQ?Ss@pgzT3}8@8RPHz87s?+_WTZeG&!Nuq3)~Qd>C-;-^KA|Kd$$) zJJeclqPJTT`7?m60dxo9KhEiEVP&z{qc&kZ<@qCh znn(`&__go!-adURqq!P?6P1zi$1)O;+0yjRn4}s zNI%aW#5ldSD0nxKEb~KnxwKqF)k|pk-Y9h`2oVP#xo3H^g8Xf;2nJf@>KK% za+ylpW*6II?kmh4_%@@MQPo1HnH3opNtgBO$Hddq9l7aW`r2Tz6ROT41aN(!q~g_5mOOECXsgoi?>7%PbyLV zM6(=J<(i|$T!%=?^M>V}FwZzmGAxjmhZ`}1tawz_)75~F^ck$v6k6W0 zvGH28o?J><0lcCk#FdSd_6d1Rb&%3UB+4ks`zcG?-FwTsaoGYY)CG1 z63DbjePY((uLOip75ey}9Ye|Qoe+%OK}TKCE?X=MXV}qwH$7~UCHKwzc&W?nN8J9^ zZ@<-U>!l?P`U06Z??Q<;?~0i>@6v%c?;4sHbvOA0ZsCDUE7O1icUQ$k^aW;#DVuzy z?_darPrfnLfP4jT@U!s>;`syqwA@SNB!9e zgM>fD-a>|zP#z)Dn`DOcK~m9Ts6jl0h3;U7u2HU>pdSkYUPMHEh=>K_Vi3u9O9NgM zMJks@M2$RU(C1@HIeXj*RmG*&) z?cY9`6#tle@z?&rUk$4No9&{{@DbzVC#0VK@$Rwl?%ttpv-s3xEu+Dq?(!V$fuZj0 zjO@7KA)?Z)_(aX5;_Ud8 zJ}+|%GSahl)Kk@vu?kK!kZ?DA==*GfB!LBmX{rd$6CMcUxnN-l7lKK<5-A`_v4UEt zSDeB{;P$`>P2(wA5dUzbAQ~$y=*avAO)~MX({g@i(f(SW>{ei-n+xdc|5pOce_?Pc z!kT|>!#~hB^&^d0b+mVgk1Pl|FkxZ1v8`}STyvIXMitg1^au$cFs`hld_m??h0-5| zPdn{g8=gCxHl9q2_cER;_=|j170zY1W3-eM4l+DA&pSPR@9%BbI~dT_BoMcVP5+CrFFh#U4noBut9D+f^3(!r-(CehP9dmInX~;R#vOj^_tRNBmxbsKKDEE;n ze4M2cezA0a;SFqY-nD=cj@XDkT6NPbuJ#n1Lbfq<`a_tzRv+zd=9T9;_12pD$(b!j zR*I=pm|s%0Rqdv=@p_)wq0)k1`9kUZ?vJcV7HKz16ohRg2R#sig$g+yn-mUN1XRpH zL5;wK2@!Sv)Ku)O?w}g2xwxIRc-tUS$Fcy8%d~)n%b*ZW^7cSlP?8E{ZVM*ad3c>W z(4Tj7@tJ1C6DBv{(W0ZL{odd-BbRKl#jKV9Vu0|*058dU;swDVs&Q zH~`X%E2IomTjLPH5=WL=yD4>elzHv$)FQkpXfGhw$#zC=o;8i)vr6jB5SSO$7Sj`% zS3ucIiGh&ufND6={561jGVDPUK-o;Ptpc6Bb&UrL+1{-QkcJC+5CJ4V$N&}|Bmhkh zp8)p{-yq+V0Mu|{57K~%hrrsCcG#lxwEm;UD^?lGDi`wappBIoM3_Bc`|C7wB3sC4 z)l1pLEVrhv-j%Wl&-HDvct%0|!zdCm8jQ916Sf*PdM^V@H>qC?yHmG{Yf!;2zSCeJKJCRsRe zl}@yN(e(%Wr(g9m8+$p&5Sf{06+VJ|Y1MuoHZ8Ad=8cbAyahH%6g$QlgvPtDVdgXS z*kcU3Y*ntYOvQY&+8TD-_JDW1RZFr3jv2%39Vp>O?vB#LW904LNfUx%o{^Ym(JnFO@T!4zBII{ zNXb6a>7nY)8|>veJf+U)T^wNMsa<^Ib?xI)r!>TeR~>acKg~(pnm@>acYi(}&S|h` z;|Xx2yTa7wAzi4hgVC*T-TtI;LNet5-&Ur`BlKPha<>b5;zHb8Y3?N6hWjH=%+Ige z&K0KDrG2|qN>sz++dc@N6e@^l7GGq_mmY^8W|7ulrnIU&Ej(j=enj`%)xD|%DWy}_ zb+M%=)X;ZqwD-U9zzZQ7>b?QV7yB@O7exGz#Q#@pQ{4*4zChy-$2Wn!bOa?Mhxgw% zgsX|aNlap+&WV}6u#}^kEQ(o>=u1+S{unQC75tQwY4MGkwP1r~hH&mkPip|+YA*0O zx?$OKg5UFesSOsG`wt94HYxOnn*AXiq#iW+D2&~)dJ`fPnCJ~90Hn~_KSQ=^BDhCK zLX3%n#F-g>KHw>Uv(Or90aUP|`9ciEBMhLH)v&EJlYwOMuq`WQAJpC^z-wlNKArR= z)~-#3`7YZ86D*u{X3og0%xVLBrox#y!WZ+dFDXH8*~D>pdWIpNw76?sQ@p;+JM)jt zTDbCa^E4IMSS898sE#hC?KlpOnNVsZzbs(O-_w0@^EYHZ+F=nNqcf?^5*_&zK&K); z=5jzsKbRT1V4_MDYs}g^d6cT?$EP>da*CaFB(oUvgY~9$RmYr)H%%9F&o$19oJ=Wt zi-SZOb6TExmFZJqGj^qi>9<2WCH5NGA!(u}T`0q6?avUt8A4j#@yYcABv!oUsi`!6 zVG(UE^=W+QbfqW655LMwFh^Rn)z*SM0lA;S?WnQ*OFv`L^oA&;QA|4%Ikh@?Vhzw0 z#mq~U%V$;EOCH#Ml`UJ8A6kmjONh}>>^6&hn$7&uJOc;g#Tq0H@9Z+naxIZ_@-X*_ zH%k08*4$LpOg^61=iDLL(TCi@sTvea2PKP|Dwm9mMf%*!4tJ&k|RJ1DrBUOeFl#$vCi|OurU|yRTiYuL_M%&2jrTFD9H8=3v-b z>`AyZ6NwY8rI$#05;b&*ObBfqiktOa;p{kLqKv4qm)WB=+9%aU?T^Itw{+6B-i{59 zj_Dz+7p&96<+1D%J>pB2&(JVYf5N!NHF67rI&-F!8ZlZtu^OCoq6&XY1$<49P&2IE zLan!UH@g3bb4ok+U3AGqoqgkw>D90c^hac;v-gu-@7rQvakHB6t6ZIMEh|o&%Jb)v zAwqN1=pj3#Y%V?21+Yze7}V~OQ1k6okmdKFo8ukPz6E8^n4^Un#JwR&=SfZsu??u) zB5EFyozq!a=dfb21A*440eul3p?h6RI!8YOVQ$8Z9WieGqLZR_HDPR1DWe2B>RijB z(Ltt9b?H)&BV;dMeVBU7%mUys#AcVRkdP#LkzAQLLW1vYV@e1>$Ob5y3p0rQ-Vvs`uax zvGWHB7|wUb@`$>iS7BotGvSXU2h%c%k6w+*C#qkxz7Deu9Cl4BAU`AiwT3@7h$rF! zB1+T1Mg4DU_`k`z{)@;B6oCU_BqZ;ddilr_n*uc}ad7_nFz^XBRK#$LEHDzI7cW;4vPA$*}*dw~i24)=D9xIbCCG1SXG~ZjP+&TiR(a zIjw>CrG(aKPg2*+4N$25l~A*W6qPvMK+P9zFjm!55*%stnhC8IlS`TeMda4k4&aI* zW41J(cr)lj^bx@8Qq-~USb3gr&nJ@FuN?4e&>+JS=M)78Ea$6Iu~=y>;bQC#w6rGhn1L27jJOIlmcE?CDv-*&a=ov)XYsgD~4{ETJ zZm*btY;hes7Od8{Y0kd}p!D-&*KZmA(tjL)e@ejhfD&+|3>)p4LM1DkV@eXu{0gb= zg)ky-6fszk4dbtUv`6H+m48aWzYBH~lIx2QhTVQ%S}}D^Nj=Y=V8r4Y%n3x{pry(+ zGlX?PU7^sXaD}=XgSryAiJT(9v!FzLk{1H z7aOj0qqxHDDt%tm+&vB@Qcj9nB^bo|Zpg@>Fm|-a3Z@gJ8&uezDb;FeCN8`wJI7`8 z;rkS-|47uAU}8k#uAwrcNHaJK zat{YKtcl#@FOjOw)VK;3s9+n;&op33iR^?DxkwxdIQ4oLB=QnDr@fclSC!soGC8T< zG@E^vk=L|t%&P8u;fhUN30E5Y8bM>pY}6il!94Jh!`KTzVK{QF5I-ZF1s7N|y-1d* zWs!hev}do0)zl&TfmmQ(J55@28f8DbOH?yE|0Iv+(Q;O5ua?m>I8_Cr36srxP?j-D zQu9dc@B<(TG!t6rTSiEDyqe9j7UC;#&{cn&6j|#wHD#E?z z{yPg7MO(>Nm}(F6%!BS(dF%rq&n2))Xxx8s)M8vjs#Ymn=s5CTu#Fqb%rUHa(w_-N{q z)BfwuExho_XIdC^2Y471C9>G*YQK74`ch5hnp~qqVm_wP7xZ4;JS#Xjz2&cZX}P06 z*d>$P==qk66z}rMJG_J3w>Zn)$B{~xZF-QLpD;vAfullFg65{88QOC961lnNx!APeRqlPGPBu;?E09~H346yXYvTjGB~{Cvss{Jc`gRLto7 z)luD8isNn0Tx;uV!Bjc1Y@2$hSpePEF}WbvJNOWn8Ff~kMw*czDt(7vVq-Rvd&&>2 zedKhb+FfZ@aR=L!uqLwv48Vnpr_&y?g1V_S|C*L?}_Gr zD-!-}b^WXM8v>@mQ4%?z(eJnRJK=w5zlVLVKn(mA#XRmLu_vsX3i{QLIo5t=U1y$q zIgMvLJ|3^Q)f*uYqQQMmBhCE*F#}`9G{QW1sVe-zA<82P0wPm0p^`ibsQ!k~b04_O z*a`F}(syj%)>K0RkPN2zGtF~zaOtyx&pQLP-&oqDQ(!@jzqQ|6|3mxzk#y>}_B$Lm zEj3c3MIHMqHHFJr^S1Lwqa(m|0=tkz?IOYI*vysvsVFoj+TYDt^dzmNT~<9OlSS;+ zd@W4YfP4DA+#lszt)5hPMww1wFA_=P1fb^1Rhuk>Wz8)A+g%V2wTewrWdu21s#n_& zUWU`hN&qSPcPyinn0=9Ud&@qjv{R^+&>}G&yW=wtn(Ps+M&6e04IEy)Z>kk}WHXk}GvXRMXSwibigbT1~ zTrZLg>(dVN_RcgtSXDsS$*r|uJS96SW>O2G)Qk0+$d_vAM9uTDMJzw;DDTOUWNsQ!9w z(xr*~q-OkN^|5oCX!FEZ4)sVmS{6cZGNS#$Hl1`dFZ+z+5&Y0LuO-I=tFTI6+k$J7 zpbhl-7YGlNztRT3*yl%Q%qd6rzXk zp!Ay@DE+3&RRK-3T5bFGwT9Cv^bGgrg=%WDDtvzM#*S1L(LwI>v;v0+$4_KB5_hch z7LlstimHrL=t8gE6vncukeE@|4X_}_%gyj$(~v3NAXndXeAUe9<)bQLU--oNjlW(- zO3U^Aw!jiO6u3zKQY!yrT(kJ^`O6X(*3SQ>wD|AlHgHgxy6Z;{iI0taySuagC=wsl z{!noKV{F-WT<&b2?(1yrYWc@7#;P^y&nJ`2ISl>>t1O{~-6dDC_+;Zs4Dp zw$)NE7NVX<6jN+!BYz$O8%R-=V`CSf@+KT^X3%nVG4p$(jOgm#_yA29iYQ>TjktM$ zbY73UBC}+2zs`LCG`m?_6Vwp&C5~oivre#gL%}#pJ?V^u)U3Tk8sQ)?><5$v4#Js| zoAm88#?Z*bS1d4MFX9I2jIk-DQMQilcq=u(I6mz>Hx*#Q^@~x_yJFE)==pSiPoXrd zUOEk#Nc+VpbwMXX@|r<>KEDEoI_50NMAvG(C$SY-6x4mMEg`*#s`L8{f{)zQ@imP9yKQP-!T)enys(uKiZycDu~AWycQ8qRE@ zp>&+am1uJjSZCjGNjq5eq>El{s^xrTp@k6Gw!aH@vsCW?_aRthbIu7@MJM-FZA7nIg&e>z|*KZn1 zNo|r9_?5f?*I&ns{`D*QKRAWnNvw!ed679O z{4jH}254g!-gdG{^qkf3#2S&M*bp<8@Ht`;;qk$%9+u?E=1$CLKy(1i%bQ)Z>`-Pf zO+6-fRYy;A4UeiYCvy=iiOJVXF_cxIweSGuX(Srl28{p-|3dL+$agnC z(X6jQUs6P1wRVNz&zY}3Z&m!Gm0}Jnl=--W z(mVcbqKjZL^>s2Gv7grMf4MTQ$ z&Mcm5SU9236x#NJyo|a4eD4SM$$V&e$|AIjUrUI5G;zjb`Z2I zP~~95V$H<@-^POQ15NznU>?^uX=D|aTq^12%$0?!9Tyh;XwIQ#FgueTPHFc#xl?eO>5DMxsVTX?g|h`-Y{Ad>un@7?$guev?GFf81fE??jL@QbapEPVU#NrlrT0?R>#X?I@w7s^q!>?Oinz)x_fqd zlcP2HkO^-1X)J3FYwWe4BrEVU_HHod7Ux`aMD>Hi$VpPRlN@py-OG1rx1tR2Q8vac zriDJa8(@j#mznbUIQQ~8I3UZe`FUnQ>LD}#F$zhG8%r5xs+JLL0_6#4Bk=b9P?*{Z zHbF2^H`^S=d^&SNye434vQ#w)AH6X)24z`Dy!|ZOJ(sM7>@K~WMep7Tq-sJS<`N0n z#0+cNW~;F{q2Gb)s-geX%$n5aKZkV~4Re?3xwrq+LyxsLs00DYOt#(b5Bng1y&PiW zMxFgdl=RtkjW0zR{pAB9tvmRE*o$IMG!xDCAdHW{zrV(|n(2plezaJApncw~c)q`m z)=iPSsxXEiYPEo@NM)7^b*^e2o^om8z3WqpAG_sGVl2zZ8LYq{B@mtVj<|Y_=?z+~ zCJmjsjL46jD%2;cGmdk7b-lVT{&CfoKJX>DbLDC@yL?AV9TC&)SgtbYm$DFDMxIw# zn3Kb?x%=LDuiP%d{sueD$X!YoI(!V9GIqRksgAndBJ@vlpG$T4fuyGI(m9J=xdX6Y z8%=P}RN*tIChj71P+R>eFL;O7{DrN{$yDR{`(?b9?6E{)f*e9<5{o9Q%io-M2>0*WW(Ls{_}r_yLi0?4+gJ*C$CXU@W~|ykBX&Sf z(WW+LX_hLiKz^zH*%w8pkzF_e9VSovPTfE)Oug^p*I+mDCsuFiK?PpQlFjo6$d;dj z&T@5XI&S50nR9O7HL?;<%w-3QLQ!k(OjC9kvS%@vG(EZxllBHiv~BO%z%fTORz%)I z&NBVErt#^XW95l?Oy%z1Oha>gw{(%%%HM>>UR1bfKES+1z9ad=go3R5v4mZi1%p8x zFx%8Fst70p`l9k6mu@4F73esV2*SdHN{NNYqD|P&CrifRqgUpkZR&;cu2Rkr4x{oS zmA=S(4)#No+2#>5CQ-w=q$8EfLpr;E37O!)6spjiT{>P%ruJ)a2|oT|^+?JtwqQay+dutH9p)}MYQsZV&@c7ZR2Wb(%iEkX+cYopd$bxGg%;thIuEm{FgWZ z0!?=eVT1`q`sdV20WG_qG&uL(N>OkbtT_!uIB(Pdk;zL1sa3GFb*>mfqLx8(2;Uaz7?#7uz zUkYAM_f#X2Xu3H6&{&(ckC;?vpN#ssIp_7ggP6@)@7AeT>>77At+d)8tnv0Y|IpE* zmn>t;x@S8h`miaH>KT{8Sa=b?hu!&+Unm*CWFjzfB)^|~-VogJ_OTt5Q?whZLl9Du z=u%1kRpa|R8BSjKhg$>D4z*dB@(L${Sk^4R(IOj<)^q_pckRqTcNE+&#PlRQEQs8V z)(A3`uM>ukcWG-U@snr0^K&U+GPf87w0 zq;2=v5Ez?+R_3vLdDt0rUw>?6WbzoRz&|`W)Ar-pQPQlkT3sMtl{Z$hRB$gG1nZut zdh(;A$l@?XIfy0V(6?vgSQu%1WJ@$f)ysj<m$o1++Y?z5;XWuodkyASogxteo zxdPT-Qd&0+_y7T6EJrbPyTZkHC!peP;uULQ-5LQ-4GqhB`?F?k0=i!|N-Xe2{DkO} zYn1b#K1VdJHsnDKEqdC(lWH>yYc&5Jkd{c z4Vam&Qb2sFr7BuByF#QiiIDA=`-)8e2QSh6C!_7n&f|{{pHzo81aQ8D9#h-)i=U8& zJWu5EiYejAs_37b^F_}u3Ke|`l|l>Dw8xqDv7MM)#zIkzy6*iyVp2QnK`aeCLs#;Hx755r(vV>bRr7@k@GT>|peUTgT%8{hLsh z;Wb~E8(4f#0TdlUmVot@fK1)W4h%_wKK94WffKr}lX}EcBl{SWgCOMa9-GuP{} z9hP%N%23B^h)RnMu3nyR|FJ9g%$zGCe_8Oi1#du3OlEheF*54#yAEpOj3VDiV`YKh z9oQ7=dMd9Cd$N<$Lw=obLdEE;KqwM4yHSn?DO9#Um0`}k4Sr+ntC1_(y#YGfpDsph zZ4X3C-FxF58J=7RzwLL0d%2_F{z)c0T77Qp5pG9xax_j5ufMxa!9lVbN%!DC);M zxx?baMNS7lQ4vZ}`f~A2olvwFT2EoWI8W3dxd<=H-`LALIVIjf znTdx@Bt*7TwuiOjsSE+Nyf$Nei=#zRs0m2UJ~OwvG!wB3(0%u9UV}@iBq^b`wp7AQ z<`(F_t7!TosYJc2G3|P66Q7OiU)*=qG&q#7+kx)8r+>Kb(yaVX_uXiv{v;*f-tYXU z`~SZ}FZuridU26$h5q?(pcigWv;PBnSsTc-=k6WuAIe%RyclKZAB2OjqL|~?02mHs zLQ&6BiZ>}}YaY;VPPkc>_75pZd)3ZN8)U-_8y+vOUx zcOX|^;VHIOwfodzlo{*J$ldbOU?nz%$ISL8G${5ul8t-NKXI4%I7s{j1W^JOwDg;^L`O3Zv5rwM55Tsy5CimsIqJj0%w2B^MTo+wh{n9Vv)-!*y&8?0}|FdQ0k%AV2B)w)W3UaxQ9AfFdYx_fo88TM^7 zi#KsGY&5T`PYmaJaeDB@e%fXrVXSCO5y8YsxqQzf8?JT5aS0G0O6bjDNd^q1Fc}`v z{DKxa%_L&eE@g09BUF~Yj-M>`RXX=o+sR;ZO>k{4%ySY?sp4F(`NU8uW{u#bT62~c z5r#;pLcrl=Z8S2-(FnDYU1X?eLMNQ8Id$hT_-R9nD>~XV1V#wRC%QjRemn4NNQbZIc56 zi1_o~#IEz=CBNv;PmTwVd`aKsz@xPJO5^?U#|QD^Ww{GaM5p;v$+sNDbBaQY$qUPX zn%+Z)Yu4hHdms6_+jobR*@#AJT!f7P#ND)U_jqmD{a)8T)#t#1^qLE_fmQb=>k*X5 z1wW0gkgvaL^x_na)fk}B$N$@h_Me8!pFPg{kdTuCG+LJm^_&XPOb>Zr6p);3^xN(x zbQLWzB(cVVR{-3u3JUGkPq^KXIMs_rIzSP@*l054K5CKGM0Fq+1jrSM0}?fqJO#bm z#4Z8@ot4h?b11>0)9VO(@8{hS%eF@7?>NU{N}#jHpx@-lkLi!h8KTWH2y|Xy%5WGB zntB+!vxO>rauh2(2|QSvtM8?&{EL*?*$UYuRY8r|jO1A82I-?fA|X-H58@Id*G-?C z$_ckwEJa)@L`y4YTRUNil+<+J0d2y3K(KtY!VXK;eK?naW;CTZb6kCnu|S%HvTfY{ zh=Isgk!o|ms}#*M9a9rJ`wgPxC9@49u+yf5*4@RXeq7e#rEI#=juQ*U7|T$-fsg5V z2r@+T>Qz)aFkIhfhtDlSKHZ@F2};%T7$W5vxu4E|8@Et0lPOQpTkrs51!fG)z#4$4 z?z|`$3pvvf=nWA!T-Vf zzo2&izqea32e}6Q{G_SG7ZC>;21EU5xOQD8F8TT3Y1y@H%PGKhWAvr?&`+?ju&XdW zn75X+VL?~K9K9FN=otYIv{7z`7Qb6@mF z9i%w$h!X*|U8PkDtU&M*57gkuswsl=h(lTo=n9ruzGQ=1D?_4U6M0eUU@qU$spjNv~hTMHAjB4q?qCG{Iff{SK*Z1?(>5_N~9OE69vX`n~n_)Jyn zQ)|c#bFNVS;5M zq>J)uo!>*s)`%bt6xL1dbTchz`Q&~Id0GZ`)CDf=c@OWqKdU7;x{abE<0EnLb1~J9Q0fN#u!Pf_0)Bqpukre zbpYR=a3b!GOSl;CGWasFNOka*uEhalhjwG9T_aiYRg8XTc_$%1!>T77dS~AkTHHhe z;dAtrS4$^ZM{)C_ub{8Yit4}fmE{WEZdw9NKNN6?{_zPo*cs|t{{QK=fa_#^rlTZh zrYC6_`lH!`Du5ywqG2R0W`;oY<(;TDFBv_p*5)6Gn7}3wL_kPD;B>WgA1saE)BiRM z8YGrn%m5e$HG}<^2Md4%{{=hdjp&M<=8%zcT*=s?O zp|&}afM>W6w;!<+8CasBR7PQC4lbzN$Sg_xojW$IW@)xO&veF&y>=(MY4^Ju^#*b} z#_dCg2hFR$8lir2&%xx7D)~B#ntZp(X`uXwkuW+y3FAHFc$HsTNr0?BU4o)6)KaJ(=d&i)tAz%DU9_M2e6@lKD?Q?LbfJGbd3_Y)5goSt=ZJ>zTM&>>B8lg z-?21}s&rXCbcbO)aqCGpB;_q$lA&i5VfS6Th-}D-de~I}B|ytL<13H4XA7WfJh8vL z*EpOiH51zlZk=-W{p)S4>rDYk*=*&!B74F1ifCq>IAORel}Yo_P@gF2!AM^uG$Up% zOI07V8yT!>`8eAne{R0LAf1NwoWmMSUa)-7eKJ9a#~G4b6oXP2XoaC!)APLe=(u^R zecG($NfX9|I_mC3_&~9QAlT*INub<7V&r$a&Teju7#y7Y-Un2;J^Ic((z&p2184e1 z@-b96=PWP<&o|v))nLS97e5%XXzJ#2W|*;IU5Y#6MQ`z2w|R7ZFRFE)Hjwz{T8f@W zn6^r=e^!hW@gV=i*8Dwb43SYIeWOsmY`U6V$S}sD^m&?*%G_l)+Vvc}LRbGG$Gx~q zO0$R9lk>gwwp6>Hn(SM8g65>_!h6jw|8nmYb^%U%f6Q%z8}|Av0`J0_;6+hIo=)+e ztINkng==55y-|ry<{gcbOOWC2fL;$IWH}CK@X77=9w^8pY!4_j6m7c;%l14Qwe2K7H{0ptM`?SAHfbIO-b+d;6}gCejS+4d4I=vi#ZUDRN_{gxaF zfwafo!8W0tlt%C`XupODEefdCgn)SN-Oo_rpM2!sUPsO~XG4LY6s_^sPz@&*d`LA5j`MVi)JjBdvO-?+BHt+tR zxUF0CQ1H*&G}AI?r@LDNp*@~Ckd67I8W#tYeZ@clnH!pWWmh!8Aub_}kpN;WkS?Vt z1m7sDq1U96{-gu;@Eh^LU?xV#&jQWD|LKxd08B}LH~u5!Mgi3sWNsDQh6jEG9V|48 zMyOf1&n2f92x3#;RcTabP-jwNz0#ln_$myrBp*!8ck~$UGuLavq8OVv9IPq*^tXgr(l06}&kx5{MDDYM2F?AMtSvvZ@k>XBQW5Li*FZQacYeobJ{Q4>6;ZM?>?Jn=?2ge=qyXs5CHc*p(Y zT1|&g##XSn$|cHL-^sCDITD$2Qis8j0t3wcOen^UwjvQvlLVgS=Hq+1QGW)C*0OJv z<<>+(ER4Y+>Y&Rb1glHaFuG{&DPlO!7<=y`pzVSWI6l1mRtrQWEtbUrEZ5Zlmh1j8 z4h9&wn3avA!!H{a1uEwDtAfbfY56fH&D3HV;+s`d9Hxj(^`FGW!)*3;lxrfs7fQJT z3oSQ8)*2AA+iuBpqpkR2Y+*6JkO#J1Ni-TnVa19q+^^Z6t#>@%@cwwa0~@Fb&e~xM zq}3-MkPXcXH%43_;Yzw-h!pcc8C-lIg@xE0s0ld-7Kp3vw^3A{_fV%f41;F;R@qoo zAUR%|FP^Ednt&3hZ@Oy7J$|*oTsNUV1u>GyGV7|QBz|mhW(&PaOhQgp^|8P&U72P7 z&`vJImr;|jy%e|4`-3R{730Dq_Iofz$iI6YaJl#_Ba z#d!KjZK_tnsMmxFG(DswWu9jj-eBi7Gjw`Qp@%i}uaR zQXQ%ab;=cIhD_^q89=3Knx;qX2N;U%fei-Dsg(1Dv$$|!l<*q&o z(bPlVtGhyT&ijM6^ zJ4@+#^&?Tnp<19abK`Rb`y_hdAWr9crace;d~bMR8-{s3NfSy2+0r0g_dV?R4ClZu z${B*{UZv$($g~!QjbI}N|L&b>rSN?{5yGJ@ncTQj`*uib_~+b4qtCgCg2btWa@{rN zYnQO-RF3Ot+I+K+8;) zT6r42x&(Tfj+1np*Yn#?0_m0h0&AfZhd$^KV>_Oy@3X!Nz7&vpmz+21H5abVldR7s z-Dy?vQRVU$$?(MjQ@+P)aB3%L!t2d|FW4VJN2MN8b1OeZPiV~x83mBF)7Peu)5SDU zojoMc7D>2y$*xti_~LDe+8|xXq9rWFRcCzy0@Fk1WoVz}?T0?(Pnc;<_=;|aX|=K- zdG?Lzu-=5|g}q{AJ+;u@Rmc8Fw-&xTN6FHR&|l9r&{=km(*bgtF)*+VozI$@yW4t7 zyP9cs5yKB}UdRm&b2atQ`O;$O+~H0$zN+JLGRVWK4(-N5znSMD`h=_6B*bwvgIP*@ zT5`E$uB`quP`*U(A`JJv(~-bEE@t(5(DxnxCB^k{<5)iBL4rniG@7q=r=FIh`557G z9uaMo$^^TLQO(z=Su(m0>tn%SbNnQtPN#8&RZfO_UmLJ>Se+}OtRbBXd%;Vzcub*D9`=y9ODAt-n zsMgSo28;$aKkv|DKRzCxN3$Gw3x&T$b_&19WYG(Kjhma8&YBYSN`F*NH|!ZG$>_Lc z&1X%PKeP^Ufk3d9>eI+}fm(N=r&t@_a6xid(f8$Ph!Mh5gCr<{x8w9*gCM}WA#k>( z_4h#M=Yb@^3yR){x8wEqm&#WNg!%OfWB?Ab~FVC`c36d zV%&7n^mW1hNyPQZ2`M&!1X+V^^mNVj9?*_BAHTSN-hBH6%sM?~i@J<%)o-IQh}N99 zT^UHrTz-_?!;N!aQ!3C4gtNJ&3mwIkH;8G6*=d+e&D?krpkAp+Tfw`oJ*fm4p-!V? zLPtDG`$(DD(7Zmz63_JgfTH)fUB4}K)htc}2SFe+TfIY_a*nmpgQa(wEI{up=xV@; zK54Ufp$WYZH@UF{mqAcIEDd_Py^aWdr*Vn$Q4jRCvHAIYd6}d=fA;?icCBe!_z9F5W{5CUabbG&6)9D2cfl5$W(kaj7H7E=@9}vvuUJFw~ zG_*6^A$`W_dj~(w=!Vj5h~8KI179*Q(%lP;5whrB=_rzWHk4}l*wwR2B8}x%8_q;b z8NCDYPXQ`D${i0}PjDme-y?S3^VxnotbCoMyDeMCu&;VnvsEchby(pqU4&*8J~X`T zm(Z2fWMP)==u6}Kc1tkVPnV>-;^1B`T(s_#kH{I{-Fw7KazSr|ap1uVcrFKBQDdKd z>Bq37DfP*T>JCe3Qes~1-A?LeWF@ygX5J!;BvAE!j~?HaovtroKsyp#W=_Ky?#QJP zJ(lGs3GxkzwS+oGYslV_$;!t%AeHTL##}%o&)Wgf*Aig%#q2b0=2+X_8s1{pFmArG zCIjzn>5j;SfdN@}ILRHCvbJ7um1wrKa(Nre()1QF#-+Y@35+!iA#Jj&T{e}Y0S%{# zf@R0)ZoBEJX5f$!DbVq&Wue=(pfGV{+S)&+Z@;W_xO;#Ki*(O8LfLL@7t2WDxti9B zlZHvauI(DvO`C-m4jQRb!BNCwBHIr{)Iw>-K&QEp!fR(jFWudw(+8p92oh_p``~eSzmEe6+CVKjrxYyGmOo%sQ5J=H!AOuBMH_~89Yq3t@;M7-m`D? zxWGUUuV{07EG@LCNz!d}(2d^CpjC%<<7{ z?{M`$bE*K!5x}S_EMQJGch2u67g0D6{vVh|+6mvp)Jld);A0?PL)Wlh{~TZS%zD}D ziyeF6G9RZC2BldH-JAOW-;|u;8~1aL)z!aB27U>qL?|5k!_fgF1G)Yz0<=;0xRJiW zXM@jr@7@ce3TMNq`FJSf!wJ^W14dSVbyZV%*%S!?X}|!n_`geKZ*Af9zeu%_JGb+a zUaPp+9y=B*E*yyd55ipuGR646#MR2jNt9z?G;31EDnN-dTwjMSW3XXh7<@9LxS_PO zzX_8Fl}EC_CGzm}!KDU@krw%x4$6uJiwNky>P6gRANJ}#xZ(o{RNnt4 z6j^I~swzMrUqEv4>we3B{I9|vg)RVwhP{KXm4p4Cr6a9r9hn|F_;(kappifD2}6IN zcrrahH!lz-smcKyjl@ zAehw{iAM?Q`16|qLz55c9E35Y6gdyySe^pzSkeEcjv;P@zyXwEhcFVzl@ZdQd_MXF zKh|iTkNjGr5PgxqpEORy#ueG((K#>3PLI}=#y@K zUjqPN#F?BRK6!zn8S|S`Zur*23af5_x^0%Jk!%6~F#qLZTi{e;jFHh*46RF6;DofC zh{>zdbJNVHBdOSXgJWuA1?!m3$hZ_|yt`ec`1MV{LT056rW9WH>0N`D_!%_>J0qy0 z8HGJD5c`a3J|}9lVUkfpyMDU_%{omoRw~xvv_y?P>QT$9#(h}V!7G{;bJwVP>qj3C zlgD5Wi${MCv&Znx3!q+S5%XP*i8li#^%6R%b9qy66N`< zh0Qc@(lhh5Ek6j>qh_sE1^Sp|;v*Mm0K$g;KmgbUi*^?q)-*#bR12Fi>*l$K@%>n* zXL~z;HwEg|lx$KCeK3`gLGrjRO^|D#JibR7C-pX1<00;M3;JrUz@5TFPy**(ROd>; z#>%s`35$+RdH|Ls|FluD`r%7z8mu$t!FI~|`UR2*69y>ud3?}bKOGK%R-OBHGT#xD zm#%t^Xm+Djn^SXl_K^fNsN<|TRPDU?1FnDPcc)bO%qgU2v0+hiv4E!8tv&t1r}EcH zk;HgT!nLTvrgd(VBpt@mV~LMnunE_`jn^XB58r{r(@_W%_}!kJK9SIn6l7&2lr~p;ebXfrP`TlUVc7Kw}_4fQ-yE4+@Ys zbQP}nm!R__9iUZ3-Nkc8UvQlK98syrG&qck#_rT)>qgNL=IlTvi*|RX_MJ>dtuh{* zdq8iq3Yl`}UFlw0*-4v%zo0Cu+w4@h zwV9f^Wp*^-y$<%mDk&IZpcbK9V2ts#oi^ci71vma=0e)3X~XCCy3Xcnynpx`X2MGj zwCc0M#-*pWzLz#&whu&XD*8RBW|#51cPxxcQ0Rgz{#0K~at+aiqql%{C3o2*P11>Z zgxI9m;xfdq9$_xFpe)~xnK?@(C0_12JzLd)5S~vEzt$=-4K5Ld9nvK0 z58j~Lr^70|#cJTeixD3Iph)y`Hm`i(FC?=Z#??HM*z`iQkO}V#C!}9gwHTIcK|1$+ zWfjhXy^wQ7qkT=)ja6Q-WKM}MzT0FrjgH`cNu{~a4h>17V`E}W`hGptFi74p^<52_ zerZT@T2VCpb@lFSN1Sbmv1{g8-b0Sy_c~-Ypn5`xjwcO}k+nWO;hJG1}K@aulnB7IJXG zVz`QgfSaR5yEoge>=bU;FCQlYJBKVa*rC3{5|T~G=|`gGK3V(WPVfW|W3PRyO?&TY zh@BI!ZHP<}UlX@s47#dj7p|!{U7*$_l;w1}(x7$G_4aaLkc6xbdQ8eq6+Rav@x#9hqG;1cu`Z{Fw+>>CqjK@|mttV=sQ`hH24B z`Byw8YXqsV(+*<$G`5Z*Cq5>y6inWyAU3~!6H#N?Y`drCV7`9KF<*aMy$| z8Dp<1!d0xTWK`^7eg!*dBXUoidP7^4B-?GGfCp#)2m#x}mk_E0T*DpU{NseoU)LaDqH71}`5D^%6}UM@bilsnLk^g17=4gJzRAsvc6~?QueCg8T5Tc?15lPawZiPN6JWvFb}QHPl6#0*n;~z$GE$hi;bQO1uVlMz)1a1 zK0{$p*J#xMFCnW)FIzD=GrdYLGc_}9v6@bMFDshpZU9~3)c(&+IA~<~u7Zy}i-RbA zdVeGnAM}hsK|ule1OQM@89(gzpnG&}!G8?!>q!9?OaS?WWj97_AHYfZPaBP%i|xosFMBhZ_(6az z#(eSrG}bZ5^L-@r{i~uVgF%?mV|*ckQ!u)IPyOgfhldIQzi=CH{*Wgy>)^A`GMWolKGXOb%8YeB_|Gychkd=d}gR7vSz6HR)IG9>n{cWmJKNs-= zbW+$VLcD?Dwq~gE;kKm52;uYgz-lYP`{{Dph!_o%HOB!-hpb)`hRuHNLn&_6xA{M8 zwYfKdZ*yyGD}9Pm5U)9L-$Jsv6Gxh*UH^m)*{Mevb4w9EiFID_v*srl ze9c$x>-G&%+^F@JrcSriaQP$zaFH60ceOM*Vfy$C=BDbI^<0+A62M-+CCqmwA|5|I z&n@6k{~xbM-q6U<&d^H#uWyiNI5#9}}P_V<*&d2Y45*gZm&I zT=xlzr+oKlz7^Q-a0lq(1HTXKmKEBF=f!XM7vKa)?KJ=~F9GL&``G>$lkA^X;2FsY z_}Ib=ohK(h08v{|pT_cUd?@#4@+&51aneT@AP$Lb_b(ss0cj?`gwW#%+eWsZ9P{iv zgHuh`-O4@5J56zJ$)>LQYlBAAZ%E4O&7A~Uj%MyN#9MS3kmx) zp-CEnDVl6E!O>|1JbE4Fe|#uj@r_9?U?M<)B*CCnmN$gXjK@+M4dNEhGDj*&p`@Px zUfqc5U7}R=G$?cit(Ly97hmRhh zW5H~O1_rlP9K83gk^{T}QcH6dQ(PjJ|5@YPJT{k45F!>zIyUa+^VTKqFp(dBo8Rz7nUu6(14Xx zEnf&qbzgv4mDlkrvuGhOxUw-MONx$q%?@gu=3(otVCksoKB+r_-0h&cQ%)5@D4jq& z;N3XZPUD9k^$uRWtj1Ch#}~{+{}d08DEaQv!Qpog7xqKVbLFR)01rp`zlf^fplj#w z>sJR5JV^rpcl?cQs|k3c{X!|E^7B94zl)Fl@DU-P0DKzfFkyGdIq@u#yd4t+u1kPm zA%;LHbiS!BFXQp;@rB=yQ_~pT2;H!m5PB)4uvjz2o|w4qk#f6n@1c5HJ8j78@-PiX zgLG}|V6;EH}FkN!16`QwUy`Q&-ZjsnJY0ecAx;Z-Z@ z-5Fc_#9BihpICX0a%EAd{Z>s|{1Xi*;#Lv8#{+)O>CO_*k@xl69AvsrczSwucxU@c zIH0UR;s8dKS@l{_ZR>{R9}d265KA^girCjNq)f!BYRD8+8I3&IW_-V=Xi>yY6TA+s z$ahmHk}**_DfEx4zBn!z)8j^V5=NbXNHfAC2-3p@f;HF66b*w(7bZi zS{zL63N)^FZ~@7;H2KE_Xl0Y;KdvXoyxs3lKuOwrrTtkE8VN0+6bm@pqm?OS79dWU zH8LbzNd_<3F#0AmV#Op?01RYgt*^3+EFE_~h+b)0tkbqyTCJ5y3%trK#)@y1V{UiD zO?62!ivoz`%o>9qP&!ZZ#oaP6eaF39xVh?tBIdOm`9j9H3vY!<_X6eRUM~Hk%BxJA zw>stziL#tuCiIU=hRir5cF2|TJaS4i#f|8nZ&!4(rr~N0kU{$XnoE}VCpMejUhT4B{NAYb~%5hqeOKcI7`6kJ`BsK6s0f*0nW8u1)MF1 zO1}HCD_sEj0eTYXP!6Iz7gcqT|1(gSuLMXER3~|}yiLQFdiSj#7KqLcip*td5ji8P zuluj6)vx5?`UoiCy#j_V|1nH*bTGA`{X?sNR`3K3Eewry|IS7uVwVBM4CKHcwy1G^ z)RyFyY7#5491#7d8t{k|Eyaqc(~tybk{k>lBXO2z$=i|8gg)fhbpu_<2HRtkNg=89 z&!l5aK2Gp>zr8(0ATP*G>O&@ALn}fh3rF?Gsj#-D-Xuo}|j>6O8#Pa|STnNdyqCm>kzOy0Rmb9>S zwaV}83yqNKnF4npk?0RN7{#<74DDkvnB8A(WmuH72KC>+#^H2^YAVd*6`Ro#NLzeL zs9_P$z>1SiG0S+2pcTaUT2XNqgwOaL{KW3oYI1Vw#xfJlPT>{bF=l%2Wk z>taxbF5hYOWe8(NB@O+M5Yqfyy01>e?Ma|@ycDX=!KfYBHS-ZDr-TGyb=s7Tz;~Z$ zF^y)>J_~Gu2hJRrLRdC_voO}T;^iHQ+pI$N<;+Yo$fp|_90J$KHzQNDdgD@Ff=*vv z<;nhUt_-s#lXb1?&+jd}((xGjlZSCkj$F;et}3e!kUG$H3KO$4;nJje?X*m1L-x3VxNTch?p%viyb@q0u0QXy+=Gr zOrpjUGC?wJPB#5Wyn-F+98LqB8unYed@ZY@o&Zoa8wQN|{v)Q!A6BREN5keH%`VYY z1%Uk;c#e)lhR=^rfJHK{Es$;1T1X-l$5G!*;@{^_Y+xF|jgCNoC001)xp@!xyA!aJ zc6U1pdh>ZJ&fHK*K5yy~0SyI3N8#fM@c4Q_K0;ry??DYEMOWeL2z2^-Ks~}PzwD^)UG z&!E)Xo2;ZW9x7ZjI*nYnIFmXaEXlICaAMHCO5)XHkMa^16D)I+l4sH!6l8M`mra6n z4#d3$ABztj-ut<2W}J4S9@>gbJo}!6XBYZDrc*sCPhTS5gk=MRij4bZH(0oKB{EvL zF(p?MFlE(B6-DdiB`SQjhftYFq)ytEA!VfWP2d(Kpf_~uou?ZBVLmv`9VAs>KCWgb z>WEE=E0VVJagRel&D~Me;bqoxc#|4HWoKYN?gtf#QI28Lrt;vX3ARLX(rs2dw>U`HXGqHi|dB*h~f4yK{ytq{T{teTD4 z4_}(LZUR5DUOuBAB0aG9sXJU1YB?mEUz$af?|o`w(9rNTBVAsL_m?xE2RMm!zjAH( zl)OUgKq9LeVlD6OZ)7JAef49HuMki3*{erRU#xO8U^qmbu^iCt{Lh%lr9@ybv!9_` z@rLjXq1}9NnM}Yv2l0EOccT$Fbf?6|#%GH8icH3`XQLUT>!J~c*fJQ8xSF9%VEJis zAK^85BuNc=vaz48;6r@H9>}NS`B0^>93VVdokQbb8fYQrv)CL;*a>xd^+g^JMl=;L43_)&A-XzCf&R4TmGd=RX- zky}ENB?PngkTTV@67-|ZOD={0eJ@9$5dEOzn0o)kGHlBDi}zTb3O{UpWH7khe zi`2754U%Z}8;#`FU(`*?{Aj+lJ5pGCTnjTUmc;Ibv2#IW%nf}NtVsB>Fpr>vezic^TA&s_iOVQpQxm<}}BB2{}#avQ$lQ9D8t(%*o1^DNao3b9-k{@OqrDvhV z<*vl_g@coooRg7*v;b#)62oX_;!dnU$+*I?7MLgMX*rd zhT@9*w<}WI6zKM3)31ztkrYHEM@S1c#7EtoKHZQ~t7QAe#EZaF%~C`3TzLW?`r3Dx zvFy)rCrcXs1OAQp&L}Ull)J0}F5Qwop5=Eh<>opkw}rAcT?# zB+0G1WTM6$OwJwW0Ha;xC(&*t4uQKmMyH9D;f|K)0r%BCIh%*y!rC;#VcnmT5L19d z^?$sUpMwJc4*0)r;>d&>A94~1-?bc3jd1W&@2%;|xf!f)PKW8GK{xcKt4rjFMUuPl^bgcXG0Ais4 zwEk<&!@*A1%HGJ@&XQKh&d%CS($wC;(CU9mhU)|hs4~+CgWg^B<+hKtI|zen{dcgn z*xbJMo%)wt%~yDI%7&r8MVeG+1V{)qL2YEbWn}PKikf1C_Csh9Nh0w*%{y<9p|6}&USFKzR3Ls-2;Bfq+#{bCq3+fXwK$S+O#*Tm1`~J9sKTSR04=Cn8 z89jx|=BLX1f>^{_8$f!rZZyP<})#ucu^4uR1(eYe2%1P`g^9!sl3}isM1# zuUqKHDa+S5)^esvE{#z!)>-<&d3@c>l^66#QOl%5c>zQK+jS3@MEcWYbH& z)f|k(&|^a^Y0EiY)n?fK-a7u0v^@pnJmvy5Wu>XMv+45WJK{#S-+BB6O{Qy8@V%%@ zmH+*4@XjkC5B~NS1|EMni3ji|yo5`756zwqs#gevtoVx(Iu6?`e*nOiF=f`lA`l@D z(QNa07;gN9niVfu9$wbr;!j*H?nlJ3$6Eg?(c~B#@gCE}=TiTw5Es$DMG_AIVYtqZ z`d~&v>Dv?7&J&>zs7;%Rbd%Aj#8jaVuqULTxQW%oI|vAyDDcbrDQf!VpUo?EQ#u+g zmp{aN&CY%2W*@h85cx!x7lk?i3@!pZWJ=9l3Adu0NyzJ=Ms26xB0RLg0tjt?w9akWU6oixWC;LKb6Hhz+NHkh*f7pZ4u zMT+!7Et$qseZBeetY=`#G{ipUrkgb5;0~@b3m21R>u#%gK8U{)dg1mN^3>dllj^6> zQ3(WWIb+$D$(2606-p;TnwZ!pMlC2mk+pggNG~&B^1pp2rH**#h-X@s%0|bLQ>4XD zd@o&a%M~Z#4^r!|)paL9N$qQzZv|w&RJ1J6>bWLrj~|JJi?xc`GAk-DM5fxcF!~3n zr|2QqeVN|$N>QX|9iQk9#K3~@fPnHsV{_%ll;-d==lNXNCg&8*TWwIaM zmaSbq?&=vo%V=ca-S<{cx}0A~Jx%^QsppDB4vlzDr5&W>e17zYF9rW0^|aKozYQ1v zn2p(wEn87;d}{n*p#&r-x>!lh7{4lrbW3UdS$9% zWO7WA>A9k4ajsKcY9nMzI2m^-nr|y8kxVh6SLGI(i})wTqR`Y^f*a#GT#&DQjD%hV zTZ<17K9t-NrHtR3pYl`h@6R2I+|r%(;S~7OjzUZ6j*k5-oBt;Dl=}9Q)N@*S6yqnU zr-{O2rAG_l-=v-m{R$?kmpnuwWnNLnrj)pI4dLoBDs@aEeQ)o*6)(tM)Vg&p!hK-z zs&z}L4cjg`6i^<#_v0~p+2&Ii29c3>0RG6_D27XhL@ssL$C8VFk%8Zxzq&G}Vb2rD(G{r5n z(x}Ek;9&0i8v#I#-BpLc_3`;|DbfU4O%|axRVj@O@&5bd)l~F1GU=52P-VQb%s*(c zQQm<}?r!>LOX@*bhcJws3-702&FnV2fCGo%h|pSAN$hhXXz6&h&lQ(oe-KnpnQ4#9 zWnks9(jcp!#*P@#Z{^J9jARkcaICPTrBP=N3~YBOl$^8VujWzH>nnTW+13PZ@X$W& za@GdGye{Ha22}1xDcWikq_hv)(~7w3d-f{$-9ZeDMGB4Q|Z+wPo$kA(6;`S8^t=ZV3>+@oJr;u-8M;~$425r2yr|2Wj>|S zztt-DvcXtOXo*&I{gsPqI#zOq4#Jo&qt4|p=%x))5$KzhY{3|(-^tNTYVN2eJOkeG z4T=5n{fdCLHxleFGrSF_=T~5&=!d?-H=Hfrn1LgnPp|rO8UhtvD=TR59J>%h9y_Q- zoX3@uv){1$;+D9;Od+;oK!##au4Pw_y>TfIYesZFUgijYbKSoNhZo$sjD%91?gS@b z{=$t@ugC03jOaT~X8VerO8eQ-V4RSU$atFT3w*?wzGdw$SA6Vg>CTQUQ#E$lV5?wP zZ*2jv0k?1VB}`1xj0l(~e6Em1IH-|=L~vw$9}CK*aODNxAZoQMJAw(h9ZE;;dmSaF zExk8HTp(DIRLO)5gj-eFCmGt z#VC5iFm`X>6i>PI_I47%YATfPFgNdWEy@|IgA+bhWj5bc{2xy>s)8Xr#( z-xDDGMe8X-hzyf)?benw#ojY9h^RNKRxi>oRI4N2LVEKm`oA#ipZq8$j{4RCe?cbrSW9sh;LXSK`L}`-Ahy?iV}`X zRulo>jdX&#-k0s0wq;=oLE&`14>g5*g>c+lg#UoZ1Y$f$as0WqJLd~CtU!+9Euc30o{0jl2CaOR1P^##ZyIkJ(K1txg! z{E-o%2PNE$+Y zl>_eHneAzR-DPu$hQJ_~zUs}@c8pD?+a<|@v(AQDqx7+{`7saW>qy<}AK06xrqv_}HU;Gx6+@cKs777|>1E5V zS}4l7Y0kpT1`Xr|G14Mv@@;u$^W>IC++_(grXqe36qLs|T5MfDUI^&AaHFd46A)nN zh!0RV331gt(p<)O9Cu*C&f%@q+lAUKFST}X!p;%S)jhHveEZ$&v2MN;JtQ+|AY=3= z>}GxDtycXVMNQG2m-=UqJQ!dG`2S)8@`m<~7JoH8ETg-BF02Zj3*;*aP9J^fe8*(T z+l8X1p9*h6Rc#51jwQ-Tl2OwA*G@1Q6iH23(r^d+dAkA6*9~49V6Y@qb<_!nb-G}@ zFD4gsSG&U&m=lFHcrakPbY6s-5iC1OE+w)dXeoLXvF`ll$&{A<4E8aJGXo$wy@=kL z`_k%bsu77t;a=lM-RxzhWEpfP-v5?pm?LgL8K(Z<`DJk6o^_2y3;dse&lpcJZ+p@qh zz-r*w1}=K{RVv*!?6Yn&-nyX z_aH!{^$db+dP{i4WEvUksKvaQ_$Foi8pifg3@iR;cn#mneEgF~%_Jj=#(lS#{&%)=i0+6fCU;8>7$H=(c00pf6zfc0h zpIMuwtQ3F`2RYqxrBEtwVP!$4PavU@@O>2upW9D9oOAQm0qS8=i^f0saJuofq7Yeg zg7map+C8IOd&hoavUPW1z*5Cm%LySkLZz7`FELEB)JT1vG?@x9MBbcbnB;c{MT7lWNka-Zp;O=#gZ~#=_%~p-?x0Xhp{uPtLeUyoc$5zyc>1mL@eW8VX)|vLe)6(^ z@IoO9l|j|jG1}jarL5ma0mk5MgIgo9M?ef}3UhK5th5A_dJ6-o17G^?Fa;KOp()Xb z-1X8bt(`vd7?G89UFQVlHS^`Nd(MOB;>gvZ-k@<q7^2G;=W*=}#)opl(kk=>yQ& zh_(J7%HA@du58O1O$ZR=5L|=1ySux)ySqbzy99TKgIjR7;O-Kf;O-I}-lN99jfoS8peafbdISDgJnU2!JzIJGFfWCS_x>yMu`wuV=A7nWgn=?<+RY^3lW zH23jHKx)#VbN^+F!*|Q))72wpJ&&N@0fPrSPW}BHO=`RiwhCLHrPITo59L5M4k@Wc z&5%4-dEeVPB|LY3HTaCv zlgI~#%DlqL?hWCFWlQraA7qD98?nc(X>eSfZR7L4-tA1@!tHc@HKHVtjXDc~OWJul z@+S@DHwCl3=T7BYSSgOJbv9`?w{N`UY6~rBPYhZ2ztR8bs}>wBK}-Ae{}6eBBOjD5S;aBZ4*HuCUNBrg4^Om@!1HWLk~Vr`gJ;QI`QNb62zV^3w)`$KrCOI>8sy zb_)+2LWiA|u))TYKQSB&Zs-E7Jk)llOqAFy(*ulRg+hP^VMdsr;Ha?6)VIj>BY_z8 z&SSPCEGqgQ20ieag(MlS_$m{YKUVJiD6JWM{qR0#L4DBX0*DO8JU?RgC}zOCU)^=U z=Muh=oV~>+@!CwG7OA_JBOq3AHYx6I`Ya&$ZSVB4gUb3)Dl;oX1%uS;)v~U_*`?A{ zC8o&6O4upXnov>N8)Hf$#vwwUTe8vuBQK0|A0kXv@g5gBiQeRhBo(v*6(A-tu zP*<6ZG{c_Y&?SdjCmEoMVu28#b||NUG6*n=-(nFOXt6y!B^9z_cO0Bds+#sENIR|9Q$I1ngErMDJZ$Ey~>Caj9=}A7M0kj zM0lET(9jK6$2KdTYFX=CM6)rt%>}XQU@_r_id%-!P2ZEijBXfIj_71F=G>v~%9?~y z()P7=Z^)C@Z1HrP@Eyi1&kRaKkr+F+7UkwbA=>QR67f}BLaaX2%Bn{E#R%g|q;gFU z{bbG|fGKO>BEaZV(y<)SdlF&D-tffRbL-kqzKY%11y3x+xkl^jvDv@R4-E& z>g{O)6ed7qj8Zm*5Eog(MOLh$V&!K&kY-z6=}*8czz3w+*8G}6JzbEMAn9F<`DtU7 zdqBPO&8pMoL5@e1X(*{tV8?@b0fT_YHOz7P`~6<>e$QKakY<~b@W|A^HQPWt(l+o^ zQDR0*cmPqs0e(RPlDFH4Fs_pWOmeu3u!UH@xxf8mG5TX|@_w_x*#r{YbBl$S;45p* zHPQe$>9cX3aXhvkA(+_IBGvV$#fOo_Li!V;0WXbb5pa`+M_hX6u=jdA)Ites3U!am z$N7f|-)Vi|?yRcnUVe)NCWGm7U(jWv1oYs8o`3T;{}BmxE{=cmasLfQf$*9?$Bs`o zXXDm~H{)itCqST-!hbWKJ4T;V>TIk+h?SNyjDeZYZ}_L(JBdixr#_2&k>-c4`vQ@n z63~<}6x^Rv%GMEp2!J#Izq7X+${7Xr-Mbi56a9D4zmEm*!08$kgMRfNu-bnD3zYu# z>;I)d{Ws1i5-Ib+pB}`xh7ceTMc3`bp_T@*u2G>CkY(j9Nf4Gu3ozQ!VByz+5q;V0 z>2|w2Bk2QIt|1|Cxd<}|O#a0vKNnDC`eu;3C}lzFEf_W_loqx!1;Zy|!NOCbUK$D3>{0gkE;_C47W_rp$+X@n>D4YI7i|R+ z9GnQS^;q$-Lkp^34-)D}1^`_5*9s4=!uO~N^r9a@=M2$*SSn=`8+&UIW$LdE!M|7Q zzW}z5w%N;=ztFUmSwc}rlRxJ;{+a*-wKnA-JIqrXSUNkJpzdw-9RzZF@)Wap3jjX=IhNEUPr%GRx* zZ2jx_%D?xh^4~b)-`HZLik1?HF7|>3L&4%mRqRfbpw%UbdWJ^lTTHGPIE}d$Ve-+R z;DGoeq<0dXiKyxID&CGeD-DUvkv`r}>kghD_v2YSt5+I?4z6n3_ylD z2jxXLJ5&hNkomMQNLf^7T%U83%faueF(#^Q0>Yv`zY)=jcOt=-!R zz2ZDRdMTg8hnnFM<+zs5BJ1xL^=exI3DF#%G zW~I=6O3P7Y9N4qv6@c#7rQz^*#riURWaUi8ikLR@8(F4Yf@M+`hS64CnN!0ZI&qRM zCgEEglqH2WD(*wn=>_S_uxJqQh$qRXfR38biW zOQ(PXSaG0#{`g{9QXkx^rZe2D?=s=`>{m6)m9>J^S2ea-OGzHYA}5^&=jaF4)DMpk zIc-UZp#lWMoH~lZK<8y%DR4UegLK=N3Hx|CoFp|M1hF0=YoesMHgBV=h`y&zQpM=GI`&PcxM9VB5U_W{6@qzu9=#EJvK}ycY8M#h-;MH9f zlr3gu@};3O)>UF3!XRBsU{nZ`cP2juKaQ_cKFHCZONICC13RHCw3G3S?GPN18~qcP zG2qHY@5Q--mGuW05Emq*AzZNzI>+@{Q4T&3U_MY;itffl;@{fqnO^?JPwxzynEFF% zE)EnrT>mLw{5x!ZMXGU)OV9qoMGsHGO+sesj?oHpXW#>&h-gjLK9& z!A}&-b^7vSN7mbkZ7bS)b8}!yc$$+OQVQy@_1XqzG_%Qq$Piw>xo9mE<#z9WyNt7$ z=k2V5vXuddbV&QZfBN5)2r|_koj$6ezS!O@+$StSpPAB-bGhq17VpPaS$ zQt}n$c)>x^uile}O5-GLjxxHT4nlJuRucvS3D-~1aE+K|0b(M?Ihca!9Cn5;fY0A? z{8Um`i}3_M`mEh!!fpJ1ym>Dx@#P}>+Y>6{w!KP^(OsKA9r;~u@LLQln~6q(XhL{c znEY@NILckr1Z8Rq^MSVD)=wDx8a)&ls`{4ufVRjVmB3)(HN6Rp}$l}TcO01)p2g)N2E}l=tzIS!}11UBtIz5hN zfLc-`9J-3vqx#z)(-0^#v{)4IEAIBm=xwqv>&-?IJV9s_)g=JG=dY<#VX=nfmFw z8)Y&ZS4a+$zJO^;v>?0KK28VVg@Yzwbn%xpS@K)?o(YuSn}IuDV!#|WbecJ-Q@$OD z&`jj6PyFiW#gkwg_G4V~3Ax-Or3U?bx?^UI%H`ehLO*U8BaLzc#E)8>y8tD|`_~d% zse%wjHi|NpJmP3|SlpG78=7=S9CoDriupHwQOeIYe&Z%-s}%F(Sy`?TgeJUkANIue#0puJm5{{>v&j%Wg|b?3<#LJvj=j=P%!7;_enpXQ zZ*G|_a2+J;!|S?DR@q3#`mn9sEo3wr(lwK03yxbH1qN>IwYzRzp5CB?+pea?JX(GE zGHozS=B(WdkNPA&5X}*qz3v|+Rh}PRSU9exqk+lC8JGK!F)b~}wc3ri4~q}g98V^4 z(e$g~iHU>T7bk^tCLFuZ3maY#~$?*oY1IV2h*d7NlvS8&?69jHJ{n(MT0b}-M;bW zkYqz^0oz|svMYUrZ~WBR$th2?Ig^L8m2qy#g7d;-W=v!$*Yxg)2}UotJj&k zwr>=UdwH7B!HBM%kwq=?Wuac=ner8Oq+~7`?C1o_^4xv<-yf8GF%@v4z7p%L{QSl* z$`LgK96@l1ktfCzArBi{9+ryLVo1=Y&aHgVUM(6$ph}e8s@F zE8Z+-4prpFcP*Npn}OM9HE^GW9ArnO?c`AuSbG6oA?vfFA>tLcOsO_!{*DpZ9 z=Mxo;5uqDqnDr&=_n}?)h-+awAXWOxhRuzz+LV+BgPmQ`H}owY$?lVzrwQgz9@$<) zX05k=iUInWgT?`a8*sP^g=^~@A_xcHdbxNby|YD_M+uko2@bhU9dcubQ`DToMmZmL z*MxnX;oQm%=j$OIY59LD4mW?`-3JC9p`3xmGGe+c)m4GOMk`)=AWiIIPu5?i6)2qa#!#S3Uy1%yy zPR=VpXAi7Kz0=7(D@(7B>+U1(?$~SZK>IyUoKrfG4k|%j_T*)qm5j+wNIO$q%s2|5 z^xbg&*;~Me`c@0+<+tA17x4SfYM@b{F%aYHS6<|QTiXAk8JekTqckIl;;jl(LO__i z-kJn!NU;!prYVBBv1WM@RLXQ|11%Mb95-%Swxf4|?%*u?yc@wcd|_?PLIa#zmUgV! z3x^_u(UjUxLt`eh z(vK6F!DOEdJS#kEwM+t%aouMSu;7(L2Yc(a(cS|$J7n^-U2C4=zHQzJdd*Og4?WxS z#H0rmjj<7+H-80dRxzeWKWr$bWIGoMmSlCLc3*LWK_$`oLDA2Ag$v)~*f}3a{UQ?j zc9_;wzbRA3xdNQU;>+o%$h#|m(W;q5H4ToIwJJ{qxXk(Y*RU05vX-7Gc_#ym1zL*l zl$ImN8^H+Sz@^w`BMrAX;=P%i{FY!r9xYm$FZAcS2Q5)#dk8%!E;9gj8}HUc##8Z3 z!3{JBH5LgT*0@OusBX5Ft8{+TB$uFW4uJ>zVjY~yOQE9#hi#)kdO z{!#3i5#fB@?q&uKvu(F5>#lhrsaT*%C_sp2JhJ$KSv+4_{QRC4HtE_Z>|<<|)wGIM zqGmmocyt-#6|QtLr#OpX&aP0 zGI3tlY}+u?e81hjOA}WM{_r441zjR||MyDvuK@k^F7XHP_bE^d?VFHH@MP#1@2ik=5n6b=erXLv`jnDVb zcY%S(*yJ$^;)GGTgOV`A#i2%GqALBgLesde$040JJi&%XYoBXIvvxR4opdXhdMC6e z;KnhDzq*bg*xWU;PAwsMquS3q9p>sxu?~kObu`y&h&dduPvZipLy}PImVCkmND7qTd;EA4~`flb1f|2cO1D_yDwoDsVB1C|-|1rL83w&z zBuu?^8Mxk&5e0Cw&H)9o1Q4{oU|@nHsNVfe$=07i0W&H<>pIc@yFc`Y#NdGXf0P)M z&<{|I1HITEx-R6P=fCS;8r#{>3Cqd+(gL*kQVj>vnGimUM-U1@faQmPcz__GG3kUr z#u!i!L(*b|Wcjvj?jAOVFe^K{jt9Z!x}-H18{8p;pRz)~gwSXZD_?fi2cRw#u= ztr5Oj4GcpCmAaq6;{e2k~--tNbDg3paB>5s9w+!2E=~QxV8q0{JR+qrfF#vX;M+TU(M09 zz9!baGhImX9W$A$u_jH#mN7}om!wLcXkc!%WIV8!t0itIlIR$h45mu7{!$WLkXVpO zbjEF@BEv*owKyPizLZSyvdCR*7z|HvbYA*z_7KD>lptbRpj zxx`(@5(`#5v&{PR*os6F?)?i$q&ukZKtp&v1E(v z5%nvyH5xPQw15!U%`Qi zr>KXg`}{qD7uj*DywZJ8qAJF*stkS^;R3xX#5s)HBr6-4s`0Q|Oqm}?Y@4~TGqP37 z8+7t+L|*_Cm1oy!`Y8a*tGh@og40HJw^T-k9bP5UBgY?UKlanimpL!5OJVl=_BVta zxqKOE#5qC;h5B-OG}G!kW@oS7@nk5rDbn=?K>AA&D#=4tfuYzm!A z;6W}ptj_K>>ydtqkk*h}SEoOxE;eX|3cN@_cio zAt`8s=3NRVsupnXKEOZH!V3?EDNieT+^S5cRREA(Z=k7!`j#1wGhuK2=pg6);+~&r zg*KEXj!I~P%U9VA22TJjaRzi`x#gl;6 zhmKBHXsIbBB+@3mC~4_@F_A}=^jxf)Ts3TYm)N^A+s*17zI`a4Xp`s+IApS-cc|25 zV)xE=?tZ%#9(yz5O@dB8g8$+4`)f1&GtRw0=sdCl$_s4}?Ti7Hl?KX63azueJc_*^ zj3!N&Jn0skHe2?GyzRB{d&!5PiwsWHY1hK=i9R{ z?2J1Vfo}@DZZY?$yS<(u7w$RzNKeLlcoIR}PxN#G-PrKan4h|*z{I{_(>Pqu2AJV; zqo0?5rL}ASp^XYf3|}9emNo-}$zp=FC}^sX!=y`{ApKR})~dPYv=8=eBhbpDg@8VR z8VmD=JzGg?sk)^$Yo+du;(cvUUQH@xQe+)1g7rEHErDT6a!pYAy>w?mU<1U`Rv(Yz zC?!p~7H74)^gSJQvUBY&G5s`UNZ%NvT1CaLyz?_Pw@_lk?%~~`oU({@ z+ga6S9i!>C*(s-&_!0C*Ts%7t|AB%30^gSvFqKVd-KT7vM$%n;&b*eRLO15W8+Fdn zi+&!xk zIHG29yQxf#Imw~6PlY$p5Agk35?UsqB*lUoM3W|TAp}(|D3Y27| zz!Xq;=mwZ;;aMJO&5_YKYGDXT5ELk#^GHuO4dl`>%(m~TA2q)Eqdoh2D?6KsBWA{# zGr669y3Kg(YRAjAJA=ZHe1=LLLue3OFoi;eZC;Wo=tQ97ITy24U$OnDLL$?eX`nvL zf`*b&5rbJoEmheP$^&5HbCI_1 zOj99zR{8MxFgh@B`G$VEcrX5kF=?&@u_WPXsEkze@eC%ilku{L%k;e0O=Qw~DV;@a_$#n= zr#?6!Q-NNGf5iHh#0}lL&SL59?tT>i4;phQf7;Hg{VD|9D|D!-6$KO#Y8%Q|L$9~Vj%_A2)e|efL8fG!A5_q z@PDEF;s&Kb$vgjSNkvW zCfw#b>R?!=z0vknIyG>N98@4K5D_S0ZrKN$h@&_(jQHTdxH^)@9j257(=ZK^`e(Wj z4Gs)e;^yO0T{ITj?+?OPw5Us|UB%>)PRg48p}co<`<|%xwI$<6+hhNQgrMO8TWiA*jdfGmu^eDG46%lD%ObV0(Uy=h@s;rC|{>_~B-5cJ7 ziw1Lx*}1XyJ+9l)iGjUkF3Tq2=)5t9PKQB<-YElf_8q(gEvyOqB|N%qNmIfvk>@3K zryLSS)k&3*(SWgKYDGHlEcJmY6R07cPcFKBd6+_OC+MP@G^D(lS~^XFIt851U3w8f zk;!W^r2@d-kCn46W&9eQrx5luuy#uNj1N*9*73}Yq81hvO6?IApYHu#AcJWhlCZ$6-$8)|bF$00T}D|3 zkjezk(jOaE7SkNZhtvJ~Z8J-lPG~`=sskv2{Hh%Jk8kVzM~&tDYmpThZzs1TkJ6tF zD@lbfS!CT(0%5F}a#EALToZ_ql+u(E%IKxBF-%_&^YeR^T|EgCF;gmC^05#NS07*ccnW%9Fi9ta_z{ja~QTFU^ zw--GFxVGxZ8je7SuGsmmK{QukHe&*p+LqvCq6!p0{k_9hpwZH)$ozpk z?17SuvTStIk%qs)r;O|Kr#QC#nFnh7ZJ!H)&^4(ZjL*)O`?t8O@DWb%L3#ujjNqt4F;3%l4K4IomODZK7%Q>q)sZQY%(FBCl@#eBchC-cuEO@Ja&xK}( zz@e1;Zge$ics_-$+Nzhg$H&w9q%wuMHzhhzXn_;=y?UCf=%eQW>@FX~C9?Hsj1kc% zWG%l8m~E(!7L+R9MJE2ReRlZS6tM4l?Lu&W*G1bv@NzT*)%3dW{|}q)pT%6Hiq#(k z9v;}l1Xgn8UUW6z>|tJFwse&{&}dmWLXWePOS zP#LFROI<4`T0}Hz@1)8VKA;qzu|;V%zoPV#IVG9%!&y$U9&lx_8Do=7TKqg5;3u=3 zD%@^54GjCn5kErNU&T*05=VXXjqd+Jv@Ee!^^zIWYL!v~b($Q0Bdwuvx5lIf)mMhF|R3&oeQXZtz7~U!>0Ok_UOGHf| z=*q3NjxJfa(w1?RB9HaMsvk*o_!?@hY}XknUkSSN5X4b%-wvbbz9cUg3?9Mfs15e9 zkhd*Ua`>cQ(svm&e!PgQ$QZ#p^wZ0p&0Htuy$0A~?QN#(hh^_SMpby0dmsZ(deMF| ztl*xi@e;6NKM+@Ec}gz|yK`kN@Y`kB;3JV~CK$j{_CP*#@W14DV}=V-wgFHWX<#1T z1-%2n?lnwKoFfV`W5&ee08{9C^W_C$5I{Ig)#HHt$Azk2?yv4$deB9KVdgKTt z_jAHo7l$kCID2zDr;mdU<{nyekjrq16L7x(lmXa0V*lPNu4G52{G-0~2VK1WV+Har ztt>i_jjxHkfwQ@?9jJNyXP+ffSx4!k35xfcDPLSwC#>_-o9YFy;DRR4#OXH*;$iv+ zAv9KGA~+2O&!`2vRe$zTBna$TdcBT zeGZq2TMUpat^3EsY$JeS>57;uB!J(-dI&%fM607W|JdB7RMS4jaP$+Yhu`|%@43Wg z_eAh}+g39;BhTF-q7XvNBNjqdp(i|IS#3fUqF<*x+N?X|fE5DPu{e20GbP?vt|FB>R!bt(3Y*+qB41*qQAMno*~6 zt4Ncaq13Du@?lZZ^dYI!W;q6U+3j5mtg7uQ>j;$?7byh>`DmrOmzeRkU<=w zC!0kwPHY-V$!fI{)XO_;O1mF)^R3g+kF)KAoNG^JSxRUpS%MxeS&nUnLK(HyO7fFZ zeEza;kh%?_$zi_moO`*g-rn)@>n-uoXXF(}aud;goaoFF^b`dDX?nt+%Xatv1@f2+F>{3r$SAD^5(hPf1k0Yf4nT4@~@U zDW#f5#D#ozm|T1pex z&{BL)tJs~}@T3l9aN_TB;l$Ve6n}X~#23q#>zE+SYjUBQZCr`ZK_pHJJ_PG;{0;xp z8rgl2+$B}^b~5i!v}auQ9WmYmv6@#L-XrmR`3?aCPYIZjcrq!Hq1e;r)I%G%pSh9t z_ljQUFy`01hS|H1zm}at;~O(4oLuE z;1xDu%Rmdp2C-^R)!IXTr_OTDQaY_rCM`vOf99x+hkVRI?DS`yHg_krH+jR$?qvPEh)_1^Vh5W zWgz4*5}w;L^S1hNg-%ZjUIgZ)S1m0X?HRgi_UUVjkkNCw(i-Naw#S}$TPU${=0Y-=U-6W0b zq}0f=dy1yff(vKt2KM`B7dF5=69iA!dH2I&!9|vKfy3t8Z!QGFZdx;*g`(0l`j+jm zmK(5jg+SN|Alddt^(|?e)9z9sS%h0llfL|`Qthnx;UKRqwtNL?W~=ksb+pyi+Cw2M zRZKR-5TX#`ObXBok{`VGx~TcVBdyfVqRNkFS^C(~x~N-grE< zAS+4FT;y3OAa$CUl+)NY+N^_s)fkOzCl!lcN`R-C7de?@GvE$qrG08#t(Wh%XGEZc z$k7B}udAH_^pEbnPQ+lqhhc&DLEaf7hsb=f0EOFX&fPfmGo+{AhU*Ijt580Jb|5V1 zRQo^ez<<`EUP@MS$O0%lLKcnD6bY9o2ybbqAzH%2VW2?Ra9CJAcZZz;h1Ak&As5SC zC9?vv_xby~ya=}>FO-&giM@{T=Gxnp)qm|iK-q#6(U&=9cFD`h?F(j+0j7hm5@*fa zx`SILSV!)O{Z?%XRX}~EF0=s0s&5{iii>80K26hn2bwyKmP@hbsj4>d1g&OTQIj+d zrSr?8NOqWUW3KhKS&0)vF1%db=HhHdnqv+4SwJ=nQ9F;+2GtKUv$O&~SIildn;ufLsYhlb>Krd%$mdTCQnap+p%V=?JUdGG|gVO zEerDij#O*r>7Z@nxH+)-yqZ_FGJ>g#9#iD!#Zj^#GaK_*Ujmd841K{etYjv-IeIYd z5)I+y_!vE4x~f%WprSFzq4G?2-Q_X`hvC6T%Ira}m8*whr1g zB);tB2STwI1Yh3m13AH#mryea!}+*jW0E9Q!95faA!E!%_lx%nYJ=I-avnPjxi_&g zBaRODkX{74z>riz;fP~>Uy6zqd^9k#&n!pq4AG#!-{!4ZTNd4Vg+{e2VUc-Fc~j`m z43KI69L&t=hjU#g$mt0(_-9=nj7(kg`zDHi z=FWe7kal;bt(SNeCN=l>`8AEMeB0@%|EoDf@C(xIYG7?){4Z5?Iwd1>6B~m+tFeC% zfAG@c_l=Er_KbIq40f8vrzUF{4h(jd12OvtJ2x}3PhNAz1Z|TJ;>O>(TSOmvT9Rf1kvwXu_?)M@i4Qc67p2aB`omoVBb*@1u(15 zbq!&bG>3tvc$8B1%Lw+c#Zgp&U0Cc40f1-Q zFcs8Q{N5DPpY#Uq(YE2t;=o@;@}n$gdRgP;(+$eUt}}4niGC#o#i9H8LHbyz)i$fL z!dlbC0_X9b3>`FNBvuSX0aX{O%&EvLe6gRTZZmSpwR=l)q`KPNg2CxwSJY|GAJ7lD zT6v$clFkFb-bG_dBn*n=nW_^`U~%xsW!wQ zSg|1*1qk3i1EZDpx5R+act?^DnB0o%-9Q5uZ)7v)_y?UkN~#4x#`BEdqPm(;s8FUlfbM7Bp38 z8INDubn5Qv47brRB*RlwN9#03nf4%sJ8tuOpaNV+9-YiFH{NJsRg>EEmS|(Z6BW_t zP2|7#gg%nloscFGQhPqv$Kb?#-iQD|{LnH(TRJSKqJj(qL#HU{;9K&jvDI2WEbV%R z=9<6>*=6Y2=^Y$mnn0yc&ssTdK?S$x1WFqdVk|89X-w90P!aoy=7hB7Uc=3DjG-g)o)2jSHk!Q@k^OlzjT=-olE~N0A z`Ld=dD0-YXkYN1D@Wq>^a2N3@#hs&*dIK!A25@tQBTfa;fXP%8YjDgK|*ps0ndv56xw!{7Jvvp-ltJn;RTlB@c@ zq2&H($E=NvKECY2aFT+I3|s!A}8%A9&cu`sgdCKeKgWQ7Vd; z4X$VTm-|BmXQ*s-RGwW3txbM>WO_r~gb zlM=%`n5~~dmGkysX-q>OLZZs@e2F6`IIA?JWy6;=op8mV{qU0o$3z0FYgwswv(WNp zlP-GxNzSiEqKDc(cCJ4INdhiu5&=&A&CU{^8p5#Ac1eb>~Lmz<%NraM4RNdULpp9OQ zRbeFA!tBSWdJ*B;GLJKJ1<;>l#TIinDC;&;KTOrlJt+-?qu`cR2)^s% z-|Ti}AaAW`9J(D!n{qw1nRDVh&%_d$3y-M`I=hk#@i6;IAK}In*~aFPjmm?^xOrVy zRh>K1W0A$oxnfrU^V$Y-xhq*u5+S^P0)y*V%OoprF&oKKd|vOoA?~5SsUh)fJk{6? zdbKSZtg_ag9xV_$g0euW=eP68So6q%uhy>_+#&WS!UQb8wt7EAZ&9wwP0oP>AI)(j zYn6m&QY+rfx{OR6rn6%r8%2Sut!YAt6v`#*f)wZOU9A zX{{YQt)qAigOwl_mbuQtGvThaC1!|mj>~jf8>-#QaNFIzz0IyV2V142G*^@FFJ1g@ z&0U)7>k4<|Zrwn}%4%)Bw2u&ujOa>iaDS4T0%cboFnLtwK#U9wP(MMY9N3eDFZkdo zC;=Z(cNMp8dN-Rc3LHT77ZCLrc##*~FiGfxlZ--IN(L-KyHhVqE`s6AL z9i+>>9xD|Vu?bD4I-jv56x)%klz9*>T_RoA!sR0sBDg$#2JcB~znMlo^n@C4{(GGp#tM+Sdp~hgvmP} zdcmvjKY^^PTY**XdpZb**7rIYgWlvsCCqB&m^012kl(z6T2&cB3NME4xkoLrj$W1h zzCq&F*g7`!*Y#DO>ISUrsiio%RqE@Qk{i7Jifzp>SRw!7*BxSo;?kETp_z zS=9j)ZW>HADPI{|2&Ch(;+&xWAH@638*f z+C&26!}kw`=(v$TO(4R^QkPtW$So8I`1gZal4AP8MG(_V6DfhNh<@O$U6?Et84kvB zxz`Ho5DU%<#5qWb`&l7^84hro-4A6Ju*CbzDi-W-kaGHIoFxZp39+P_TogW)2-bm_i(t=-(`PI zLJF`jLDQ1C*uOWP|K}s_&jT(~9oiFn$K{nzstogMf0BB(m30b+U%^~;62m+eeGRqW zs3dEWbveJhXe*J$sHNFrX8kt8X1+vxi;N(W*B-xJd1QZk4ybI8z;d2!J-o2ZfZgQo$Xzdkfe{E~ zz!RoHGv4d_>kMd*_GmpM~ z{-fm11M`(2RO}-9@}3O!huXyi%!|m~v(^7c*;@w3wPZ`9w#CfM%*<>tGc&Wr%oep6 zTFlJMWJwk?Gc&U+Hb}2MXYSnbiErY~jnM9&9ihrzRkbtM$^?5wc&phFQu}F%>~m`< z@^ic4P6+l@bMS5S6-iCc3>iFGs#u+Nu}rN}^B}8BXcQLt7aKn zH5;`uns6xU0bgr7uo5Tl5YM68&N>2;h;5U(%dEDSQRnOH8JNeMknzx3dseeZeb@6ks|s9zhr4I)lMZ^ z&@NR@DM`Aui*?aE)brQTBT<&%wNE3GR2u*a#WFXALYBfgf^5lJVFH8|tTFG>-Bl924FKOPi6sAxlG(UQ^V~oc>ma=(;Vac1G$t1(bDe6Q>_dTR)Egjd< z=UhL}hFADD%)R6RjV_%h_4(ZEmKf;f7Q9%R;nk88E67y31c1(DV*ON3GWnaho3T7W z-O;Wy?%ywbc~|)onb}Mb`#8)Kgx4w7EMtAdR;#iXPY^-F!P34u{XcHshh8mMA#D!k z=plY`@b}%AfIXeB>V3T`gfi`r*lf})B<#$a5sdK;9hbaiLC77PhkdYi<#I|eNS(g* z+Dte5O7Req?LL7c>0y^ws;7F!&=+AFvQ!bbt}S4RyE;$=P~4plsWvBxx!G=^vQFka*pL`hKJ{yTG#K^v!3v! zb(=Z5=WL{~we^I|O>H<7&+XPPExOxkjw< z4qT9JV^zx3EhHI>c3t{~8C48k7Ero3!NizOX3k10%aBRqB&(@ZE(UQQJvBFpL&A#R zV#17D5r^3m5?qEosZ53Yn|$tVNSf`M3&~9JugNZf@VN6g z;{2Ls)NaQg#U(gW7!DzuBw%Em85MXHC^2Ic6cs%bwpXkzsS5Z!E>0r9>7Oi;$H?JQ zu^Y+^lbbi3+}0>C68OM}#Y~e@xO@`G-DgI5DuxdWHkGlQ#(7C9yyMyAD+7Jhh9qF| zrMr~^fl)0kLle&GXRh)Zj49a^`NcK?6ek_8xhEa8vzOjrCmkI!&-N@TG?;_VF5jEd z&Fi(tXen7JXn>3r|hoy~pP z9l~VGPSe|P`M`u-lb9f7y*}HnqJ>uMdlciGmPC=+iQ?tg;-`l&@rex&SI=>D?gU$) zN=c@W2BtZq3EJu&wWR0_mpjf@NMyCZMvwAn?K zDW%UmjBb${`9q=#p>skt;vomG!aVNe$US(Me4*rRlY~R5&p`UL?LBr^@VHc|?gR&~ z^!35_Zk6HD)K^7Kv(f)<@R6MrM>VMCmz#Im*p;vjs7peFcFY#S5;Bd3b8?cd(vI?*_BapA zK`0cNnSgg^NkIh-VyoVqOmfb9^*jN#H|m*l&4Yg9fdT;+b%x5I5w@o_Sz%_OP#AtH zJ@vhvVUpA&yqb}MFO}Ix>rIU2B~(Q}cB$S!sm9<;H%aX6?pBd(`uI&vVEemPDXbZg zZSnP6Pa5g$B|qI?Y513iV&|>zr#7a}bY#`p=&Tmsp-Ixx8>^0w>GOZp#nlqi{xMU0 z4P}vFam{#L>i5;j+T&sir$ipFT(H}Zzw#S|VQBk`?T^#|h$EZMu_7RzYjHiy>N~e1 zvJK~>l&;-KmVWSug1qZ1NPnJWLm2`F%^QhZ)@6>6p*kdtC?@0UL&D%x1f*q~E`Lzo zaPf?OcQ3Hl2608Zk;_~m-8yXW(g)0niA*7BMajuD`Vc>sm+DF))h2lZN1F#*!=J2{ z4$bFj=*nMPqxdD#~G;WAK#c!W5_W0k*BVXQ^>^x=5juN!<`Hy5f429hSQ8&?`N8zUQkB`In zz9l9~sxyj|@PWNFW=!9mM<3_zYV+AVW98)rJLBq33G0jf8sQJh2YhIPexoyTdv80{ zVHvR<08=mssnLq)ZL%o3G?QQ~#EBU!J?C%@7wS(H&F*5t1|5Qjph7 z8mI(-`Uc#4Oi6AfdD~wYqjhi{rsizlR|wHx z6bzgGVMK*fH6yt4NQ;YEpPX*ch;E%Z+zeI|+jWUGqk&%1`1$d}mRb+zD@I4GkR3&O zBQ(}&MkVLku`il{YEs8pTxVY(~wPn zGZr%3GA6PYD&HpCGUhZi)oM9EIxzI{{ZeJQ-xP(WC;{VZX2`M%Ju)Kw;Mqp@d1N#% z69!=o9Wn0OuE@=(p7QYwMF`)xki-4dzz6bA9@#^p$66_<8r{27kBoaqKu06O)`5kL zyA=!#EXQ-}rgmsfER+q(in0p}MP3)=4z2fJ`p38|XOSz9S@gaR;KAR!8wMs&T*dFZ z1szSnBCJ57XuD0KSmkDltIFMeLejzrq;+ou6k%uHHL1EGSM%n z+Jg`@2eEGYu=x3^To9|q(up(_Za+Oru_^Qs%kdf~HdHAqAZy5bTNR9yjC~~jcufSV zq6M)-_h~fct8=)f6{6e9nE6p~796W!Z#(fm6%Q8Uod4Q%{fnP>mSB*;J;8UvF2I*f z&tD=mlHKF=csov8=DLyJ@++uQ$vb-%1ECD?3DZK?T0W~AVA|2-@X+HleI`3Rpx$}y zjji3M-oNyOkQ6u>yufMFWhf8ul0zNK}PL63WgjZi^ecq&eFNBV$ z*JH#zGr+;<(%4|2{eZ3!2F7vDLq`aNRsOhyM{23W<#Vfx^0G;&+E06)z&F|a5u*j6 z5i2*U9Q1+mI7R;<>(R~S(-Ff-AEVqZvcwJX`HS(=t=C1bHu_CLrH2yXOZQgh3aqo+ zC_{71+aZ?YMrDP_L#Lt})?IRxWvWA}l&Ym_(`Rd^v1rSj_l$S2hRnB|v3+R41X$c> zu%7GqUK?sZ*$s@e`>IEip%)qoJ2%+`5xx@pW#Dl)ksFDiAU?D|liEmX`7xTi$zGkl zd#f(z_G)pJ7Cf>wa~f2|yrtgv`vLlr@du`R?BxX?GQCWZ>+m-9kH$}nup~am1~}8Z z2bEUvT`uphae3kr8+U9xzVX*EK@P+*$fn=rHPSPNAYO?-wrTGC*r>^e6q@Q9^|1~1 ze78l^kLM5lCkdt7%ZgP4q9D#e&!62*|LG-D&cPVOqyAk_BLwMbqfG1R?O6nOwKaNPK?S)(~p7#HY9~9 zsY&^ev!)|sBV!|Tvl-&51u7vHiso=o0=qHruXLs;QZTfccH$mzb_6Rzu$jq^ImGc6 z;B!?v>p0k4K?mB{IKM5_=>JB-Bz-W)xAL;b-pO~)#K}d zu4=<#C{esia#e-KCSdX+cZ!RNQ`FxU`nC5)^1q2NHl|9T(X~HS*WUrW%J z7SXb&;xj;CLd2NAQCMFxNXsZnZghL16qhO+OmJdfy|``)Ag)xFtH zn+^;PJhqKJ?E~6!pJkaIEX_TJ=(<7bBO$g-zm;5YqzxsGj=O`n+Z*?8H=!1Dy=Cvm z#h&g^Fnrc5i;B?3GyvlJi271-a)Q(!Y!t3%Q+wPh9X`G9M7n_qmBuF&FpAi?0YXOH zQ?jEC>o_zlSR_c#&ui01sM*>1HLe}j1useYgpL9QwvNTB1>YTpA5axe8q7&6<2f1! zN0#HeKBPx@OUNsSee0YHfI83Z%D+jd#OADPUuYVc&nSB|RDS+=>s4-boOsghW$<^V zNt*jduo?(~-$Bj)bt(MIDO+Fm1E?2dfBCE>IV0T{>X0D+k3zH^rpik_*?do1Y{xl#cdxhK0OW|u96(`~F!m+*B)PF_JZd~p zZ4AZ}@EKexcxD+Nnw&%v=svq=?wJDgJZKjMH2cg)vY=@eXhid0v6fC)igf&Qp%aYh zabzBbu=-pMdb&FZoHbF>y#$@S@P$(Z@cV~I4J9G#&nn{i$YScTA6>mn z6eV)xb;P%4@!eCuI8iS&;XwrwRji?aVOPZ_@qhACK)($qc{7CSf91#U+is~9Whtov z+j;|f9Gzw7cTk_tY1#>;e5KB4**Y;!&EXJ@L1-u-4C{pHLNzPO-81J+rdh&ioK z_iErmg~(K1 zBM4~1TpH-NAi^9@X`Slk7b{W|N>eG|sF_j*J|`znGts?b{GmqrK>KBW32=ud}l#@@_pojFm(6fiI8 zLV+lKmtrwrTu*6I)V_%~I2b-{>X$KhCKH~dz>|n8MIx&1bQqU(6~L9(k1$gjL_x;kDa8A)2=`v8~e4tz3}wBW~7ca4v?POGZ|L?}$4^mYjmjfdxPzq9AhIiIv%aGu|6^7R29T|>T_084F@#S1sMjQ9#W-$Xq1CS`qO*&u2k088w zqb1?nHOY%(0Z-WOTs1<;7!_+ltHWg1f7Tm7&=cXeE?4n?0h9Bu3z3_$yu&;wLc=zU z8-`N;P8b%2VupPZ>st&Qba{n$89EKLY!{wovi)II;RCOXKZ<6&R1~+P_?{$*g*=A( zj84XC`s&jVn?t~_*H0KEfRArv>5h-tORI_!o0zx4!Uvo^JS* zKr9I7qiiwZgy?;vu|+&U!Pk`ULAEHY=lWf;y2Bx&Jrs>bxA_~hnded=dS}a z-m*wMP!-Edt5rsot{)uoDT$c8%E~=XT`|6eV%E#yH|Zzc_KBlVU@;Q%c%JUPBfttf zVRl6bIIKPbN}@$s8(HN{_p8BlJ6?4Wx3a5Mdjv^9WN4kS)gq zdeF}EXs+sz$H+3Ym^Ga?6X;aEgHta=9z-(kt^nF(YMYr~C>i9JiMPuiPwn7-V&3S% zjpnTTYNiCxC)LGq6f4bdfig7yB?dAv#dF?Q6f2IDuDvnh|Cz;NYsRy;Jes5Y2{3BO z6)N;6>at&C?BYPE`~6=~=lU1wvSh-@e#uUja`=Tq4z9nn#1qoYV+qlP`C;ChLv=nW zWPBPgqMEn|zl-XmeI6w2gngy1=S4vg!tLlVyxlslI4eDVLvp;q!=vy_W9%D@Mrfp% zFx~<{AVm?T2>c{(6F_m0U@`9YqVy&W54DF1s~>5wAk|^rq(JZQ=6owsMloKPYd(<@ zIm{+zFQ2nJ>hO`FYgDvS`+EDMsv;Xz0x=QOhu69WhHY_;Z|QcM4JTcn$h_*Ay5OLH zxGhYb$X4s=7VbQRVO$7liqEMBqauZwc2=0WkYBxo=xEbEA!Cx@1N19!iIrf1oUQL* zxD=W$SnaU_Q9)%*+3un7u^>srH_NL!PlmBl_tmE0I;3oX-52`trSCuxo8i3 zN`5~eL%sJQrxriUq?z2tuNW01*DTg5dy1ta9TSpG!lgJ5_38e!vN!CeP32xg-FQ#v z_cw!#Gl0*D6$sd0py$8do4Nl2)?7&!G#rfl8r$l2X|~mHVv>SsGtdnwVN`$&Ev|vo zW#`>MwqA2lQy^4qIAbe~b&^js6BlVAf8uU5m6iTtG4(Y0WB45J=Sr^yIP4y+h?H2o zn9Lym+*Wg*k#cWC5C&l9BiA=g_*n@}qLYlKrVe(obYZ(#xhI{rhC$@D#1hvhoW0QP zx;-AzJey{S;O(nS_;Qh3IO7uwNxqJY$Q0e99j!wp6y^9`Em4hL-eE{*e6IuSmd=!X z&Q2Eg0LHk%jj%su$*@#aMN7k7&L~Xz2a;CaQ8N{MHf`_t4vHKUa3uj8>jDR0 zGi7+!e?2S<%nJwvyuSVnwa^=?05qoUv=!&Wpy6JbBsSy0YpncChuGS?toMUx<+VeAd|g0SNtj$B zeD*=&*1d0i_YN=5?)OZ1tbG#CH4k|oJ60#9!5Q(X#uAF73%xC>YUU*z)UkC}S8F<- zie=;^=%#cLi38vH`Ysh(2TWCUGc5FU2H)&YBn>tN)Gv&%)1zN-fcMa&j#LJgvu;?L zh<(T~v&t5#VI^ZfN{XjfUfgzZoxKKD^^;A!0^<j^_ohn0jQu zj~#Q)Xcr;6>g-SP0Ol6K6ZcIc2m15da>p(_!w+G#ET2K;&=QJAPR<`&4865S(5y9S zhF9Fph^Ad)b7`ns2+l>`8#!?(AX=qh$f5^JpX0oQrRNe%Y)hIsA+;tmFMji$2nVuX zjENv%X>@%RwrqA|$lN}+Y>J}-eQAm)8N7N7%h&JfW>Oq#`r~E*g(9lbtaGiDPhC<=t8~o$ZD+3?i?z7s z#ni6h-nNsS#kgS+u21J-Webl1^#`sn9KuyL{F?BIKD~7FaY1neCPv8o4LTM53C4%w zj)qk`v{N$=6uF!o-B#=~UPL9W3JI>yPG)9!7e4Q}BjMW0CVqjZOy81bq_oa<2B+xb zud1}khSP1(bdXZWOQKYdiw%P9%(5~EqJUBlSU{-svUCI^If_w8TK3GUADz@p&dTF!=2eD3Nm20>h~Lx4McWs0jXaC- z>{qsx6zEf$v5j_iVUp$gqoRBP-F!JDbT2$#vVT6{IHHjYhYTq2OR2?@m zIy&5!$;*Qk$5uSXa~z?RWTRcEkuX#br0C@NpK0k&Tg>Oz(@af{vBtxuOhf+B?~Q$` zV%#-DG+4b!#n39#9OE0m(6pKD6K-Q>Wu#N!Qxxjz9_~GmqK&2OdALY(-+#9~rWNpW z`gzQ)Fc-k!*Cn?&w9n*o$(CQ4iUc=xFV}cRB9aLbmzwn=)V0HPFmH3II#7N{BuS#5|^jw1&-fYWS;=UQ*ApNjEkv8^zeD96)BOKYZbeEAA;mZlf1=NSX zT|360&zyb_pu<4C`&-E2zb%@^U)}8gV;Pv8cxemjT^!0?FOg4muXSRYsy^RXdKknR zjKdH%D^O~w7jgQ5xo$flQ~8!`NYCv^1o1|FOU}S}xz_{H*PeCvbIOIg{pI1u z4r$g7} zJ2aTS?FZbk_va^xbhB)>^i%X(lrt7#pb`RS_rmK+B4SitwxNR+Fb}Y&(8NlKJ`MsW zOD!1+8F&HvI1fWjwDmaQK!qTWR^M> zcco+LxHC$jFIOl!aXt;OScwCQvkqS~dD=D|R$&}QI+<>OyUfH-8YA+GzIJ#oxMZOj ze-TU#U;^v!cmrbTHTJ{ltE%ML^ghBeMg$8gTA9u&E_l9NNzLf!_BmfNbrPH=eeGu1 z&y=<<q8tKM!?p zO3w*6y^0ySYBI^na$XJdgbGelPCq|tzFcW8yRdS#+A0^h2nptiys9^ftPJrIO!~xT zzw?SCM5VD_|1aj6ePOG*z{&dFsTHHTkPi~mu?8XGgf*>1t`In3p!n{5Z+{GS`l!CK{?$N%t z1L{V9bm%!CeIma*kUi68L<5(AmDO93up8$1pu?7tdW_z_Y;UelgRWSBaw1WlfUL(( z-9IUEJ1AAMuD}XFC6!12@QeC31%e-)Qgx}Cc1}$H=q}n?%Xioj%(OfqI`aPeCHwd1 z{G-vIygxQ;rpLA@4N*GJv?BGz9yzN`sw<9Y-3X#UZK)Eh=xk;z{csZI)Hi0|Lc=ZF z78+wB(PJ&AF_u}%)Y#H%Rls@qg@wX_kSbE=70vh(`3ch@8x+jxsFQGqo4r*P3o&ZI}svR$7HCf|g%gH?;jk-W%ibDGsh< zx8X@Q)+|s_egn4a#;IOU<6PS%3f4x3@`G!dWwKsNux4V0{(~K?$^zC^a-A#Qhu>wkpjzj8Oa^exCP|Tc}*+2c8U2 znUdGYl8Xx5aN1c%`y#2L%lf;B3XN8J0$GvVT@5$J>H8;X8;@B`o)?l%wCmiEr3yVZ zzt}jpK!)~WJ9D|)Ae+i+aW#?cW04`79t$+%7z#Ud-kVi&N62@KJHZiMg{h*oSPa7J zg3V9|bpD?KmWcX50jN#jWiPY&k36ACD`^@;~nHfO`5MUSeGON_~NJVG75S^(PWhHnc)Z|teU3kF{u>|(9 zH=%{giI4=M8`B2LwGwmPC|2XNLr8pR-z;z|6+gFkEpjp|foO+%QYZVnr(XEk$ zDK-Oo{`A!IbOeoeGyUiMOi&~QvY%+63Bw0SwE^rH!jGo7)7WUD{AmkTLAM6ukTN#w zpRiPZ=VvZ>{$|_um6UqrL8?IKzf=Lq71nsk*&bLKG}R^L+4_pY64RJ?q1z9N*{Dqx z=PB`*Ap*Uz_z)pBjpj(%^`r^02!B z4B&57fY10JssOq3!j9%Vfw(gD;w#I0@Heyc72Z#p3(`op9tP?n0!(}WfBmSaC5E;M1FAjIn!r1is#W>~58aS|B ztONVF{@kL-S9>^rum19Xx%&Sj2PpkTL@%prE>}-12u6H>;V{Y9B!kWkqBhQdvLjdm z{xWe#e=@{C7f1SSqRDa56LdOC_|O_j&9Tn5N+JzO3pETt&ux6lG=%vyXd4ZvZQ)XVVSX+JMJ0Ae`FukqhIjS6j@QIN{elb~I z?Rzb???)d4QXQVeNX}fkuYa!o3ZD>?Drn{R{>#<>mkjU^F-BlrcMZF_x_L=fINwMY z$p2ght%43)Ad{zqUYNtj*-qUhBCMh(9? zHOE_@jsQSz_!>=^HyYxfftlE8%N}G`Ql#_KrHDvH=TTDqErApl*dv8Kb@e057{c@n zIL8N<=gkP*^}*sNkko()m~ z)M+$ux&)wXiTKGL((+Dv>t!%P%V%rocL$4C$)L_-NPRvz8xISi6V zJKrU^BQsA+Bgj4+erKJlv-voj@gBh(;T)2)PI^VU5|yp}VS>DFaiu8)Ev%-aagX>$ zbdi_%vr(2bO<#_sBrqJh`ON{vy;1F6-!3QYYT#i&3ci#qi~CeTYb2@0AqSxZ|A$p+ zN%S_Sm%kA5oJxM31I#2*oOL<8$%8n)N#@tK5z!RvyK(_RIw{TAd{at}o>q$3M!6@5 zg-sukD-u-{3uSXk&`>gn{`VjP`bfMAs!p)LX4SG}Xe++HMbrEpn+HX0r9coa#-NMU ze{){^i}{xYMg3xD+1bo3t=RbOH!g}ACM1?d66b_`p38emW3(gROfu751BuAJ6`nV= z&xHdH=fQiX#$PvI(pIxq{rr5q0RVvuGb1BG1Om7UdW*Ucb9D{)DqJnDy578}O`~Nv z?37Eo)@z+WI-Mn_ouPVy4tc^woVh8b5zf@^;dm9-U3YF#f03P$5iEwiGpO#HLlV*I z`)RMQ>W6TE1E-ZDw&pS_Y)qL$n5EN0j3={AG0aTLxsfzx7E`0~0Zv%TNNQ$u^Z+9S z-aw9%js`oPjdSsCeBLg5uIPg+K``tIG!jqtmVQ&fYHlm@r&!(F(ly?wpWQ?^m=1(q zb4a6E8Y=!+Z}7v+%X@P;LkS+Z{D?k4$^6J-A=ZE<@YE%*{*tgv%H7lu=hJ()`!y-z zTGDxcT$=;+M~9@mbn)05`pYF~+omI0B%|ar=m;4*@Jn|&3S075;-&DiqV;4xa)bC{ zaUZd{Zb}+A^v>ZV{jL|a8fA6NdlrSRzm3Fa9W6+dgHSB~FH!s#<*zS`2NFOVGc6L^ zC~?1H*nTP;A~)amwWbMwCI+Y1Kl#yyvllY?DJ>ge^nb%><7m4YlZn-_u8y-@o~F`4 zgBL$TqPV!Ldir&6#H(~$m3t{$s@5Ot_IHcJ1OR&>!;{n&D<=pqAy6!u!8`Ov)@!n! zh9|A?hmIu^&CIMO)Y@%(WW7oOAE9GXY(B2+@s$^OP0!c~uwAp9Kck86(x1-DX<9}a zH-jQ++`Kr@f%&V+ch=-X5|p$LGdIeE-Epk6g1+?Lo`?G!8G?v2W-F~ft(gf1dtE0c z-H;=x=jSH+KJhCwS?4f+?)|DHbK)xiWTpT0rU@wQOx|h?M$%C*qlYXIGCX2$$T6mn z93yXQ%gUXN(RuW?RkRVtMGS$lEJrDfBb8?*SY_a?regoTJQf`t?2;T4a^x;pzBeDv zgM;90700L%6x@Lk_6=gC)?PhB6Hyz3qau}hJ%6oO%QgVa78Fd|^u+_zj6vPc3e3h| zDYhyHh0|skmZ>;?Eu8rwr*^jTjn3en*Ut)oVR#J1V}PzP!FiY`LujM_MG+qt|ZK>%*$jx?Ak82y-CpM%xGs z=PFFAn-jzWLm3e92=3Q1)8<1VNWVgj+?C2?vsM#JYjkDsPEhh9gO;ywO>Mu*nH#%6 z(|LGX_@TM@ET6_B$E!Cl?IN#L!L?Nv`<696a`BzobW;+Af=E!%=Xuu@jDtu>nQVbR z02|)NiTMJ~1v7+oOx0Y%c4!JrQ#(2#I zzL*5XMwV*pFUA0FeB)+1dG4|3i|jG_(RnFCGyW2E0g=Mj-i!GpnIN*w>B*!qpDO3< zCk#)$)PN+R_Yi6ql-#f2KD6!>0m^|6ICs%l+&ZQgb-4~(K^eNH=o!^4S(Px!bt8K; z^@Cz`n^p#eH{q;&$B1l~|DgKuCR$n<4U=s@*}+|bPj~%IhP55uX0!ld`V4yhn|=6S zEdM|6E=>^;=UoOjDwP^#7^9VW&^o^(ht+>a4p-2z(2TYWDBi;Ps^5MPe17kr#2o?Q z@Q=7}i^nXlH&4G{00+G;GqZ`va9JqJfqb+nX*(r?98MYw^LYF@ufb`wah=ntD}gSg zyS}$caPKFBA7>)er>rNLbE!5_#zjBzTAU~1t05VB^Fj%7Nem5ML_A{y?60#8U^VR= z9VeX9>fq72kCfT#dg{X|Vo_7DF%wc&Vr%*N?D@|6>|tBcWZX6{n%0HOWX|D@cD{5o z^;H~;0mHEYZ~g;HQmV?e>sv_Xsa82rOD&aVAAdGEi=@Ay3x5-%C&MUSL_>WM@SuX` z-&HbvyxA!mVqSXIEL1-{TaU3o5MOH&X8$oFf!2KR1DFMmGyHBa_&y_#dsHhKt8VNJ zjrEBp(ipm5Kn@7v_`AP_Pp~!Nr6G-Mi3EJSstLN`Wgv%Q6-o&4~lOnIl4oH`JJhE?~OcU8n}QB3)pK6*}~2OH@rO2V#1 zr^2jT6djatc*qHLE+K3M+9v`CwI+aEykPI?((OFtsJ)ys%7^MBX7a# z{VT{SF-KfWYz1jIVWuiwZxYLAqKCh@eW`zN`_l#%?=XaH*ZUBhQ3!`sz?p6%ODZjL z5b6woyQ$@pU+8Rlo+|G3fjFHO;fpxrfV;p!)hUoX?N2$9F+$1a{6MFQ*^Ad{&P_<^ zefG?zur;Oe5uu2Ka^71~pn4Wq=k705v`l{Lqw{vd%(=s5a5Z_AZ`54Cl-IPFN#GLgU=c2xRtSJ-$Uk+LMC3#|o^6sGbkT-=wk~YE3U1x;31hT_Epi-e! z1$_;xt2ws5823l8tH)VbS<{VS{XrngnOoJ_Ks7d{dypm~JFH+w9NXs|;Gzm#3OpTC z5S1LDZapP zOJA5&^(MHGPn4^gV)P#g5&9nNreXm7;-`yI?ganC{hwBLKH2x#CQ z?+;P#uY%S3ZG897GEMw_uLVV8u1MNc>r^j(U!w{#qkz_Li-!$*rbTz+LJ*acPK=k6 z@y~<{_$(yTi9=K*Utz~dm6hfDB**xBGZlp?C{JsoRz}t-PW|J3ujqm(*4vL{qo@Y7LJ1W9-fmRLQyaJ zGRc9)5T}dO^9~WLA9aM)%K;g4>I=y=`T4E{crskGY8|0=drjdgl$#`_F`HS9sV=-c zmO|(6a{qiiM4lR7tp~xA1G>(T|0j4r8AL9w#`doNj6!x(wsV*RC8IDhdxy#8gQ1sZ zX3qB-w6XY$V4)dL76fW&lHbicn-iGkGvsIAv_=!9SnVO*Na9RaYd#s*OHbc9XC7zy ze7{?6C6Y2l`oe==XR(7a%qz(fhR%uU1Qo}Vf?@BRgf6&CP3JqNtlVavXOTA*-z?;+ zyM)p&b1dSY;==MYOd8*fC4bO^c5PR{bjsH1aX%zz#;g-NUvIEJ@aee6xtdT^f(6hQ zI4|I&<52B>T_mdz)+;A6s0AsyJ2bD%TvS!;jxAOXzt@d#=#9UQ{#6K8;+78JTD?`; zaZTi@Wq7b&H-METAY%h6V!Wur+S6=Jv z{*AhC!c;psf!17|mKjH*7H@)zRS;|Vy6lyJtANhHaQMY_7r_L8u&I^JUND}=0_}%- z7ZJ;i;0LH)n-t%0J@c!Y|4Q?2q@ZGmTthvPQfp3YNo&><>*?b-Nlu@ix2lcq0Y7=E z)Ce?IOKng0M*;lGw^)5M)ax5Q6{5+e^!C0!O|xcJ)WK#QIW>h!-H0*U=A^Rq0NkCw z@no;1u&?qUxXC~j`5z(wTaK!q>OVXK1Vm}pYv7uS!+pcYQ=7i@>^(t^z&+=&0Kmok z@W+a(K6zwr3ZEt3P6q5%VlzZgelLj-8pt*7oM$Xnb0s{Q+TuB$0JR7HR>?77CQQX8 zF;#I(RMTc>L(AD&+p0`4L(wC7{j|>d6^s?Ao<(pGG1b>JPU(1SOoaP65SDQgD7uMY z0KJk-&$3sZ8%%teUyL1lS_SF{;v>XPoE>CCfOyY}gjFncVenm*fke_*;|y1qQ3thL zzAu-(=PZC6^JR}iSQyMTbS|@#?}x>En4(WMb)v`m)LCA6B1K~&HJp{WwCHcjngPk^ zhk%3PuF3e+HT2CMZHKGSAWhuJh@cF<_llyLk@4>!0W5vY{?2pze$%>0&}4l-niI-o zI{5UZ) zji%l>*f%&Gp~!HraJBjx=F%1%nHXD+7HD%+E1lcV`E^U%t5*UO*R!(i+!A>igG)r= zUsMU={P>Qt?HPiXn0v`K#`A~ZMzUh6Vw#RMi95!0 z1zRl7ihdfW^pzD+MIHXc%4A_l!x|}lPL^=JZ`Z)Fl|x}oA!xG*{2p5cOP<@};!SX@ z20ZP@v?irIj3{7NU4p`PyU!t}d}CT)j=$7w@RLV<{oCbx{q#G{ENJH$1?@uruN&Pz z4hV5iM`v>v7i$OmzmAIkHRLjIhh+Rms(S1~!$8*DK!TbCq~yPaYW>qW%eGGHuS6{a z6MGvcVH4*H|2(32>*|Q|3}E1RGbvAV9yyy(ZCZ9<7*H4?Dt!buST>UNZY~g4fZg|7 z)Lbtn1{lNr1RXU4%oG!Yi~_|fLPuLnpG`A=-_OXPfdu$p;qQn~b(EEoboAiwVaS5t zbudK3aSumc09KO8g$d49}5pzn(%=?f(3i=gl8dH1(9LG}Nz za|K!xVbGfVIbHE@hvxsT$={0ge;0>@5fT$p5V?1HinwQrcw~fFDN83QJq;~IM=dKo z7whb_Z=~mBaHQuvD_2u5Ax#rCB~3MB?0Xf1iB6tkb|MM>PI@^qs9?b)-bIftK^0EsGrR;O557!3EH-)|p_#Ffk&#)viIKSx z*xbcOLNqWaWVWCx@C5#kC?v$WFj9@y)()0N8zVjMmcU#QIK3#t`N96Sa^n&0fG5z# z)&cwO9qE5M&;BqtE7s6eU6(+AMek_{MGZ<+B2JDq_HR zT%!h3Xc|CJT{4Xloyg@_@dc-|s&0+R1*nx;nuGPd|EXkK_0WF7v)z87{dRYq8;}pN z|191MkII_B+O2ZKVS!;XP16=eC0vBQA+9sj84ZCG1-l0Egjdf9b7+1WWdM6*Rs~*P zK}^qCyQ_<%7(7CKf_l%J6FM^IA?(XU|4Qs@Kk}?BEaZB-22WZ^9MVqg9AqKFz*IN0Kr8D|zLa`VPwXgj6yR3l4nFdMA1VKM7f4n1)y{>tUuCF|o zJ|)Px=C1EvkF>i1Xpkmd#Ho>LK>=?j-=#;0Ezey;SPV@gQ}>r@3+u-blYuU&thKy;gZ6_sxNNcKnyJ0c6APWdj7 z+4~dKsg5=<`^X)aLx4}1wty;m#>D`Fh9gi1Pa2!I74Z59G%oXuVXW<<3ZI~_fLP{_g4WbmJKi#BGc)J>UemY4V{hf)a@F1A)EnIR4^=cXOoQR_mB zYb?^4nWQP*!Au|YGq8O9x*Yf(rzSFWMS}(41mkDGCRUD9V6a!Y(UErC2^#c$g?ZNYsNHkiF>RDFIn|@v?>T&+4XHE+r5$nW}IG@;<)yV zEOSR0df`WwdfPQ5H;&V_0U~NmxPbrR)`%BY1oqhiaM=2*3g3bx!J2ob{iDyjU*jjj z;Qe{&atjn2QJ4q^dPYE;#z)plg+;Qn{$-d1IPYFGgZVsZS_V zA+_pGzdpNfdy--6r{DOfyAoaGQ*n5QcW=-7gvZ`Y3f!B&e!Q-QMz+MdE`6NM#i`!I zyj++w4LjMEJi(s1#LdIa2n?<#V9JU+r3-?dWeZe13vY>7mN}2243`jaqDJf9Pv-|e z%%@^7ibjc^)rX&ody9E=TI0Sy65-xQaMYo2S__Y-9#0&&l_iWnU_T}y^y-Ma4Q=(0 zph9lz7}$dSg!=O}puI(t^bxdO%7P9Y z?*E@{^Up+5Pg8S8*MFVMc8cRNpoXj}1FkQqX!0L|!lAc(iQx>;I>})pp@j82Tbwqc zqZ^IgO_mZp?>zWnevh~fOe6bX42UA?|0=WT_`ZLBN#L>~UK)!Wg+V`PHE4yV6Y88H zU!j-p;^V|lJj0T|I&HVR`aNkn*bHSE+xyW)NW~0 z2F6(Et42uj+x^SPp=vj)3_8L>y^?TZou>3yQ75Q*)j~*yQ4s>k>%`@W7}4I9)9GSx zMVLozzk;}GTJJlWk*EQ}dt?n|QF5LX#-2`a^A1Wsn`||17W6~>DcFtL8!0% z-G6Hw7Gvczbq3w9zkrURKig3M?ePB7pXp!ba(_imGDf>4b@aYNQQo4Tu@eCm9inhB zBT2ed8t#kMm^mHJ<=ocpv$(%_Or2E$k^E2Pp?N;^hKRY6r^Bpco~O>u*XNfPI$oA2 zN!ps-jv!?SQ`#Yx`~*)G@ef=bC}D(%sw{Gq?9(AyqT;aD7&seh%#}tty>)aN$R}Tx zy49D@eK5KVn#HsO?t+Fo&EcknM)JnHj|k)Qf@y8-_2Rwv>_{YCIDv3*&I##7B<<-4>J?DTtqL0JF_dTP%yV;s7q zY zT!H(pp@E14eJ%OUlqiCub&0PRyr*~r=4(i^HsLb_>`z6jECr_%RMgiL^g(pkg6}7D zK2r)3KN3Wkd4QcANe*n0$Rv>6qq8DdA?WcYEoiMoib0ppyZ(QSy<>c3!M5(5bl9=c zv28o)*tTukwrv|7+qRRAoeny-@vh!y-+T7%d-i?rhxuC{*Q^?&s%F)A>i_77Nta;h zg$C0dZ%kqnI7C(38etz7sGg7{_9dOdMHD>~ACDwPm-YPh@f5(v=2ixn0j2@j`~R4^ z{}fRGm~xUE`~aq$;nI}P;6;12Zd3ETh_vzS^39mgClLI>*t}+tc$s9GXs{vH<3-F~AQn2n=h6l3cGlLYSLv zH#nLEtH!D|=sF%!OFWII6@_RQwh7M-hXs37&5Tb;Gw5b4dEUGHoi@Mh)n~7ppcOO6 z<2U}*yx4KKtH-3htdlc_?)h^CnIW&{#zS(AD){^5Xtf;xv`l14rC+qHgvFzEt;jJdHPh!Y}zf1inmjD{F^UAu!d?7u7Y z^_Mej2-Tl-V+LRbl>?7PFCjD4q1}MaM%~^apvoz$3}Y6o&S+XZv;d_LPOk zakPAi$EUwb@d9V%gw1}uLcEFYw&PbwbTun5;AZ6n#tQ23B@>1_Re_<_6(-s=KH|<1 zypqpNI%m^}cr0T~oRLT%D)3DXt^E#pTDiROH4vSwkNRq#ALmu{Qr4)<72~7-~I+h|EFc_pQpHg0CJ}P8z5KDyIi;5 zCvUZh#WmeDZ9Jh+;6_4~a;Ao0AW|96{9s|q#AP`F%Y3&3*;quJG+aV#oiA@@PBl@h zP{0Z$nvHfW03S1t=JCZJ_l}q0a;h$rnoHotygU8UbKCRN)i;;-@f}_FJ1pmKCm!5^ zk-{gIxAuT-IeIK%?4!c6p{y#cvJtW?aj+rs6NVZCfnoGt*9It&PgCSuG42F!KgjuX zA`HILRX!ylcxeoo8r?KN`DpeDgVhLKb3JLJ<|`C@NOvrnI=_+5F)*o0>erOHpLN4_vUEh0b1OS+GRH(i*Sf3)e zzLh(d1>AgOnV&jCY{qXYD5h7|?wu8TT$J6FJ9t6ce5^aUS2IxErF*&sE3v+)d%lUu zzN%Mvlpl&qpOQnq&|#nQ*FBUUvO}MhPu<5(;w1Dmh*bQQC>8SMD#c+E&QKIk<&-}~ z8NSbv$H)hM&+w{BiDj9L`F1cz9BWyCQIbYorEI2+LTast-B{<(Dz8;MMX6mmn?f!# zuaaD?Xr_sx&Pwq64m`e7n_i19Dnq$lz~ur#TSv*fRDuSoDPn7n+Cs5hJB&-|M5#+&^c_TU23SM9~|B zXGD<)~XEvP(EkMbdl%8Uw{<1{21F=#P}B_-rw!RCKqQll+_k(bsm*7}wGVSXjhr zb(t~dxww)`AOaNu`d^$?jEYu|MJyBJPPcbTCGMQ2t%*}3;Lod;MXP`!)z)l!6_!M>@5>_r!sgW-O9L$2o&a$psvhWt%G^Ym1fuBEi=2HMib@Bj&!8Yw-&U zO+D^Z1^@`>QbRnKnITjA<*Tf}Q1O>4lYwgqG|TxI^H!7GqiW^>tyF#Yt{5H`BhJ#Q z#`Mc3MsA+^fHJBnHJ1XqOsZCH^KXhZ(c~9~kf0Hr4o}u*=0C!c>~h$IWn?vei}%B( zsxu+9PIkEJX!}$0RWSi@mvUPTEapVBsk*BzKSt zWvy^-$_X0FiKF&C_}YE}aUQ-7{PB{DHEoflJ=tdA*oC`BPNA@?|Dg1m7xw6iAoybT zSZ0sEyF2day`5|90&8KxWr?L!d$Ykm=US?~1+uh*Ls{eAetqt?WVeWn<&BzGY(+!F zVbNhDApZB!7ky)CS>Wl?o0nR$Js{Dqo?g~JJH6L1rqZA`3+H%&oqxbn`jTE|C{Fa& z?!Wy!SV$hGHew89Ep7arRP|#Q(@RYv5wHG5Ci+3KMFirCJKwz2XKl2>!^%Tee5oo9 zRj%FgbRTWzn@6kS5(~F~?k;CKv6cAhgE+9#XmFUL55qs8a2{o<`JOE8vL`1QyW)y` zBrM7;H!vVGP}Nh6nrkD_QG-T(hid3t<{LXf-;k*>(V7d0qc6~pmLpNyNzW-13j^H} zBxQ!bkuc}bmpE#-Da0>bDY}J*JnnRzEz|FkSh7gS^Sz$e1_`F;Sob#1n)$(*GmF8S zIi-1UEPDNe30DbV!jYx?7Zc9sE1tZWSfM^A(%xu>&EDuP3R{qrp6Wy4R6(o*?QEcv z)BxQMx?qSx37oQ#lHsa?4!sJfaPg zRx_1jVo~k=_Z%XA?nDNyhu5TO83rg!Ro|-;oA=&)pG~U3cGG>FW~MpgUqu2g?p7V# zR7z;$-Q`*#c9rpC^r~p_%d(kpl6KUNRf2dltsYC$83$@-^P=i_eFo@Sa6v37y8AQ( zAZ2rz#q-P_;`Ak&)x6Wfxq-KZPsY)>XoWUy8k>g_g!w5=+S!g{8RWv;bV;!4Ddsl; zl<@@p1B`>TR}--uq>}T8dsK~ab~Fw~tu42#w8~CexV8k$p^KvR&);cHxvDvq5~bG( ziwRY7Qp%W!Aw?*D%wgD9#Y`N5N?RC-U$N;*uj))2ESPTz`_Xgd&xwzd55~+$ge@8g zpNsI#O2WB$bGt$dW;WzmF*9kVCGeU$U>}|b40wye2QFC#zG9ECC)VFof9HtC?Gt5o zIHtAVbo_QOcJS-uMj}fDjB}`K0=i`97aArTqr3SX6;3ZRH%ZgjqZc{|d_f&jYe=m4 zufZ43kVoeS*gMjjK5>G+v75DTjziQ(xA}9(CK=Zk9ylo)K8)5{OT=HHN>}{|$VQHX zem^*Nu#!$vx(n+3HjGV=aY~zaAL1GWJ3?*FiJwT{>y24H-cQC+T5Gd>WkMw>319-5 z3=SQ#oiOchWITBm#O%up=7?uC`K-b+PZo+J z81v)aoyio`zs_UwA@&E)LKYEBN%1e!^v(5g3M@mvE%62|W5^#9Un_a3W*WUJQv1bM z7VB@)Q)5qHsSB#S&u$c{na1i}Q}M_^dhCZ>&U4I5roN@?T;O#pxAiFN!^LI@TvqmK zMXRPW-+<&Wvl3wCO?w5&YCRh-r_h_E<>{cnY;5+bhTNd$TN`JqcE49qA-@`X+2%@B z&KoFtiRc?8Y%PQiuVT}9?`^(#=`-W8`v^+vZbt|xOwd(*fKy!>UK~lPn2?_VtF}hh zX~a7Xr`)tO98@eL^&Gl=GqbuM&?g{0>zThlkC;2>=prLO*@%@$Z}IX6$?RIRcc*zaC@9p%hEiEhJi7b$84g+f)@5_d+((+A%DE5W4)~ z_Q?*&C7}=MT=2XmPahHB>)|YEeSW*LboqN_!5;BEpFSJR3FSJ3u=!T=%)_TK)o2ElSogOSj~6*E1HzI9Vv*x|;NSen*TWK_^d9~tQ5b_eDO{O0e#jj3NLRs}OegwB8v z%WUuNHbFD)Vf?c}4JUT7>d23gxGe(XKD61fEVJ!ymDT-HtinFINiz3S6Qji+uyllNPyAT|+IA*GhLli0cj`C3xCd{~qNchk&{?pc%!$~XpduM8)X zvQDkxa6<$WRj8z}>%on;hA~ym$7=OXHEDeuUL8}JMRhp?+hVo(0WR_;pUpwH5;We% z(n_X7=iO3QqpjCw7xJ&I%es*Te0#&lrSj=yg+l(A5%+!i>$sAZX&5IKu=$?`JVgKT z5Wv~S@V`%a|GU5lD80J4fWwJ^|4a21^`F((`GiSq@7&2fBunWqei;Lu_U?aR*TPwd zKvFG*9V`UIO?-41xIoB=0;$EM|EoGHEMOoW;v)nU=R`Fn30|&mguu@h2q?(bptU|* zMZrYDNWtLuj`l-3u|dbpK>hMJV+9BQ>ktdhjx_!n&<=6H!N$LH8~%0Q`p@?KRXMem z<@s};*xOO(f|&FhNI+P0w2<%v1csFX=+JjL_;nWAvGI1-4Vy_9gQM*_BdKxtkX}X^ z2t!L(37H|g6cUGBnF*B@<%X?G4lk7BxU(|B5GfA@%xaQjhg7IcPf6Ad#FhX-YMSBi zXE~*XaRFx)0skmi+{FN~I#w`M_`H##PgnEzIz<%!>+*sTT z82qL5&d-Oxu%?JCUSEJ;M=Z!k2qf0usL8}wwx^5$T37vt*jFU;kHYgd9|aXl8|d*j z5pYs)1U(~tP|ifKLD0VvAk+(p%oEUp;{RJKRP-Ip^$o0y|6g0NSUXrSIarhhP#1Xr z=T>MSQO{4>SgH0+<#~SFw`;p z;S7Np{u-3&L%QOg@PLCCfX5!-2gu6Y(AdV&m`+MuP*_G$cvHjL7Hb6YLkIs;Uox)@ zG|QMwdTsc*NX?;tDIZ3>8VmHfwsW1Rg?Edw!?j>VciYrNH@3(a{apos2wXV7IP2uT zot*T(=DIG=o%m6;EYUgFbdvqDR}S_mw`9H$SwpL%v}aq7SG*Znqtp5HvR}D0Q0x8t z_H5JA5$81_wn*j%4Ofyid18Rrh5DOJhdm&+1-YEc~MPe@A>}l zaCovw<)L-0se0S-y8irlc`UxNHvw&5tg(3tjMN@^g~Hch*N|>!x$10CXha9T;U?#@ zA9RK#pV@tVDr8xOkzEm_tZA81S2Ci!5vgO-h*hN%a|c0?ZFa2mGweWTqkQf1h6JwG zMC->;OMl~&@IH@XEY?r>kpfIlVomF2&q~!(fi&%!DnBK)iqNjOeSq7-XQpfvR<;IX z)d9ZU#kfS(nd+Ou?2r(6Q$lv@;b!bF49|8FU4gIax4iNQ$6qdoyzgrx<{hmG5 zlUDs|uKZSP*hkfl$b<6=K4H!^Xia51gYw^u8Xkpr$Ur-wVe@?qSz@TPA9M}F}5a8sv*k5xA(4pedz4I zYBo6-*Uvi}u!y)B=9#vGxF=`R%!*F#^>*vh6|d2;X@N53BW&kv;G$EuFRt?OW5r9t z|IxadPdCd@ii*gL&~g(I)=yVVMD>831&i~&4@mR|LBzCfm7LkdQoBYn$nPh(5hQ4( zGJJ-$1TXA+P%9#o2P^AG2v0!Q#BoH2JgyR)%z#K7`?M1_ky@#0`v}8GGoQ!_sO~u^ z5~Y1vf1be2ncnv;J|mP$R)r%!Wli%{V=*?b#OV5pbt3W?_^M8ljS%dTR4ixQ=o){S z=42MKxC*HP@did%X$LcFoHEcje05|Vs^ z*2CMe`&1|>>-=akvFRg*FAS0`8ADUtWMX#F$`yj_8X$4iqbQQAb%N*AG-v4rQQq|a zd46eTI>yHF)!?Zhq0u`PWD80m4L2xnsl{I;PGVGC@$*)yM@_>S+Pbh7ho$py#NCyW zv@B%ucTq3FlF)fd#Q`peUdsLBgP2gsi5I=$r*jPOJ49?z`TmaGrZCj?DIQS~X*z72 zq&EA_?YL9N2;*4hdrpHpizJaerqJZtQH(cqCS}0xfQe*P zV|Sm-O_VC)=^Y*Is?`K@iUSP&bts2jN40U4go+e}!e)if@<+ezHCF)`q*hDC(EC zB-B2A4v3kml{SNbVN)g(AW?)JdyzQPHh;7SBMMyAt!wa-n*@pzR}V?ABM}I>$l=JX ze$w#|uk@{x5eVk}^yg)~DVm7?)>*#S=Fo9orpCe(HB&*#4c-4Udr_|4x1|$LX{;lO zQpRkJC?h*j#j&;-%?|~dpjc6dI(}y|yD)~e3u+Z94RStV97xBt6@PO~b(8>oA3O&} zW(eB!Y!sIPUMI|5(k4!l9O91fQ>Fy-ZXB9GHQ{5j7v18sA!~vWxn;P`w2Gx&+*-sy z{lk^r4<&n}O&;E9UFL_Ei{Dbg6PPKx-*_p1Y+^9_X0S%rO4&5&+DN8wrB&L30p84V z32nNWGPSYb;@~{-h^AO*y!&&Nz_kRc6fco>kuz+L2%Qw=u#1ubE8@5AZiJQ!D`xGh z-&k!kX0DJ@y&^czGbjZ)dVyA$d#UW!pjUN*h^Kv@nOSwE&Mh<7cmgey%d%C;{bQ^W z?v5=bf+PoD`GXo#IpA~09DO$tby^71#f5YWdwah<65~_3JJ3@9K00nrU>ecCzRs3y z_`PCmUv&v$d?J01&I0TeJDR|i|7(`#IjV+Rn*tbE_r`85Y5WuQROmSx4!$OG;Kw%v z2W8?lVLU%7C`f0wftxcY6PK6>16tD=N;gkoyH#=nHDz&*6~j<$zukcDWc%+0L{-JP zlQ-N|!_sPzuegC zbtw{u7={(6iY8yH01brCa?I0Z{@9>OsYYr}f=w-31^Fp{fTSXRLY(>v+GyB$<+`h> zlv}vzkh>7UTdwWGWi?Ony9^;S3ba21yH`(+{lOSTNra-IzagdM;~*z#uLJ3r?1DA? z&RkUTn6(i8U{QHGZUh2DGh41Hs(y zm8}k*M81Ek#v52P&*l4a@M^mLlLogloV@$5wN$rBe|~~_jG>1_OnwQ9dh_G$6sY2P zmI>>EI|0dDWRzq!|3DVfFy?NzC=s3jjwOe)V186GkVsEm z@@8(;+WmMUj{`3+fJKaa8=8K~gdp$?5*(*_v9MXHUAltR$&EQ-8?uU5z#aN|Ke8cZ zk1RtDLQC7FGrV75(MQ{(|efXmsk@PA=26m7xfy$NXr-RcD zxsyY>)}hAzdf7l{1X6dPIr%|@c^}MV2>1apyc4X6!hS*@ew$i8?Uno`+pr3=?kF;u zgP_u~F705liN?|Y(Ooo_xLCO)4`uk)wR?|U!PzEgIXZ0?@! z&;wnbj_y=j-5uVZj;`kob-9Wz%zeG6&Fm_-PJyNT-DTWYSQxVzKYk7#JcU{$>yCI=UPHdUAE#kmm zA0=ggi7D{alKY@@pR~q8G06W&wa#Sc3M7LyKFwFHlnE^UdD1BX(6`T1OnVo}zI>z~ zAu)3t-zB8uMYa@li{Qo$3PQYK_g^P{I90hxW&c98xFVi#&WMGJ24k(;82#y_z(29S z{Pmd&tVNl5pAKRtjJ8&fuO2^RpKF*I6sALDr-T)kxHP2oKGAdhh9h-h<)v26Bsu1* zv&g5=V_y;2ip&d~sVv-Kp_bF_wA->a=E9j1+ix)+{%O|rA4OY4bs_Oaw#64Br^v}? zYjrcAVaUJAZ57Q{_@e&E$aj5PI-7)V5B2V|+&R_*kHldid0|iG!Yh0t z11;!#^(96E6=7~tp}L1cI-sMkEcWl_cet<=x!Bjj{TemV*YCimZ(H9 zJF&(|-ap=io4fnIA=uC0ma+19UntzIbUJj9chgVMHa4ZLbCcl{W}F>ywjvG5kWV-T z{8UPMGjmbmd!}Tjh;Gt2%c>dOUcJ-ia1%%2k7*L;2)=Q|Gf@k}cF&WcT^%=HytwL3bXKPoZ#KG)CAiYIz$(%Ut5WNPbd2 zd;h+A(n{5}0l})UVJ@pN8X^75SGCo+k1mmUF0}?-HOX1lyAFM;)$0|FZtC+n!DW0(9L`_3f=*A9!;fIG4Imen5B~0T(FkLP6IdXUK9kbE?bvqZj`l)TwIS=0s zN(oFnK~5gUy(v(zl~u>7|2P__{fa(a2rl~CFt_4{*j;+`&v`CmVs<@ z*a(NLLo%7KaQE3NVQ6j~^Vj|%yZ>#}&8XAGx9(8_f!$zEUo?b8^rPQUEg5QrpU+9c_r3AMW=Dc+LyPo6_5!E7MMT+Kz3c;ErMSCIq@y;LUjp;mn2P| zFP<#ePyWKN8PubheFq@1Dgc}GKbIH&+NaYR*;>;W*%~@q8{0Vj!&aQu$<679>blLo z2$DB?o-a8D$RIfRa|&p9gBrDH!N}w>T114aOC3DQDw3yQebZS9%S%z`FD%E3%%my| zu?KytUeeV~XAWiOiWf(97zO2&iuvVFX`KYi>(#J!iHK8ib|{kxy|i+Nxbj8{VPhmB zWftaK*e>V>h?iR$SJ&;WO&>v5HnwdTn{J$qjs1y%D*Zhi>Wg@i-3!=;$55neJCgl!6nwB<>j68^0 zcUMnW-_szz?O30}Yp=!(@P<~V_U%_bqlT;=rCPJ4+N_w!B1*$_O zlR_e=f!f?q#agK8Wh^YHANQV}t@6V85A|y$H1W*Tg!rE-c?Kn` zIQJ}jH_6TOrkY z!79Fji8P~&{KA^tvFB%+xX^|rR<3Y6>_exlOv)j87YGJVrC>RhMsb>qoF;B<(Pk56 zwp$T3;BtGQm4d2-Q-*>`2xn>e+HQH0Jzucx=##F+5(j}_t5YeckOl%hCQO4cVV&K} z2+0MWc3p2aPDzt7xwd_oUF%o+VbotOG510=y}4=+_XS_4Jb2BGEIk?xjkRE%;CTs| zw=RMd22WC9lrsDUup0=+xe4ze7~(K3zzCc1OO56z)-Q(nvc2k*K9HdD?Si# zl}M3aSp%ak5T@q(#>jUjWX(?)g{WjLq|L+~M(lF^JrU(coQ7WD1^WQ*jun0HZ3Ppk zJYeaJigEdn`1DC7NCRo&Slaj1@SmxmW%LliI99Lvtu&3REra|ckr~1d+#E&aYTM35 zK$d#GQz3W_w^K!KcF}??A%buvb#b&HkvfxHe<-ByVzGop8X4nsi|2*B$O7yK<#WLI z_(Qv3w|o&om+zWwfVhO5chmI=qf?*yh!Kp835$554H}<~R2oD4&Kv|1JS-sWl0*N!GT#B{$ohMQ!am-Zt z?a>U!kb*zeU^QH*mOGO$En<3gR=0w&1JS}DD$R5N)&aDRt`@+*Rm(A>r3konnwqDn zmw>0di~rC~%US#o1NmSyZd`+1JT+S`GTRcT^t=0=Z+ra@(E+5cc&*^h{hBI>lbT7> z3#DTEdKA%)4%}fMff&$yBEK@r&1N7IG!q%tuSy;!O<)W@P^qOcQAfhepB&f#%e|{q zw@2F1+-P%VU9X6Kcv%LXDYAWhjrqk-4E*z#E^;-YKBUrj_NM}tfp}nzTEVmIeNF~HCwZOcef_%T#38wimDL{A7adqUILCb8<_xMrvw2i7 z>|%$PTp%CLRW5@VbM{B^AQbst%Ajt4SS(S0BJqZ|1#@A|?p1PD;2celgsFeYMmdc_%jR-rY5$ zR*&mZFJ$#Z}eCT@rARf5giix9Qlky!i{fuX_bnP6ZAG6bS2cDOq*@9@aC0d zq11xC*3UA!_h=qLZ{pRvW;S3eb>f-HtaPSp=U8NcrN&2jVE~byLZnpx?0X7bmH|kAD9&ZU4CYy*yW1iHOT5ZCkRCc}nM7*pKb7 zQg)oWtH&P3q%2>Jq^^>HBrmpxrM)3%a(->X$dN6xzu;6grH>?vyyKlC)Mv%4OD78b zOnf`%#JnI9;|BJroAp|lO{u7iJN&66+Mf1PojE&ew+lNUGElQ{Jk^w8^c+@>)_52f-V(Y8X&*7@Oz_N!w9iV6v0b!~A= zDyWHZN=;3157|1YdWEAGyN8g#Jk}R-Ve$B?B6{%$sE~)X9dcf1ePxAsazzcO%(253 z(e0x7JGlxnb4ufx)cxJw8OMl~iE)7pvh)}%6%v0Ui*TT{c&94YwhG2{1?`e~guJg( zv&~c3U4xzT^c3091APT!(`gt@l8(7dM4$3hL{u-cxZh_BxD^w^Z~T_SDrU>qDna$} zHGniW*S9LQ2$_{h-KTQegO&U`F5blZ)d&D~T_w=PsV!aM}d&%7T1mMDjZ`slfGq z5(|)_zgZbYVSxw73)+c+E{Ro_=Z?vS@;V$7{drfUj%J1KCBAuPAH58g_BxaKuQUD5 zMit{REv+7DtjmD1*}pojvTWC@dg$yVwx?I92XBRO=RuaGCXDxpJ|DM;HZ9pH z!neIUF!UL2nDTLerfDzJh%N|QDEXFIWLsN8nQFAi(y?@Mu)$wiQ7>}dD$e2Ssm^sW zC$nXD4!pqONB^w3{19Env)rk6KeC4HOrrUine91NEGm*KY%`M;wF_jPFxuA_hU9*u zgS2ovfB0FNh8WwUX2&n_U=gaN+ws{frT08KG`i_uDR}aJ>T_Gdw#j}GR-K{KQq$Kn zL~RArckQCYZ--E6BQuwnKvp+F!W50Dr}HfQX8H?yo#Hi+x{@qQc&|-n*k=De&5IPF zK5k}ZW||@{@rbdGMac8lsy;vdY=TzVmlW;`y|N!AFPQ;mKNyi~DhW3XZ7Ih5JujVm zrg{}hpD7)`Z{IWAS#*w0pMfQQ;cZf?T6r99IHRu+$Sdhz@a%@c};2pm= z*q_5|)v4*#?$zPv4%e_3kEa@V|udC2;V(|F;nJvrCRu7pkCENYOq1NYI7$mIy8M{I*(7YXf$i3S0h z2PLtG?nl)wUulD>dtA7kjn^NCtMODt(`#+GIWbi%!Yx!cNMFHP#|UWdMd1 z&`ZSCJ)H73d)?OEHUath@DKr-<$KUk0<{%Z;ANk) zQ9kvKk}Io*IY18#vockk3CUG?Swt6I*FM0`51ZH5xG%mjoa)WqjDdx1wL_e zcDqWEeCwV*72A+#NGXeUFf#PJv`0xe6!AB?^zc#l&m2zex_hZ)Mky>Z69H?;_X6?| z{ZUx9=w=-&xS~CqXE~+$%SP)P)-+n_FrV?>nX|G>HGyFXKPi|w27)sdt2isja-+qV zr7~i*os8i#Gs|DNQ2pO8f5lhEMOsGG&!lWb6czEqdZiX)wI~kXAB!O~wnQ@HoJZq|hO$dqnA)=bNeP{i zEhK6gPgb~*IP+KwL@qjw7xTP{p@wMW)s$?68h7@zu_wH2#! z(I{YQ?%wcCVBy#9$<2UO0VjUKNqZf{!l7UZge(hd`yu95$uiDM*Qc;W#-f7o0IQTu ztzUZcN&$^iua+fVmd=Q|x+Z`04V!)R`u8J)TCQB|n3LoAJVD9jp5w=x2N!qm&(PTg zQp!@R-grNo!a(E8Qj-CfjJvt}J@=EJZ5~T3+V33}Oj%@Kwm&*N%>%G_W)4j;{-VV> zf-LWu12V=JkTG!ok})!}N`OlKj|2hPFANC5m!uz|u0fz^LUd_vas^+%l7AKIq&=r* z{_Vn=T}}15Wg|Qo$uP{(D9w56yp{Q-^|^+fPf!vBH&CHS^RJ}g@@X!|`xi$o-htdPv;&UomNtc9a zcT{A>tl7r+ov9KV&(W(=_W6&gmO-vExAYl$jxw{EmdNs=*RQIcw#^-Wk=Je;c(9>{ zRo#npZIIFzU*Wa5vdO$5ZYrFsZmKL%3j)WNGC*(C^L{5&s}{wF3Vz5cIk^xhEe8rL zFstXxGd`>fJl?i}y|T*kmRQQ@Sdi0V3uB~ec8rk9$Omd?81yYUAp4Fv7XZE2e0N^l zlHV-q3H`mv?XgGofM?*z{(Hh|ocbg9%(cw;oStpG;fzF%Vq0CIL$_{EC`7HH<(p;U zSIf0Q@a#sH#RE1Y$5jm%p9i>qm$@8?AYbwW0&)pph@t&UP!xm(grtT4oZ0*t#a+tQ zw(G12A2z+8yWl8lUzBWB;u=2=+lN#7#G%)ZmwXD#8irB`VG|NI-d}JixFk2+%@y*{ zV8qBad1iPX`?YC^s!uhjGQCV_B<+r7$w?E3tZp7m&{ErDHmCa{PaR-HnA%%Wo_x$>rsq1koBr$7ghx+~Oy6>dv zG)+LS0@UQkVE_kp{$gjjJjY>>N-xwVI|f|m_PQ$@K1whG8jMX7s!V3hj$u+iCsD*O zgqcz}DUf)dygKn?)0{K?d%CRdch#>tz{0EFHX{RS$w6Wb0a4H;0-E!2*Tcmn zQmYE=Qn(1oBZmO)SC58SI$}G4bDI6qa+G_pPtcTN*U`k~W0!YJ29MpxDZo?vlJA=~ zX=uWm?0lgqNjB~ru5d#N=Yq#E^F;j{;>q?4-KJ{zjH@o@;Ze|-nZWr2h(9mnS-1GU zJZeK}Wm=cd`w1jZWG4gBu@HEm3P!N-oGZgQRDQRb9cL6?Q(IhB+&ffjX3Klpv%f;) zxEVULkB)32f$XO)O$_N1eQDBfUt3A`LS+vhTRT~Tpgq!G@o@uV3311T#9dNmJRykF zd)yzIR=J(3+#Lr~_ire5Nb4ZPw$`D-J(mv`p@Ktnor6o?FP?Ky*OciKk5#WE7TJG} zW753tuh$6K!WhnGa&ijw)zLYn(2J5eQT3O{53N4mD!g1}x_-d5m3JKPQ$xE4Z$1BY z!Ca-~ax4lk5sm?_8vYMs?w>1XbiAzP20g;ijQYwYeK0?5UDGLX@x8SkOfetSh_?EQVIZeGF>Ti>%o{BnzlBLw^u2{s$v z;eIp&Kh7Y?_w;iDIdswAh((qHA^Z{(VKj|J3Bu^ci@*3UD1_B$T{3g?a9U1*a3P>L z6MRE9woeecwn{fP+=XtrRS8>Q&21YEq^X*yOcO5G>88#voLPlsk3q!1x%D~0esiw^ zE~s@c)5cM8$UZ2LHm%*$`EoIa48J)WrRf-k_AL-qsF_0Tn7&*lgVumP>(~YBO}Akm zmNA;HwX8LuxJU2O)P<9My^J3_%}EEim31Z|L0fi@ABD#- zImJdB#sA)M=(0ep?<{i|VyfHPMOrFsxD-*O%ABhRCGbojH!JHffMi1*O%(0QQuV z)oBGLoQKV>&>MV;RtZxC-dLMH4Hi*Zc*ViEH?9u4r}~M-l^d5iYoFXHaM(u65oO$? z1C1f7=c`YP_sPCvY7qy(XrfWBiQZq_fKLJ9JQ5mFW0cS^-%lDmr6o>r6^#+*H}W=D zQa4@T(u@pozn>?wK=ECnQuQ&pMq_+JFols5JKA^|J@shq?iFc`HdN`pXOr4_Cmh@L z;qJ_HvRnhPTLVP^r{El}!3Q!*W=Swcd{n%vcC4*Nd|tF!y>wSY-A3{>qOyn*U90R` zIRSm(mQuPXYr{a5Qk~Ez6PWXG@1g=l35B9;$?OzFZAWTA(VAp#^KXqZrcZRDQutX9 zjB^9(?7Z1PnL6nG=9=;D3I#eEV47^~xHf_!4*VYdcG<&Y&j{Ab>tcw?$mCD5tW zQhEXfPX7A4Hdb^^McJ(9oT)T2j+P?u)kD`>v0mU@R?hEio;LJ5VDj zlLAJh7V?_E@U%A60SB~ngaWU~eXjd}FxWGG+NsvoI$=s6UBV~u24xSn@>Lbx&c zADW>m=qG5YB6<6>mIfA=I3y{EtU+oyy6Oyn+_2sia^JRmS$1W+-=#7>`CXV-mvi(b z5ah9@--W9jz%ww_?Pe=6I(C>!DvM4e8srxef8_MZ|;lYXm^_feb#nV^t>k^sQ=;eXOj z1B9|@|4Sm2I|%7J>Hk+Ot>e062Ix_O zW5qRED2l;eUctxw80i_CVd9~1;#M|)QA(p`jWY1fEcrw1LIP>OS>Wty# zzPhTl_GcMRGVG=?UZveBnDx;+bp4d+gychIe86jzF!CDM+2{^VIwej78<~V0%B6RS zecd7wT#nL;kGfCkbLjHR*X6d2$o+0Evw?4>Lwb{Cq|}@xgjRGXV7_%Il$20X|MLac zN>5fkC*mqq2G%;|C_UnR`E)k6p3JunRU#-u$sG1G`rbq|pS4V*XNJ%qO?l42+x6)O zE66}N2by2ZlwP5+!aDK##zq`mJIh|4>6ZbDm!{N)!V92*ZyY1S(OL#dB)#bWKHI^Y zrNgTMy3P#nVE)~OfVmD(&HI}}_OH?0{nuz7y=`nPb|Q&@|63rd7LD@ah$H%=1`7s% zB`gxA4kifYQ2_Mq{F9SFe@ohX^EAb%bQ4{|(6U_j>`mfCCU|ydvN^ zdy5HvfPdRq1pJ){xbr_%`hODZeJ7z{veU_u81WMzu=|B%IYlo5PP-iOYcT*I-0n1R z0r$xh_)QMb<1>gMFAxKy-Mek=ZgadW-F!}|Jq*?Z%~?D5_CXk{2^BYuBZRoECuKgVF!o* z<$0wYH}z+x3Z9WGiU=TAE|dj=UI>;{jaCv=Fq>z^P&J`WEGcpsbrN!CLFe^@H}0eX zg^V0acf5Q)Jo@Q?T z?8nf^rp^ZWmRGfeQ6+sp7mjVa&V&(zoG)01K>1S=yl}a+FjEODykI9BzjgW1#H;T- z>L?t?BKdHPCr~`yjH8r4)y03b6;1Jx3e7Ql+zan^+k|i_sHtTac-hOjhs?0Mz$Pq# zvX1Z4z>{+O+@G%^Ljlq9+*zx*sNnfbcOefrU&RN0x$)!|+_*rVz}Cif=&x88FXU*> zE=V#UbLevk+2yr9_2MJT^L|38&wo#MvZQ9vKeLxV;34=A-T7~pPXB!Y1d#SB|4{p1 zL=AQ(WhpHe6ubelOB^=$U&jEtuWoHnlL-n@ATui_e63BM%wL1y7gFBp|GwPOnDl>& z`Wb7@`2P5v9Rc=je^0W1BK{YKC}GM5U^z8nnptE%UnKo)z64hHfC&~11dLW#EV7G4 zqzY_i9yJ%McZW+FzHZ@ojbpCy=PS(%v3srl09Z~9OP5OjYCcivRaAG;SOvl#MqAV~F zL2ZdTIC`^9w-`5(u|I!PF;nK6Mdi`jS@J+@*bqtx&Kg>XS;`5X6Gqo z&Bc-mJs0Z#kF&Ro>T=uSh3RgPlp_oA;q7e+oXeS(|@!X zpMjK+uYr#-qi>`6I~woEml`b_9%uJ;I?ry77lSEWt)Y&*KgUL29EQw>AA>mWFoW~N zcnJq#S$EL7^6+J#jKY%XW4>jADWn}GQbENiS8TGH_2{?{gB0umYA2EtVm6*?S+yn= zI+fg=!v?1+NooQO4&~-aJUX zJrD9&&>{o=RPXrRb^K(Vr<&fo=Xoz3&<+)%LuO7*-afQbn^L}EpVH3_nce75?YG?a z#e2sguZJ614HAC7ZHZogP5A~R8g(b`0*#Rri;RJ!R2e|30~tSiP_bSrbXnXD^%EzTXf(xNvz$jw3Q4L+RD zNude2O~a7;s=x_&dhv6H7I zET1`D7(6Z+@uLzqj^nPU+Wr3Ba~E@`DBw^M;wA#X(dZ(R20~7k^T`m`i4$LBQn{0_Sm3{_pPLzb;4C!s%aT zQvPqiSju?9oQ^mYIiiBxQ&lmw7LYafcpv?bupujPsL9JYwA{Il%LL#vO%df3#G%AG zw7pp(Ww3D|>e0r~zB-{@%zV91tXEEyS;EG_#!15#@(YJFM+1ik2ahua#!140KCvLd zh}j;o00F=sK&byugs9lLI2xHewXFXkB_8-ZK*Rm>v&Er|{$OGMNh^ZfLKFhp62ip@ z9fN@}6Xge?IPtvvQTJz%d#RY@r7SEkM6y>3qtbE=21dsE#`=aJpcI(md8Jy|*nVuZ z;CPZSPpGnOkeloRsDTHldj4;!WbKR$od33raxr5_J;2DO9}X5Dw8G5viP7VimJCR# z<-(w`k1SLyc%=}x=IQwSLeW@NxiT5|y2*ZQd$bpZ5o>eca%3P(#3i8@Hwut@jbcaK z_ax+3&jXlMsoQxuTUWImsGfKXQJEjS&!Q-P^oAJb59`U~Vz=G29#sh`9_(@D$#|a=n5+Pa1fq=*L}Ilv)U3p5mm< zeU$Y~b-gOzmgY&C)$1aEDiNT!6*x~_UO+5WoE3iTuQ5%6|`kbZhq z03_}wZp{=_yZ2r1JCGtRoTYbcyx`E1a8LL+h09&h1?V4mm_PV8zuL)uiet9gsxq*- z_$XPDEI|kb3=YoSA0j!-T{zItPxD!1q!@|G*<0%n7iQkXjBKj2S?|Z?abr2l!EzKb z!K0!TR_#;V{IefsZ@!;g5n}t5Dn|9Sb9Kb_g@D3lhS`{gs|R8;B~BbM+3xw)Xy4#E zU0|EH1x3(^!$TFJzI4TNA$eV5kIk$Pgj<f>4bvAyXm}s>BU?2(g+Y=B;96D(EbBz*x<|)4Ay-bzSdJ>acgIO`LQh$~LfAn$ zeu8Oz1xr%QG#i#%P8H|8hM_@|2tn#XV$Sv~#vDHmy%)AgQNP%&kC(cPJ%$xC%D;KJ zBI8@m=Ylz91?uG${2`UT?H0trKvPE3cKzT&TT4xUqVKN;{6q-9BARhktEtk|e9gyJ zU|8KA@X_-09HLHD>Fi*ym= z7*VK?WZa9HU-e}~boe)qV(NF|gPuMKq}vyfm(_t6{1|nS0OudZ<(JfpI~th%pTe*7 z-(AmNwiT_ppx+r~Vwfl{Su>^VzZgvfG?9hP)Z7F(w%~Yw*sye*cTZTx^q&-bVn)AJZ_h@HSVt11#XZ1y5gL#9K@ylo>wWug{jveC;RK0>h2 zBfiUk7kn4X(j|@Va^~o$cih>Ut9L@UZxB*9D7h`ZtuDORZ}l>v_rvz=!6ZQyb=8#I zc=E-Khyhgy)>I7sJRGtioSJRS#hh_In+@B`&?t3R#$BaV%%ytxE&;Rkj3WEbEWDN1 zs;tS?84=o^C8Mh(wh0-Un-6whog_08`0NzCv^a0F-%7bAMR=Xtg;|GTU@+`>f)sR# z5P}O~3;#H+-&VWoKIXE9^?tJMs#$4;tOdA>CCGor#$rERqhG2?WkmULttF|X4$5-> z>-DXSKrH%B^UwY?{oqN^wy1+)CTJ1;M~i%qTX9Ux)_RTU-h;Cbylh*)bbj?JHwU#3 z69EwqmxJA!89{TcHbZ^6kz4eY9<6SsTZw}aPm0pns@%|unPkH5bg3^^vp~7}WtrsB z1&?>M=g@Jg$-nkr~hPrb7;&sDrok+dieXY&xqj z2pF74L$%DcKQgG^q-NwOB&*mdjUOrl6I3YmdraDAUvI0UJ4;DLsf zGL#fi#>QM>V?j%dCgR=+c7=cp#~DZqijweD&{q~IA;B+UCM9l2L+9VCBVvx!L>p&O zCo_H47F1=x9|dCf&)D!A?;uwbApR%-%bz~VU+h+OGyrhmP6pOL`EC>a%drqGUlj=m z>j!@mr=_V47hWXX3y(m-&az_6LqBD@3Cfq0HoC+%xhpg2>(xo9ki;xJCebI6IE@&r zC7qoXjHZE_exp@^o-c?CU5B)6<7r%aJ(|Ts>TFH4A@<{)PqVf$i#&Si;g0YK71?Fg zTTC~VyS>@<>slIlQc|}+geManf>T%-ngH|m@=pwirX$&pYK1d` zG9~qSGVP|mlo(gY(jg~NQoK^j?<*wAPR>WQ>mnBmXYU$qe3v#cs8iF(kssYc%4F;^ zI+Kg7x>a@&;01=BIdtBIU}DVL%8@i3h6D|HykCQfUgl0Y2wZ_MWDBU;yssr@Als1 zJ!y+{MiL>p!Sg|-gbP+P=$dCQ(^+OM<*_@Wzw`&|Fd7BeCBCpU`36B5WxW+Hf|v8T zqUMG^oFizXu!y#IC-(A(jcQVau4%wg1ZkxinU)DmUv0XPhW3jJlz z2E;2d z@_T=2K2T}s9eBv#?l zJ~TMCHI}wl6E6Ey#5f)ka+4#YGmlP=eT>9of|4R8%MmT}*wI-AlK zJ~E!jx~Fqp`h}R7S{ou#UWs4rBJlY$KiJ6eMtOAMYb)mD#j> z$VBx-l>K}2p%$QRy;b>bd#?g@E1W z!;(C%>?~_BM#f4OLXs%4P#rnUfS&RurKmt-#Jw@7RCu9+03?o2vkF?kHch0>0?jMFG-L*JWh z)I+4A%a~2CyyVspX8G_&n^vh3ZB07n5>aJaU5wR4bg|A{t!MlK>E55F5-vsA{0RF) z%~{&Z+P&&w>!vs0!STULYT`%WDeEZ^(H*G^2SX|`k<8yKs$AI8@mr!Na%Uv3C{!s~ zX?lu13%^HY#g&MzS371I6s|pzXQJYC6+%Y5S&k)mEXvnD`}O?C(RZ zZc<=YboxRH)^-FL-{J#DHhmh#_brmBu%&2w=VEtJBi&f>klP2GKBE#E+2*&Otrh!k zMeniFQRHs+_O@BH6C)OI@P7lNyAkHsb9kk)1T3+99U4_$R*g2D?p80v3)vA&_iXF? zTy~fdo`O`GE&JqWl#|<~GacM1^L8K2;f7<+o+z$wglEpn{YTST-@CA0V5FZsI~40F z(Qk~jCRo~<9@+{4M{M1$!(T1E<^^W&%zhp055Gz!&&_#>Ghu@^_*`S~1VGrTd=O>qOMgr`=Sb>o*C|l8Nr#q$*S1)=$^b6o8%R{D%@Y0KUB;g zGCrouJPTM27PfSVn}53rGPl0Fgr7rrARd}v&aiN7QWCF>BQdp~MsE+<&eZ=*T{0+k z__RB`zdU)84oQ&YxIe!KzCd7mwQq^|l9Mlso?@1WI@Gy2uJSl^ID0PD3)RS&y2 z-4qGWP!2CwY)euv7D{cYJ≺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 A761SM diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 51d0684..d3c5b54 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -1,22 +1,8 @@ + - - injectedResource - java.lang.Integer - 42 - - - HeaderFilter - org.eclipse.jetty.servlets.HeaderFilter - - headerConfig - - set X-Frame-Options: SAMEORIGIN - - - - \ No newline at end of file + diff --git a/src/main/resources/saref-portal-generator/public/desktop.ini b/src/main/webapp/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/desktop.ini rename to src/main/webapp/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/documentation-draft.html b/src/main/webapp/documentation-draft.html similarity index 100% rename from src/main/resources/saref-portal-generator/public/documentation-draft.html rename to src/main/webapp/documentation-draft.html diff --git a/src/main/resources/saref-portal-generator/public/favicon.ico b/src/main/webapp/favicon.ico similarity index 100% rename from src/main/resources/saref-portal-generator/public/favicon.ico rename to src/main/webapp/favicon.ico diff --git a/src/main/resources/saref-portal-generator/public/files/ETSI-Logo_BW_S_Office1.png b/src/main/webapp/files/ETSI-Logo_BW_S_Office1.png similarity index 100% rename from src/main/resources/saref-portal-generator/public/files/ETSI-Logo_BW_S_Office1.png rename to src/main/webapp/files/ETSI-Logo_BW_S_Office1.png diff --git a/src/main/resources/saref-portal-generator/public/files/ETSI/desktop.ini b/src/main/webapp/files/ETSI/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/files/ETSI/desktop.ini rename to src/main/webapp/files/ETSI/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/files/ETSI/etsi-arrows-crop.png b/src/main/webapp/files/ETSI/etsi-arrows-crop.png similarity index 100% rename from src/main/resources/saref-portal-generator/public/files/ETSI/etsi-arrows-crop.png rename to src/main/webapp/files/ETSI/etsi-arrows-crop.png diff --git a/src/main/resources/saref-portal-generator/public/files/ETSI/home/arrows-home-575.PNG b/src/main/webapp/files/ETSI/home/arrows-home-575.PNG similarity index 100% rename from src/main/resources/saref-portal-generator/public/files/ETSI/home/arrows-home-575.PNG rename to src/main/webapp/files/ETSI/home/arrows-home-575.PNG diff --git a/src/main/resources/saref-portal-generator/public/files/ETSI/home/build-home-575.PNG b/src/main/webapp/files/ETSI/home/build-home-575.PNG similarity index 100% rename from src/main/resources/saref-portal-generator/public/files/ETSI/home/build-home-575.PNG rename to src/main/webapp/files/ETSI/home/build-home-575.PNG diff --git a/src/main/resources/saref-portal-generator/public/files/ETSI/home/desktop.ini b/src/main/webapp/files/ETSI/home/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/files/ETSI/home/desktop.ini rename to src/main/webapp/files/ETSI/home/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/files/ETSI/home/globe-home-575.PNG b/src/main/webapp/files/ETSI/home/globe-home-575.PNG similarity index 100% rename from src/main/resources/saref-portal-generator/public/files/ETSI/home/globe-home-575.PNG rename to src/main/webapp/files/ETSI/home/globe-home-575.PNG diff --git a/src/main/resources/saref-portal-generator/public/files/ETSI/svn256.png b/src/main/webapp/files/ETSI/svn256.png similarity index 100% rename from src/main/resources/saref-portal-generator/public/files/ETSI/svn256.png rename to src/main/webapp/files/ETSI/svn256.png diff --git a/src/main/resources/saref-portal-generator/public/files/desktop.ini b/src/main/webapp/files/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/files/desktop.ini rename to src/main/webapp/files/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/images/desktop.ini b/src/main/webapp/images/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/images/desktop.ini rename to src/main/webapp/images/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/images/logo-l.png b/src/main/webapp/images/logo-l.png similarity index 100% rename from src/main/resources/saref-portal-generator/public/images/logo-l.png rename to src/main/webapp/images/logo-l.png diff --git a/src/main/webapp/images/saref.png b/src/main/webapp/images/saref.png new file mode 100644 index 0000000000000000000000000000000000000000..70289a4ffe36db9d0c4c6048cfc934b747754a57 GIT binary patch literal 175973 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

      OI5{G2i(j$ zg;KY~CC@K;g}9a{B@LWj6>|Oh%&OS%{)v=tk?RaObJ@2X?DDn(0SRM^ve8!mxPLE% zZ;UHN41G3)PF!OiC%8v$)*^ZSnK2{@&fBKlerM3x@dAW&v3N^Pmwtn(CQ7ul`q^mq zyK+s%dL0c)*~Pff*J_?(c1)4<5G23!nFCGsn()U*Rmr~(;^Pgjyt$IR;sUN2M4pGQ zUX99HHr{#%HVl}s)cq~3)wrB`23ZUVZ7LJ?+VR~IXt1e-|3sQlxAUk`r@7O}UbVbB zimyY4f#XJmRfr-2gFb!yC^Owcrj8i#-K9x3rbaS(o^8LbCKAX-N%TX7R~k2LDE{_h zi~()Tl#L-?1`FSIhghU|SpJ`v)b+tBui@*)d37*fwaO61a)@?!_~^y|c|?;CtdVDC zo!YwJsS|2jN>%c@OJc=3N)EJ2yTD_WFNTaJ3dC?HozqnN37*RFjjA2$=yaS^0CGbOR`nf9lR298!q0GW(R{&kP+!OYQP5 z^>}&9)r8vg!g6X+Bm&|b#7R~;V)kbf(^Fsj>{pIL%`B;7zjw1voq~qBJCU*g7nXDQ z3Z7GevyAEhT#9(OTkmrVUHOG!S?x_9zr~ox2g;-2%!!EQ#mCmBEk?m^$*u(J-r|0% z7-asanXP{u?F-XNK_{=0ML!xMe*7Q&Z--^5~dQQ@NEIxwLzJg#}S6WFV`Tk~4rNe@%zjT~pD~Kvlc-GV->Cm)*_4u}Iyg|qrf#kB_Yv{V5VX{iB4>5c>k61?L&`}~& zm`10YUV?1t*~>`kHVH8hBLQ0b&~PGd(JoeP+jbE1DtL?tuZXU}4<1k^F6m`%bA!dFp^oRFnq*0cE|IJ#!VpzA>A74Hq3W$CJ6QT&DwOCmTl*#YH}aI*(Up zM9)IGm&^0PDc6NSuY5#n%|Z(JQnjabV6}G}ML&}pvADp(tevzXr z1v+U#@F7rxXu5)*rAQTBZsy;pD>6ON)51;6Rf`TQ-;dbBsfEk2@;Rur_8z_j(=SsP z7!4qt*}G~b=Zd;-2V$&?J&<51F9y3{My`MK+zCZ*kv_N%Ty%yoYyLcbQiI~6>Hk&m zJe@pJJcjrZ(kaU*apBMPEPDSNv979c}na75M-Ar>5@>ex`N)&$qq8tx{Y+T`{E7 z_0xWne3Uwe-I%n1n$*9tBbzOsUNG@7YL*=KliY4l{QbXTF246*U{+GgM4WR%(CTuO zJ7N7k5+e%WX%m!Qt6sMI$o*yVG+(1np$D1^-WL@xt2H3G9DHTGaxnCQ{z9@5v*qAYp)U>|^- z*@9WumQJJvlhv$uE(5@zYds`&IyE4jEcwmvP7TnHC+dzZ(@TEXjLXdpO@Bjx~fNNr-587UFesu=K7E>8KT%^N6h_;me zt);s0zb+ZMzzM?T(cWDO=>tn*#mFmz4t2$POQM4He47`cOF$2_GgdNeC@?4u)by}T zHbl&wFnx*F{_Lb9*uTh|m?2^!S?qF{IMyi6N)>qzcS=q}mo7>)eyCMgu50ApQ!~`; z%Fjc#H_6prS#HRL8z!7?DrVfEZG~N{!{^}-&yEEDe+U!@Fhq>N+UiP zAisomF z;qKm%*$YqRAMaFyzp-ZSy7qz3{36EBJTU%~3Y;G7KFMKwTK8nI|EV++>L7H2QuBZX zrAGW4UVMjM0I#uq`CIZ`E)ZeWj>R>1ks-5y^M_6^egs97^6RX;&atO{aKJsmBxh)kodV|v=O2(G=3f@C42UiaY zXzK|-&sXt3aq=X@%wY5Yad15?b>S^{C6)`6sdz`+DhMV<^rchSfA;Lz<{dg*0WX?p z(y|BW9JFv8TV~E3nmT2Q39Q;>MVyQTy@OzGbPmj7dfpabnVGb`exTN~Oj`ad+bXM; z(T(Zj?SNXt4P;s!IC}=zm>cKl;>)w6wwgY6>+5lhwDyjAfzQ?G+}%n`N0BlBldxrI z5edu0WAem_y@8QUfwnFUm`7`^tPa#|>@jiDq&{#4`vU_5$+3Y0$nUq6)hXAAL?(#g zE{j^i>gl=diR*+is%H%4^S$yWTDOV$*^!a2%S>BNB-PIvqUMqqX(E~lrh=7Rp#cKI zA~|+_sdfxEXYKjQS(a&)PGxPmP#d#uZX4+R?4YqbAw;euqD%S_Jv zTTpPxJzxZ?8_uRBoRZzL)Mrl|ech{ZLs)6JNX)ZJjN_i%i;7;+b6M3iV?*~~4W z|IA^W97EybfRUGSFsM>x1r5=38G$pu_*_(~u)2{xa?ko`0ypx8#`(pbWUQx>MJqf@aYfHK;je z8*dN<5LB}TqOXJ;!75QZa^#qyy-TpL9A_WlYl*<*=X-*4b0wEbFQNFFNBhc}Cu$;o zYsT#Uq&&T{p;*KJw=qz>}^Sp zpZ__|ydCOI_O?3H+#z#1mi}h16Z67#hk71;55md({~6p%WimnW^?kwtxkDNM2xceN zpL*d-ZXmjb3l~(u|L{CGnzA`ZUYtG8g+bA`7DxdL83cfdxMtIb?I%77jL#>{WI+J1 zk?|>g$bbB-dLkqxq>Q~2y9y$f6ktJ;u?{JK?3c$57%E=Tge}tH+xPEdP?pG0&=I?3 z!>>#!MNg9cZrqQT!r=f134BVgL`x%jOJvij$O!m{`>tIZObj?rQzTj;-aY%I$4f(i zGLvq>u4<^3R>oEbjP4XNG){3-7K3FI3(S7J&MU4g<`F5xu@zBWTDzk6@BKAb=Fa5m z_(G7gDt9R*5Q0)n(tRnHP<+3+A`e%g_o4l4hx#T)({TgjBAKf;ADlFb;xx29Wg zuEXFf`8xyH9l!<9uakk(uJLB-J>6PRMP8vG%gM{Dn5LDOvfA3;O;sDedMaHBZ`NJw zMRBwE)a<@~R~!4tX#-&EUtx zefyt>sqa`i{^7Wg^Gl1KKb`P!p?X)-@`^w9IE3%0UvlY$N8X0S(Y-cr+GMfm-RqB8 zmX;lD-%HQt9CK_m%D{gK2r#=HMvo3xsa|k<{omX~!QhULnm2p42ZBjsJQ8Xu3kS;e zWH5z^y*rble2JHW7;q9nR!_dmY58{E47d-8o@9>^c!f%xT~!n*y}fh|=m^-?cn?ei z60AQ_w+GgJPENIkmgCHOI=JgYDbPwkDP=i!Y38BFSWG#Cb2(m(q@%I86T}1`GE!e6 zr%c2%Qq5kOv4S0?-9!kb0J-|HIGb{#UW�+qZA8WBP!aH;x8frZ36QPlkLb?UJ9T z72;b)pDg#Asqy8v!;_}&kd}QyVvpGh37pN|I+=2QKx5Ol5IzrrLMWahd&4=tf$Zy3 zUvOs#35`xhNeb)EHVL&x;zrupCZ_SZ`sy+mFk-!LOyAK#`jubD0e(=KTyltZQXZAR z-Myk-{rbwVW#K9Y`2q=}RWT+0)8sett!MqZ(`38a{MZ2xB9jRxGTnx`D`r%J`;l+b z-+iGRlx5aZ!!yoFGMb*FdECuY?MV6DzKnRInt4l4t@e_oYiRg)RBo+mpW=}pziL(- zcU5%t{@effmZWl<>hdU+$@Niv4eY~TRuC*TR+YfU@vit{>wqQY`V!9-pw9tx1zZ(2 zd@QG@I_p={xxXG8u7Zk3pIA+YFJ|(8{IRFs&5GL$`P`Gx)^*RZz6$=6LU4?%ABK!@ znN3usG8rRA#(XW&4BA4Q#1kOWdc|%2^g_mWF3t{m-K%UH(pLpns7VyT)j9NEeNe=h zcrY4a32l!-ooMs;hL()_a9=u(#fCm_cwRZQjlp^KGEJ;+izw%vJPU@P8O1i`3OXtu9?Cd^&cT`v_Unf zk_OY}09rc{eGt=i%?1TSIRH3yGZ-;lwvf8GB>b`Ay6*M7Rw1ZiUk+XB~%_1NaUwZDAVEzEW8tOEzFX1+?BhDvc9lKhPEH zaE|a73RxqwKG;>hlJ<>d4MT_5ksyN<6h&TDZs&@;?wT?#w)eEb`k$QlxV`NIU{Rdk zYiI!4NZ-bhL&^IX){6Q6`@OP;pw`DzXXD0=X|Hpk7_;)er;HgRk^LL=M!)5QJh@EQF&9dB0Knp?b-dPvY3AwO84Nw^j=o~R~l zDE661*OL&Uk!X}e*a`TGUK@!~6wIht%b#4CJ6_sSP97=YJ*iLVMMyO1>FATbp{1zV zbQcKp(Z)^jRdiwEyaCLL=f5kudzQ-WCt5H!{cXh{KSFQ6Iai%&QZVDak5)dDp$i^` zsIEBn46%&`Rud0nmPiUH*JtJ>$?kNcvZD|ZSEf+`2{(WT@gI``LB$~H$gmbNFfZ_x zq<(rWR;@i}?2I0RM_9ZjDK@O8sJ7-X=R1W)4qQN;iC~DKH+(Ug$fJyo8d(=@IJQ^{ zwxb&!w{n)kEkZTlC^tT}_^p9K(iBsk-}Qc@|Ei`Cehwgk!uMny$>gCIk(K@0HiHVt%V^soUX9@s}pzHaqb=~-a){A>;=4&q2m^Uea79XC_ z6a0{IwR*n&kC*5$5W&|DzFT^@S$0)hKr)0nh;VD zu$`qrVkkoNHb=N2k%FObgfM^lCKwwm>iKa2JIzGJ!YO0$?GfGYMJ$Z~BW2i6P3tB9 z&4AJqGFZ*#?xNScV#7iuW>0r=`!yIUVT5!GE24OJc?hvkbxgcc;kdpWo!5r1xl;&? z7})v2{DSBNTc`J7JV~FAlQ!Q_w#9Ib0CfNT@ZrJ@89zWNqsw>MT2|1C;cT%oVZeD8 zVt`9!7^B>0e2jUOE)b@8*=gW=1L}Nkz_xD@1eoS(YWjTCp>gr9y~jgQkb`1hy*iB) zQ*=WlJu7+ye;bGX&3_J2t{>3PuhTiTaaMN6SO2_w?Gb$zpm!&>MQ}eiCRA|BbNhQ-90rcOO1H zlH$#CD8Cgc6ebB52W00I6&aCFCc5M0 zkHWrQnR9JvJ=A-`5Jj#QtN^ZDMsQu)B?G_S1Vl(?Wi;=+ap{eIWK}0dar3jNz!tO9y*<4IAi| zHf&;SdSf2)MwpTZbOgdZ;u6DT^xKag4e6CN(*~M_s)JHdly-Tl%q|TB0ENm3z9<8! zm`FAdr%~)BFtJc|7Z$EPP`{X+1J#NimAN=0h8ZMd{QC_+-1q435Hw}bPgpwpAg4$6 zcp+7P%sj`Yrjvgh@ayGJI|D}Y9;!1U&vLZ~-vT}24QpDuM+uEr&sQo!&xaQ zj0L)qniXN3U)hZ?S8XTJZR&rn#_gZ*-2<&|?8L&%0DQ_dYy4j$46$mW7>;HwG~q{v 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%0Av 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�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

      6kHzoJywsR*d3Oj0ijX=r&vL4 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 J-%kALe*k4lhOGbq literal 0 HcmV?d00001 diff --git a/src/main/resources/saref-portal-generator/public/test.png b/src/main/webapp/images/test.png similarity index 100% rename from src/main/resources/saref-portal-generator/public/test.png rename to src/main/webapp/images/test.png diff --git a/src/main/resources/saref-portal-generator/public/keywordSearchPage.html b/src/main/webapp/keywordSearchPage.html similarity index 100% rename from src/main/resources/saref-portal-generator/public/keywordSearchPage.html rename to src/main/webapp/keywordSearchPage.html diff --git a/src/main/resources/saref-portal-generator/public/lode/desktop.ini b/src/main/webapp/lode/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/lode/desktop.ini rename to src/main/webapp/lode/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/extra.css b/src/main/webapp/lode/extra.css similarity index 100% rename from src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/extra.css rename to src/main/webapp/lode/extra.css diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/owl.css b/src/main/webapp/lode/owl.css similarity index 100% rename from src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/owl.css rename to src/main/webapp/lode/owl.css diff --git a/src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/primer.css b/src/main/webapp/lode/primer.css similarity index 100% rename from src/main/resources/saref-portal-generator/public/core/v3.1.1/resources/primer.css rename to src/main/webapp/lode/primer.css diff --git a/src/main/resources/saref-portal-generator/public/lode/rec.css b/src/main/webapp/lode/rec.css similarity index 100% rename from src/main/resources/saref-portal-generator/public/lode/rec.css rename to src/main/webapp/lode/rec.css diff --git a/src/main/resources/saref-portal-generator/public/media/desktop.ini b/src/main/webapp/media/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/desktop.ini rename to src/main/webapp/media/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/media/gantry5/assets/css/bootstrap-gantry.css b/src/main/webapp/media/gantry5/assets/css/bootstrap-gantry.css similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/gantry5/assets/css/bootstrap-gantry.css rename to src/main/webapp/media/gantry5/assets/css/bootstrap-gantry.css diff --git a/src/main/resources/saref-portal-generator/public/media/gantry5/assets/css/desktop.ini b/src/main/webapp/media/gantry5/assets/css/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/gantry5/assets/css/desktop.ini rename to src/main/webapp/media/gantry5/assets/css/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/media/gantry5/assets/css/font-awesome.min.css b/src/main/webapp/media/gantry5/assets/css/font-awesome.min.css similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/gantry5/assets/css/font-awesome.min.css rename to src/main/webapp/media/gantry5/assets/css/font-awesome.min.css diff --git a/src/main/resources/saref-portal-generator/public/media/gantry5/assets/desktop.ini b/src/main/webapp/media/gantry5/assets/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/gantry5/assets/desktop.ini rename to src/main/webapp/media/gantry5/assets/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/media/gantry5/assets/fonts/desktop.ini b/src/main/webapp/media/gantry5/assets/fonts/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/gantry5/assets/fonts/desktop.ini rename to src/main/webapp/media/gantry5/assets/fonts/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/media/gantry5/assets/fonts/fontawesome-webfont.woff2 b/src/main/webapp/media/gantry5/assets/fonts/fontawesome-webfont.woff2 similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/gantry5/assets/fonts/fontawesome-webfont.woff2 rename to src/main/webapp/media/gantry5/assets/fonts/fontawesome-webfont.woff2 diff --git a/src/main/resources/saref-portal-generator/public/media/gantry5/assets/js/desktop.ini b/src/main/webapp/media/gantry5/assets/js/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/gantry5/assets/js/desktop.ini rename to src/main/webapp/media/gantry5/assets/js/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/media/gantry5/assets/js/main.js b/src/main/webapp/media/gantry5/assets/js/main.js similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/gantry5/assets/js/main.js rename to src/main/webapp/media/gantry5/assets/js/main.js diff --git a/src/main/resources/saref-portal-generator/public/media/gantry5/desktop.ini b/src/main/webapp/media/gantry5/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/gantry5/desktop.ini rename to src/main/webapp/media/gantry5/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/media/gantry5/engines/desktop.ini b/src/main/webapp/media/gantry5/engines/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/gantry5/engines/desktop.ini rename to src/main/webapp/media/gantry5/engines/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/media/gantry5/engines/nucleus/css-compiled/desktop.ini b/src/main/webapp/media/gantry5/engines/nucleus/css-compiled/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/gantry5/engines/nucleus/css-compiled/desktop.ini rename to src/main/webapp/media/gantry5/engines/nucleus/css-compiled/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/media/gantry5/engines/nucleus/css-compiled/joomla.css b/src/main/webapp/media/gantry5/engines/nucleus/css-compiled/joomla.css similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/gantry5/engines/nucleus/css-compiled/joomla.css rename to src/main/webapp/media/gantry5/engines/nucleus/css-compiled/joomla.css diff --git a/src/main/resources/saref-portal-generator/public/media/gantry5/engines/nucleus/css-compiled/nucleus.css b/src/main/webapp/media/gantry5/engines/nucleus/css-compiled/nucleus.css similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/gantry5/engines/nucleus/css-compiled/nucleus.css rename to src/main/webapp/media/gantry5/engines/nucleus/css-compiled/nucleus.css diff --git a/src/main/resources/saref-portal-generator/public/media/gantry5/engines/nucleus/desktop.ini b/src/main/webapp/media/gantry5/engines/nucleus/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/gantry5/engines/nucleus/desktop.ini rename to src/main/webapp/media/gantry5/engines/nucleus/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/media/jui/css/desktop.ini b/src/main/webapp/media/jui/css/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/jui/css/desktop.ini rename to src/main/webapp/media/jui/css/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/media/jui/css/icomoon.css b/src/main/webapp/media/jui/css/icomoon.css similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/jui/css/icomoon.css rename to src/main/webapp/media/jui/css/icomoon.css diff --git a/src/main/resources/saref-portal-generator/public/media/jui/desktop.ini b/src/main/webapp/media/jui/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/jui/desktop.ini rename to src/main/webapp/media/jui/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/media/jui/js/bootstrap.min.js b/src/main/webapp/media/jui/js/bootstrap.min.js similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/jui/js/bootstrap.min.js rename to src/main/webapp/media/jui/js/bootstrap.min.js diff --git a/src/main/resources/saref-portal-generator/public/media/jui/js/desktop.ini b/src/main/webapp/media/jui/js/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/jui/js/desktop.ini rename to src/main/webapp/media/jui/js/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/media/jui/js/jquery-migrate.min.js b/src/main/webapp/media/jui/js/jquery-migrate.min.js similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/jui/js/jquery-migrate.min.js rename to src/main/webapp/media/jui/js/jquery-migrate.min.js diff --git a/src/main/resources/saref-portal-generator/public/media/jui/js/jquery-noconflict.js b/src/main/webapp/media/jui/js/jquery-noconflict.js similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/jui/js/jquery-noconflict.js rename to src/main/webapp/media/jui/js/jquery-noconflict.js diff --git a/src/main/resources/saref-portal-generator/public/media/system/desktop.ini b/src/main/webapp/media/system/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/system/desktop.ini rename to src/main/webapp/media/system/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/media/system/js/caption.js b/src/main/webapp/media/system/js/caption.js similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/system/js/caption.js rename to src/main/webapp/media/system/js/caption.js diff --git a/src/main/resources/saref-portal-generator/public/media/system/js/desktop.ini b/src/main/webapp/media/system/js/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/media/system/js/desktop.ini rename to src/main/webapp/media/system/js/desktop.ini diff --git a/src/main/webapp/saref.png b/src/main/webapp/saref.png new file mode 100644 index 0000000000000000000000000000000000000000..70289a4ffe36db9d0c4c6048cfc934b747754a57 GIT binary patch literal 175973 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

      OI5{G2i(j$ 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�+qZA8WBP!aH;x8frZ36QPlkLb?UJ9T z72;b)pDg#Asqy8v!;_}&kd}QyVvpGh37pN|I+=2QKx5Ol5IzrrLMWahd&4=tf$Zy3 zUvOs#35`xhNeb)EHVL&x;zrupCZ_SZ`sy+mFk-!LOyAK#`jubD0e(=KTyltZQXZAR z-Myk-{rbwVW#K9Y`2q=}RWT+0)8sett!MqZ(`38a{MZ2xB9jRxGTnx`D`r%J`;l+b z-+iGRlx5aZ!!yoFGMb*FdECuY?MV6DzKnRInt4l4t@e_oYiRg)RBo+mpW=}pziL(- zcU5%t{@effmZWl<>hdU+$@Niv4eY~TRuC*TR+YfU@vit{>wqQY`V!9-pw9tx1zZ(2 zd@QG@I_p={xxXG8u7Zk3pIA+YFJ|(8{IRFs&5GL$`P`Gx)^*RZz6$=6LU4?%ABK!@ znN3usG8rRA#(XW&4BA4Q#1kOWdc|%2^g_mWF3t{m-K%UH(pLpns7VyT)j9NEeNe=h zcrY4a32l!-ooMs;hL()_a9=u(#fCm_cwRZQjlp^KGEJ;+izw%vJPU@P8O1i`3OXtu9?Cd^&cT`v_Unf zk_OY}09rc{eGt=i%?1TSIRH3yGZ-;lwvf8GB>b`Ay6*M7Rw1ZiUk+XB~%_1NaUwZDAVEzEW8tOEzFX1+?BhDvc9lKhPEH zaE|a73RxqwKG;>hlJ<>d4MT_5ksyN<6h&TDZs&@;?wT?#w)eEb`k$QlxV`NIU{Rdk zYiI!4NZ-bhL&^IX){6Q6`@OP;pw`DzXXD0=X|Hpk7_;)er;HgRk^LL=M!)5QJh@EQF&9dB0Knp?b-dPvY3AwO84Nw^j=o~R~l zDE661*OL&Uk!X}e*a`TGUK@!~6wIht%b#4CJ6_sSP97=YJ*iLVMMyO1>FATbp{1zV zbQcKp(Z)^jRdiwEyaCLL=f5kudzQ-WCt5H!{cXh{KSFQ6Iai%&QZVDak5)dDp$i^` zsIEBn46%&`Rud0nmPiUH*JtJ>$?kNcvZD|ZSEf+`2{(WT@gI``LB$~H$gmbNFfZ_x zq<(rWR;@i}?2I0RM_9ZjDK@O8sJ7-X=R1W)4qQN;iC~DKH+(Ug$fJyo8d(=@IJQ^{ zwxb&!w{n)kEkZTlC^tT}_^p9K(iBsk-}Qc@|Ei`Cehwgk!uMny$>gCIk(K@0HiHVt%V^soUX9@s}pzHaqb=~-a){A>;=4&q2m^Uea79XC_ z6a0{IwR*n&kC*5$5W&|DzFT^@S$0)hKr)0nh;VD zu$`qrVkkoNHb=N2k%FObgfM^lCKwwm>iKa2JIzGJ!YO0$?GfGYMJ$Z~BW2i6P3tB9 z&4AJqGFZ*#?xNScV#7iuW>0r=`!yIUVT5!GE24OJc?hvkbxgcc;kdpWo!5r1xl;&? z7})v2{DSBNTc`J7JV~FAlQ!Q_w#9Ib0CfNT@ZrJ@89zWNqsw>MT2|1C;cT%oVZeD8 zVt`9!7^B>0e2jUOE)b@8*=gW=1L}Nkz_xD@1eoS(YWjTCp>gr9y~jgQkb`1hy*iB) zQ*=WlJu7+ye;bGX&3_J2t{>3PuhTiTaaMN6SO2_w?Gb$zpm!&>MQ}eiCRA|BbNhQ-90rcOO1H zlH$#CD8Cgc6ebB52W00I6&aCFCc5M0 zkHWrQnR9JvJ=A-`5Jj#QtN^ZDMsQu)B?G_S1Vl(?Wi;=+ap{eIWK}0dar3jNz!tO9y*<4IAi| zHf&;SdSf2)MwpTZbOgdZ;u6DT^xKag4e6CN(*~M_s)JHdly-Tl%q|TB0ENm3z9<8! zm`FAdr%~)BFtJc|7Z$EPP`{X+1J#NimAN=0h8ZMd{QC_+-1q435Hw}bPgpwpAg4$6 zcp+7P%sj`Yrjvgh@ayGJI|D}Y9;!1U&vLZ~-vT}24QpDuM+uEr&sQo!&xaQ zj0L)qniXN3U)hZ?S8XTJZR&rn#_gZ*-2<&|?8L&%0DQ_dYy4j$46$mW7>;HwG~q{v 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%0Av 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�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

      6kHzoJywsR*d3Oj0ijX=r&vL4 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 J-%kALe*k4lhOGbq literal 0 HcmV?d00001 diff --git a/src/main/resources/saref-portal-generator/public/saref/desktop.ini b/src/main/webapp/templates/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/saref/desktop.ini rename to src/main/webapp/templates/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/custom/css-compiled/custom_19.css b/src/main/webapp/templates/g5_helium/custom/css-compiled/custom_19.css similarity index 100% rename from src/main/resources/saref-portal-generator/public/templates/g5_helium/custom/css-compiled/custom_19.css rename to src/main/webapp/templates/g5_helium/custom/css-compiled/custom_19.css diff --git a/src/main/resources/saref-portal-generator/public/saref/latest/desktop.ini b/src/main/webapp/templates/g5_helium/custom/css-compiled/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/saref/latest/desktop.ini rename to src/main/webapp/templates/g5_helium/custom/css-compiled/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/custom/css-compiled/helium-joomla_19.css b/src/main/webapp/templates/g5_helium/custom/css-compiled/helium-joomla_19.css similarity index 100% rename from src/main/resources/saref-portal-generator/public/templates/g5_helium/custom/css-compiled/helium-joomla_19.css rename to src/main/webapp/templates/g5_helium/custom/css-compiled/helium-joomla_19.css diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/custom/css-compiled/helium_19.css b/src/main/webapp/templates/g5_helium/custom/css-compiled/helium_19.css similarity index 100% rename from src/main/resources/saref-portal-generator/public/templates/g5_helium/custom/css-compiled/helium_19.css rename to src/main/webapp/templates/g5_helium/custom/css-compiled/helium_19.css diff --git a/src/main/resources/saref-portal-generator/public/saref/v2.1.1/desktop.ini b/src/main/webapp/templates/g5_helium/custom/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/saref/v2.1.1/desktop.ini rename to src/main/webapp/templates/g5_helium/custom/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/saref4agri/desktop.ini b/src/main/webapp/templates/g5_helium/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/saref4agri/desktop.ini rename to src/main/webapp/templates/g5_helium/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/saref4agri/latest/desktop.ini b/src/main/webapp/templates/g5_helium/fonts/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/saref4agri/latest/desktop.ini rename to src/main/webapp/templates/g5_helium/fonts/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/desktop.ini b/src/main/webapp/templates/g5_helium/fonts/lato/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/saref4agri/v1.1.1/desktop.ini rename to src/main/webapp/templates/g5_helium/fonts/lato/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/saref4bldg/desktop.ini b/src/main/webapp/templates/g5_helium/fonts/lato/lato-bold/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/saref4bldg/desktop.ini rename to src/main/webapp/templates/g5_helium/fonts/lato/lato-bold/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/lato/lato-bold/lato-bold-webfont.woff2 b/src/main/webapp/templates/g5_helium/fonts/lato/lato-bold/lato-bold-webfont.woff2 similarity index 100% rename from src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/lato/lato-bold/lato-bold-webfont.woff2 rename to src/main/webapp/templates/g5_helium/fonts/lato/lato-bold/lato-bold-webfont.woff2 diff --git a/src/main/resources/saref-portal-generator/public/saref4bldg/latest/desktop.ini b/src/main/webapp/templates/g5_helium/fonts/raleway/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/saref4bldg/latest/desktop.ini rename to src/main/webapp/templates/g5_helium/fonts/raleway/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/desktop.ini b/src/main/webapp/templates/g5_helium/fonts/raleway/raleway-bold/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/saref4bldg/v1.1.1/desktop.ini rename to src/main/webapp/templates/g5_helium/fonts/raleway/raleway-bold/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-bold/raleway-bold-webfont.woff2 b/src/main/webapp/templates/g5_helium/fonts/raleway/raleway-bold/raleway-bold-webfont.woff2 similarity index 100% rename from src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-bold/raleway-bold-webfont.woff2 rename to src/main/webapp/templates/g5_helium/fonts/raleway/raleway-bold/raleway-bold-webfont.woff2 diff --git a/src/main/resources/saref-portal-generator/public/saref4city/desktop.ini b/src/main/webapp/templates/g5_helium/fonts/raleway/raleway-regular/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/saref4city/desktop.ini rename to src/main/webapp/templates/g5_helium/fonts/raleway/raleway-regular/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-regular/raleway-regular-webfont.woff2 b/src/main/webapp/templates/g5_helium/fonts/raleway/raleway-regular/raleway-regular-webfont.woff2 similarity index 100% rename from src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-regular/raleway-regular-webfont.woff2 rename to src/main/webapp/templates/g5_helium/fonts/raleway/raleway-regular/raleway-regular-webfont.woff2 diff --git a/src/main/resources/saref-portal-generator/public/saref4city/latest/desktop.ini b/src/main/webapp/templates/g5_helium/fonts/raleway/raleway-semibold/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/saref4city/latest/desktop.ini rename to src/main/webapp/templates/g5_helium/fonts/raleway/raleway-semibold/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-semibold/raleway-semibold-webfont.woff2 b/src/main/webapp/templates/g5_helium/fonts/raleway/raleway-semibold/raleway-semibold-webfont.woff2 similarity index 100% rename from src/main/resources/saref-portal-generator/public/templates/g5_helium/fonts/raleway/raleway-semibold/raleway-semibold-webfont.woff2 rename to src/main/webapp/templates/g5_helium/fonts/raleway/raleway-semibold/raleway-semibold-webfont.woff2 diff --git a/src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/desktop.ini b/src/main/webapp/templates/g5_helium/js/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/saref4city/v1.1.1/desktop.ini rename to src/main/webapp/templates/g5_helium/js/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/saref4ener/desktop.ini b/src/main/webapp/templates/g5_helium/js/jui/desktop.ini similarity index 100% rename from src/main/resources/saref-portal-generator/public/saref4ener/desktop.ini rename to src/main/webapp/templates/g5_helium/js/jui/desktop.ini diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/js/jui/jquery.min.js b/src/main/webapp/templates/g5_helium/js/jui/jquery.min.js similarity index 100% rename from src/main/resources/saref-portal-generator/public/templates/g5_helium/js/jui/jquery.min.js rename to src/main/webapp/templates/g5_helium/js/jui/jquery.min.js diff --git a/src/main/resources/saref-portal-generator/public/templates/g5_helium/js/juitabs.js b/src/main/webapp/templates/g5_helium/js/juitabs.js similarity index 100% rename from src/main/resources/saref-portal-generator/public/templates/g5_helium/js/juitabs.js rename to src/main/webapp/templates/g5_helium/js/juitabs.js diff --git a/src/main/webapp/toto.html b/src/main/webapp/toto.html deleted file mode 100644 index 7c74e4c..0000000 --- a/src/main/webapp/toto.html +++ /dev/null @@ -1,2 +0,0 @@ - -hello \ No newline at end of file -- GitLab

      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