Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reference Lookup Service #276

Closed
michael opened this issue Sep 22, 2017 · 15 comments
Closed

Reference Lookup Service #276

michael opened this issue Sep 22, 2017 · 15 comments

Comments

@michael
Copy link
Member

michael commented Sep 22, 2017

We want to introduce a service for retrieving References and use it in the Texture user interface. The idea is that we send a search string (e.g. a DOI or a publication name) to services such as Crossref/DataCite and retrieve a complete element-citation record.

The desired interface looks like this:

GET http://example.com/reflookup?q=Context-specific%20grasp%20movement%20representation

Returns:

<result>
  <element-citation publication-type="journal">
    <person-group person-group-type="author">
      <name>
        <surname>Baumann</surname>
        <given-names>MA</given-names>
      </name>
      <name>
        <surname>Fluet</surname>
        <given-names>MC</given-names>
      </name>
      <name>
        <surname>Scherberger</surname>
        <given-names>H</given-names>
      </name>
    </person-group>
    <year iso-8601-date="2009">2009</year>
    <article-title>Context-specific grasp movement representation in the macaque anterior intraparietal area</article-title>
    <source>Journal of Neuroscience</source>
    <volume>29</volume>
    <fpage>6436</fpage>
    <lpage>6448</lpage>
    <pub-id pub-id-type="doi">10.1523/JNEUROSCI.5479-08.2009</pub-id>
  </element-citation>
</result>

As a result we get a an XML document, consisting of 0..n element-citation records. The records must conform to the JATS4R spec for element-citation, which we are defining here: #238

Questions

  • Who can implement that service? Texture only defines the interface, but implementation/and maintenance of the lookup service is up to platform providers
  • What to do in an offline scenario? We propose to allow service integration such as ref lookup as a drop-in (when there is an active internet connection). If the internet connection drops you could still continue editing without interruption
  • Should users be able to edit automatically retrieved records? (we would suggest to lock them for editing until the users deliberately unlocks them (which means the data is no longer guarateed to be linked to the online record and could contain user errors)
@mfenner
Copy link

mfenner commented Sep 22, 2017

The DataCite content negotiation service works with Crossref and DataCite DOIs and uses https://github.com/datacite/bolognese to format metadata. Should be straightforward to support JATS XML output.

@fabiobatalha
Copy link
Collaborator

@mfenner
Copy link

mfenner commented Oct 30, 2017

Something that is missing from DataCite content negotation that now returns JATS element-citation is the ability to query - the system works using a DOI. Can you build into texture to do two API calls: a) query Crossref API to get DOI, b) use content negotation to get metadata in JATS XML?

@michael
Copy link
Member Author

michael commented Oct 30, 2017

@mfenner we could, but it would lead to many separate calls which we need to synchronize. We could do a proxy service that does that and maps it to a sequence of element-citations for the Texture client to consume. However better this would be managed somewhere upstream? :)

In my email today I wrote an HTML string would be good for rendering the list of matches, but now that I thought more about it, I think JATS element-citation records would work best, as we can implement consistent rendering in Texture.

Think about it.. we don't need to rush, and the option you suggested is there too.

@Melissa37
Copy link
Collaborator

Melissa37 commented Oct 31, 2017

What to do in an offline scenario? We propose to allow service integration such as ref lookup as a drop-in (when there is an active internet connection). If the internet connection drops you could still continue editing without interruption
Sounds great!

Who can implement that service? Texture only defines the interface, but implementation/and maintenance of the lookup service is up to platform providers
I would hope that there is open source software out there for this as almost every production vendor in India has set up this functionality into their workflow

