|
Pro/3 knowledge can either be stored in a 3KB-type database (Pro/3's native database system), or in the case of multi-DB configurations: in two or more 3KB-type databases; or in an SQL database. There is no multi-DB configuration concept with SQL-type knowledge bases. Pro/3 accesses the SQL database via ODBC. A 3KB-type database is stored in one OS file with name xxx.3kb - xxx is referred to as the name of the knowledge base (KB) in this case. An SQL-type knowledge base is stored as a set of tables in one SQL database. It is possible to store more than one knowledge base in the same SQL database, however the knowledge bases do not share tables. A knowledge base named xxx stored in SQL database yyy, is referred to as yyy.xxx.sql. You have to decide which format you want to use when you initialize a new KB. However, a 3KB-type database can automatically be exported to an SQL-type database at any time. The reverse operation can only be done indirectly i.e. by backing up the contents of the SQL database to source knowledge, which then can be loaded into an 3KB-type database. A significant difference between the two database approaches is that knowledge (in reality factual knowledge) in an SQL-type databases easily can be shared with other applications and browsed or maintained with SQL-based tools. Knowledge in 3KB-type databases can only be accessed via PRO3.EXE. The MySQL database and tools (MySQLAdministrator, MySQL Query Browser), available for free, have been very successfully used as SQL-server for Pro/3. PERFORMANCE COMPARISON 3KB-type database is faster than SQL-type databases, at least for small/medium size database sizes. Re-derivation of all sentences in the RAC KB is about twice as fast with 3KB. Below are described the commonalities between 3KB-type and SQL-type database structures: |
||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
The basic database storage unit is called a record. One record contains
one of five types of knowledge:
|
||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
Records are grouped together in chains: There is one chain for:
All chains are considered by the inference engine when a query is processed. Note that the chain is a physical database concept in 3KB databases, but only a logical concept in SQL databases. |
||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
RECORD NO AND SUB-NO
Record numbering and sub-numbering for non-sentence rules might differ from these conventions for records created under older versions of Pro/3. This has no particular side-effects. CONDITION AND CONCLUSION FIELDS The condition and conclusion fields are terms which represent the core knowledge part of the record (the other fields are essentially meta-data). |
||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
Pro/3 uses three caches i.e. RAM-based logical duplicates for information
already in the knowledge base (KB). The cache mechanisms are not
transparent to the knowledge engineer (KE), and some understanding of the
caches are thus needed. The purpose of the caches are to improve response speeds, both
during inference and during knowledge base building and maintenance. The
improvement in response speed is more important in SQL-type KBs than with
3KB-type KBs. GRAPHS Pro/3 uses three graphs to track dependencies between the different elements of knowledge in the KB. These are the sentence model graph, the knowledge dependency graph and the derivation graph. These three graphs are loaded into a graph-structured cache when the KB is opened (the graphs are stored as sentences in the KB); referred to and also updated in the cache; and eventually re-stored to the KB (if there have been changes) when the KB is closed. The graph caching is mostly transparent to KE. However, when querying the sentences representing the graphs (or using the Sentences-window to browse graph sentences), then it is important to note that the queries only considers the sentences in the KB (and not the graphs in the cache). To compensate for this, a command is included in the KB-menu (Update cached graphs in the KB). The command will save the cached graphs to the KB. Responses to queries involving graph sentences will then reflect the current (cached) graphs. TERMINOLOGY CACHE The terminology cache contains the two is in the terminology-sentence types (for the current terminology). The cache is loaded when the KB is opened. The cache is never updated, that is, changes are made directly to the terminology stored in the database (and the cache is simply turned off to avoid errors). The status of the cache is shown in the toolbar, i.e. the presence of a yellow T indicates that the cache is on. You can use the toggle switch to the left to turn the cache on (i.e. to reload it) or off. (There is also a corresponding command in the Structure-menu). A change in current terminology will trigger a cache reload (if the cache is on). SENTENCE MODEL CACHE The sentence model cache contains the eight is in the sentence model-sentence types, which works in the same way as the terminology cache. The cache is loaded when the KB is opened. The cache is never updated, that is, changes are made directly to the sentence model stored in the database (and the cache is simply turned off to avoid errors). The status of the cache is shown in the toolbar, i.e. the presence of a yellow S indicates that the cache is on. You can use the toggle switch to the left to turn the cache off and on (i.e. to reload it) (there is also a corresponding command in the Structure-menu). |