- From: FABLET Youenn <Youenn.Fablet@crf.canon.fr>
- Date: Mon, 25 Nov 2013 10:45:53 +0000
- To: Kevin Braun <kbraun@obj-sys.com>, "public-exi-comments@w3.org" <public-exi-comments@w3.org>
- Message-ID: <ACC41E833067BD4FB8084DEBA2D866BE32C6C0D7@ADELE.crf.canon.fr>
Hi Kevin,
Please find below my understanding of the specification.
A local value index is "permanently unassigned" means that the index will never be reused for any string indexed for the given local value partition.
To be more precise:
- Global value indexes can be reassigned during the EXI stream processing. They go from 0 to valuePartitionCapacity-1 and then back to 0
- Local value indexes always go up and are never reused for other strings
If we take this example:
<root>
<A>V</A>
<A>S</A>
<A>V</A>
</root>
With a value partition capacity equal to 1, the table will look as follow:
1. First A element is encoded, V is encoded literally and then indexed as (globalID, localID) = (0,0)
2. Second A element is encoded, S is encoded literally and then indexed as (globalID, localID) = (0,1). V is not indexed anymore
3. Third A element is encoded, V is encoded literally and then indexed as (globalID, localID) = (0,2). S is not indexed anymore
Please let me know if that clears up things.
Regards,
Youenn
From: Kevin Braun [mailto:kbraun@obj-sys.com]
Sent: vendredi 8 novembre 2013 22:48
To: public-exi-comments@w3.org
Subject: Question on the meaning of "permanently unassigned" in EXI spec 7.3.3
Hi Folks,
In section 7.3.3 of the EXI spec, it reads:
When S is added to the global value partition and there was already a string V in the global value partition associated with the compact identifier globalID<http://www.w3.org/TR/2011/REC-exi-20110310/#key-globalID>, the string S replaces the string V in the global table, and the string V is removed from its associated local value partition by rendering its compact identifier permanently unassigned.
I am not clear on what happens in the case where V is later encountered again. Can you please clarify what is meant by "permanently unassigned"? For example, suppose V has a global id of 0 and a local id of 0. S replaces V and V's compact identifier is "permanently unassigned" in the associated local value partition. But, what exactly does that mean? I assume it means that the local id of 0 is never reused in that local partition? Now what does it mean should I need to encode V again? Does "permanently unassigned" also mean either:
The string V can never be added to that same local partition again, but it could be added to some other local partition?
OR
The string V can never be added to any local partition at all?
I suspect it doesn't mean either of those things, but I'm not sure about it. Perhaps the confusion here lies between these two readings of the above clause:
"...and the string V is removed from its associated local value partition by permanently mapping V to no compact identifier"
vs.
"...and the string V is removed from its associated local value partition by permanently mapping V's compact identifier to no string"
I think the former interpretation is how it actually does read, though I suspect the latter interpretation is what was intended.
Thanks in advance,
Kevin
Received on Monday, 25 November 2013 10:46:32 UTC