- From: Kevin Braun <kbraun@obj-sys.com>
- Date: Mon, 25 Nov 2013 08:24:01 -0500
- To: FABLET Youenn <Youenn.Fablet@crf.canon.fr>, "public-exi-comments@w3.org" <public-exi-comments@w3.org>
- Message-ID: <52934F71.4000409@obj-sys.com>
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