New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Definitions for Virtual Thing, Shadow, and Digital Twins #709
Comments
Two additional thoughts:
Propose we discuss whether these two definitions belong in this PR/issue or a new one. For now I'll just do the ones in the description. |
We used to refer to Virtual Thing when differentiating between Things that were actually physical devices (e.g. a thermostat installed in your home) and Things that were just software services (i.e., a presence sensor service that actually combines information from one or more Things to infer if someone is at home). Not sure if the new definition capture this dimension. I think that terminology was introduced to cope with the fact that at some point the term |
@relu91 to avoid confusion with other interpretations of Virtual Thing, I am proposing the specific term "Service" to represent a Thing that is associated with a software entity instead of a physical device. An example would be a TDD. The fact is we already use "service" a lot for this. A Virtual Thing is then a special case of a Service that "represents another Thing", examples being Shadows and Twins (and maybe Proxies). We have also used "Virtual Thing" to represent a conceptual collection that may not have a network interface, or a representation of another entity like a location. I think these are valid cases of "Things" but (to avoid confusion and to make the term Virtual Thing more precise) would like to exclude the use of "Virtual Thing" for these unless there is an associated Service. We can invent new names for these kinds of Thing (e.g. Composite Thing, Location Thing) as needed. Also, everything with "Thing" in the name is a Thing. I think a Venn diagram would be useful... |
Also, my intention with these definitions is to capture the idea that not all Services are Virtual Things. A Directory does not "represent" something else, it provides its own function (storing and looking up data, which happen to be TDs). Other kinds of non-representational Services might include analytics engines, time series databases, key-value stores, etc. |
Regarding if we change the term we should explain the change: right. Let me at least make sure the change log explains it... |
Also, I think we have already moved away from "Things are physical devices", e.g. we talk in Discovery about a Directory being a Thing, that is how the ontology is set up, etc. In my PR I plan to define Services and Virtual Things as subclasses of Thing, and Virtual Things as a subclass of Services. I guess we could also define "Physical Things" as Things directly associated with (allowing direct access to the affordances of) a specific physical device. That would be a logical counterpart to "Virtual Thing"; then we would have "Virtual Thing is to a Service as a Physical Thing is to a Device". But I'm not going to include that in my current PR so we don't get into arguments about whether a Location (a Thing without a network interface) is a Physical Thing (my definition of Device is that it has a network interface). |
Totally fine with that! I actually encouraged this transition. Probably what got me off-guard was the "represent another Thing" part. However, I would be fine with:
However, I'm afraid that the ideal solution (to properly describe a complex setup) is to discuss this point:
Well, I think there's no ambiguity here if we follow the definitions: a Location is a Virtual Thing. But I got your point that outsiders might find that surprising. |
I posted a diagram of Thing-related terminology in #708 (comment) . |
Proposed definition for Virtual Thing: A kind of Service that represents another Thing.
Examples are Digital Twins and Shadows.
Note: the use of Virtual Thing for a "composite of other Things" should be deprecated and we should introduce a new term for that, perhaps "Composite Thing"
The text was updated successfully, but these errors were encountered: