ROIS is a programmable knowledge server. ROIS stores the knowledge in knowledge graphs, consisting of nodes and links. Tasks to access this knowledge are written in the ROIS Network Programming Language (NPL) and compiled to ROIS Virtual Machine code. The ROIS Virtual Machine (RVM) executes these tasks for the benefit of client applications.
The client application and the ROIS server may run on the same machine or on different machines connected through a local area network or the internet. They communicate in an XML dialect over TCP/IP sockets.
ROIS consists of a number of processes. A client application communicates in XML with the ROIS XML Parser/Generator. Here queries from the client application are interpreted and replies from ROIS are translated back to XML and communicated to the client.
The ROIS Virtual Machine (RVM) accepts queries from client applications, loads the appropriate RVM modules and executes the code to answer the queries. Usually this involves searches through or changes to a ROIS model. This is performed by the Basic Network Engine, which essentially translates the complexity of a knowledge graph to more elementary database operations.
The ROIS NPL compiler translates NPL source code to RVM object code. The compiler is an integral part of the programming environment for ROIS NPL modules, called Idefix.