Should users be able to edit automatically retrieved records? (we would suggest to lock them for editing until the users deliberately unlocks them (which means the data is no longer guarateed to be linked to the online record and could contain user errors)

The metadata at crossref is not perfect, and also all "face mark up" is removed, so important information like sub scripts and italics are dropped. Many authors feel strongly about this data and so should be able to amend it.
Another thing we've noticed is that journal titles are normalised, so again authors need to be able to edit them - eLife is changed to elife. At eLife we have a bunch of exceptions that our vendor converts from the Crossref/PubMed output.
The key data that should not be changed is the DOI, maybe that should not be editable but the other fields are?

@michael
Copy link
Member Author

michael commented Oct 31, 2017

Who can implement that service? Texture only defines the interface, but implementation/and maintenance of the lookup service is up to platform providers
I would hope that there is open source software out there for this as almost every production vendor in India has set up this functionality into their workflow

The new DataCite JATS service will do the job for us. A first implementation is already there: force11/force11-sciwg#7 (comment)

Should users be able to edit automatically retrieved records? (we would suggest to lock them for editing until the users deliberately unlocks them (which means the data is no longer guarateed to be linked to the online record and could contain user errors)
The metadata at crossref is not perfect, and also all "face mark up" is removed, so important information like sub scripts and italics are dropped. Many authors feel strongly about this data and so should be able to amend it. Another thing we've noticed is that journal titles are normalised, so again authors need to be able to edit them - eLife is changed to elife. At eLife we have a bunch of exceptions that our vendor converts from the Crossref/PubMed output. The key data that should not be changed is the DOI, maybe that should not be editable but the other fields are?

I understand. So let's keep the fields open for editing.

I think we have two use-cases:

  1. Create a new reference from Crossref data (interface only shows up when internet connection is available)

image

  1. Update an existing record (manually created or through MS Word conversion)

image

This interface can be used to link an entry with a DOI, and we can prompt the user if they want empty fields to be populated with metadata from Crossref. However after linking they'll be able to change all data except for the DOI?

How does that sound?

@fabiobatalha
Copy link
Collaborator

@Melissa37 @michael

All suggestions sounds good for us.

Is it possible to include more than one metadata source (eg. SciELO). We can develop the same endpoint that DataCite has to retrieve metadata from a given DOI number.

@axfelix
Copy link

axfelix commented Oct 31, 2017

Yes, this is good, and I agree about giving some kind of interface cue when a user is deviating from looked-up metadata

@Melissa37
Copy link
Collaborator

I agree re more than 1 metadata source - some of our use cases would prefer PubMed and PubMedID look up.

I think we need to get this user tested asap though - search online, I think it would be best to prompt the author to put a DOI or PubMedID in here and not say "search online" as this indicates to the user that you are going to search the internet including every publisher page and pull in the details based on whatever wonky metadata they add here as a string!

@michael
Copy link
Member Author

michael commented Nov 1, 2017

Entering a DOI explicitly instead of a search could be a good first step, easier to implement also. What do the others think?

@mfenner
Copy link

mfenner commented Nov 1, 2017 via email

@michael
Copy link
Member Author

michael commented Nov 1, 2017

Hey Martin!

Saving reference data to an external DB would only be available to people of the journal production team, not for authors. Same is true for the proposal here #284.

@pigeonm
Copy link

pigeonm commented Nov 2, 2017

Hi !

At Erudit, we agree with mfenner's comment: ultimately, what we want is the canonical version of a bibliographic reference. What we are looking for is the structure of a citation, not it style (eg, italic).

About the appearance of a citation (eg, the title has been italicized), does Texture integrate different citation style (subject addressed in issue #238 ), because the appearance of a citation could be the result of the style chosen by the user (APA, Chicago, Vancouver, etc.). The support of citation styles in Texture might be discussed in a dedicated issue?

However, we are still concerned about the variable quality of some metadata at Crossref, so it seems to be a good idea to let the door open to the possibility of editing citations if needed. We don’t want it to be Texture that prevents us from editing a reference if we consider that it must be edited. Eg, see the case where Crossref sends back citations where the “sup” markup have been removed: we would want edit the citation to to add the “sup” markup back.

@Melissa37
Copy link
Collaborator

Agree with all except that "face mark up" matters to some readers and users and they should be able to add sub/super-script and italics to titles of papers if they want to. I have an inhouse editor who would have a major problem if I did not allow this to happen.
I agree that whether a journal title is in italics or Roman is a style issue that each publisher will do differently and so should not be Texture's job to sort.

@michael
Copy link
Member Author

michael commented Nov 7, 2018

Closing this as we have an initial implementation and will advance based on new issues.

@michael michael closed this as completed Nov 7, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants