Nice job guys. I can see you are picking up how to create a data
model. I have limited my comments to the wiki [1] for now. At a high
level, I was impressed with your detail and thoughtful layouts. It
reminds me of the age old trade off: speed vs space. At this time,
lets error on saving space. The data model should the as compact as
possible.

I also found the AsterixDB serialization [2] we can use as a
reference. Even though the AsterixDB data model includes object
length, I would leave that out since all the XQuery data models do not
include this property.

Riyafa, take a look at the method AsterixDB uses for quick look ups (a
hash value for the name). Consider the pros and cons between your
method and AsterixDB's method: a list hash value for name and a sorted
list of names.

Also, take a look at my wiki comments. Its a great start!

Mahalo,
Preston

[1] https://cwiki.apache.org/confluence/display/VXQUERY/JSONiq
[2] 
https://cwiki.apache.org/confluence/display/ASTERIXDB/AsterixDB+Object+Serialization+Reference

On Sat, May 7, 2016 at 6:47 PM, christina pavlopoulou <[email protected]> wrote:
> Hi,
>
> I, also, designed an example for the json array [1] given the description I
> wrote in the wiki page.
>
> [1]
> https://docs.google.com/document/d/1GOAcvhw_F9cJrNmRq2TwZxI0wYRmvLEV3mywJS4H9Lg/edit
>
> Thank you,
> Christina
>
>
> On 5/7/2016 11:22 AM, Riyafa Abdul Hameed wrote:
>>
>> Hi,
>>
>> I am attempting to create a doc on the JSONiq data model for objects[1]
>> (It
>> might be full of errors because I am doing the calculations manually).
>>
>> This is what I have come up on the data model for objects:
>>
>> The first byte would have the value tag, followed by the id (4 bytes) of
>> the object. Then 4 bytes to represent the size of the object. Then another
>> four bytes to represent the number of key-value pairs. Next few bytes
>> represent the offsets of keys which follow (each offset is represented by
>> 4
>> bytes). Ids would be assigned to the keys. Next few bytes would be a
>> sorted
>> list of ids for keys in alphabetical order. The following bytes would
>> represent the keys in the object.Each key is a StringPointable followed by
>> the id of the key. Each object would have a sequence pointable: the
>> following bytes would be the number of Items (items are the values for
>> keys) in the sequence. The next bytes would be the offset of each item in
>> the sequence. The last bytes would be the values for each key followed by
>> the respective id of the key.
>>
>> Hope it makes sense.
>>
>> My problem is,
>>
>> I have not provided for the white spaces in the object. What can I use to
>> represent the white spaces? I cannot use a text node because object is not
>> a node.
>>
>>
>> [1]
>>
>> https://drive.google.com/open?id=1-wT0pE8rTTNIzuY4iTgvhqkdHmKGek4CgNthXN6mlm0
>>
>> Thank you.
>>
>> Yours sincerely,
>> Riyafa
>>
>>
>> On 26 April 2016 at 10:29, Preston Carman <[email protected]> wrote:
>>
>>> We have two students working with us this summer through GSOC to complete
>>> JSONiq specification for arrays and objects. I think the first step is to
>>> define the data model used by JSONiq. The definition should be defined in
>>> our wiki [1] before coding starts this summer. The wiki will allow the
>>> community to discuss the JSON data model implementation in VXQuery.
>>>
>>> I updated the JSONiq wiki to help get the documentation started. Please
>>> fill in the JSON data model based on the examples seen on our website
>>> (links on the wiki page).
>>>
>>> Post here if you have any questions.
>>>
>>> [1] https://cwiki.apache.org/confluence/display/VXQUERY/JSONiq
>>>
>>
>>
>

Reply via email to