Comments (5)
I guess, when I see the uses
keyword, this to me translates to: 'has a point of the following type(s)', which I would assume means that this 'thing' should have this 'type of property'. Instead, it becomes a subclass of that thing.
Perhaps the confusion comes from the lack of documentation on the uses
object property. It seems like this is used to bypass RDFs typical method of defining relationships (defining the domain and range of a relationship), and instead defines that a class is expected to use a field (more typical of like OO practices). Is that a fair characterization?
from digitalbuildings.
@corymosiman12 you are correct about the lack of documentation on the RDF part it comes from the fact that we wrote an RDF generator which takes as an input the yaml files and generates an rdf file.
Despite the itching to add additional information in the rdf file to make it more inline with the best practices of rdf and owl modelling. We decided not to do that to keep both yaml and rdf at the same level.
We have in the pipe to update the yaml representation to add domains and range on the object property so it can be picked up during the generation from yaml to rdf
Hope that helps.
from digitalbuildings.
Maybe I am misunderstanding, but I think the way we use those terms does operate the way you are expecting:
TYPE_A:
uses:
- data_field_a
- data_field_b
implements:
- SUPERTYPE_A
- SUPERTYPE_B
Here is an example from the ontology, where fields are defined on an abstract superclass (parent type in our parlance) and is then inherited by the child device upon inheritance.
CHWDPM:
description: "Differential pressure monitoring for chilled water."
is_abstract: true
uses:
- chilled_water_differential_pressure_sensor
CH_SS_SWTC_DX4SWC_CHWDPM:
description: "Air cooled chiller with 4 stages cooling."
is_canonical: true
implements:
- CH
- SS
- SWTC
- DX4SWC
- CHWDPM
This is our intention for how it should operate, so if you are seeing an instance somewhere that this is not being implement in that way please let me know. And again, if I am misunderstanding the question, please let me know and I'll try to clarify my answer.
from digitalbuildings.
@berkoben @charbull what are your thoughts here?
from digitalbuildings.
@corymosiman12 good observation about the yaml syntax feeling more OO than linked data. This was a deliberate design choice in the YAML format intended to make it more accessible to those who don't speak linked data natively. The intent was always to automate the translation between the YAML configuration and RDF, so authors could deal with something very human-readable, but still convert to linked data if necessary.
from digitalbuildings.
Related Issues (20)
- Ontology Explorer - Omit zero scores from match list HOT 1
- Ontology Explorer - Surface all field names from a list of subfields HOT 1
- Ontology Explorer - Fail option #2 if field is invalid HOT 1
- Ontology Explorer - Filter by general type
- Documentation around MISSING fields is incorrect
- Revisit if using both SFSS and SFVSC is necessary HOT 1
- Ontology Doc cleanup tasks
- Update pip_install.bat to include all tools HOT 1
- Improve ontology loading in toolkit.py
- Develop an ontology linter
- Revisit ECON types
- ABEL State Exception HOT 2
- Add more model documentation HOT 1
- Remove DF2XSS HOT 1
- Auto GUID enhancements
- Ontology validator passes when there are mixed enumerations in the field list
- [HVAC] Clean Up Unused Non-Canonical Types
- [Non-HVAC] Clean Up Unused Non-Canonical Types
- ABEL value formatting
- Move Subfields to Specific Namespaces Based on Domain Definitions
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from digitalbuildings.