The versioning system and the trust system are two aspects of the same thing. To trust or not to trust is just one view.
Usually, we only want trusted data. Other times, we want to see all data and decide for ourself. We could then just get all data and order on trust. We can also specify a orderd list of prefered sources. (As with the desired language.)
The details of inherited trust will be detailed later, building on a system of inferencing.
For now, we just look at the agent
behind a model containing a stating. We could check it against the
list of trusted agents by saying $node->arc( model => {
agent => [ $agent1, $agent2, $agent3 ] } )
.
But the default preference will
be to only get true statements, and
that will imply that they are trusted and current. The handling of trust must be
efficient even with a large amount of trusted sources. Let's
say we have a third party service saying what models, agents or
namespaces we can trust. This would be done by a interface defining the trust()
method/property and could be used by saying $node->arc(
trusted => 1 )
. That will call the trusted() method once
for every arc of the node. It's up to
the interface implementing the method to do what it have to do
to be fast.
To trust a statement, all implicit staters has to be trusted.
Not implemented