W3C home > Mailing lists > Public > public-exi@w3.org > February 2011

Re: "7.3.3 Partitions Optimized for Frequent use of String Literals"

From: Arman Djusupov <arman@noemax.com>
Date: Thu, 24 Feb 2011 14:30:41 +0200
Message-ID: <4D664F71.4040709@noemax.com>
To: "Peintner, Daniel" <daniel.peintner.ext@siemens.com>
CC: "public-exi@w3.org" <public-exi@w3.org>, 'Efficient XML Interchange WG' <member-exi-wg@w3.org>
Ah, I see.

So a value is getting added to the local value partition when it is absent in both the local and the global value partitions. This implicitly defines that the value shall be added to only one of the "local" value partitions. I think it would be great if the spec would state so explicitly.

I wonder why the group settled on such a design for the local value table. It is not unusual for the same value to repeat in the content of elements with different names. For example:

<barbie>
     <hairColor>Black</hairColor>
     <skinColor>Black</skinColor>
     <eyeColor>Black</eyeColor>
     <barbieCarColor>Red</barbieCarColor>
     <boxColor>Red</boxColor>
</barbie>

While in the first case ("hairColor") the EXI encoder will have to check against only a single value in the table, in the second case it will have to find the value in the global value table (which might have a few hundred thousand strings already) just because "Black" can only be added to a single "local" table.

Or did I miss something?

With best regards,
Arman



On 2/24/2011 1:33 PM, Peintner, Daniel wrote:
> Hi Arman,
>
> Thank you for your feedback on the EXI specification.
>
>> As far as I understand the "local" value partition is associated to the
>> current qualified name in the scope. So the value *V* that is getting
>> removed from the "local" partition may also be present in the "local"
>> partitions associated to other qualified names. Does this mean that value
>> *V* should be removed only form the "local" partition of the qualified
>> name in the current scope or from all "local" partitions that include this
>> value?
>
> In EXI a string optimized for frequent use is assigned to two partitions, a "local" value partition and the global value partition. Once a string has been added to a local partition it is not possible to add the same string to any other local value partition (unless it has been removed again) [1].
>
> This implies that removing a string value, due to string table bounds, means removing the appearance of the string in the global partition and the "one" associated local value partition.
>
> Hope this helps,
>
> -- Daniel
>
> [1] http://www.w3.org/TR/exi/#encodingOptimizedForMisses
>
Received on Thursday, 24 February 2011 12:31:15 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:47:15 UTC