Re: Question on the meaning of "permanently unassigned" in EXI spec 7.3.3

Thank you, Youenn.  That is how I thought it was meant also, but I 
wasn't certain based on the spec.

Kevin

On 11/25/2013 5:45 AM, FABLET Youenn wrote:
>
> 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 13:24:20 UTC