Network Communication Protocol

  • PGV communicates with BRAHMS via a web server using the HTTP 1.1 protocol.
  • It sends requests using the GET method.
  • PGV sends the following GET requests:
    1. Status Request (check connectivity and health of backend)
    2. Node exploration (explore neighbors of a given node)
    3. Schema exploration (explore the schema)
PGV uses 4 variables to communicate with the backend:
  • fn (function name)
  • node (node to be explored)
  • cpf (communication protocol format)
  • dir (direction of exploration)

Status Request

The request The GET request looks like: fn=status
The "success" response The response should be one line equal to #status OK if the backend is up and running.
The "error" response Upon some type of an error: #status ERROR_LINE where ERROR_LINE is the description of the error (one line)

Node exploration

The Request

This request uses the following 4 variables/values:
  • fn=explore
  • node=URI of node to be explored; this needs to be HTTP encoded/decoded
  • cpf={ascii|XML}
  • dir={FE|FBE}

For example, to explore the node http://lsdis.cs.uga.edu/aNode/#thenode using XML for data transfer that will include incoming and outgoing edges, the request will look like:

fn=explore&cpf=XML&dir=FBE&node=http://lsdis.cs.uga.edu/aNode/%23thenode
  • Note 1: the node's value is HTTP encoded (# became %23)
  • Note 2: The order of the variables does not matter.

The Reply

For cpf=ascii please see this and this pages (the ascii format will eventually go away).

This section will talk about the XML data transfer. The DTD is shown below:


For example, the XML PGV input for the following graph looks like this.
Make sure you click "view source" to see the full doctype.
For comparison, here is the same input using ascii instead of XML (no SVG support however).
  • Note 1: We are using Internal DOCTYPE Declaration; DTD within the XML.
  • Note 2: The very first line of the reply is either:
    • #status OK (sitting on its own line) followed by the XML input or
    • #status ERROR_LINE in case of an error (no XML input).

Schema exploration

Comming soon....
This request uses one variable/value:
  • fn=??