Hi,

+1 for the binary search--I have been thinking of that as well. I shall
update the wiki based on these.

Thank you,
Riyafa

On 10 May 2016 at 10:49, Till Westmann <[email protected]> wrote:

> :)
>
>
> On 9 May 2016, at 21:55, Michael Carey wrote:
>
> +1 to first get things working (and presumably modularizing the code so
>> that other/later streamlined implementations can be plugged in instead).
>>
>>
>> On 5/9/16 6:24 AM, Till Westmann wrote:
>>
>>> All of this looks pretty good!
>>>
>>> Wrt. the question of the dictionary for the fields, I think that we
>>> should
>>> consider the 2 ways that we can access an object:
>>> 1. Either we get all keys (jdm:keys) or
>>> 2. we get a value for a key (jdm:value).
>>>
>>> To get all the keys efficiently and to be able to skip huge nested
>>> values a
>>> simple approach could be store a dictionary of the keys (in their
>>> original
>>> order) with pointers (offsets) to the values. That way we could get the
>>> keys
>>> quickly by scanning the dictionary and each value by scanning the
>>> dictionary
>>> + 1 hop to find the value. This certainly has the problem, that the
>>> access
>>> is linear in the number of the keys. But it is reasonably simple and it
>>> would allow us to get a correct + testable implementation relatively soon
>>> and to have a baseline for a more optimized representation.
>>>
>>> Thoughts?
>>>
>>> Cheers,
>>> Till
>>>
>>> [1]
>>> http://jsoniq.org/docs/JSONiqExtensionToXQuery/html-single/index.html#idm139680641300880
>>>
>>> On 8 May 2016, at 22:19, Riyafa Abdul Hameed wrote:
>>>
>>> Hi Preston,
>>>>
>>>> I have edited the wiki[1] and the doc[2] based on the comments. Thank
>>>> you
>>>> for the suggestions provided. I have removed the part that assigns an
>>>> id to
>>>> the keys and instead suggested that the keys be stored in the order they
>>>> appear in the json object. I am not sure I understand the concept of
>>>> hashcode--how to generate the hashcodes used for easy lookup?
>>>>
>>>>
>>>> [1]https://cwiki.apache.org/confluence/display/VXQUERY/JSONiq
>>>> [2]
>>>>
>>>> https://drive.google.com/open?id=1-wT0pE8rTTNIzuY4iTgvhqkdHmKGek4CgNthXN6mlm0
>>>>
>>>> Thank you again.
>>>>
>>>> Yours sincerely,
>>>> Riyafa
>>>>
>>>> On 9 May 2016 at 01:23, christina pavlopoulou <[email protected]> wrote:
>>>>
>>>> Hi,
>>>>>
>>>>> I updated the wiki page according to Preston's comments along with the
>>>>> json array example in [1].
>>>>>
>>>>> [1]
>>>>>
>>>>> https://docs.google.com/document/d/1GOAcvhw_F9cJrNmRq2TwZxI0wYRmvLEV3mywJS4H9Lg/edit
>>>>>
>>>>> Thank you,
>>>>> Christina
>>>>>
>>>>> On 5/8/2016 9:43 AM, Preston Carman wrote:
>>>>>
>>>>> 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
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>
>>>>
>>>> --
>>>> Riyafa Abdul Hameed
>>>> Undergraduate, University of Moratuwa
>>>>
>>>> Email: [email protected]
>>>> Website: https://riyafa.wordpress.com/ <http://riyafa.wordpress.com/>
>>>> <http://facebook.com/riyafa.ahf> <http://lk.linkedin.com/in/riyafa>
>>>> <http://twitter.com/Riyafa1>
>>>>
>>>


-- 
Riyafa Abdul Hameed
Undergraduate, University of Moratuwa

Email: [email protected]
Website: https://riyafa.wordpress.com/ <http://riyafa.wordpress.com/>
<http://facebook.com/riyafa.ahf>  <http://lk.linkedin.com/in/riyafa>
<http://twitter.com/Riyafa1>

Reply via email to