Hi David H,

I have just tried that. It merged the rows but it has only put the
last value in the field, not multiple values.

so i have changed the excel so it looks like this:
http://spreadsheets.google.com/pub?key=pEBZe9K5tabOdZXuL1uEoRQ

Babel translates it to this .js:
http://www.moniquedewilt.com/test/data%20with%20id.js
or run through exhibit:
http://www.moniquedewilt.com/test/example%20with%20ids.html


On Feb 28, 10:50 pm, David Huynh <[email protected]> wrote:
> You could actually create a column called id, and I believe Babel should
> correctly merge rows with the same id.
>
> David
>
> mowiwrote:
> > Thanks David K,
>
> > your workaround works. It is a bit awkward though, I hope the higher
> > power looks upon me with kindness and fixes the babel bug ;)
>
> > On Feb 26, 5:07 pm, David Karger <[email protected]> wrote:
>
> >> ah, so you are describing a babel bug rather than an exhibit bug.
> >> for that it might be necessary to invoke a higher power (davidh).
>
> >> One quick hack you could do is as follows:
> >> for your spreadsheet, rename the current "label" column as "intendedLabel"
> >> create a new "label" column that you fill with _distinct_ values (eg,
> >> increasing integers).
> >> after your json is generated, do a global replace in it of "label" by
> >> "fakeLabel" and then replace "intendedLabel" with "label"
>
> >> Because babel is presumably using the label field to merge items, your
> >> use of distinct labels will prevent the merge.  But after you rename the
> >> properties, exhibit will carry out the correct merge on the client side.
>
> >> mowiwrote:
>
> >>> Hi David,
>
> >>> Thanks for making a quick example. I understand how my JSON file
> >>> should look like but I do not make my JSON by hand, that would be too
> >>> much work..
> >>> I generate my JSON file with babel from an excel sheet.
> >>> I cannot figure out how I can get babel to generate a file like
> >>> your .js file
>
> >>> my excel file looks like this:
> >>>http://spreadsheets.google.com/pub?key=pEBZe9K5tabOdZXuL1uEoRQ
>
> >>> and the JSON that is generated by Babel like this.
> >>>http://www.moniquedewilt.com/test/manytomanytest.js
>
> >>> I have tried making to seperate JSONs, one with the items and one with
> >>> the connections but that did not work either. Babel only makes one
> >>> "record" for each item and only one value in each field. when the item
> >>> appears multiple times in excel with the same field, babel only uses
> >>> the last value for that field.
> >>> Any clues how to get Babel to do this?
>
> >>> On Feb 26, 4:21 pm, David Karger <[email protected]> wrote:
>
> >>>> Take a look at
> >>>>  http://people.csail.mit.edu/karger/Exhibit/example.html
> >>>> and you'll see that "thing" has three children first, second, and
> >>>> third.  If you look at the data file
> >>>>  http://people.csail.mit.edu/karger/Exhibit/data.js
> >>>> you will see that those children were introduced using two separate
> >>>> mentions of "thing"
>
> >>>> mowiwrote:
>
> >>>>> Hi David,
>
> >>>>> I tried it like you said and made a third excel sheet for the
> >>>>> connections.  The authors are now connected to the articles but
> >>>>> instead of multiple authors only the last author got connected to the
> >>>>> article in the JSON file. I used Babel to convert the excel file to
> >>>>> JSON. I have also tried to convert to JSONP but that didn`t matter.
> >>>>> Any ideas?
>
> >>>>> On Feb 19, 2:52 pm, David Karger <[email protected]> wrote:
>
> >>>>>> It's ok; you can use author and article as ID even if they appear
> >>>>>> multiple times.  First do the obvious thing, creating items for the
> >>>>>> exhibit corresponding to the authors and articles (using author name as
> >>>>>> id for the authors, and article title as id for the articles):
> >>>>>> {type: "Author", id: "name of author", affiliation: "affiliation of
> >>>>>> author"...}
> >>>>>> {type: "Article", id: "title of article", year: "year of publication", 
> >>>>>> ....}
>
> >>>>>> Finally, take your relationship table.  Suppose it has a row (authorX,
> >>>>>> articleY)
> >>>>>> add another fragment of json to the collection of "items":
> >>>>>> {id: "articleY", author: "authorX"}
> >>>>>> Do this for every row.  This will accomplish what you want.
>
> >>>>>> To understand what is going on, note how exhibit will interpret these
> >>>>>> final fragments from the relationship table.  It will say "ok, this
> >>>>>> person is specifying an item whose id is articleY and has an author
> >>>>>> property with value authorX. But I already know about an item whose id
> >>>>>> is articleY---namely, the one that was defined at the beginning of type
> >>>>>> "Article".  So, I'm not going to create a new item with id articleY.
> >>>>>> Instead, I will _merge_ the attributes of the new item (in particular,
> >>>>>> the author relationship to authorX) into the already existing item.  
> >>>>>> And
> >>>>>> if that item already has a value of the author property, because I
> >>>>>> already saw an author of that article, then I will _add_ authorX as an
> >>>>>> additional value for the now-multivalued author property on articleX."
>
> >>>>>> mowiwrote:
>
> >>>>>>> hi,
> >>>>>>> I have some data with many to many relationships just like the
> >>>>>>> articles and authors in the example  website about ISWC 2007 + ASWC
> >>>>>>> 2007.http://people.csail.mit.edu/dfhuynh/projects/graph-based-exhibit/grap...
>
> >>>>>>> there it is solved by putting multiple persons in the "author" field.
>
> >>>>>>> I have a problem getting multiple values in one  field because the
> >>>>>>> data is from acces 2003. I have got one table with articles, one with
> >>>>>>> authors and one with relationships. The relationship list has three
> >>>>>>> columns:id (which I do not really use), author and article. Can i also
> >>>>>>> do it like that in exhibit? how can I do that?
> >>>>>>> In the example you use ".author.affiliation" to get a value from the
> >>>>>>> author list in the article overview. Author is an id there. In my
> >>>>>>> relationship list both author and article cannot be id because they
> >>>>>>> appear multiple times.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"SIMILE Widgets" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/simile-widgets?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to