Teppo
THANK YOU for the language comments. Sorry my work keyword language crept in.
We use -
Debate ~ I'm doing this ... challenge my ideas, I need to be sure I am doing it right.
Discuss ~ Is this crazy? I want to do this.
Help ~ I want to do a thing but I have no idea how.
I am not at work so the language needs to change.
Second THANK YOU
For typing out the long and full reply. I know these things take time to enter even if this is known content to you.
Yes you are correct in what I am trying to do, but I think that correction of my base view is more fundamentally important.
--
If I am understanding your words properly - ( the light bulb moment -much more thanks )- I will restate them here.
_A Postulate_
- We will never be able to build a tree structure that allows the representation of any of the systems where it is deployed, sure some sort of fit. But not really.
- So how do we represent the data?
- The data is simple and common, BUT the implementations are so vastly diverse and varied they cannot possibly be represented in a static tree.
That says that my paradigm for the data was reversed.
- What I am thinking of as paths of keys should be viewed as data-value descriptors. Rather than the other way around . The value is NOT a descriptor of the keys.
This descriptor allows us to filter the data flow into the correct 'processing' pipeline.
This infers that the origin/primary access of the data is time - and as long as we are all good with back processing UTC to TAI there is no problem there for any data fusion.
The server preserves last state information of the sensors it sees.
This is so that sensors with small delta value/delta time can have meaningful data when a sink subscribes.
An example is a full water tank that is not being used. If it was a pure delta view you would never know how much water was in the tank till there was a draw.
One should be aware of this as things like an engine temperature sensor that may go offline when the engine is switched off. The engine temperature will represent the last temperature of the engine till that data times out of the server. But a simple check of reading time will resolve this.
The last light bulb moment:
One should subscribe, then de-subscribe when one has finished consuming deltas.
This may be for a single delta or years worth of deltas it doesn't matter.
But the simple GET value method is orthogonal to the data model.
--
For my application:working with the new paradigm.
I'm thinking it consists of two processes.
1-
subscribe to the 'source delta flow'.
Recognise the source objects and add suitable physical descriptor information.
For sensor fusion this would be a set installation physical descriptor fields, but this data might include an HRN and a few other pieces of information.
2-
subscribe to the 'values delta flow'
Filtering for the necessary information ( this may be in part of the subscribe )
Using the physical information from the 'sources delta flow' it would do some filtering and present the result back to the values delta flow.
It would appear in the 'sources delta flow' as a data provider.
--
Paradigm Future.
If we view the keys as descriptors of the values which are a temporal sequence.
Then values can be described with more than one key - they have many attributes like source and time, so this is only a small extension.
For example:
ON - can be described by //vessel/self/electrical/switches/bank/0/1/state AND //vessel/self/navigation/lights/anchor/state
This requires a user config, but we went and did the wiring.. and wrote the control code .. So maybe it gets added as part of the user description fields in the source?
I haven't got a model of how to add that.
Brian