library(devtools)
devtools::session_info()
Session info -------------------------------------------------------------
setting value
version R version 3.4.1 (2017-06-30)
system x86_64, darwin15.6.0
ui RStudio (1.0.143)
language (EN)
collate en_GB.UTF-8
tz America/Los_Angeles
date 2017-08-04
Packages -----------------------------------------------------------------
package * version date source
assertthat 0.2.0 2017-04-11 CRAN (R 3.4.0)
backports 1.1.0 2017-05-22 CRAN (R 3.4.0)
base * 3.4.1 2017-07-07 local
base64enc 0.1-3 2015-07-28 CRAN (R 3.4.0)
bindr 0.1 2016-11-13 CRAN (R 3.4.0)
bindrcpp 0.2 2017-06-17 CRAN (R 3.4.0)
broom 0.4.2 2017-02-13 CRAN (R 3.4.0)
cellranger 1.1.0 2016-07-27 CRAN (R 3.4.0)
codemetar * 0.1.0 2017-08-02 Github (codemeta/codemetar@3a1deca)
colorspace 1.3-2 2016-12-14 CRAN (R 3.4.0)
compiler 3.4.1 2017-07-07 local
curl 2.7 2017-06-26 cran (@2.7)
datasets * 3.4.1 2017-07-07 local
devtools * 1.13.2 2017-06-02 CRAN (R 3.4.0)
digest 0.6.12 2017-01-27 CRAN (R 3.4.0)
dplyr * 0.7.2 2017-07-20 CRAN (R 3.4.1)
evaluate 0.10.1 2017-06-24 CRAN (R 3.4.1)
forcats 0.2.0 2017-01-23 CRAN (R 3.4.0)
foreign 0.8-69 2017-06-22 CRAN (R 3.4.1)
ggplot2 * 2.2.1 2016-12-30 CRAN (R 3.4.0)
gh 1.0.1 2017-07-16 CRAN (R 3.4.1)
git2r 0.19.0 2017-07-19 cran (@0.19.0)
glue 1.1.1 2017-06-21 CRAN (R 3.4.0)
graphics * 3.4.1 2017-07-07 local
grDevices * 3.4.1 2017-07-07 local
grid 3.4.1 2017-07-07 local
gtable 0.2.0 2016-02-26 CRAN (R 3.4.0)
haven 1.1.0 2017-07-09 CRAN (R 3.4.1)
hms 0.3 2016-11-22 CRAN (R 3.4.0)
htmltools 0.3.6 2017-04-28 CRAN (R 3.4.0)
httr 1.2.1 2016-07-03 CRAN (R 3.4.0)
jsonld 1.2 2017-04-11 cran (@1.2)
jsonlite * 1.5 2017-06-01 cran (@1.5)
knitr 1.16 2017-05-18 cran (@1.16)
lattice 0.20-35 2017-03-25 CRAN (R 3.4.1)
lazyeval 0.2.0 2016-06-12 CRAN (R 3.4.0)
lubridate 1.6.0 2016-09-13 CRAN (R 3.4.0)
magrittr 1.5 2014-11-22 CRAN (R 3.4.0)
memoise 1.1.0 2017-04-21 CRAN (R 3.4.0)
methods * 3.4.1 2017-07-07 local
mnormt 1.5-5 2016-10-15 CRAN (R 3.4.0)
modelr 0.1.0 2016-08-31 CRAN (R 3.4.0)
munsell 0.4.3 2016-02-13 CRAN (R 3.4.0)
nlme 3.1-131 2017-02-06 CRAN (R 3.4.1)
parallel 3.4.1 2017-07-07 local
pkgconfig 2.0.1 2017-03-21 CRAN (R 3.4.0)
plyr 1.8.4 2016-06-08 CRAN (R 3.4.0)
psych 1.7.5 2017-05-03 CRAN (R 3.4.0)
purrr * 0.2.2.2 2017-05-11 CRAN (R 3.4.0)
R6 2.2.2 2017-06-17 cran (@2.2.2)
Rcpp 0.12.12 2017-07-15 CRAN (R 3.4.1)
readr * 1.1.1 2017-05-16 CRAN (R 3.4.0)
readxl 1.0.0 2017-04-18 CRAN (R 3.4.0)
remotes * 1.1.0 2017-07-09 CRAN (R 3.4.1)
reshape2 1.4.2 2016-10-22 CRAN (R 3.4.0)
rlang 0.1.1 2017-05-18 CRAN (R 3.4.0)
rmarkdown * 1.6 2017-06-15 cran (@1.6)
rprojroot 1.2 2017-01-16 CRAN (R 3.4.0)
rsconnect 0.8 2017-05-08 CRAN (R 3.4.0)
rstudioapi 0.6 2016-06-27 CRAN (R 3.4.0)
rvest 0.3.2 2016-06-17 CRAN (R 3.4.0)
scales 0.4.1 2016-11-09 CRAN (R 3.4.0)
stats * 3.4.1 2017-07-07 local
stringi 1.1.5 2017-04-07 CRAN (R 3.4.0)
stringr 1.2.0 2017-02-18 CRAN (R 3.4.0)
tibble * 1.3.3 2017-05-28 CRAN (R 3.4.0)
tidyr * 0.6.3 2017-05-15 CRAN (R 3.4.0)
tidyverse * 1.1.1 2017-01-27 CRAN (R 3.4.0)
tools 3.4.1 2017-07-07 local
utils * 3.4.1 2017-07-07 local
V8 1.5 2017-04-25 cran (@1.5)
withr 1.0.2 2016-06-20 CRAN (R 3.4.0)
xml2 1.1.1 2017-01-24 CRAN (R 3.4.0)
yaml 2.1.14 2016-11-12 CRAN (R 3.4.0)
devtools::install_github("codemeta/codemetar")
Skipping install of 'codemetar' from a github remote, the SHA1 (3a1deca0) has not changed since last install.
Use `force = TRUE` to force installation
#devtools::install_github("codemeta/codemetar", force = T)
library("codemetar")
All looks good so far.
ls("package:codemetar")
[1] "codemeta_validate" "create_codemeta" "crosswalk"
[4] "drop_context" "write_codemeta"
codemeta_validate
create_codemeta
crosswalk
drop_context
write_codemeta
codemeta_validate
function (codemeta = "codemeta.json", context = NULL)
{
if (file.exists(codemeta)) {
A <- read_json(codemeta)
}
else if (is(codemeta, "json")) {
A <- fromJSON(codemeta)
}
if (is.null(context)) {
context <- A$`@context`
if (length(context) > 1) {
context <- jsonlite::toJSON(list(`@context` = context),
auto_unbox = TRUE)
}
}
test <- tempfile(fileext = ".json")
writeLines(jsonld::jsonld_compact(jsonld::jsonld_expand(codemeta),
context), test)
B <- jsonlite::read_json(test)
unlink(test)
A$`@context` <- NULL
B$`@context` <- NULL
same_n_properties <- identical(length(unlist(A)), length(unlist(B)))
compaction_fail <- any(grepl(names(unlist(B)), pattern = ":"))
same_n_properties && !compaction_fail
}
<bytecode: 0x10a5a1750>
<environment: namespace:codemetar>
?codemeta_validate
ex <- system.file("examples/codemeta.json", package="codemetar")
ex
[1] "/Users/Anna/Library/R/3.4/library/codemetar/examples/codemeta.json"
/Users/Anna/Library/R/3.4/library/codemetar/examples/codemeta.json
codemeta_validate(ex)
[1] TRUE
Random xml file
codemeta_validate("../assets/example/example.xml")
Random json file
codemeta_validate("../assets/example/example.json")
Validate a different json
create_codemeta("jsonlite") %>% jsonlite::write_json(path = "../assets/example/jsonlite.json", pretty = TRUE, auto_unbox = TRUE)
codemeta_validate("../assets/example/jsonlite.json")
[1] TRUE
Despite not being mentioned in the documentation (ie codemeta
argument description only mentions path/filename), the function is geared up to accept a JSON-LD
(also demonstrated in the crosswalking vignette).
e.g.
ex_json <- read_json(ex) %>% crosswalk("R Package Description")
codemeta_validate(ex_json)
[1] TRUE
BTW this also made me think that %>% crosswalk("R Package Description")
is the only way to get from a JSON-LD r list
to a JSON-LD
in r as toJSON
doesn’t work. While its great that there is a way to do it, it almost feels a bit like a hack. At the very least I feel it should be included as an example so the users are aware of it but I’m wondering if an explicit function for that might also be useful?
create_codemeta
function (pkg = ".", root = ".", id = NULL, force_update = getOption("codemeta_force_update",
TRUE), ...)
{
if (is.character(pkg)) {
root <- get_root_path(pkg)
if (file.exists(get_file("codemeta.json", root))) {
cm <- jsonlite::read_json(get_file("codemeta.json",
root))
}
else {
cm <- new_codemeta()
}
}
else if (is.list(pkg)) {
cm <- pkg
root <- get_root_path(root)
}
cm <- codemeta_description(file.path(root, "DESCRIPTION"),
id = id, cm)
if (is.null(cm$codeRepository) | force_update)
cm$codeRepository <- guess_github(root)
if (is.null(cm$contIntegration) | force_update)
cm$contIntegration <- guess_ci(file.path(root, "README.md"))
if (is.null(cm$developmentStatus) | force_update)
cm$developmentStatus <- guess_devStatus(file.path(root,
"README.md"))
if (is.null(cm$releaseNotes) | force_update)
cm$releaseNotes <- guess_releaseNotes(root)
if (is.null(cm$readme) | force_update)
cm$readme <- guess_readme(root)
if (is.null(cm$fileSize) | force_update)
cm$fileSize <- guess_fileSize(root)
if (is.character(pkg)) {
cm$citation <- guess_citation(pkg)
if (!any(grepl("http://schema.org", cm$`@context`))) {
cm$`@context` <- c(cm$`@context`, "http://schema.org")
}
}
cm
}
<bytecode: 0x104f51d20>
<environment: namespace:codemetar>
?create_codemeta
cm <- create_codemeta("jsonlite")
cm
$`@context`
[1] "https://doi.org/doi:10.5063/schema/codemeta-2.0"
[2] "http://schema.org"
$`@type`
[1] "SoftwareSourceCode"
$identifier
[1] "jsonlite"
$description
[1] "A fast JSON parser and generator optimized for statistical data\n and the web. Started out as a fork of 'RJSONIO', but has been completely\n rewritten in recent versions. The package offers flexible, robust, high\n performance tools for working with JSON in R and is particularly powerful\n for building pipelines and interacting with a web API. The implementation is\n based on the mapping described in the vignette (Ooms, 2014). In addition to\n converting JSON data from/to R objects, 'jsonlite' contains functions to\n stream, validate, and prettify JSON data. The unit tests included with the\n package verify that all edge cases are encoded and decoded consistently for\n use with dynamic data in systems and applications."
$name
[1] "jsonlite: A Robust, High Performance JSON Parser and Generator for R"
$issueTracker
[1] "http://github.com/jeroen/jsonlite/issues"
$datePublished
[1] "2017-06-01 12:03:37 UTC"
$license
[1] "https://spdx.org/licenses/MIT"
$version
[1] "1.5"
$programmingLanguage
$programmingLanguage$`@type`
[1] "ComputerLanguage"
$programmingLanguage$name
[1] "R"
$programmingLanguage$version
[1] "3.4.1"
$programmingLanguage$url
[1] "https://r-project.org"
$runtimePlatform
[1] "R version 3.4.1 (2017-06-30)"
$provider
$provider$`@id`
[1] "https://cran.r-project.org"
$provider$`@type`
[1] "Organization"
$provider$name
[1] "Central R Archive Network (CRAN)"
$provider$url
[1] "https://cran.r-project.org"
$author
$author[[1]]
$author[[1]]$`@type`
[1] "Person"
$author[[1]]$givenName
[1] "Jeroen"
$author[[1]]$familyName
[1] "Ooms"
$author[[2]]
$author[[2]]$`@type`
[1] "Person"
$author[[2]]$givenName
[1] "Duncan" "Temple"
$author[[2]]$familyName
[1] "Lang"
$author[[3]]
$author[[3]]$`@type`
[1] "Person"
$author[[3]]$givenName
[1] "Lloyd"
$author[[3]]$familyName
[1] "Hilaiel"
$maintainer
$maintainer$`@type`
[1] "Person"
$maintainer$givenName
[1] "Jeroen"
$maintainer$familyName
[1] "Ooms"
$maintainer$email
[1] "jeroen@berkeley.edu"
$softwareSuggestions
$softwareSuggestions[[1]]
$softwareSuggestions[[1]]$`@type`
[1] "SoftwareApplication"
$softwareSuggestions[[1]]$identifier
[1] "httr"
$softwareSuggestions[[1]]$name
[1] "httr"
$softwareSuggestions[[1]]$provider
$softwareSuggestions[[1]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareSuggestions[[1]]$provider$`@type`
[1] "Organization"
$softwareSuggestions[[1]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareSuggestions[[1]]$provider$url
[1] "https://cran.r-project.org"
$softwareSuggestions[[2]]
$softwareSuggestions[[2]]$`@type`
[1] "SoftwareApplication"
$softwareSuggestions[[2]]$identifier
[1] "curl"
$softwareSuggestions[[2]]$name
[1] "curl"
$softwareSuggestions[[2]]$provider
$softwareSuggestions[[2]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareSuggestions[[2]]$provider$`@type`
[1] "Organization"
$softwareSuggestions[[2]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareSuggestions[[2]]$provider$url
[1] "https://cran.r-project.org"
$softwareSuggestions[[3]]
$softwareSuggestions[[3]]$`@type`
[1] "SoftwareApplication"
$softwareSuggestions[[3]]$identifier
[1] "plyr"
$softwareSuggestions[[3]]$name
[1] "plyr"
$softwareSuggestions[[3]]$provider
$softwareSuggestions[[3]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareSuggestions[[3]]$provider$`@type`
[1] "Organization"
$softwareSuggestions[[3]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareSuggestions[[3]]$provider$url
[1] "https://cran.r-project.org"
$softwareSuggestions[[4]]
$softwareSuggestions[[4]]$`@type`
[1] "SoftwareApplication"
$softwareSuggestions[[4]]$identifier
[1] "testthat"
$softwareSuggestions[[4]]$name
[1] "testthat"
$softwareSuggestions[[4]]$provider
$softwareSuggestions[[4]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareSuggestions[[4]]$provider$`@type`
[1] "Organization"
$softwareSuggestions[[4]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareSuggestions[[4]]$provider$url
[1] "https://cran.r-project.org"
$softwareSuggestions[[5]]
$softwareSuggestions[[5]]$`@type`
[1] "SoftwareApplication"
$softwareSuggestions[[5]]$identifier
[1] "knitr"
$softwareSuggestions[[5]]$name
[1] "knitr"
$softwareSuggestions[[5]]$provider
$softwareSuggestions[[5]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareSuggestions[[5]]$provider$`@type`
[1] "Organization"
$softwareSuggestions[[5]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareSuggestions[[5]]$provider$url
[1] "https://cran.r-project.org"
$softwareSuggestions[[6]]
$softwareSuggestions[[6]]$`@type`
[1] "SoftwareApplication"
$softwareSuggestions[[6]]$identifier
[1] "rmarkdown"
$softwareSuggestions[[6]]$name
[1] "rmarkdown"
$softwareSuggestions[[6]]$provider
$softwareSuggestions[[6]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareSuggestions[[6]]$provider$`@type`
[1] "Organization"
$softwareSuggestions[[6]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareSuggestions[[6]]$provider$url
[1] "https://cran.r-project.org"
$softwareSuggestions[[7]]
$softwareSuggestions[[7]]$`@type`
[1] "SoftwareApplication"
$softwareSuggestions[[7]]$identifier
[1] "R.rsp"
$softwareSuggestions[[7]]$name
[1] "R.rsp"
$softwareSuggestions[[7]]$provider
$softwareSuggestions[[7]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareSuggestions[[7]]$provider$`@type`
[1] "Organization"
$softwareSuggestions[[7]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareSuggestions[[7]]$provider$url
[1] "https://cran.r-project.org"
$softwareSuggestions[[8]]
$softwareSuggestions[[8]]$`@type`
[1] "SoftwareApplication"
$softwareSuggestions[[8]]$identifier
[1] "sp"
$softwareSuggestions[[8]]$name
[1] "sp"
$softwareSuggestions[[8]]$provider
$softwareSuggestions[[8]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareSuggestions[[8]]$provider$`@type`
[1] "Organization"
$softwareSuggestions[[8]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareSuggestions[[8]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements
$softwareRequirements[[1]]
$softwareRequirements[[1]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[1]]$identifier
[1] "methods"
$softwareRequirements[[1]]$name
[1] "methods"
$citation
$citation[[1]]
$citation[[1]]$`@type`
[1] "ScholarlyArticle"
$citation[[1]]$datePublished
[1] "2014"
$citation[[1]]$author
$citation[[1]]$author[[1]]
$citation[[1]]$author[[1]]$`@type`
[1] "Person"
$citation[[1]]$author[[1]]$givenName
[1] "Jeroen"
$citation[[1]]$author[[1]]$familyName
[1] "Ooms"
$citation[[1]]$name
[1] "The jsonlite Package: A Practical and Consistent Mapping Between JSON Data and R Objects"
$citation[[1]]$url
[1] "https://arxiv.org/abs/1403.2805"
$citation[[1]]$isPartOf
$citation[[1]]$isPartOf$`@type`
[1] "PublicationIssue"
$citation[[1]]$isPartOf$datePublished
[1] "2014"
$citation[[1]]$isPartOf$isPartOf
$citation[[1]]$isPartOf$isPartOf$`@type`
[1] "PublicationVolume" "Periodical"
$citation[[1]]$isPartOf$isPartOf$name
[1] "arXiv:1403.2805 [stat.CO]"
https://doi.org/doi:10.5063/schema/codemeta-2.0
http://schema.org
SoftwareSourceCode
jsonlite
A fast JSON parser and generator optimized for statistical data
and the web. Started out as a fork of 'RJSONIO', but has been completely
rewritten in recent versions. The package offers flexible, robust, high
performance tools for working with JSON in R and is particularly powerful
for building pipelines and interacting with a web API. The implementation is
based on the mapping described in the vignette (Ooms, 2014). In addition to
converting JSON data from/to R objects, 'jsonlite' contains functions to
stream, validate, and prettify JSON data. The unit tests included with the
package verify that all edge cases are encoded and decoded consistently for
use with dynamic data in systems and applications.
jsonlite: A Robust, High Performance JSON Parser and Generator for R
http://github.com/jeroen/jsonlite/issues
2017-06-01 12:03:37 UTC
https://spdx.org/licenses/MIT
1.5
ComputerLanguage
R
3.4.1
https://r-project.org
R version 3.4.1 (2017-06-30)
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
Person
Jeroen
Ooms
Person
Duncan
Temple
Lang
Person
Lloyd
Hilaiel
Person
Jeroen
Ooms
jeroen@berkeley.edu
SoftwareApplication
httr
httr
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
curl
curl
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
plyr
plyr
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
testthat
testthat
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
knitr
knitr
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
rmarkdown
rmarkdown
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
R.rsp
R.rsp
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
sp
sp
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
methods
methods
ScholarlyArticle
2014
Person
Jeroen
Ooms
The jsonlite Package: A Practical and Consistent Mapping Between JSON Data and R Objects
https://arxiv.org/abs/1403.2805
PublicationIssue
2014
PublicationVolume
Periodical
arXiv:1403.2805 [stat.CO]
devtools::install_github('rstudio/tufte')
dev.tufte <- create_codemeta("tufte")
install.packages("tufte")
cran.tufte <- create_codemeta("tufte")
all.equal(dev.tufte, cran.tufte)
[1] "Component \"version\": 1 string mismatch"
[2] "Component \"contributor\": Length mismatch: comparison on first 1 components"
[3] "Component \"contributor\": Component 1: Component 2: 1 string mismatch"
[4] "Component \"contributor\": Component 1: Component 3: 1 string mismatch"
[5] "Component \"citation\": Component 1: Component 5: 1 string mismatch"
[6] "Component \"citation\": Component 1: Component 6: 1 string mismatch"
Component "version": 1 string mismatch
Component "contributor": Length mismatch: comparison on first 1 components
Component "contributor": Component 1: Component 2: 1 string mismatch
Component "contributor": Component 1: Component 3: 1 string mismatch
Component "citation": Component 1: Component 5: 1 string mismatch
Component "citation": Component 1: Component 6: 1 string mismatch
Differences to be expected.
cran.tufte$version
[1] "0.2"
0.2
dev.tufte$version
[1] "0.2.7"
0.2.7
cran.tufte$contributor
[[1]]
[[1]]$`@type`
[1] "Person"
[[1]]$givenName
[1] "Dave"
[[1]]$familyName
[1] "Liepmann"
Person
Dave
Liepmann
dev.tufte$contributor
[[1]]
[[1]]$`@type`
[1] "Person"
[[1]]$givenName
[1] "Andrzej"
[[1]]$familyName
[1] "Oles"
[[2]]
[[2]]$`@type`
[1] "Person"
[[2]]$givenName
[1] "Dave"
[[2]]$familyName
[1] "Liepmann"
Person
Andrzej
Oles
Person
Dave
Liepmann
Looks like dev.tufte
has picked up another contributor! Sweet!
library(remotes)
remotes::install_github("mangothecat/franc")
Downloading GitHub repo mangothecat/franc@master
Installing package into '/Users/Anna/Library/R/3.4/library'
(as 'lib' is unspecified)
create_codemeta("franc")
$`@context`
[1] "https://doi.org/doi:10.5063/schema/codemeta-2.0"
[2] "http://schema.org"
$`@type`
[1] "SoftwareSourceCode"
$identifier
[1] "franc"
$description
[1] "With no external dependencies and\n support for 335 languages; all languages spoken by\n more than one million speakers. 'Franc' is a port\n of the 'JavaScript' project of the same name,\n see <https://github.com/wooorm/franc>."
$name
[1] "franc: Detect the Language of Text"
$issueTracker
[1] "https://github.com/mangothecat/franc/issues"
$license
[1] "https://spdx.org/licenses/MIT"
$version
[1] "1.1.1"
$programmingLanguage
$programmingLanguage$`@type`
[1] "ComputerLanguage"
$programmingLanguage$name
[1] "R"
$programmingLanguage$version
[1] "3.4.1"
$programmingLanguage$url
[1] "https://r-project.org"
$runtimePlatform
[1] "R version 3.4.1 (2017-06-30)"
$provider
$provider$`@id`
[1] "https://cran.r-project.org"
$provider$`@type`
[1] "Organization"
$provider$name
[1] "Central R Archive Network (CRAN)"
$provider$url
[1] "https://cran.r-project.org"
$author
$author[[1]]
$author[[1]]$`@type`
[1] "Person"
$author[[1]]$givenName
[1] "Gabor"
$author[[1]]$familyName
[1] "Csardi"
$author[[2]]
$author[[2]]$`@type`
[1] "Person"
$author[[2]]$givenName
[1] "Titus"
$author[[2]]$familyName
[1] "Wormer"
$author[[3]]
$author[[3]]$`@type`
[1] "Person"
$author[[3]]$givenName
[1] "Maciej"
$author[[3]]$familyName
[1] "Ceglowski"
$author[[4]]
$author[[4]]$`@type`
[1] "Person"
$author[[4]]$givenName
[1] "Jacob" "R."
$author[[4]]$familyName
[1] "Rideout"
$author[[5]]
$author[[5]]$`@type`
[1] "Person"
$author[[5]]$givenName
[1] "and" "Kent" "S."
$author[[5]]$familyName
[1] "Johnson"
$maintainer
$maintainer$`@type`
[1] "Person"
$maintainer$givenName
[1] "Gabor"
$maintainer$familyName
[1] "Csardi"
$maintainer$email
[1] "gcsardi@mango-solutions.com"
$softwareSuggestions
$softwareSuggestions[[1]]
$softwareSuggestions[[1]]$`@type`
[1] "SoftwareApplication"
$softwareSuggestions[[1]]$identifier
[1] "testthat"
$softwareSuggestions[[1]]$name
[1] "testthat"
$softwareSuggestions[[1]]$provider
$softwareSuggestions[[1]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareSuggestions[[1]]$provider$`@type`
[1] "Organization"
$softwareSuggestions[[1]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareSuggestions[[1]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements
$softwareRequirements[[1]]
$softwareRequirements[[1]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[1]]$identifier
[1] "jsonlite"
$softwareRequirements[[1]]$name
[1] "jsonlite"
$softwareRequirements[[1]]$provider
$softwareRequirements[[1]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[1]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[1]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[1]]$provider$url
[1] "https://cran.r-project.org"
$contIntegration
[1] "https://travis-ci.org/MangoTheCat/franc"
$developmentStatus
[1] "active"
$citation
$citation[[1]]
$citation[[1]]$`@type`
[1] "SoftwareSourceCode"
$citation[[1]]$author
$citation[[1]]$author[[1]]
$citation[[1]]$author[[1]]$`@type`
[1] "Person"
$citation[[1]]$author[[1]]$givenName
[1] "Gabor"
$citation[[1]]$author[[1]]$familyName
[1] "Csardi"
$citation[[1]]$author[[2]]
$citation[[1]]$author[[2]]$`@type`
[1] "Person"
$citation[[1]]$author[[2]]$givenName
[1] "Titus"
$citation[[1]]$author[[2]]$familyName
[1] "Wormer"
$citation[[1]]$author[[3]]
$citation[[1]]$author[[3]]$`@type`
[1] "Person"
$citation[[1]]$author[[3]]$givenName
[1] "Maciej"
$citation[[1]]$author[[3]]$familyName
[1] "Ceglowski"
$citation[[1]]$author[[4]]
$citation[[1]]$author[[4]]$`@type`
[1] "Person"
$citation[[1]]$author[[4]]$givenName
[1] "Jacob" "R."
$citation[[1]]$author[[4]]$familyName
[1] "Rideout"
$citation[[1]]$author[[5]]
$citation[[1]]$author[[5]]$`@type`
[1] "Person"
$citation[[1]]$author[[5]]$givenName
[1] "and" "Kent" "S."
$citation[[1]]$author[[5]]$familyName
[1] "Johnson"
$citation[[1]]$name
[1] "franc: Detect the Language of Text"
$citation[[1]]$url
[1] "https://github.com/mangothecat/franc"
$citation[[1]]$description
[1] "R package version 1.1.1"
https://doi.org/doi:10.5063/schema/codemeta-2.0
http://schema.org
SoftwareSourceCode
franc
With no external dependencies and
support for 335 languages; all languages spoken by
more than one million speakers. 'Franc' is a port
of the 'JavaScript' project of the same name,
see <https://github.com/wooorm/franc>.
franc: Detect the Language of Text
https://github.com/mangothecat/franc/issues
https://spdx.org/licenses/MIT
1.1.1
ComputerLanguage
R
3.4.1
https://r-project.org
R version 3.4.1 (2017-06-30)
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
Person
Gabor
Csardi
Person
Titus
Wormer
Person
Maciej
Ceglowski
Person
Jacob
R.
Rideout
Person
and
Kent
S.
Johnson
Person
Gabor
Csardi
gcsardi@mango-solutions.com
SoftwareApplication
testthat
testthat
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
jsonlite
jsonlite
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
https://travis-ci.org/MangoTheCat/franc
active
SoftwareSourceCode
Person
Gabor
Csardi
Person
Titus
Wormer
Person
Maciej
Ceglowski
Person
Jacob
R.
Rideout
Person
and
Kent
S.
Johnson
franc: Detect the Language of Text
https://github.com/mangothecat/franc
R package version 1.1.1
devtools::install_github(repo = "maksimhorowitz/nflscrapR")
Skipping install of 'nflscrapR' from a github remote, the SHA1 (8c356484) has not changed since last install.
Use `force = TRUE` to force installation
create_codemeta("nflscrapR")
$`@context`
[1] "https://doi.org/doi:10.5063/schema/codemeta-2.0"
[2] "http://schema.org"
$`@type`
[1] "SoftwareSourceCode"
$identifier
[1] "nflscrapR"
$description
[1] "This package allows data driven sports enthusiasts to use the NFL JSON API data to perform detailed analysis on the game, player, and season levels. The 11 functions within this package helps parse and clean the data from Nfl.com for R users. nflscrapR was build to enhance advanced sports analytics research specifically for American Football with the hopes of developing metrics and insights that could potentially be useful for professional NFL teams. \n R (>= 3.0.2)"
$name
[1] "nflscrapR: Will scrape NFL play-by-play and boxscore data across full\n seasons"
$issueTracker
[1] "https://github.com/maksimhorowitz/nflscrapR/issues"
$license
[1] "https://spdx.org/licenses/CC0-1.0"
$version
[1] "1.4.0"
$programmingLanguage
$programmingLanguage$`@type`
[1] "ComputerLanguage"
$programmingLanguage$name
[1] "R"
$programmingLanguage$version
[1] "3.4.1"
$programmingLanguage$url
[1] "https://r-project.org"
$runtimePlatform
[1] "R version 3.4.1 (2017-06-30)"
$author
$author[[1]]
$author[[1]]$`@type`
[1] "Person"
$author[[1]]$givenName
[1] "Maksim"
$author[[1]]$familyName
[1] "Horowitz"
$author[[1]]$email
[1] "maksim.horowitz@gmail.com"
$author[[2]]
$author[[2]]$`@type`
[1] "Person"
$author[[2]]$givenName
[1] "Ron"
$author[[2]]$familyName
[1] "Yurko"
$author[[2]]$email
[1] "ryurko21@gmail.com"
$maintainer
$maintainer$`@type`
[1] "Person"
$maintainer$givenName
[1] "Maksim"
$maintainer$familyName
[1] "Horowitz"
$maintainer$email
[1] "maksim.horowitz@gmail.com"
$softwareSuggestions
$softwareSuggestions[[1]]
$softwareSuggestions[[1]]$`@type`
[1] "SoftwareApplication"
$softwareSuggestions[[1]]$identifier
[1] "testthat"
$softwareSuggestions[[1]]$name
[1] "testthat"
$softwareSuggestions[[1]]$provider
$softwareSuggestions[[1]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareSuggestions[[1]]$provider$`@type`
[1] "Organization"
$softwareSuggestions[[1]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareSuggestions[[1]]$provider$url
[1] "https://cran.r-project.org"
$softwareSuggestions[[2]]
$softwareSuggestions[[2]]$`@type`
[1] "SoftwareApplication"
$softwareSuggestions[[2]]$identifier
[1] "knitr"
$softwareSuggestions[[2]]$name
[1] "knitr"
$softwareSuggestions[[2]]$provider
$softwareSuggestions[[2]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareSuggestions[[2]]$provider$`@type`
[1] "Organization"
$softwareSuggestions[[2]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareSuggestions[[2]]$provider$url
[1] "https://cran.r-project.org"
$softwareSuggestions[[3]]
$softwareSuggestions[[3]]$`@type`
[1] "SoftwareApplication"
$softwareSuggestions[[3]]$identifier
[1] "rmarkdown"
$softwareSuggestions[[3]]$name
[1] "rmarkdown"
$softwareSuggestions[[3]]$provider
$softwareSuggestions[[3]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareSuggestions[[3]]$provider$`@type`
[1] "Organization"
$softwareSuggestions[[3]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareSuggestions[[3]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements
$softwareRequirements[[1]]
$softwareRequirements[[1]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[1]]$identifier
[1] "RJSONIO"
$softwareRequirements[[1]]$name
[1] "RJSONIO"
$softwareRequirements[[1]]$provider
$softwareRequirements[[1]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[1]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[1]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[1]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements[[2]]
$softwareRequirements[[2]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[2]]$identifier
[1] "RCurl"
$softwareRequirements[[2]]$name
[1] "RCurl"
$softwareRequirements[[2]]$provider
$softwareRequirements[[2]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[2]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[2]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[2]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements[[3]]
$softwareRequirements[[3]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[3]]$identifier
[1] "stringr"
$softwareRequirements[[3]]$name
[1] "stringr"
$softwareRequirements[[3]]$provider
$softwareRequirements[[3]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[3]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[3]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[3]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements[[4]]
$softwareRequirements[[4]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[4]]$identifier
[1] "lubridate"
$softwareRequirements[[4]]$name
[1] "lubridate"
$softwareRequirements[[4]]$provider
$softwareRequirements[[4]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[4]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[4]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[4]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements[[5]]
$softwareRequirements[[5]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[5]]$identifier
[1] "dplyr"
$softwareRequirements[[5]]$name
[1] "dplyr"
$softwareRequirements[[5]]$provider
$softwareRequirements[[5]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[5]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[5]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[5]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements[[6]]
$softwareRequirements[[6]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[6]]$identifier
[1] "reshape"
$softwareRequirements[[6]]$name
[1] "reshape"
$softwareRequirements[[6]]$provider
$softwareRequirements[[6]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[6]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[6]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[6]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements[[7]]
$softwareRequirements[[7]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[7]]$identifier
[1] "reshape2"
$softwareRequirements[[7]]$name
[1] "reshape2"
$softwareRequirements[[7]]$provider
$softwareRequirements[[7]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[7]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[7]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[7]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements[[8]]
$softwareRequirements[[8]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[8]]$identifier
[1] "scrapeR"
$softwareRequirements[[8]]$name
[1] "scrapeR"
$softwareRequirements[[8]]$provider
$softwareRequirements[[8]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[8]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[8]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[8]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements[[9]]
$softwareRequirements[[9]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[9]]$identifier
[1] "ggplot2"
$softwareRequirements[[9]]$name
[1] "ggplot2"
$softwareRequirements[[9]]$provider
$softwareRequirements[[9]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[9]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[9]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[9]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements[[10]]
$softwareRequirements[[10]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[10]]$identifier
[1] "DT"
$softwareRequirements[[10]]$name
[1] "DT"
$softwareRequirements[[10]]$provider
$softwareRequirements[[10]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[10]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[10]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[10]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements[[11]]
$softwareRequirements[[11]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[11]]$identifier
[1] "gridExtra"
$softwareRequirements[[11]]$name
[1] "gridExtra"
$softwareRequirements[[11]]$provider
$softwareRequirements[[11]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[11]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[11]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[11]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements[[12]]
$softwareRequirements[[12]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[12]]$identifier
[1] "mgcv"
$softwareRequirements[[12]]$name
[1] "mgcv"
$softwareRequirements[[12]]$provider
$softwareRequirements[[12]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[12]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[12]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[12]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements[[13]]
$softwareRequirements[[13]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[13]]$identifier
[1] "rvest"
$softwareRequirements[[13]]$name
[1] "rvest"
$softwareRequirements[[13]]$provider
$softwareRequirements[[13]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[13]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[13]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[13]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements[[14]]
$softwareRequirements[[14]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[14]]$identifier
[1] "purrr"
$softwareRequirements[[14]]$name
[1] "purrr"
$softwareRequirements[[14]]$provider
$softwareRequirements[[14]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[14]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[14]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[14]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements[[15]]
$softwareRequirements[[15]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[15]]$identifier
[1] "xml2"
$softwareRequirements[[15]]$name
[1] "xml2"
$softwareRequirements[[15]]$provider
$softwareRequirements[[15]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[15]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[15]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[15]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements[[16]]
$softwareRequirements[[16]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[16]]$identifier
[1] "nnet"
$softwareRequirements[[16]]$name
[1] "nnet"
$softwareRequirements[[16]]$provider
$softwareRequirements[[16]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[16]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[16]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[16]]$provider$url
[1] "https://cran.r-project.org"
$softwareRequirements[[17]]
$softwareRequirements[[17]]$`@type`
[1] "SoftwareApplication"
$softwareRequirements[[17]]$identifier
[1] "magrittr"
$softwareRequirements[[17]]$name
[1] "magrittr"
$softwareRequirements[[17]]$provider
$softwareRequirements[[17]]$provider$`@id`
[1] "https://cran.r-project.org"
$softwareRequirements[[17]]$provider$`@type`
[1] "Organization"
$softwareRequirements[[17]]$provider$name
[1] "Central R Archive Network (CRAN)"
$softwareRequirements[[17]]$provider$url
[1] "https://cran.r-project.org"
$citation
$citation[[1]]
$citation[[1]]$`@type`
[1] "SoftwareSourceCode"
$citation[[1]]$author
$citation[[1]]$author[[1]]
$citation[[1]]$author[[1]]$`@type`
[1] "Person"
$citation[[1]]$author[[1]]$givenName
[1] "Maksim"
$citation[[1]]$author[[1]]$familyName
[1] "Horowitz"
$citation[[1]]$author[[1]]$email
[1] "maksim.horowitz@gmail.com"
$citation[[1]]$author[[2]]
$citation[[1]]$author[[2]]$`@type`
[1] "Person"
$citation[[1]]$author[[2]]$givenName
[1] "Ron"
$citation[[1]]$author[[2]]$familyName
[1] "Yurko"
$citation[[1]]$author[[2]]$email
[1] "ryurko21@gmail.com"
$citation[[1]]$name
[1] "nflscrapR: Will scrape NFL play-by-play and boxscore data across full seasons"
$citation[[1]]$url
[1] "https://github.com/maksimhorowitz/nflscrapR"
$citation[[1]]$description
[1] "R package version 1.4.0"
https://doi.org/doi:10.5063/schema/codemeta-2.0
http://schema.org
SoftwareSourceCode
nflscrapR
This package allows data driven sports enthusiasts to use the NFL JSON API data to perform detailed analysis on the game, player, and season levels. The 11 functions within this package helps parse and clean the data from Nfl.com for R users. nflscrapR was build to enhance advanced sports analytics research specifically for American Football with the hopes of developing metrics and insights that could potentially be useful for professional NFL teams.
R (>= 3.0.2)
nflscrapR: Will scrape NFL play-by-play and boxscore data across full
seasons
https://github.com/maksimhorowitz/nflscrapR/issues
https://spdx.org/licenses/CC0-1.0
1.4.0
ComputerLanguage
R
3.4.1
https://r-project.org
R version 3.4.1 (2017-06-30)
Person
Maksim
Horowitz
maksim.horowitz@gmail.com
Person
Ron
Yurko
ryurko21@gmail.com
Person
Maksim
Horowitz
maksim.horowitz@gmail.com
SoftwareApplication
testthat
testthat
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
knitr
knitr
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
rmarkdown
rmarkdown
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
RJSONIO
RJSONIO
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
RCurl
RCurl
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
stringr
stringr
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
lubridate
lubridate
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
dplyr
dplyr
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
reshape
reshape
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
reshape2
reshape2
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
scrapeR
scrapeR
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
ggplot2
ggplot2
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
DT
DT
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
gridExtra
gridExtra
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
mgcv
mgcv
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
rvest
rvest
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
purrr
purrr
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
xml2
xml2
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
nnet
nnet
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareApplication
magrittr
magrittr
https://cran.r-project.org
Organization
Central R Archive Network (CRAN)
https://cran.r-project.org
SoftwareSourceCode
Person
Maksim
Horowitz
maksim.horowitz@gmail.com
Person
Ron
Yurko
ryurko21@gmail.com
nflscrapR: Will scrape NFL play-by-play and boxscore data across full seasons
https://github.com/maksimhorowitz/nflscrapR
R package version 1.4.0
crosswalk
function (x, from, to = "codemeta", codemeta_context = "https://doi.org/10.5063/schema/codemeta-2.0")
{
from_context <- crosswalk_context(crosswalk_table(from),
codemeta_context)
if (to != "codemeta") {
to_context <- crosswalk_context(crosswalk_table(to),
codemeta_context)
to_context <- toJSON(to_context, auto_unbox = TRUE, pretty = TRUE)
}
else {
to_context <- codemeta_context
}
crosswalk_transform(x, crosswalk_context = from_context,
codemeta_context = to_context)
}
<environment: namespace:codemetar>
?crosswalk
Description in help file could be a touch more informative, eg:
Crosswalk between different metadata fields used by different repositories, registries and archives. For more details see here.
Also suggest that where the crosswalk table is mentioned, a link to it be supplied.
e.g.
from
the corresponding column name from the crosswalk table.
Finally, while it is relatively straight forward to get the crosswalk .csv, I feel it might be good to be able to access information from it through the package. Here are some suggestions based on what I would find personally useful:
.csv
.But moving beyond that it could be useful to have a few helper functions to quickly interrogate it? e.g.
to
and from
in crosswalk
. Could be cool to have another function eg crosswalks
that prints the available crosswalk column options. e.g.crosswalks <- function(){
df <-
readr::read_csv(
"https://github.com/codemeta/codemeta/raw/master/crosswalk.csv",
col_types = cols(.default = "c"))
names(df)[!names(df) %in% c("Parent Type", "Property", "Type", "Description")]
}
crosswalks()
[1] "codemeta-V1" "DataCite"
[3] "OntoSoft" "Zenodo"
[5] "GitHub" "Figshare"
[7] "Software Ontology" "Software Discovery Index"
[9] "Dublin Core" "R Package Description"
[11] "Debian Package" "Python Distutils (PyPI)"
[13] "Trove Software Map" "Perl Module Description (CPAN::Meta)"
[15] "NodeJS" "Java (Maven)"
[17] "Octave" "Ruby Gem"
[19] "ASCL" "DOAP"
[21] "Wikidata"
codemeta-V1
DataCite
OntoSoft
Zenodo
GitHub
Figshare
Software Ontology
Software Discovery Index
Dublin Core
R Package Description
Debian Package
Python Distutils (PyPI)
Trove Software Map
Perl Module Description (CPAN::Meta)
NodeJS
Java (Maven)
Octave
Ruby Gem
ASCL
DOAP
Wikidata
I also found the non-exported function crosswalk_table
quite useful (some commented out code in there). Other’s might too?
But I feel the most useful is to be able to narrow down field matches between particular repositories of interest. So building on the crosswalk_table
function, I would probably find the following functions quite useful:
library(readr)
crosswalk_map <- function(from, to,
full_crosswalk =
"https://github.com/codemeta/codemeta/raw/master/crosswalk.csv",
trim = FALSE){
df <-
readr::read_csv(full_crosswalk,
col_types = cols(.default = "c"))
df <- df[c("Property", from, to)]
if(trim) df <- df[!is.na(df[,from]),] # trim to `from` argument fields
df
}
crosswalk_map(from = "GitHub", to = c("Zenodo", "Figshare"), trim = T)
Property <chr> | GitHub <chr> | Zenodo <chr> | Figshare <chr> | |
---|---|---|---|---|
codeRepository | html_url | relatedLink | relatedLink | |
programmingLanguage | languages_url | NA | NA | |
downloadUrl | archive_url | NA | NA | |
author | login | creators | NA | |
dateCreated | created_at | NA | NA | |
dateModified | updated_at | NA | NA | |
license | license | license | License | |
description | description | description/notes | Description | |
identifier | id | id | NA | |
name | full_name | title | Title |
## Not run:
## Crosswalk data returned by the GitHub API into CodeMeta format
r <- gh::gh("/repos/:owner/:repo", owner = "ropensci", repo = "EML")
class(r)
[1] "gh_response" "list"
gh_response
list
r_json.ld <- crosswalk(r, "GitHub")
class(r_json.ld)
[1] "json"
json
codemeta_validate(r_json.ld)
[1] TRUE
r_json.ld
{
"@context": "https://doi.org/10.5063/schema/codemeta-2.0",
"codeRepository": "https://github.com/ropensci/EML",
"dateCreated": "2013-06-23T23:20:03Z",
"dateModified": "2017-07-16T23:31:02Z",
"description": " Ecological Metadata Language interface for R: synthesis and integration of heterogenous data",
"downloadUrl": "https://api.github.com/repos/ropensci/EML/{archive_format}{/ref}",
"identifier": "10894022",
"name": "ropensci/EML",
"programmingLanguage": "https://api.github.com/repos/ropensci/EML/languages",
"issueTracker": "https://api.github.com/repos/ropensci/EML/issues{/number}"
}
crosswalk(r, "GitHub", "Zenodo")
{
"@context": {
"schema": "http://schema.org/",
"codemeta": "https://codemeta.github.io/terms/",
"relatedLink": {
"@id": "schema:codeRepository",
"@type": "@id"
},
"communities": {
"@id": "schema:applicationCategory",
"@type": "@id"
},
"creators": {
"@id": "schema:author",
"@container": "@list"
},
"date_published": {
"@id": "schema:datePublished",
"@type": "schema:Date"
},
"contributors.Funder": {
"@id": "schema:funder"
},
"keywords": {
"@id": "schema:keywords"
},
"license": {
"@id": "schema:license",
"@type": "@id"
},
"description/notes": {
"@id": "schema:description"
},
"id": {
"@id": "schema:identifier",
"@type": "@id"
},
"title": {
"@id": "schema:name"
},
"affiliation": {
"@id": "schema:affiliation"
},
"ORCID": {
"@id": "schema:identifier",
"@type": "@id"
},
"name": {
"@id": "schema:name"
}
},
"relatedLink": "https://github.com/ropensci/EML",
"schema:dateCreated": {
"@type": "schema:Date",
"@value": "2013-06-23T23:20:03Z"
},
"schema:dateModified": {
"@type": "schema:Date",
"@value": "2017-07-16T23:31:02Z"
},
"description/notes": " Ecological Metadata Language interface for R: synthesis and integration of heterogenous data",
"schema:downloadUrl": {
"@id": "https://api.github.com/repos/ropensci/EML/{archive_format}{/ref}"
},
"id": "10894022",
"name": "ropensci/EML",
"schema:programmingLanguage": "https://api.github.com/repos/ropensci/EML/languages",
"codemeta:issueTracker": {
"@id": "https://api.github.com/repos/ropensci/EML/issues{/number}"
}
}
Let’s try and break it!
crosswalk(r, "myImaginaryRepo")
A reasonably informative error when combined with ?crosswalk
crosswalk_table <- function(column,
full_crosswalk =
"https://github.com/codemeta/codemeta/raw/master/crosswalk.csv"){
df <-
readr::read_csv(full_crosswalk,
col_types = cols(.default = "c"))
df <- df[c("Property", column)]
stats::na.omit(df)
## df[!is.na(df[[column]]),] ## stats::na.omit
}
crosswalk_context <-
function(df,
codemeta_context =
"https://doi.org/10.5063/schema/codemeta-2.0"){
context <- jsonlite::read_json(codemeta_context)
context[[1]][["id"]] <- NULL ## avoid collisions with @id
properties <- names(context[[1]])
new_context <- list("@context" =
list(schema = "http://schema.org/",
codemeta = "https://codemeta.github.io/terms/"))
for(i in 1:dim(df)[1]){
original_term <- properties[properties == df[[i, 1]] ]
new_context[["@context"]][[ df[[i,2]] ]] <- context[[1]][[original_term]]
}
new_context
}
drop_context
function (x, json_output = FALSE)
{
if (is(x, "json") || is.character(x)) {
x <- fromJSON(x)
json_output <- TRUE
}
x$`@context` <- NULL
if (json_output) {
x <- toJSON(x, auto_unbox = TRUE, pretty = TRUE)
}
x
}
<environment: namespace:codemetar>
?drop_context
No examples provided
fromJSON(ex)
$`@context`
[1] "https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld"
$`@type`
[1] "SoftwareSourceCode"
$identifier
[1] "codemetar"
$description
[1] "Codemeta defines a 'JSON-LD' format for describing software metadata.\n This package provides utilities to generate, parse, and modify codemeta.jsonld\n files automatically for R packages."
$name
[1] "codemetar: Generate CodeMeta Metadata for R Packages"
$codeRepository
[1] "https://github.com/codemeta/codemetar"
$issueTracker
[1] "https://github.com/codemeta/codemetar/issues"
$license
[1] "https://spdx.org/licenses/MIT"
$version
[1] "0.1.0"
$programmingLanguage
$programmingLanguage$`@type`
[1] "ComputerLanguage"
$programmingLanguage$name
[1] "R"
$programmingLanguage$version
[1] "3.4.0"
$programmingLanguage$url
[1] "https://r-project.org"
$runtimePlatform
[1] "R version 3.4.0 (2017-04-21)"
$author
@type givenName familyName email @id
1 Person Carl Boettiger cboettig@gmail.com http://orcid.org/0000-0002-1642-628X
$copyrightHolder
@type givenName familyName email @id
1 Person Carl Boettiger cboettig@gmail.com http://orcid.org/0000-0002-1642-628X
$maintainer
$maintainer$`@type`
[1] "Person"
$maintainer$givenName
[1] "Carl"
$maintainer$familyName
[1] "Boettiger"
$maintainer$email
[1] "cboettig@gmail.com"
$maintainer$`@id`
[1] "http://orcid.org/0000-0002-1642-628X"
$softwareSuggestions
@type name provider.@id provider.@type
1 SoftwareApplication testthat https://cran.r-project.org Organization
2 SoftwareApplication jsonvalidate https://cran.r-project.org Organization
3 SoftwareApplication covr https://cran.r-project.org Organization
4 SoftwareApplication knitr https://cran.r-project.org Organization
5 SoftwareApplication rmarkdown https://cran.r-project.org Organization
6 SoftwareApplication httr https://cran.r-project.org Organization
7 SoftwareApplication magrittr https://cran.r-project.org Organization
8 SoftwareApplication readr https://cran.r-project.org Organization
9 SoftwareApplication xml2 https://cran.r-project.org Organization
provider.name provider.url
1 Central R Archive Network (CRAN) https://cran.r-project.org
2 Central R Archive Network (CRAN) https://cran.r-project.org
3 Central R Archive Network (CRAN) https://cran.r-project.org
4 Central R Archive Network (CRAN) https://cran.r-project.org
5 Central R Archive Network (CRAN) https://cran.r-project.org
6 Central R Archive Network (CRAN) https://cran.r-project.org
7 Central R Archive Network (CRAN) https://cran.r-project.org
8 Central R Archive Network (CRAN) https://cran.r-project.org
9 Central R Archive Network (CRAN) https://cran.r-project.org
$softwareRequirements
@type name version provider.@id provider.@type
1 SoftwareApplication jsonlite 1.3 https://cran.r-project.org Organization
2 SoftwareApplication jsonld <NA> https://cran.r-project.org Organization
3 SoftwareApplication git2r <NA> https://cran.r-project.org Organization
4 SoftwareApplication devtools <NA> https://cran.r-project.org Organization
5 SoftwareApplication methods <NA> <NA> <NA>
6 SoftwareApplication R 3.0.0 <NA> <NA>
provider.name provider.url
1 Central R Archive Network (CRAN) https://cran.r-project.org
2 Central R Archive Network (CRAN) https://cran.r-project.org
3 Central R Archive Network (CRAN) https://cran.r-project.org
4 Central R Archive Network (CRAN) https://cran.r-project.org
5 <NA> <NA>
6 <NA> <NA>
$contIntegration
[1] "https://travis-ci.org/codemeta/codemetar"
$developmentStatus
[1] "wip"
$releaseNotes
[1] "https://github.com/codemeta/codemetar/blob/master/README.md"
$readme
[1] "https://github.com/codemeta/codemetar/blob/master/README.md"
$fileSize
[1] "119.335KB"
https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld
SoftwareSourceCode
codemetar
Codemeta defines a 'JSON-LD' format for describing software metadata.
This package provides utilities to generate, parse, and modify codemeta.jsonld
files automatically for R packages.
codemetar: Generate CodeMeta Metadata for R Packages
https://github.com/codemeta/codemetar
https://github.com/codemeta/codemetar/issues
https://spdx.org/licenses/MIT
0.1.0
ComputerLanguage
R
3.4.0
https://r-project.org
R version 3.4.0 (2017-04-21)
Person
Carl
Boettiger
cboettig@gmail.com
http://orcid.org/0000-0002-1642-628X
https://travis-ci.org/codemeta/codemetar
wip
https://github.com/codemeta/codemetar/blob/master/README.md
https://github.com/codemeta/codemetar/blob/master/README.md
119.335KB
fromJSON(ex) %>% drop_context()
$`@type`
[1] "SoftwareSourceCode"
$identifier
[1] "codemetar"
$description
[1] "Codemeta defines a 'JSON-LD' format for describing software metadata.\n This package provides utilities to generate, parse, and modify codemeta.jsonld\n files automatically for R packages."
$name
[1] "codemetar: Generate CodeMeta Metadata for R Packages"
$codeRepository
[1] "https://github.com/codemeta/codemetar"
$issueTracker
[1] "https://github.com/codemeta/codemetar/issues"
$license
[1] "https://spdx.org/licenses/MIT"
$version
[1] "0.1.0"
$programmingLanguage
$programmingLanguage$`@type`
[1] "ComputerLanguage"
$programmingLanguage$name
[1] "R"
$programmingLanguage$version
[1] "3.4.0"
$programmingLanguage$url
[1] "https://r-project.org"
$runtimePlatform
[1] "R version 3.4.0 (2017-04-21)"
$author
@type givenName familyName email @id
1 Person Carl Boettiger cboettig@gmail.com http://orcid.org/0000-0002-1642-628X
$copyrightHolder
@type givenName familyName email @id
1 Person Carl Boettiger cboettig@gmail.com http://orcid.org/0000-0002-1642-628X
$maintainer
$maintainer$`@type`
[1] "Person"
$maintainer$givenName
[1] "Carl"
$maintainer$familyName
[1] "Boettiger"
$maintainer$email
[1] "cboettig@gmail.com"
$maintainer$`@id`
[1] "http://orcid.org/0000-0002-1642-628X"
$softwareSuggestions
@type name provider.@id provider.@type
1 SoftwareApplication testthat https://cran.r-project.org Organization
2 SoftwareApplication jsonvalidate https://cran.r-project.org Organization
3 SoftwareApplication covr https://cran.r-project.org Organization
4 SoftwareApplication knitr https://cran.r-project.org Organization
5 SoftwareApplication rmarkdown https://cran.r-project.org Organization
6 SoftwareApplication httr https://cran.r-project.org Organization
7 SoftwareApplication magrittr https://cran.r-project.org Organization
8 SoftwareApplication readr https://cran.r-project.org Organization
9 SoftwareApplication xml2 https://cran.r-project.org Organization
provider.name provider.url
1 Central R Archive Network (CRAN) https://cran.r-project.org
2 Central R Archive Network (CRAN) https://cran.r-project.org
3 Central R Archive Network (CRAN) https://cran.r-project.org
4 Central R Archive Network (CRAN) https://cran.r-project.org
5 Central R Archive Network (CRAN) https://cran.r-project.org
6 Central R Archive Network (CRAN) https://cran.r-project.org
7 Central R Archive Network (CRAN) https://cran.r-project.org
8 Central R Archive Network (CRAN) https://cran.r-project.org
9 Central R Archive Network (CRAN) https://cran.r-project.org
$softwareRequirements
@type name version provider.@id provider.@type
1 SoftwareApplication jsonlite 1.3 https://cran.r-project.org Organization
2 SoftwareApplication jsonld <NA> https://cran.r-project.org Organization
3 SoftwareApplication git2r <NA> https://cran.r-project.org Organization
4 SoftwareApplication devtools <NA> https://cran.r-project.org Organization
5 SoftwareApplication methods <NA> <NA> <NA>
6 SoftwareApplication R 3.0.0 <NA> <NA>
provider.name provider.url
1 Central R Archive Network (CRAN) https://cran.r-project.org
2 Central R Archive Network (CRAN) https://cran.r-project.org
3 Central R Archive Network (CRAN) https://cran.r-project.org
4 Central R Archive Network (CRAN) https://cran.r-project.org
5 <NA> <NA>
6 <NA> <NA>
$contIntegration
[1] "https://travis-ci.org/codemeta/codemetar"
$developmentStatus
[1] "wip"
$releaseNotes
[1] "https://github.com/codemeta/codemetar/blob/master/README.md"
$readme
[1] "https://github.com/codemeta/codemetar/blob/master/README.md"
$fileSize
[1] "119.335KB"
SoftwareSourceCode
codemetar
Codemeta defines a 'JSON-LD' format for describing software metadata.
This package provides utilities to generate, parse, and modify codemeta.jsonld
files automatically for R packages.
codemetar: Generate CodeMeta Metadata for R Packages
https://github.com/codemeta/codemetar
https://github.com/codemeta/codemetar/issues
https://spdx.org/licenses/MIT
0.1.0
ComputerLanguage
R
3.4.0
https://r-project.org
R version 3.4.0 (2017-04-21)
Person
Carl
Boettiger
cboettig@gmail.com
http://orcid.org/0000-0002-1642-628X
https://travis-ci.org/codemeta/codemetar
wip
https://github.com/codemeta/codemetar/blob/master/README.md
https://github.com/codemeta/codemetar/blob/master/README.md
119.335KB
write_codemeta
function (pkg = ".", path = "codemeta.json", root = ".", id = NULL,
force_update = getOption("codemeta_force_update", TRUE),
...)
{
if (file.exists(file.path(pkg, "DESCRIPTION"))) {
devtools::use_build_ignore("codemeta.json", pkg = pkg)
}
cm <- create_codemeta(pkg = pkg, root = root)
jsonlite::write_json(cm, path, pretty = TRUE, auto_unbox = TRUE,
...)
}
<environment: namespace:codemetar>
When writing the file into a package (ie when DESCRIPTION
is detected), adding "codemeta.json"
to .Rbuildignore
assumes that the user has not changed the path
. While it is advised in the help file to leave as default, as the user can change it, there could theoretically be a situation where the user has called it something else but the function has written "codemeta.json"
to .Rbuildignore
. Just wondering whether that would cause in problems downstream or somehow guarded against or warned?
Which brings me to a suggestion for the documentation. Currently the description is just the name of the function. But what I like is that it cleverly automates the creation of a codemeta file within a package. My impression is that this will become a standard file that all r packages will have and therefore following standard proceedure when creating and naming conventions (ie keep default "codemeta.json"
name and save in package root). While the function is set up beautifully to this as default, it might be worth mentioning, either in the kelp file or the README, what the broader intention behind these settings is.
?write_codemeta
In terms of good quality control of information relating to existing packages I really appreciate the automatic updating and overwriting of fields in a supplied. For what appears to me to be the main use case envisaged (ie creating a )
break.author <- create_codemeta("codemetar")
break.author$author[[1]]$givenName <- "Anna"
break.author$author[[1]]$familyName <- "Krystalli"
break.author$author[[1]]
$`@type`
[1] "Person"
$givenName
[1] "Anna"
$familyName
[1] "Krystalli"
$email
[1] "cboettig@gmail.com"
$`@id`
[1] "http://orcid.org/0000-0002-1642-628X"
Person
Anna
Krystalli
cboettig@gmail.com
http://orcid.org/0000-0002-1642-628X
is(break.author %>% toJSON, "json")
[1] TRUE
break.author %>% codemeta_validate()
returns error: Error in file.exists(codemeta) : invalid 'file' argument
codemeta_validate("codemeta_breakit.json")
[1] TRUE
write_codemeta(pkg = break.author, path = "../test-codemetas/codemeta_breakit.json")
Warning in if (file.exists(file.path(pkg, "DESCRIPTION"))) {: the condition has length >
1 and only the first element will be used
codemeta_validate("../test-codemetas/codemeta_breakit.json")
[1] TRUE
read_json("../test-codemetas/codemeta_breakit.json")$author
[[1]]
[[1]]$`@type`
[1] "Person"
[[1]]$givenName
[1] "Anna"
[[1]]$familyName
[1] "Krystalli"
[[1]]$email
[1] "cboettig@gmail.com"
[[1]]$`@id`
[1] "http://orcid.org/0000-0002-1642-628X"
Person
Anna
Krystalli
cboettig@gmail.com
http://orcid.org/0000-0002-1642-628X
write_codemeta(pkg = break.author, path = "../test-codemetas/codemeta_breakit2.json", root = "../pkg/codemetar/")
Warning in if (file.exists(file.path(pkg, "DESCRIPTION"))) {: the condition has length >
1 and only the first element will be used
codemeta_validate("../test-codemetas/codemeta_breakit2.json")
[1] TRUE
read_json("../test-codemetas/codemeta_breakit2.json")$author
[[1]]
[[1]]$`@type`
[1] "Person"
[[1]]$givenName
[1] "Carl"
[[1]]$familyName
[1] "Boettiger"
[[1]]$email
[1] "cboettig@gmail.com"
[[1]]$`@id`
[1] "http://orcid.org/0000-0002-1642-628X"
Person
Carl
Boettiger
cboettig@gmail.com
http://orcid.org/0000-0002-1642-628X
write_codemeta(pkg = "../pkg/codemetar/", path = "codemeta1.json")
Overall comments:
I think it could be useful to make a distinction in the functions and documentation between codemeta JSON-LD format and the codemeta JSON-LD r list objects. Let’s say we associated codemeta
with the JSON-LD format and codemetar
with r lists. Using these associations in function names could make it a bit more explicit to the user. E.g. Functions write_codemeta
and validate_codemeta
would remain the same because they either output or work on JSON-LD formats but create_codemeta
could become create_codemetar
to indicate that the output is an r list? I only mention it because it confused me a little at times.
ie slight confusion throughout documentation. For example I believe that the same datatype is referenced in crosswalk
documentation as JSON list, while in create_codemeta
documentation as codemeta object (list). I think standardisation of the terminology throughout documentation would be best.