Did you know ... Search Documentation:
Pack rserve_client -- prolog/r/r_serve.pl
PublicShow source

This module provides a low-level binding to the Rserve R server process.

 r_open(-RServe, +Options) is det
Open a connection to an R server. Options:
alias(+Alias)
Give a name to the connection.
host(+Host)
Connect to Host (default: 127.0.0.1).
port(+Port)
Connect to port (default: 6311). If Port is -1, Host is interpreted as a path name and a Unix domain socket (named pipe) is used.
open(+How)
If once, turn opening a connection for the second time in a no-op.
 r_close(+Rserve) is det
Close an open connection to an R server.
 r_login(+Rserve, +User, +Password) is det
Login with the R server.
 r_assign(+Rserve, +VarName, +Value) is det
Assign a value to variable VarName in Rserve. Value follows a generic transformation of Prolog values into R values:
list
A list is translated into an R array of elements of the same type. The initial type is determined by the first element. If subsequent elements to not fit the type, the type is promoted. Currently defined promotions are:
  • Integers are promoted to doubles.
boolean
The Prolog atoms true and false are mapped to R booleans.
integer
Prolog integers in the range -2147483648..2147483647 are mapped to R integers.
float
Prolog floats are mapped to R doubles.
atom
Atoms other than true and false are mapped to strings.
string
A Prolog string is always mapped to an R string. The interface assumes UTF-8 encoding for R. See the encoding setting in the Rserve config file.
c(Elem1, Elem2, ...)
A compound term with functor c is handled in the same way as a list.
 r_eval(+Rserve, +Command, -Value) is det
Send Command to Rserve and translate the resulting R expression into a Prolog representation. The transformation from R expressions to Prolog data is defined as follows:
TRUE or FALSE
The R booleans are mapped to the Prolog atoms true and false.
integer
R integers are mapped to Prolog integers.
double
R doubles are mapped to Prolog floats.
string
R strings are mapped to Prolog strings. The interface assumes UTF-8 encoding for R. See the encoding setting in the Rserve config file.
See also
- r_eval_ex/3 to map R exceptions to Prolog. By default, the non-interactive R server terminates on an exception and thus if r_eval/3 causes an R exception R terminates and Prolog receives an I/O error.
 r_eval_ex(+Rserve, +Command, -Result) is det
As r_eval/3, but captures R exceptions and translates these into Prolog exceptions.
 r_eval(+Rserve, +Command) is det
Evaluate R Command without waiting for a reply. This is called void evaluation in Rserve.
 r_read_file(+RServe, +FileName, -Content:string) is det
Read the content of a remote file into the string Content.
 r_remove_file(+RServe, +FileName) is det
Remove FileName from the server.
 r_open_hook(+Alias, -Rserve) is semidet[multifile]
Hook that is used to translate Alias into an R connection. This is called for R references if the argument is not an Rserve handle, nor an existing alias. The hook may create R on demand. One of the use cases is SWISH, where we want thread-local references to R and we want to create the R connection on the first reference and destroy it as the query dies.
 r_detach(+Rserve, -Session) is det
Detach a session to be resumed later. Session is an opaque handle to the session. The session may be resumed using r_resume/2. The session key may be exchanged with another Prolog process. Note that calling r_detach/2 closes the existing Rserve handle.
 r_resume(-Rserve, +Session) is det
 r_resume(-Rserve, +Session, +Alias) is det
Resume an R session from a key obtained using r_detach/2.
 r_server_eval(+Rserve, +Command)
Evaluate Command in the main server. The main server must be configured to allow for control commands.
 r_server_source(+Rserve, +FileName)
Process FileName on the main server. The main server must be configured to allow for control commands.
 r_server_shutdown(+Rserve)
Cause the main server to shutdown. Note that the current session (Rserve) remains valid.