rdflib v0.2.3
Monthly downloads
Tools to Manipulate and Query Semantic Data
The Resource Description Framework, or 'RDF' is a widely used
data representation model that forms the cornerstone of the
Semantic Web. 'RDF' represents data as a graph rather than
the familiar data table or rectangle of relational databases.
The 'rdflib' package provides a friendly and concise user interface
for performing common tasks on 'RDF' data, such as reading, writing
and converting between the various serializations of 'RDF' data,
including 'rdfxml', 'turtle', 'nquads', 'ntriples', and 'json-ld';
creating new 'RDF' graphs, and performing graph queries using 'SPARQL'.
This package wraps the low level 'redland' R package which
provides direct bindings to the 'redland' C library. Additionally,
the package supports the newer and more developer friendly
'JSON-LD' format through the 'jsonld' package. The package
interface takes inspiration from the Python 'rdflib' library.
Readme
rdflib 
A friendly and consise user interface for performing common tasks on rdf data, such as parsing and converting between formats including rdfxml, turtle, nquads, ntriples, and trig, creating rdf graphs, and performing SPARQL queries. This package wraps the redland R package which provides direct bindings to the redland C library. Additionally, the package supports parsing and serialization of rdf into json-ld through the json-ld package, which binds the official json-ld javascript API. The package interface takes inspiration from the Python rdflib library.
Installation
You can install rdflib from GitHub with:
# install.packages("devtools")
devtools::install_github("ropensci/rdflib")
Basic use
While not required, rdflib
is designed to play nicely with %>%
pipes, so we will load the magrittr
package as well:
library(magrittr)
library(rdflib)
Parse a file and serialize into a different format:
system.file("extdata/dc.rdf", package="redland") %>%
rdf_parse() %>%
rdf_serialize("test.nquads", "nquads")
Perform SPARQL queries:
sparql <-
'PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT ?a ?c
WHERE { ?a dc:creator ?c . }'
system.file("extdata/dc.rdf", package="redland") %>%
rdf_parse() %>%
rdf_query(sparql)
#> # A tibble: 1 x 2
#> a c
#> <chr> <chr>
#> 1 http://www.dajobe.org/ Dave Beckett
Initialize graph a new object or add triples statements to an existing graph:
x <- rdf()
x <- rdf_add(x,
subject="http://www.dajobe.org/",
predicate="http://purl.org/dc/elements/1.1/language",
object="en")
x
#> Total of 1 triples, stored in hashes
#> -------------------------------
#> <http://www.dajobe.org/> <http://purl.org/dc/elements/1.1/language> "en" .
Change the default display format (nquads
) for graph objects:
options(rdf_print_format = "jsonld")
x
#> Total of 1 triples, stored in hashes
#> -------------------------------
#> {
#> "@id": "http://www.dajobe.org/",
#> "http://purl.org/dc/elements/1.1/language": "en"
#> }
JSON-LD
We can also work with the JSON-LD format through additional functions
provided in the R package, jsonld
.
out <- tempfile()
rdf_serialize(x, out, "jsonld")
rdf_parse(out, format = "jsonld")
#> Total of 1 triples, stored in hashes
#> -------------------------------
#> {
#> "@id": "http://www.dajobe.org/",
#> "http://purl.org/dc/elements/1.1/language": "en"
#> }
For more information on the JSON-LD RDF API, see https://json-ld.org/spec/latest/json-ld-rdf/.
Advanced Use
See articles from the documentation for advanced use including applications to large triplestores, example SPARQL queries, and information about additional database backends.
Citing rdflib
Please also cite the underlying redland
library when citing rdflib
Carl Boettiger. (2018). rdflib: A high level wrapper around the redland package for common rdf applications (Version 0.1.0). Zenodo. https://doi.org/10.5281/zenodo.1098478
Jones M, Slaughter P, Ooms J, Boettiger C, Chamberlain S (2019). redland: RDF Library Bindings in R. doi: 10.5063/F1VM496B (URL: https://doi.org/10.5063/F1VM496B), R package version 1.0.17-11, \<URL: https://github.com/ropensci/redland-bindings/tree/master/R/redland>.
Functions in rdflib
Name | Description | |
read_nquads | read an nquads file | |
rdf_add | Add RDF Triples | |
write_nquads | write object out as nquads | |
c.rdf | Concatenate rdf Objects. | |
rdf_parse | Parse RDF Files | |
rdf_free | Free Memory Associated with RDF object | |
rdf_has_bdb | Check for BDB support | |
rdf_query | Perform a SPARQL Query | |
rdf_serialize | Serialize an RDF Document | |
as_rdf | Coerce an object into RDF | |
rdf | Initialize an rdf Object | |
rdflib-package | rdflib: Tools to Manipulate and Query Semantic Data | |
No Results! |
Vignettes of rdflib
Name | ||
articles/data-lake.Rmd | ||
articles/storage.Rmd | ||
rdf_intro.Rmd | ||
No Results! |
Last month downloads
Details
License | MIT + file LICENSE |
Encoding | UTF-8 |
LazyData | true |
URL | https://github.com/ropensci/rdflib |
BugReports | https://github.com/ropensci/rdflib/issues |
RoxygenNote | 7.0.2 |
VignetteBuilder | knitr |
Language | en-US |
NeedsCompilation | no |
Packaged | 2020-01-08 19:54:52 UTC; cboettig |
Repository | CRAN |
Date/Publication | 2020-01-10 04:10:02 UTC |
Include our badge in your README
[](http://www.rdocumentation.org/packages/rdflib)