Skip to contents

AFAICT this API is a REST wrapper around the SPARQL service

Usage

oc_coci_refs(doi, exclude = NULL, filter = NULL, sort = NULL, ...)

oc_coci_cites(doi, exclude = NULL, filter = NULL, sort = NULL, ...)

oc_coci_meta(doi, exclude = NULL, filter = NULL, sort = NULL, ...)

oc_coci_citation(oci, ...)

Arguments

doi

(character) one or more Digital Object Identifiers (DOIs)

exclude

(character) a field_name; all the rows that have an empty value in the field_name specified are removed from the result set

filter

=<field_name>:<operator><value>: only the rows compliant with <value> are kept in the result set. The parameter <operation> is not mandatory. If <operation> is not specified, <value> is interpreted as a regular expression, otherwise it is compared by means of the specified operation. Possible operators are "=", "<", and ">". For instance, filter=title:semantics? returns all the rows that contain the string "semantic" or "semantics" in the field title, while filter=date:>2016-05 returns all the rows that have a date greater than May 2016.

sort

=<order>(<field_name>): sort in ascending (<order> set to "asc") or descending (<order> set to "desc") order the rows in the result set according to the values in <field_name>. For instance, sort=desc(date) sorts all the rows according to the value specified in the field date in descending order.

...

curl options passed on to crul::verb-GET

oci

(character) one or more Open Citation Identifiers (OCIs)

Value

data.frame, see http://opencitations.net/index/coci/api/v1 for explanation of the resulting columns

References

http://opencitations.net/index/coci/api/v1, https://github.com/opencitations/api-coci

Examples

doi1 <- "10.1108/jd-12-2013-0166"
doi2 <- "10.1371/journal.pgen.1005937"
oci1 <-
 "02001010806360107050663080702026306630509-0200101080636102704000806"
oci2 <-
 "0200101000836191363010263020001036300010606-020010003083604090301050910"

if (
crul::ok(
"http://opencitations.net/index/coci/api/v1/references/10.1108/jd-12-2013-0166",
timeout_ms = 1000L)
) {
try(
  oc_coci_cites(doi1),
  silent = TRUE
)
}
#> # A tibble: 31 × 7
#>    creation   cited                   author_sc citing     journ…¹ oci   times…²
#>  * <chr>      <chr>                   <chr>     <chr>      <chr>   <chr> <chr>  
#>  1 2017-08    10.1108/jd-12-2013-0166 no        10.1057/s… no      0200… P2Y5M  
#>  2 2018-03-01 10.1108/jd-12-2013-0166 no        10.7554/e… no      0200… P2Y11M…
#>  3 2017-06-13 10.1108/jd-12-2013-0166 no        10.1093/b… no      0200… P2Y3M4D
#>  4 2017-02-14 10.1108/jd-12-2013-0166 no        10.1101/1… no      0200… P1Y11M…
#>  5 2018-09    10.1108/jd-12-2013-0166 no        10.1142/s… no      0200… P3Y6M  
#>  6 2018       10.1108/jd-12-2013-0166 no        10.1145/3… no      0200… P3Y    
#>  7 2016-07-10 10.1108/jd-12-2013-0166 no        10.1177/0… no      0200… P1Y4M1D
#>  8 2019-02    10.1108/jd-12-2013-0166 no        10.1186/s… no      0200… P3Y11M 
#>  9 2018       10.1108/jd-12-2013-0166 no        10.1007/9… no      0200… P3Y    
#> 10 2018       10.1108/jd-12-2013-0166 no        10.1007/9… no      0200… P3Y    
#> # … with 21 more rows, and abbreviated variable names ¹​journal_sc, ²​timespan

### More examples
if (FALSE) {
# references
oc_coci_refs(doi1, exclude = "oci")
oc_coci_refs(doi1, filter = "date:>2016-05", verbose = TRUE)
oc_coci_refs(doi2)
oc_coci_refs(c(doi1, doi2))

# citations
oc_coci_cites(doi1, exclude = "oci")
oc_coci_cites(doi2)
oc_coci_cites(c(doi1, doi2))

# metadata
oc_coci_meta(doi2)
oc_coci_meta(c(doi1, doi2))

# citation - an OCI instead of a DOI
oc_coci_citation(oci1)
oc_coci_citation(c(oci1, oci2))
}