rwos
rwos copied to clipboard
R interface to Web of Science Web Services API
R interface with Web of Science Web Services API
Note : Only the Lite version of the API is accessible.
Package status : I never really used this package, so its development is stalled unfortunately. If someone wants to take it over, feel free to fork this repo !
Installation
Not on CRAN, install directly from GitHub :
install.packages("devtools") # if required
devtools::install_github("juba/rwos")
Usage
First, you need to authenticate against the service and get a session identifier.
library(rwos)
sid <- wos_authenticate()
You can the use this session id to run search queries with wos_search
:
res <- wos_search(sid, "AU=Wickham Hadley")
This will display the number of results found. You can then retrieve all records from this search results with wor_retrieve_all
:
pubs <- wos_retrieve_all(res)
Or just a fraction of them with wos_retrieve
:
pubs <- wos_retrieve(res, first = 10, count = 15)
The result is a tibble (a data frame) with the different records fields as columns.
API usage
API version
Only the Lite version of the API is accessible for now, which means :
- Access without authentication
- Limited set of returned data
- Records retrieving limited to batches of 100
Collections
The search collections available with the lite API are SCI, ISTP, ISSHP, IC. You can narrow your search to a subset of those with the editions
argument :
wos_search(sid, 'TS=soil', editions = c("SCI", "IC"))
Queries against other editions will result in a Not authorized
error message.
Searching for exact several words expressions
When searching for text with a keyword like TS
, you must enclose it into double quotes if you want to look for exact phrases. For example, the following search will look for the exact soil health expression :
wos_search(sid, 'TS="soil health"')
Whereas the following will be equivalent to search for (soil AND health)
:
wos_search(sid, "TS='soil health'"")
Limiting by document type
It seems you can narrow your search by document type with the DT
operator, like this :
wos_search(sid, "((TS=(soil AND health)) AND (DT=(Article OR Book OR Book Chapter)))")
This has not been well tested, so use it with caution and don't hesitate to report any issue.
Links
Lite API technical documentation : http://ipscience-help.thomsonreuters.com/wosWebServicesLite/WebServicesLiteOverviewGroup/Introduction.html
General API FAQ : http://ip-science.interest.thomsonreuters.com/data-integration
Sample data : http://ip-science.interest.thomsonreuters.com/sample-data/?elqTrackId=4face30b453a4df981d9135a688b4868&elqaid=3746&elqat=2