Rigi Standard Format (RSF) is the main file format for rigiedit. There are two major dialects of RSF: unstructured and structured. In general, external tools, conceptual modelers, and parsers provide unstructured RSF for rigiedit, and rigiedit saves the graph as structured RSF, including spatial information such as the subsystem hierarchy.
The following describes unstructured RSF.
An RSF file or stream consists of a sequence of triples,
one triple on a line.
Blank lines and comment lines starting with # are
allowed.
The format for a triple is three optionally quoted
strings; the quotes are useful if the string contains
whitespace characters:
verb
subject object
The RSF files contain information such as actual software artifacts (and are described below). Domain-model files specify the valid verbs for these token-level RSF files (§).
An RSF triple can represent an arc between two nodes to the
graph editor:
arcType
startNodeName endNodeName
For example, using a domain model that has
Function and Data type nodes
interconnected by call and data access
arcs, a token-level RSF stream then contains triples like:
call main printf
call main listcreate
data main FILE
data listcreate List
...
As well, an RSF triple can bind values to attributes of nodes:
nodeAttribute
nodeName attributeValue
For example, you might note the defining file and line
number where the definition of a function occurs:
file listcreate "list.c"
lineno listcreate 10
...
Such information would allow you to write a Tcl procedure
that opens a text editor at the function definition.
A particularly important triple assigns the type of a node:
type
nodeName nodeType
For example, to note function names:
type listcreate Function
Note: Binding values to attributes of arcs and naming arcs are not supported in unstructured RSF.