## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----setup-------------------------------------------------------------------- library(roxigraph) # Create an in-memory store store <- rdf_store() ## ----eval=FALSE--------------------------------------------------------------- # store <- rdf_store("/path/to/database") ## ----------------------------------------------------------------------------- turtle_data <- ' @prefix foaf: . @prefix ex: . ex:alice a foaf:Person ; foaf:name "Alice" ; foaf:age 30 ; foaf:knows ex:bob . ex:bob a foaf:Person ; foaf:name "Bob" ; foaf:age 25 . ' rdf_load(store, turtle_data, format = "turtle") rdf_size(store) ## ----------------------------------------------------------------------------- store2 <- rdf_store() nt_data <- ' "object" .' rdf_load(store2, nt_data, format = "ntriples") ## ----eval=FALSE--------------------------------------------------------------- # rdf_load_file(store, "data.ttl", format = "turtle") # rdf_load_file(store, "data.nt") # Format guessed from extension ## ----------------------------------------------------------------------------- # Find all people and their names results <- sparql_query(store, " PREFIX foaf: SELECT ?person ?name WHERE { ?person a foaf:Person ; foaf:name ?name . } ") results ## ----------------------------------------------------------------------------- # Find people over 26 sparql_query(store, " PREFIX foaf: SELECT ?name ?age WHERE { ?person foaf:name ?name ; foaf:age ?age . FILTER(?age > 26) } ORDER BY DESC(?age) ") ## ----------------------------------------------------------------------------- # Check if Alice exists sparql_query(store, " PREFIX ex: ASK { ex:alice ?p ?o } ") ## ----------------------------------------------------------------------------- sparql_query(store, " PREFIX foaf: SELECT (COUNT(?person) as ?count) (AVG(?age) as ?avg_age) WHERE { ?person a foaf:Person ; foaf:age ?age . } ") ## ----------------------------------------------------------------------------- # Add new data sparql_update(store, " PREFIX foaf: PREFIX ex: INSERT DATA { ex:carol a foaf:Person ; foaf:name 'Carol' ; foaf:age 28 . } ") rdf_size(store) ## ----------------------------------------------------------------------------- # Add a triple rdf_add( store, "", "", "" ) # Remove a triple rdf_remove( store, "", "", "" ) ## ----------------------------------------------------------------------------- # Export to N-Quads format output <- rdf_serialize(store, format = "nquads") cat(substr(output, 1, 500), "...\n")