informatics-isi-edu / ermrestjs

ERMrest client library in JavaScript
Apache License 2.0
4 stars 3 forks source link

get citation feature #678

Closed hongsudt closed 6 years ago

hongsudt commented 6 years ago

We should provide a menu option for users to get citation associated with each record..

A good example can be found here: https://academic.oup.com/database/article/doi/10.1093/database/bav010/2433142

Edit: To support this feature, we first need to define a table level annotation that ermrestJS can understand. This will look something like the following (based on bibtex terms):

// Fields marked * are required

tag:isrd.isi.edu,2018:citation: {
  template_engine: "handlebars" or "mustache",
  author_pattern:  pattern expansion,
  title_pattern:   pattern expansion,
 *journal_pattern: pattern expansion,
 *year_pattern:    pattern expansion,
 *url_pattern:     pattern expansion,
  id_pattern:      pattern expansion
}

Example

{
  "template_engine": "handlebars",
  "author_pattern": "{{{$fkeys.Common.Collection_Principal_Investigator_fkey.values.Full_Name}}}",
   "journal_pattern": "GUDMAP Consortium",
   "year_pattern": "{{formatDate RCT 'YYYY'}}",
   "url_pattern": "{{#if Persistent_ID}} {{{Persistent_ID}}} {{else}} https://www.gudmap.org/id/{{{RID}}} {{/if}}",
   "id_pattern": "Collection_{{{RID}}}"
}

Should render to:

Shared Link: https://doi.org/123.4/A-BCDE

Citation: Carl Kesselman, Experiment Protocol, GUDMAP Consortium, https://doi.org/123.4/A-BCDE (2018).

Download Citation File: BibTex

A new handlebars function needs to be introduced which will allow data modelers to take a date or timestamp[tz] and format the output for the "year" pattern appropriately. Generally only the year will be used for that value but some data modelers may want to be more specific.

Only the presence of the required fields will be validated. If any of the values are not the proper type, they will still be displayed in the citation.

carlkesselman commented 6 years ago

Would we expect to download the citation, or save it in the cutbuffer or something like that.

Also, I think it would be a UI nightmare to be able to generate a citation for something that is not dereferanceable via the resolver, so this again goes toward consolidating configuration for resolver into the catalog.

Carl Sent from my iPad


Dr. Carl Kesselman Dean’s Professor, Epstein Department of Industrial and Systems Engineering Fellow, Information Sciences Institute Viterbi School of Engineering

Professor, Preventive Medicine Keck School of Medicine

University of Southern California 4676 Admiralty Way, Suite 1001, Marina del Rey, CA <x-apple-data-detectors://1/0> 90292-6695<x-apple-data-detectors://1/0> Phone: +1 (310) 448-9338<tel:+1%20(310)%20448-9338> Email: carl@isi.edumailto:carl@isi.edu Web: http://www.isi.edu/~carl

On Jul 23, 2018, at 3:52 PM, Hongsuda notifications@github.com<mailto:notifications@github.com> wrote:

We should provide a menu option for users to get citation associated with each record..

A good example can be found here: https://academic.oup.com/database/article/doi/10.1093/database/bav010/2433142

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/informatics-isi-edu/ermrestjs/issues/678, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADbjXic-YJzgt4RIzaG8-lToFpIPVTtTks5uJlOvgaJpZM4Vb0XM.

hongsudt commented 6 years ago

We will need to define a citation annoatation for a table:

   tag:misd.isi.edu,2018:citation = <citation object> 
Where <citation_object> consists of the following fields (based on bibtex terms): 
  * author_markdown_pattern
  * title_markdown_pattern 
  * journal_markdown_pattern 
  * year_markdown_pattern
  * url_markdown_pattern
  * id_markdown_pattern

Example

{
  author : "{{{$fkeys.Protocol.Protocol_Principal_Investigator_fkey.values.Full_Name}}}",
  journal*: "{{{$fkeys.Protocol.Protocol_Consortium_fkey.values.Name}}}",
  title: "Experiment Protocol",
  year*:"{{#extract_year}}{{{Release_Date}}}{{/extract_year}}"
  URL*:"{{{Persistent_ID}}}", /* or www.gudmap.org/id/{{{RID}}} for RID-based */
  id:"GUDMAP-{{{Protocol}}}-{{{RID}}}"
}
* : indicates mandatory fields

Should render to: Shared Link: https://doi.org/123.4/A-BCDE

Citation: Carl Kesselman, Experiment Protocol, GUDMAP Consortium, https://doi.org/123.4/A-BCDE (2018).

