-
Notifications
You must be signed in to change notification settings - Fork 8
NOTE: Link information for data models
Scratchpad for information and pointers for "link" information for data models, in particular for SDF
Links are a general concept that can be useful in SDF specifications in many ways.
-
Links can be used at the SDF specification level to make the model more concise or to provide additional information.
-
Links can be data in the information model, used as input or output of specific interactions. We still need to find out what kind of type information we want to specify for these link data.
- "link data type" (or property), currently not explicitly specified for SDF, can contain values that can be interpreted as a link to e.g., other SDF / ecosystem model definitions, other resources (i.e., any URL), named items (e.g., URNs), etc.
- sdfRelation appears to define a link data type, but then also claims it adds "ability to describe additional information on how different definitions relate to each other." This needs to be clarified.
There are two types of link data types in LwM2M: CoRE links (RFC6690) and Object Links. CoRE link “is used to refer to Resources on a LWM2M Client and their attributes” and Object Link “is used to refer to an Instance of a given Object” (essentially a pair of Object and Object Instance IDs).
More like LwM2M CoRE links.
Have a very flexible way to add specification level links.
The "link data type" links could be modeled in various different ways in SDF. More exploration is needed to determine best option.
Possibilities include:
- Adding to the json-schema.org inspired type system, e.g.:
- New "sdfFormat" keyword with a value "link" (or more specific, like "coreLink" and "objLink") to indicate that a string value has certain format and semantics (similar to JSO "format" keyword but with SDF specific values). Open question: should we support formats from namespaces, like "oma:objLink", or should those all be registered instead?
{
"sdfProperty": {
"LinkToResource": {
"type": "string",
"sdfFormat": "coreLink"
}
}
}
- Adding new sdfType "link" (and/or "coreLink" and "objLink"). Same registry / namespace considerations apply as for sdfFormat.
{
"sdfProperty": {
"LinkToResource": {
"type": "string",
"sdfType": "link"
}
}
}
These are essentially two syntactic ways to describe the same information. Whatever is chosen, sdfFormat and sdfType could include a registry for more detailed link types for ecosystems. For OMA models, we need a way to tell apart CoRE Links and Object Links for OMA models. The former may be a generic type but Object Link is likely an ecosystem specific representation (which should concern us at the information model level only in terms of limitations to what kinds of links can be represented).
Note that in an sdfAction, a link is returned as a Location. There is currently no way to become more specific about the type of that link.
- Extending sdfRelation to emulate "link data type"
{
"sdfRelation": {
"LinkToResource": {
"somethingspecialhere" : true
}
}
}
As sdfRelation is not fully defined at this point, this is harder to relate to the SDF type system.
- How do specific ecosystems use or define links?