mirror of
https://bitbucket.org/smil3y/kdelibs.git
synced 2025-02-24 02:42:48 +00:00
31 lines
1.4 KiB
Text
31 lines
1.4 KiB
Text
How to identify entries
|
|
-----------------------
|
|
|
|
The KNS2::CoreEngine uses id() for entries and pid() for providers to find out
|
|
a unique identifier which can be used to compare one of them to another one of
|
|
the same kind.
|
|
|
|
In KNS1, the name and the payload URL were used to compare the entries, as
|
|
they're guaranteed to exist. In KNS2, the internationalised nature of those
|
|
tags is honoured.
|
|
The proposed comparison algorithm is hence called "internationalised
|
|
identification" (i18n-id) and is already implemented by Hotstuff.
|
|
It will also be implemented by KNewStuff2.
|
|
|
|
How does i18n-id work?
|
|
Out of all the tags of an entry, one is taken randomly. Its content together
|
|
with its language form the identity tuple. When an entry is to be compared,
|
|
the tag with the same language as used in the id is used for comparison.
|
|
Note that i18n-id works even in the absence of a language attribute. However,
|
|
in GHNS, a language attribute will almost always be present. It'd be naive to
|
|
throw information away when it is present already.
|
|
|
|
What i18n-id assumes is that translations never vanish, once added. It would
|
|
of course be trivial to extend the algorithm to check through all of the
|
|
languages once present, hence it would work as long as at least one
|
|
translation is kept.
|
|
|
|
What i18n-id achieves is that one doesn't have to rely on "unique ids"
|
|
maintained by the server, which would definitely change if repositories are
|
|
merged.
|
|
|