Download Citation File: bibtex

@carlkesselman @karlcz @robes @ljpearlman what do you think?

hongsudt commented 6 years ago

Example of a bibtex

@article{myCitationID,
author = {Malladi, Venkat S. and Erickson, Drew T. and Podduturi, Nikhil R. and Rowe, Laurence D. and Chan, Esther T. and Davidson, Jean M. and Hitz, Benjamin C. and Ho, Marcus and Lee, Brian T. and Miyasato, Stuart and Roe, Gregory R. and Simison, Matt and Sloan, Cricket A. and Strattan, J. Seth and Tanaka, Forrest and Kent, W. James and Cherry, J. Michael and Hong, Eurie L.},
title = {Ontology application and use at the ENCODE DCC},
journal = {Database},
year = {2015},
URL = {http://dx.doi.org/10.1093/database/bav010}
}
carlkesselman commented 6 years ago

It would seem that some of this wouldn’t make sense if I am generating a citation to just some row in a table, would it? Author, year (actually timestamp) and URL would make sense, others probably not so much so?

Carl


Dr. Carl Kesselman Dean’s Professor, Epstein Department of Industrial and Systems Engineering Fellow, Information Sciences Institute Viterbi School of Engineering

Professor, Preventive Medicine Keck School of Medicine

University of Southern California 4676 Admiralty Way, Suite 1001, Marina del Rey, CA 90292-6695 Phone: +1 (310) 448-9338 Email: carl@isi.edumailto:carl@isi.edu Web: http://www.isi.edu/~carl

On Aug 22, 2018, at 3:32 PM, Hongsuda notifications@github.com<mailto:notifications@github.com> wrote:

We will need to define a citation annoatation:

tag:misd.isi.eduhttp://misd.isi.edu,2018:citation = Where consists of the following fields (based on bibtex terms):

Example

{ author : {{{$fkeys.Protocol.Protocol_Principal_Investigator_fkey.values.Full_Name}}}, journal: {{{$fkeys.Protocol.Protocol_Consortium_fkey.values.Name}}}, title: "Experiment Protocol", doi:{{{Permanent_ID}}}, URL:{{{Permanent_ID}}} or www.gudmap.org/id/http://www.gudmap.org/id/{{{RID}}} }

Should render to: Carl Kesselman, Experiment Protocol, GUDMAP consortium, https://doi.org/123.4/A-BCDE.

@carlkesselmanhttps://github.com/carlkesselman @karlczhttps://github.com/karlcz @robeshttps://github.com/robes @ljpearlmanhttps://github.com/ljpearlman what do you think?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/informatics-isi-edu/ermrestjs/issues/678#issuecomment-415204192, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADbjXl3hsOJOKb0X4OQMn0RKvlDV1EJ2ks5uTdwFgaJpZM4Vb0XM.

hongsudt commented 6 years ago

Other fields are optional. For GUDMAP, we put the PI as the author, and likely to leave the title blank..

carlkesselman commented 6 years ago

I think given that we are looking at citation events for an entity, that perhaps the owner of the record as determined by the system column would be the appropriate value. My thinking is that we want everything to be easily citable. We want to encourage people creating and passing around RIDs rather then arbitrary URLs or dumping to dropbox.


Dr. Carl Kesselman Dean’s Professor, Epstein Department of Industrial and Systems Engineering Fellow, Information Sciences Institute Viterbi School of Engineering

Professor, Preventive Medicine Keck School of Medicine

University of Southern California 4676 Admiralty Way, Suite 1001, Marina del Rey, CA 90292-6695 Phone: +1 (310) 448-9338 Email: carl@isi.edumailto:carl@isi.edu Web: http://www.isi.edu/~carl

On Aug 22, 2018, at 3:54 PM, Hongsuda notifications@github.com<mailto:notifications@github.com> wrote:

Other fields are optional. For GUDMAP, we put the PI as the author, and likely to leave the title blank..

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/informatics-isi-edu/ermrestjs/issues/678#issuecomment-415212491, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADbjXupJdGtkee-JYhmIyxSifa_2y7VPks5uTeE-gaJpZM4Vb0XM.

karlcz commented 6 years ago

I don't really understand the sketch around a journal paper citation.

I think you might automatically build some self-publishing data citation, but if you want to represent citations to arbitrary externally published papers, they should be stored as opaque blobs.

It seems unlikely that you will model all the parts of an external citation with sufficient fidelity to reconstruct it in the expected form again. I would keep separate in my mind the canonical citation and any extracted representation of citation content you might hold for the purpose of faceted search.

hongsudt commented 6 years ago

Not necessary.. In some project, you might not want to disclose the owner. Also, the person that creates the record might not be the owner of the records e.g. we created many records for members.. And RCB is nullable.

Until the policy regarding the resolver is changed, unless there is an annotation, there won't be a citation.

carlkesselman commented 6 years ago

This is orthogonal I think. We need to be building this from the perspective that these are light-weight citations that should be super easy to create and used pretty much anywhere/everywhere. We should not be building in more complex metadata rules like who is the author. Author is creator of the record, creation time is in the record. Name could be a name field if it exists, etc.

If we really want to create a citation that would be referred to via say bibtex, we would go through a more structured publication process.

Carl


Dr. Carl Kesselman Dean’s Professor, Epstein Department of Industrial and Systems Engineering Fellow, Information Sciences Institute Viterbi School of Engineering

Professor, Preventive Medicine Keck School of Medicine

University of Southern California 4676 Admiralty Way, Suite 1001, Marina del Rey, CA 90292-6695 Phone: +1 (310) 448-9338 Email: carl@isi.edumailto:carl@isi.edu Web: http://www.isi.edu/~carl

On Aug 22, 2018, at 4:25 PM, Hongsuda notifications@github.com<mailto:notifications@github.com> wrote:

Not necessary.. In some project, you might not want to disclose the owner. Also, the person that creates the record might not be the owner of the records e.g. we created many records for members.. And RCB is nullable.

Until the policy regarding the resolver is changed, unless there is an annotation, there won't be a citation.


From: Carl Kesselman notifications@github.com<mailto:notifications@github.com> Sent: Wednesday, August 22, 2018 4:17 PM To: informatics-isi-edu/ermrestjs Cc: Hongsuda Tangmunarunkit; Author Subject: Re: [informatics-isi-edu/ermrestjs] get citation feature (#678)

I think given that we are looking at citation events for an entity, that perhaps the owner of the record as determined by the system column would be the appropriate value. My thinking is that we want everything to be easily citable. We want to encourage people creating and passing around RIDs rather then arbitrary URLs or dumping to dropbox.


Dr. Carl Kesselman Dean’s Professor, Epstein Department of Industrial and Systems Engineering Fellow, Information Sciences Institute Viterbi School of Engineering

Professor, Preventive Medicine Keck School of Medicine

University of Southern California 4676 Admiralty Way, Suite 1001, Marina del Rey, CA 90292-6695 Phone: +1 (310) 448-9338 Email: carl@isi.edumailto:carl@isi.edumailto:carl@isi.edu Web: http://www.isi.edu/~carl

On Aug 22, 2018, at 3:54 PM, Hongsuda notifications@github.com<mailto:notifications@github.commailto:notifications@github.com> wrote:

Other fields are optional. For GUDMAP, we put the PI as the author, and likely to leave the title blank..

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/informatics-isi-edu/ermrestjs/issues/678#issuecomment-415212491, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADbjXupJdGtkee-JYhmIyxSifa_2y7VPks5uTeE-gaJpZM4Vb0XM.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/informatics-isi-edu/ermrestjs/issues/678#issuecomment-415218253, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAZUDNFr2h7YFu8K3VToaC4v4znaOcyzks5uTeaegaJpZM4Vb0XM.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/informatics-isi-edu/ermrestjs/issues/678#issuecomment-415219682, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADbjXv7Mp56Jr-8f4LdZmntrqxIyUNLFks5uTehRgaJpZM4Vb0XM.

carlkesselman commented 6 years ago

I was thinking super simple here… we package up the RID, wrap it in the URI prefix (gudmap.org/id/XXX-XXXhttp://gudmap.org/id/XXX-XXX) and you’ve got your citation. If we wanted to have an alternative where we download a record with some other data, ok. Lets think about how we are going to exchange these…. text messages, slack, email, slap them into a google doc, stick in your powerpoint deck…..

Carl


Dr. Carl Kesselman Dean’s Professor, Epstein Department of Industrial and Systems Engineering Fellow, Information Sciences Institute Viterbi School of Engineering

Professor, Preventive Medicine Keck School of Medicine

University of Southern California 4676 Admiralty Way, Suite 1001, Marina del Rey, CA 90292-6695 Phone: +1 (310) 448-9338 Email: carl@isi.edumailto:carl@isi.edu Web: http://www.isi.edu/~carl

On Aug 22, 2018, at 4:25 PM, Hongsuda notifications@github.com<mailto:notifications@github.com> wrote:

Not necessary.. In some project, you might not want to disclose the owner. Also, the person that creates the record might not be the owner of the records e.g. we created many records for members.. And RCB is nullable.

Until the policy regarding the resolver is changed, unless there is an annotation, there won't be a citation.


From: Carl Kesselman notifications@github.com<mailto:notifications@github.com> Sent: Wednesday, August 22, 2018 4:17 PM To: informatics-isi-edu/ermrestjs Cc: Hongsuda Tangmunarunkit; Author Subject: Re: [informatics-isi-edu/ermrestjs] get citation feature (#678)

I think given that we are looking at citation events for an entity, that perhaps the owner of the record as determined by the system column would be the appropriate value. My thinking is that we want everything to be easily citable. We want to encourage people creating and passing around RIDs rather then arbitrary URLs or dumping to dropbox.


Dr. Carl Kesselman Dean’s Professor, Epstein Department of Industrial and Systems Engineering Fellow, Information Sciences Institute Viterbi School of Engineering

Professor, Preventive Medicine Keck School of Medicine

University of Southern California 4676 Admiralty Way, Suite 1001, Marina del Rey, CA 90292-6695 Phone: +1 (310) 448-9338 Email: carl@isi.edumailto:carl@isi.edumailto:carl@isi.edu Web: http://www.isi.edu/~carl

On Aug 22, 2018, at 3:54 PM, Hongsuda notifications@github.com<mailto:notifications@github.commailto:notifications@github.com> wrote:

Other fields are optional. For GUDMAP, we put the PI as the author, and likely to leave the title blank..

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/informatics-isi-edu/ermrestjs/issues/678#issuecomment-415212491, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADbjXupJdGtkee-JYhmIyxSifa_2y7VPks5uTeE-gaJpZM4Vb0XM.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/informatics-isi-edu/ermrestjs/issues/678#issuecomment-415218253, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAZUDNFr2h7YFu8K3VToaC4v4znaOcyzks5uTeaegaJpZM4Vb0XM.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/informatics-isi-edu/ermrestjs/issues/678#issuecomment-415219682, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADbjXv7Mp56Jr-8f4LdZmntrqxIyUNLFks5uTehRgaJpZM4Vb0XM.

jrchudy commented 6 years ago

@hongsudt support for this feature has been added to both ermrestJS and chaise. Documentation for the annotation can be found here.

Reassigning this issue to you for verification.

hongsudt commented 6 years ago

Check this link for citation with DOI url. https://dev.rebuildingakidney.org/chaise/recordset/#2/Common:Collection@sort(RID)

carlkesselman commented 6 years ago

Great thanks. Overall this looks nice.

Of course, we want the RID resolver link, not the chaise link (I suspect you are waiting for the resolver?) We should think a bit about the text. We have Share Citation, Share Link and Citation. Seems a bit confusing to me.

carlkesselman commented 6 years ago

Is there a way to get a “copy link” action there somehow?

Carl

hongsudt commented 6 years ago

Isn't that the same as right click on link?

hongsudt commented 6 years ago

The title will be just "Share" and there will be a bit improvement on the UX. Please check the UX again after the code is merged.

carlkesselman commented 6 years ago

yea, I suppose so.

Google drive has this nice feature that they provide a button that copies the link to the clipboard.

[cid:3A2DA36B-BB55-483C-A9B3-A1F47438BA55]

Dr. Carl Kesselman Dean’s Professor, Epstein Department of Industrial and Systems Engineering Fellow, Information Sciences Institute Viterbi School of Engineering

Professor, Preventive Medicine Keck School of Medicine

University of Southern California 4676 Admiralty Way, Suite 1001, Marina del Rey, CA 90292-6695 Phone: +1 (310) 448-9338 Email: carl@isi.edumailto:carl@isi.edu Web: http://www.isi.edu/~carl

On Sep 13, 2018, at 5:51 PM, Hongsuda notifications@github.com<mailto:notifications@github.com> wrote:

Isn't that the same as right click on link?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/informatics-isi-edu/ermrestjs/issues/678#issuecomment-421196285, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADbjXqL55nmEi128LcpUcnNKp4KCyU5Aks5uav2GgaJpZM4Vb0XM.

jrchudy commented 6 years ago

The text and CSS changes have been merged as part of PR #1643 in chaise.

hongsudt commented 6 years ago

I have verified that this works on rbk. SO I am closing this issue.