Pro/3 can operate in server-mode, where the system processes requests from clients via an ODBC-compliant SQL "dispatcher" database (p3bridge). The clients would typically be web-clients (web browsers. One general client-implementation based on PHP and a MySQL database can be downloaded from www.ligaya.net/p3. Other types of clients can easily be implemented based on the p3bridge interface. PHP and MySQL are also available for free from the Internet.  

         

It is important to remark that clients would be "end users" rather than knowledge engineers, as the client lacks many functions for entering knowledge (except knowledge streams as explained under), and also functions such as drawing knowledge graphs and trees.

The server handles the following types of requests:

  • request for user IDs
  • on-the-fly queries (possibly involving interactions with the client for inexact rule questions/answers)
  • report requests
  • queries stored in p3bridge with or without parameters (possibly involving interactions with the client for inexact rule questions/answers)
  • rederivation requests

One p3bridge-database can serve several Pro/3 systems (each running their own knowledge base). Procedures and usage of this database is described in the schema.

P3BRIDGE TABLE

Pro/3 Server Pro/3 Web Client
READS WRITES READS WRITES
p3admin - upon p3bridge initialization to get request# to set last used request#
p3alternative - exported query answer alternatives for prompting for query answer -
p3answer - inexact rule answer alternatives (deletes when client answer is read) for presenting answer alternatives -
p3cluster - exported query clusters for populating query menus -
p3input_facility status of answers input facilities presented to client (deletes after client answers are read) for presentation to user status of answering facility
p3message - - displays messages -
p3parameter - exported query parameters for presenting parameters which need actual values by user -
p3query - exported queries for populating query menus new user queries (my queries)
p3query_cluster - exported query/query cluster relations for processing clustered queries -
p3query_parameter - exported parameter/query relations for processing queries with parameters -
p3question inexact rule question answers (inside and outside input facilities) inexact rule questions (inside and outside input facilities) (deletes after client answer is read) for giving questions to user answer and status to questions
p3request client requests updated status of client requests checks status of own requests requests (queries, reports, user ID requests)
p3response deletes response after read by user responses for each (sub-)request (non-table format requests only) for displaying responses -
p3response_column deletes response column after read by user column information for tables generated by a (sub-)request (table-format requests only)  for displaying responses -
p3response_table deletes response table after read by user response tables generated by a (sub-)request (when table-format requested) for displaying responses -
p3server - server-status incl. knowledge stream used by the server checks server status incl. knowledge stream used by the server -
p3user requests for user IDs deletes invalid requests for login authentication for updating user data

OPERATING THE SERVER

The server is started by selecting Server in the menu. The server-window will then be opened. The window shows the status of the server, and it is used to change the state of the server and to perform server-related commands.

Before anything else can be done, the server must be connected to the SQL-server with the Connect-button. Connecting involves starting an ODBC-connection (unless you are using an SQL-type knowledge base which already has such connection). You will be prompted as required to perform this connection.

If successfully connected, the server will enter Pause-mode. In this mode you can:

  • Reset the response-table for the active knowledge base, or for all knowledge bases handled by the p3bridge database.
  • Reset the dispatcher  for the active knowledge base, or for all knowledge bases handled by the p3bridge database.
  • Export queries i.e. all KB-queries and menus in the active knowledge base (same as shown in the Queries-menu item).

The following is not included in the reset (and must if so desired by reset manually):

  • p3user-table
  • p3message-table
  • p3alternative, p3cluster, p3query, p3query_cluster and p3query_parameter table-records where user name is different from 'Pro/3'.

From Pause-mode you can enter Processing-mode by pressing the Process requests-button. The server will then be seen as on-line by clients (and accept logins). Client requests will be processed on a first-come-first-served basis (including requests possibly queued since last time the server was on-line). The server will continue in this mode until the Pause-button is pressed and the server returned to Pause-mode.

From Pause-mode the server can be disconnected by pressing the Disconnect-button. The server-window will be closed when the Exit server mode-button is pressed.

The server-window has two display scroll-fields. The upper field shows information relating to the requests being processed. The lower field shows processing trace (same as is written to the trace-file).

PROCESSING MODES

Request processing mode is affected by the use of knowledge streams and/or subscriptions and publications.

KNOWLEDGE STREAMS

The server can be used with knowledge streams, where clients can assert (input) knowledge (including rules) by writing these to the stream which is implemented as an SQL table.

SUBSCRIPTIONS

The server can be used with subscriptions, where clients can assert (input) sentences by writing these to the subscription SQL table. The server will store any new knowledge in the subscription tables, and then rederive sentences, before processing any queries. Since only sentences (and not rules) can be subscribed, it is not necessary for the server to rebuild the optimized derivation graph each time a query is processed.

PUBLICATIONS

If the KB publishes sentences, then a client can make use of the server without processing queries i.e. by reading published sentences. This would typically work in conjunction with subscriptions such that the client asserts sentences (belonging to subscribed sentence types), then request for rederivation and finally reads published sentences.