{"action":"opened","issue":{"url":"https://api.github.com/repos/rd-switchboard/Inference/issues/45","labels_url":"https://api.github.com/repos/rd-switchboard/Inference/issues/45/labels{/name}","comments_url":"https://api.github.com/repos/rd-switchboard/Inference/issues/45/comments","events_url":"https://api.github.com/repos/rd-switchboard/Inference/issues/45/events","html_url":"https://github.com/rd-switchboard/Inference/issues/45","id":129004276,"number":45,"title":"corssref_utils: Make faster DOI request function","user":{"login":"wizman777","id":8373832,"avatar_url":"https://avatars.githubusercontent.com/u/8373832?v=3","gravatar_id":"","url":"https://api.github.com/users/wizman777","html_url":"https://github.com/wizman777","followers_url":"https://api.github.com/users/wizman777/followers","following_url":"https://api.github.com/users/wizman777/following{/other_user}","gists_url":"https://api.github.com/users/wizman777/gists{/gist_id}","starred_url":"https://api.github.com/users/wizman777/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wizman777/subscriptions","organizations_url":"https://api.github.com/users/wizman777/orgs","repos_url":"https://api.github.com/users/wizman777/repos","events_url":"https://api.github.com/users/wizman777/events{/privacy}","received_events_url":"https://api.github.com/users/wizman777/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"wizman777","id":8373832,"avatar_url":"https://avatars.githubusercontent.com/u/8373832?v=3","gravatar_id":"","url":"https://api.github.com/users/wizman777","html_url":"https://github.com/wizman777","followers_url":"https://api.github.com/users/wizman777/followers","following_url":"https://api.github.com/users/wizman777/following{/other_user}","gists_url":"https://api.github.com/users/wizman777/gists{/gist_id}","starred_url":"https://api.github.com/users/wizman777/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wizman777/subscriptions","organizations_url":"https://api.github.com/users/wizman777/orgs","repos_url":"https://api.github.com/users/wizman777/repos","events_url":"https://api.github.com/users/wizman777/events{/privacy}","received_events_url":"https://api.github.com/users/wizman777/received_events","type":"User","site_admin":false},"milestone":null,"comments":0,"created_at":"2016-01-27T02:07:16Z","updated_at":"2016-01-27T02:07:16Z","closed_at":null,"body":"The current DOI request function is too slow because we have already build the cache for the DOI's but do not have a full cache for authorities. This can be fixed, if function first check DOI's cache for the DOI file, then, if file can not be found, it will check authority cache for the authority. If authority is known, and it is not CrossRef, the function should stop and return null. If authority is unknown, the function will try to download DOI record from the crossref. 80% of our DOI's are from crossref and this will eliminate unecessery authority calls for the DOI that can be loaded from the CrossRef. If DOI can not be found, the function then load authority into the cache. The authority can be ignored at this step, but the file will exist in the cache and will allow us to eliminate next call to the CrossRef for same DOI."}}