Inspire는 연구자들이 고 에너지 물리학에서 정확한 학술 정보를 공유하고 찾는 데 도움이되는 신뢰할 수있는 커뮤니티 허브입니다. 콘텐츠에 대한 대화식 액세스를위한 일반 웹 인터페이스 외에도 프로그램 액세스를위한 REST API가 제공됩니다. 이 문서는이 REST API를 사용하는 방법을 설명합니다.
학술 작업에서 API를 사용하는 경우 다음 메타 데이터를 사용하여 인용하십시오.
@article { Moskovic:2021zjs ,
author = " Moskovic, Micha " ,
title = " {The INSPIRE REST API} " ,
url = " https://github.com/inspirehep/rest-api-doc " ,
doi = " 10.5281/zenodo.5788550 " ,
month = " 12 " ,
year = " 2021 "
}
API를 사용하는 데 문제가 있거나 도움이 필요하거나 API 또는 해당 문서를 개선하기위한 제안이 있으시면 문제를 열거나 문의하십시오.
API 사용은 우리의 이용 약관에 의해 관리됩니다. 더 자세히 설명 하듯이 대부분의 메타 데이터는 CC0 라이센스로 제공되지만 일부 필드에는 제한이 적용되며 대량의 이메일 주소 수집은 허용되지 않습니다.
API는 일반적으로 편안하고 기본적으로 JSON을 반환합니다. 예를 들어 레코드를 찾을 수없는 경우 404 HTTP 상태 코드를 반환한다는 것을 의미합니다.
일반적으로 웹 사이트를 통해 얻는 대부분의 페이지는 /api/
와 URL의 경로 구성 요소를 접두사로하여 얻은 API에 해당하는 표현이 있습니다. 예를 들어, 데이터가 표시됩니다
https://inspirehep.net/literature?sort=mostrecent&size=25&page=1&q=title api
API AT를 통해 사용할 수 있습니다
https://inspirehep.net/api/literature?sort=mostrecent&size=25&page=1&q=title api
현재 레코드에 대한 읽기 전용 작업 만 허용되며 모두 GET
HTTP 방법을 사용합니다.
모든 예제는 사람이 읽을 수있는 방식으로 표시되지만 쿼리 매개 변수는 종종 URL에 인코딩해야합니다. 특히, 공간은 %20
으로 대체되어야합니다.
서버의 압도를 피하기 위해 IP 주소에 따라 속도 제한을 시행합니다. 모든 IP 주소는 5S 창에서 15 개의 요청이 허용됩니다. 해당 한도를 초과하는 경우 HTTP 상태 코드 429로 응답을 받게됩니다. 요금 제한 수를 초과하여 차단 된 요청은 할당량에 대한 계산을 받으므로 429 응답을받을 때 5 초 이상 기다려야합니다. 다시 시도하기 전에.
메타 데이터를 단일 레코드로 얻으려면 다음 유형의 URL을 사용하십시오.
https://inspirehep.net/api/{identifier-type}/{identifier-value}
레코드 식별자의 두 가지 주요 범주 ( {identifier-type}
및 {identifier-value}
쌍)가 지원됩니다.
이들은 웹 사이트의 URL에 나타나는 것과 동일한 식별자이며 검색에도 사용할 수 있습니다. {identifier-type}
은 다음 값을 취할 수 있습니다.
literature
authors
institutions
conferences
seminars
journals
jobs
experiments
data
{identifier-value}
Inspire 데이터베이스 (레코드 ID 또는 recid
라고도 함)에서 주어진 레코드를 식별하는 숫자입니다. 예를 들어,
https://inspirehep.net/api/literature/451647
Maldacena의 유명한 광고/CFT 용지의 기록입니다
https://inspirehep.net/api/conferences/1642486
ICHEP 2018 컨퍼런스의 기록입니다.
이들은 Inspire에 의해 할당되지 않은 지속적인 식별자이지만 그럼에도 불구하고 Inspire의 레코드를 고유하게 식별합니다 (해당 식별자에 대한 레코드가 시스템에 존재하는 경우).
다음 외부 식별자를 사용할 수 있습니다.
{identifier-type} | {identifier-value} (예제) | 용법 |
---|---|---|
doi | 10.1103/PhysRevLett.19.1264 | DOI가 주어진 문학 기록을 얻으려면 |
arxiv | 1207.7214 , hep-ph/0603175 | ARXIV 식별자가 주어진 문헌 기록을 얻습니다 |
orcid | 0000-0003-3897-046X | Orcid ID가 주어진 저자 레코드를 얻으려면 |
예를 들어,
https://inspirehep.net/api/orcid/0000-0002-9079-593X
Stephen Hawkings의 저자 기록입니다.
기본적으로 단일 레코드를 검색 할 때 API 응답은 JSON 형식으로되며 다음 키를 포함합니다.
열쇠 | 설명 |
---|---|
id | 식별자는 레코드를 검색하는 데 사용되었습니다 |
created | UTC에서 레코드의 창조 타임 스탬프 |
updated | UTC에서 레코드의 마지막 업데이트 타임 스탬프 |
links | 레코드와 관련된 리소스 링크 |
metadata | 레코드의 메타 데이터 |
레코드를 검색하는 데 사용되는 식별자가 무엇이든, metadata
내부에도 (이 레코드에 속하는 다른 식별자)도 존재합니다.
links
객체에는이 레코드와 관련된 메타 데이터에 대한 링크가 포함되어 있지만 레코드 (예 : 인용 정보) 및 대체 직렬화 형식 (예 : Bibtex)에 직접 포함되지 않습니다.
metadata
객체에는 레코드의 메타 데이터가 포함되어 있습니다. 모든 레코드에는 $schema
키가 있으며, 이는 레코드 메타 데이터가 순종하는 JSON 스키마 (초안 4)에 연결됩니다. 각 스키마에 대한 가능한 필드에 대한 자세한 문서와 그 의미는 스키마 문서에서 찾을 수 있습니다.
예를 들어, Literature
레코드의 metadata
는 hep
스키마를 준수하며, 그 필드는 여기에 문서화되어 있습니다.
기본 JSON과 다른 형식으로 레코드 (또는 여러 레코드)의 표현을 얻을 수 있습니다. 이것은 두 가지 대안으로 수행 할 수 있습니다.
format={format-name}
url query string, 또는Accept
HTTP 헤더를 특정 MIME 유형으로 설정합니다. 현재 다음 형식은 지원됩니다 ( Literature
기록을 위해서만).
{format-name} | 마임 유형 | 설명 |
---|---|---|
JSON | 응용 프로그램/JSON | 기본 JSON 형식 |
Bibtex | Application/X-Bibtex | Bibtex 인용 형식 |
라텍스 -EU | 응용 프로그램/vnd+Inspire.latex.eu+x-latex | 라텍스 (EU) 인용 형식 |
라텍스-우스 | 응용 프로그램/vnd+Inspire.latex.us+x-latex | 라텍스 (미국) 인용 형식 |
CV | Text/Vnd+Inspire.html+html | CV HTML 인용 형식 |
대체 형식에 대한 링크는 JSON 응답 내부의 links
객체에서도 찾을 수 있습니다.
예를 들어, Bibtex 형식의 약한 상호 작용에 대한 Glashow의 유명한 논문을 얻으려면 형식 매개 변수를 사용하십시오.
https://inspirehep.net/api/literature/4328?format=bibtex
또는 동일하게 컨텐츠 협상 (예제는 curl
명령 줄 도구를 사용하여 헤더를 설정합니다) :
curl -H "Accept: application/x-bibtex" https://inspirehep.net/api/literature/4328
식별자가 단일 레코드의 데이터를 가져 오지 않고 검색 결과를 얻으려면 다음 양식의 기본 URL을 사용하십시오.
https://inspirehep.net/api/{record-type}?{query-string}
{record-type}
은 다음 중 하나 여야합니다.
literature
authors
institutions
conferences
seminars
journals
jobs
experiments
data
이들은 내부 식별자 유형과 동일합니다.
{query-string}
은 &
로 분리 된 여러 {parameter}={value}
쌍을 포함 할 수 있습니다. 다음 매개 변수는 항상 지원됩니다.
{parameter} | {value} 에 대한 설명 |
---|---|
q | 검색 쿼리 |
sort | 정렬 순서 |
size | 페이지 당 반환 된 결과 수 |
page | 페이지 번호 |
fields | 메타 데이터의 필드가 반환됩니다 |
또한 {record-type}
에 따라 결과 세트를 제한하기 위해 다른 패싯 필터를 사용할 수 있습니다. 그들은 웹 사이트와 정확히 같은 방식으로 작동합니다.
예를 들어, 6 ~ 10 번째 컨퍼런스를 얻으려면 다음 URL을 사용할 수 있습니다.
https://inspirehep.net/api/seminars?size=5&page=2&start_date=upcoming
최소 1000 번 인용 된 가장 최근 10 개의 논문을 얻으려면 다음을 사용하십시오.
https://inspirehep.net/literature?sort=mostrecent&size=10&q=topcite 1000+
q
Query String 인수를 사용하면 레코드의 하위 집합에만 일치하는 검색 쿼리를 지정할 수 있습니다.
문헌 레코드 ( /api/literature
여기에 설명되어 있습니다. 또한, 레코드 메타 데이터의 모든 필드는 중첩 키를 연결하여 주어진 경로를 사용하여 검색 할 수 있습니다 .
, 그 다음에 a :
그리고 검색 할 가치.
예를 들어, Springer의 초록이있는 모든 논문을 찾으려면 다음과 같은 검색을 사용할 수 있습니다.
https://inspirehep.net/api/literature?q=abstracts.source:Springer
Edward Witten을 인용하는 모든 회의 논문을 찾으려면 다음을 사용할 수 있습니다.
https://inspirehep.net/api/literature?q=tc conference paper and refersto a E.Witten.1
필드가 존재하는지 확인하려면 *
와일드 카드를 사용할 수 있습니다. 예를 들어, DOI가있는 모든 논문을 찾으려면 다음을 사용할 수 있습니다.
https://inspirehep.net/api/literature?q=dois.value:*
다른 유형의 레코드의 경우 Elasticsearch 쿼리 문자열 구문이 사용됩니다. 여기에서도 레코드 메타 데이터의 모든 필드는 중첩 키를 연결하여 주어진 경로를 사용하여 검색 할 수 있습니다 .
, 그 다음에 a :
그리고 검색 할 가치.
예를 들어, Cern Proton-Synchotron (PS) 가속기를 사용하여 모든 실험을 찾으려면 사용하십시오.
https://inspirehep.net/api/experiments?q=accelerator.value:PS
마찬가지로 주어진 Inspire ID로 저자를 찾으려면 사용하십시오.
https://inspirehep.net/api/authors?q=ids.value:INSPIRE-00140145
검색 결과가 반환되는 순서는 검색 쿼리가 제공되는지 여부에 따라 다릅니다.
기본적으로
q
쿼리 매개 변수 없음) 결과는 가장 최근의 레코드와 함께 정렬됩니다.q
쿼리 매개 변수를 통해) 결과는 가장 관련성이 가장 높은 결과를 정렬합니다. 이 동작은 sort={sort-order}
쿼리 매개 변수로 재정의 할 수 있습니다. 다음 옵션이 지원됩니다.
{record-type} | {sort-order} | 설명 |
---|---|---|
literature | mostrecent | 가장 최근의 레코드는 먼저 나타납니다 (메타 데이터에서 가장 빠른 날짜에 따라) |
literature | mostcited | 대부분의 인용이있는 레코드가 먼저 나타납니다 |
jobs | mostrecent | 가장 최근에 생성 된 작업이 먼저 나타납니다 |
jobs | deadline | 최초의 마감일이있는 작업이 먼저 나타납니다 |
conferences | dateasc | 초기 시작 날짜가있는 회의가 먼저 나타납니다 |
conferences | datedesc | 가장 최근의 시작 날짜가있는 컨퍼런스가 먼저 나타납니다 |
seminars | dateasc | 초기 시작 시간이있는 세미나가 먼저 나타납니다 |
seminars | datedesc | 가장 최근의 시작 시간이있는 세미나가 먼저 나타납니다 |
예를 들어, 다음 URL은 Edward Witten의 10 가지 가장 인용 된 논문을 반환합니다.
https://inspirehep.net/api/literature?sort=mostcited&size=10&q=a E.Witten.1
응답 크기를 제한하기 위해 검색 결과가 페이지에서 반환됩니다. 기본적으로 페이지 당 10 개의 결과가 반환되고 결과의 첫 페이지가 반환됩니다. 다음 페이지로 이동하려면 페이지 번호를 page
쿼리 매개 변수로 전달할 수 있습니다.
예를 들어, 다음 URL을 사용하여 Edward Witten의 31 일에서 40 번째로 가장 많이 인용 된 논문을 얻으십시오.
https://inspirehep.net/api/literature?sort=mostcited&page=3&q=a E.Witten.1
다음 페이지로 이동하려면 응답에서 links
객체의 next
URL을 따라갈 수 있습니다 (기본 JSON 형식을 사용할 때).
페이지 당 결과 수는 size
쿼리 매개 변수로 재정의 할 수 있습니다. 서버에 과부하가 걸리지 않기 위해 최대 허용 값은 1000
이며, 초과하면 HTTP 상태 코드 400으로 응답을 얻을 수 있습니다.
예를 들어, Edward Witten의 가장 많이 인용 된 50 개의 논문을 한 번에 얻으려면 다음 URL을 사용할 수 있습니다.
https://inspirehep.net/api/literature?sort=mostcited&size=50&q=a E.Witten.1
페이지 당 반환 된 결과 제한 외에도 현재 주어진 검색 쿼리에 대해 10000 개 이상의 결과를 검색하는 것을 방지하는 기술 제한이 있습니다. 해결 방법은 단일 검색을 각각 10000 명 미만의 결과를 가진 여러 검색으로 나누는 것입니다. 자세한 내용은이 의견을 참조하십시오.
검색에 대한 응답은 다음 키가있는 JSON 객체입니다.
hits
: total
총 결과 수와 hits
의 레코드 (요소가 단일 레코드 응답에서와 동일한 구조를 가진 배열)를 포함합니다.links
: 검색 결과의 대체 직렬화 및 next
페이지의 다음 페이지와 같은 관련 리소스 링크. 레코드 메타 데이터 ( hits.hits.metadata
)에는 단일 레코드 응답보다 더 많은 필드가 포함되어 있습니다. 그 대부분은 내부 사용을위한 것입니다. 스키마의 일부가 아닌 모든 필드에 의존해서는 안되며 다음을 제외하고는 현재 상태가 남아 있거나 콘텐츠가 변경되지 않는다는 보장은 없습니다 .
/api/literature
열쇠 | 값 (예) | 설명 |
---|---|---|
earliest_date | 2020-03-18 | 기록에서 가장 빠른 날짜 |
citation_count | 243 | 이 기록에서받은 총 인용 수 |
citation_count_without_self_citations | 213 | 자기 구성을 제외 하고이 기록에서받은 인용 횟수 |
때로는 전체 레코드가 아닌 레코드 메타 데이터의 특정 필드에만 관심이있을 수 있습니다. 상당히 클 수있는 전체 응답을 생성하고 다운로드하지 않으려면 fields
쿼리 매개 변수를 사용할 수 있습니다. 레코드 메타 데이터에 존재 해야하는 쉼표로 구분 된 필드 목록으로 설정해야합니다.
예를 들어, 다음 URL은 제목, 저자 이름 및 1000 개 이상의 인용이있는 논문의 제휴 기록에 대한 링크 만 반환합니다.
https://inspirehep.net/api/literature?fields=titles,authors.full_name,authors.affiliations.record&q=topcite 1000+
메타 데이터 필터링은 단일 레코드 응답이 아닌 검색에서만 사용할 수 있습니다. 그러나 부분 메타 데이터를 얻으려는 레코드의 식별자를 알고 있다면 해당 식별자를 검색하여 한 레코드 만 반환 할 수 있습니다.
예를 들어, 다음 URL은 https://inspirehep.net/api/literature/4328에서 레코드의 인용 수를 제공합니다.
https://inspirehep.net/api/literature?fields=citation_count&q=recid:4328
배열의 요소 수에 제한을 두는 것은 불가능하지만 해당 배열이 전혀 나타나야하는지 여부 만 선택하십시오. 예를 들어, 처음 10 명의 저자 만 선택할 수는 없지만 fields
에 authors
(또는 하위 필드)를 넣지 않음으로써 돌아 오는 저자를 피할 수 있습니다.
서지 데이터베이스 외에도 Inspire는 시스템이 인용 된 레코드를 유추 할 수있는 특정 컨벤션을 존중하는 키를 갖춘 cite{...}
명령 (또는 변형)이 포함 된 TEX 파일에서 서지를 생성하는 도구를 제공합니다. 더 자세한 지침은 대화식 도구에서 제공됩니다.
API를 통해 액세스하려면 다음 데이터와 함께 https://inspirehep.net/api/bibliography-generator
에서 게시물 요청을 작성해야합니다.
format
형식에 latex_us
값이 bibtex
, latex_eu
file
키가있는 양식 인코딩 본문. 응답은 단일 data
키가있는 JSON 객체가 될 것입니다. 값은 download_url
에 따라 생성 된 참고 문헌 파일에 URL을 포함하는 객체와 errors
발생하는 오류가 발생합니다 (프로세스에 오류가없는 경우 비어 있음).
예를 들어 curl
:
curl -XPOST -F "file=@/path/to/my/texfile.tex" "https://inspirehep.net/api/bibliography-generator?format=bibtex"
인기있는 Python requests
패키지를 사용하는 경우 해당 문서에 설명 된대로 수행 할 수 있습니다.
다른 언어의 여러 도구는이 API를 사용하는 것입니다. 그들의 코드는 실제 예제의 유용한 소스가 될 수 있습니다.
프로젝트를 나열하려면 주저하지 말고 알려주십시오.