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, whilefilter=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
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: 34 × 7
#> journal_sc cited creation author_sc oci citing timespan
#> * <chr> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 no 10.1108/jd-12-2013-0166 2021-03-10 no 0610… 10.77… P6Y0M1D
#> 2 no 10.1108/jd-12-2013-0166 2019-11-25 no 0610… 10.32… P4Y8M16D
#> 3 no 10.1108/jd-12-2013-0166 2019-11-25 yes 0610… 10.32… P4Y8M16D
#> 4 no 10.1108/jd-12-2013-0166 2019-01-21 no 0610… 10.32… P3Y10M1…
#> 5 no 10.1108/jd-12-2013-0166 2016-03-23 yes 0610… 10.32… P1Y0M14D
#> 6 no 10.1108/jd-12-2013-0166 2017-08 no 0610… 10.10… P2Y4M
#> 7 no 10.1108/jd-12-2013-0166 2018-03-01 no 0611… 10.75… P2Y11M2…
#> 8 no 10.1108/jd-12-2013-0166 2017-02-14 no 0613… 10.11… P1Y11M5D
#> 9 no 10.1108/jd-12-2013-0166 2019-02-07 no 0613… 10.59… P3Y10M2…
#> 10 no 10.1108/jd-12-2013-0166 2018 yes 0615… 10.10… P2Y
#> # ℹ 24 more rows
### 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))
}