| Type: | Package | 
| Title: | Neo4j to R | 
| Version: | 2.4.2 | 
| Maintainer: | Patrice Godard <patrice.godard@gmail.com> | 
| Description: | The aim of neo2R is to provide simple and low level connectors for querying neo4j graph databases (https://neo4j.com/). The objects returned by the query functions are either lists or data.frames with very few post-processing. It allows fast processing of queries returning many records. And it let the user handle post-processing according to the data model and his needs. | 
| URL: | https://github.com/patzaw/neo2r | 
| BugReports: | https://github.com/patzaw/neo2r/issues | 
| Depends: | R (≥ 3.6) | 
| Imports: | base64enc, jsonlite, httr, utils | 
| SystemRequirements: | neo4j (>=3 AND <=5) <https://neo4j.com/> | 
| License: | GPL-3 | 
| Encoding: | UTF-8 | 
| RoxygenNote: | 7.2.3 | 
| NeedsCompilation: | no | 
| Packaged: | 2024-01-18 10:12:39 UTC; pgodard | 
| Author: | Patrice Godard | 
| Repository: | CRAN | 
| Date/Publication: | 2024-01-18 10:50:02 UTC | 
Run a cypher query
Description
Run a cypher query
Usage
cypher(
  graph,
  query,
  parameters = NULL,
  result = c("row", "graph"),
  arraysAsStrings = TRUE,
  eltSep = " || "
)
Arguments
| graph | the neo4j connection | 
| query | the cypher query | 
| parameters | parameters for the cypher query. | 
| result | the way to return results. "row" will return a data frame and "graph" will return a list of nodes, a list of relationships and a list of paths (vectors of relationships identifiers). | 
| arraysAsStrings | if result="row" and arraysAsStrings is TRUE (default) array from neo4j are converted to strings and array elements are separated by eltSep. | 
| eltSep | if result="row" and arraysAsStrings is TRUE (default) array from neo4j are converted to strings and array elementes are separated by eltSep. | 
Value
The "result" of the query (invisible). See the "result" param.
See Also
multicypher(), startGraph(), prepCql(),
readCql() and graphRequest()
Examples
## Not run: 
# 2 identical queries
result <- cypher(
   graph=graph,
   query='match (n {value:$value}) return n',
   parameters=list(value="100"),
   result="graph"
)
result <- cypher(
   graph=graph,
   query='match (n {value:"100"}) return n',
   result="graph"
)
## End(Not run)
Run a curl request on a neo4j graph
Description
Run a curl request on a neo4j graph
Usage
graphRequest(graph, endpoint, customrequest = c("POST", "GET"), postText)
Arguments
| graph | the neo4j connection | 
| endpoint | the endpoint for the request. To list all the available
endpoints:
 | 
| customrequest | the type of request: "POST" (default) or "GET" | 
| postText | the request body | 
Value
A list with the "header" and the "result" of the request (invisible)
See Also
startGraph() and cypher()
Imports a data.frame in the neo4j graph database
Description
This function only works with localhost Neo4j instances.
Usage
import_from_df(graph, cql, toImport, periodicCommit = 1000, by = Inf, ...)
Arguments
| graph | the neo4j connection | 
| cql | the CQL query to be applied on each row of toImport. Use the 'row' prefix to refer to the data.frame column. | 
| toImport | the data.frame to be imported as "row". Use "row.FIELD" in the cql query to refer to one FIELD of the toImport data.frame | 
| periodicCommit | use periodic commit when loading the data (default: 10000). | 
| by | number of rows to send by batch (default: Inf). Can be an alternative to periodic commit. | 
| ... | further parameters for  | 
See Also
Run a multiple cypher queriers
Description
Run a multiple cypher queriers
Usage
multicypher(
  graph,
  queries,
  parameters = NULL,
  result = c("row", "graph"),
  arraysAsStrings = TRUE,
  eltSep = " || "
)
Arguments
| graph | the neo4j connection | 
| queries | queries to submit. It can be either a character vector for which each element corresponds to a cypher query. Or it can be a list of lists with the following slots: 
 | 
| parameters | default parameters for the cypher queries. | 
| result | default way to return results. "row" will return a data frame and "graph" will return a list of nodes, a list of relationships and a list of paths (vectors of relationships identifiers). | 
| arraysAsStrings | if result="row" and arraysAsStrings is TRUE (default) array from neo4j are converted to strings and array elements are separated by eltSep. | 
| eltSep | if result="row" and arraysAsStrings is TRUE (default) array from neo4j are converted to strings and array elementes are separated by eltSep. | 
Value
A list of "result" of the queries (invisible). See the "result" param.
See Also
cypher(), startGraph(), prepCql(),
readCql() and graphRequest()
Examples
## Not run: 
result <- multicypher(
   graph,
   queries=list(
      q1="match (n) return n.value limit 5",
      q2=list(
         query="match (f {value:$val})-[r]->(t) return f, r, t limit 5",
         result="graph",
         parameters=list(val=100)
      )
   )
)
## End(Not run)
Prepares a CQL query from a character vector
Description
Prepares a CQL query from a character vector
Usage
prepCql(...)
Arguments
| ... | character vectors with cQL commands | 
Value
A well formated CQL query
See Also
Examples
prepCql(c(
 "MATCH (n)",
 "RETURN n"
))
Parse a CQL file and returned the prepared queries
Description
Parse a CQL file and returned the prepared queries
Usage
readCql(file)
Arguments
| file | the name of the file to be parsed | 
Value
A character vector of well formated CQL queries
See Also
Prepare connection to neo4j database
Description
Prepare connection to neo4j database
Usage
startGraph(
  url,
  database = NA,
  username = NA,
  password = NA,
  importPath = NA,
  .opts = list(),
  check = TRUE
)
Arguments
| url | the DB url | 
| database | the name of the database. If NA (default) it will use "data" with versions 3.. of Neo4j and "neo4j" with versions 4.. | 
| username | the neo4j user name (default: NA; works only if authentication has been disabled in neo4j by setting NEO4J.AUTH=none) | 
| password | the neo4j user password (default: NA; works only if authentication has been disabled in neo4j by setting NEO4J.AUTH=none) | 
| importPath | path to the import directory (default: NA => no import directory). Import only works with local neo4j instance. | 
| .opts | a named list identifying the curl
options for the handle (see  | 
| check | check the connection before returning it (default: TRUE). Set to false when connection to the "system" database | 
Details
The "ssl.verifypeer" logical option available in the RCurl package
used in former versions of neo2R (<= 2.2.0) is
not recognized by httr::config().
However, for backward compatibility, if it used, it is translated into
"ssl_verifypeer" integer option recognized by the httr package with a
warning message.
Headers in .opts$extendedHeaders are added to, or overwrite,
the default Neo4j headers.
If there is a .opts$extendedHeaders[["Authorization"]] value, the
default Neo4j "Authorization" header (user credentials) is provided
automaticaly as "X-Authorization". This mechanism is used for OAuth access
delegation.
Value
A connection to the graph DB: a list with the url and necessary headers