2012-05-08 5 views
24

Ein digital object identifier (DOI) ist eine weltweit eindeutige Zeichenfolge, die ein elektronisches Dokument identifiziert (z. B. eine PDF eines akademischen Artikels). Es bietet im Wesentlichen eine Methode zum Erstellen eines Permalinks für ein Dokument (z. B. http://dx.doi.org/10.1145/146585.146609).Metadaten von DOI abrufen

Gibt es einen Webdienst (oder ein anderes System), um die Metadaten (vorzugsweise in BibTeX-Form) eines Dokuments von einem bestimmten DOI zu erhalten?

Bearbeitet, um einige Erläuterungsinformationen hinzuzufügen.

+4

Ich bin nicht sicher, warum diese geschlossen ist entweder, aber es gibt Informationen zu dieser hier http: // crosscite.org/cn/ – Dave

+7

Da die Frage geschlossen ist, werde ich in den Kommentaren beantworten: 'curl -LH" Akzeptieren: text/bibliography; style = bibtex "http: // dx.doi.org/10.1038/nrd842' – anumi

+0

Suche nach JabRef. – anumi

Antwort

8

curl -LH "Accept: text/bibliography; style=bibtex" http://dx.doi.org/10.1038/nrd842

+2

Es gibt auch doi2bib ("geben Sie uns einen DOI und wir werden unser Bestes tun, um Ihnen den BibTeX-Eintrag zu bringen") unter http://www.doi2bib.org/#/doi – anumi

+0

Ist diese Anfrage/Antwort-Schnittstelle irgendwo dokumentiert? Wie haben Sie diese Funktionalität gefunden? – argentpepper

+0

@argentpepper: Entschuldigung, ich erinnere mich nicht. – anumi

0

CrossRef has an API, die Sie mit einem API-Schlüssel verwenden können, die von kostenlos bezogen werden kann.

2

Schauen Sie sich an, wie diese Leute es implementiert haben: www.doi2bib.org.

Was ich in einem meiner Projekte haben:

  • auf ihre url Anforderungsstruktur sah: http://www.doi2bib.org/doi2bib + ?id= + {your doi here}.
  • dann verwendet, um ihre ... gut API die Daten zu erhalten (zum Beispiel http://www.doi2bib.org/doi2bib?id=10.1016%2Fj.actpsy.2016.09.007) und die Antwort ist:
    • @article{Leinen_2016, doi = {10.1016/j.actpsy.2016.09.007}, url = {http://dx.doi.org/10.1016/j.actpsy.2016.09.007}, year = 2016, month = {nov}, publisher = {Elsevier {BV}}, volume = {171}, pages = {36--46}, author = {Peter Leinen and Stefan Panzer and Charles H. Shea}, title = {Hemispheric asymmetries of a motor memory in a recognition test after learning a movement sequence}, journal = {Acta Psychologica} }
  • dann können Sie es analysieren, wie Sie wollen.

Dies half mir zu bekommen, was ich getan habe. Der beste Weg wäre jedoch, sich ihr GitHub Repository anzusehen und zu versuchen, Ihr eigenes zu erstellen.

Hoffe es hilft!

+0

Danke! Ihre Anwendung scheint eine Anfrage wie die von @anumi oben zu stellen ('GET http: // dx.doi.org/was auch immer'), aber mit der Kopfzeile 'Accept: application/x-bibtex; charset = utf-8' statt 'Accept: text/bibliography; Stil = Bibtex'. Ich werde mit dieser Info eine neue Antwort erstellen. – argentpepper

3

Section 5.4.1 Content Negotiation des DOI Handbook Dokumente Staaten, "Content-Verhandlung wird von DOI Registration Agencies für ihre DOI-Namen, speziell um Mehrwert Metadaten Darstellungen für Benutzer zu implementieren." Laut Section 4 Supported Content Types der DOI Content Negotiation-Dokumentation für http://crosscite.org, "haben derzeit drei DOI-Registrierungsagenturen die Inhaltsverhandlung für ihre DOIs CrossRef, DataCite und mEDRA implementiert." Die Liste der unterstützten Formate (abhängig von der Registrierungsstelle) umfasst sowohl BibTeX über Accept: application/x-bibtex (dies ist der von http://doi2bib.org verwendete Ansatz) als auch einen formatierten Literatureintrag über Accept: text/bibliography (oben the approach suggested by @anumi). Wenn Sie den letzten Header verwenden, müssen Sie den Medientyp-Parameter style=bibtex angeben.

Die beiden relevanten MIME-Typen bieten leicht unterschiedliche Darstellungen. Ein Antrag auf GET http://dx.doi.org/10.1038/nrd842 mit Accept: application/x-bibtex ergibt die Antwort

@article{Atkins_2002, 
    doi = {10.1038/nrd842}, 
    url = {http://dx.doi.org/10.1038/nrd842}, 
    year = 2002, 
    month = {jul}, 
    publisher = {Springer Nature}, 
    volume = {1}, 
    number = {7}, 
    pages = {491--492}, 
    author = {Joshua H. Atkins and Leland J. Gershell}, 
    title = {From the analyst{\textquotesingle}s couch: Selective anticancer drugs}, 
    journal = {Nature Reviews Drug Discovery} 
} 

und mit Accept: text/bibliography; style=bibtex

@article{Atkins_2002, title={From the analyst’s couch: Selective anticancer drugs}, volume={1}, ISSN={1474-1784}, url={http://dx.doi.org/10.1038/nrd842}, DOI={10.1038/nrd842}, number={7}, journal={Nature Reviews Drug Discovery}, publisher={Springer Nature}, author={Atkins, Joshua H. and Gershell, Leland J.}, year={2002}, month={Jul}, pages={491–492}} 
+0

Großartige Arbeit, die das zusammensetzt! Ich würde es als eine Antwort markieren, es ist wirklich hilfreich. –