A fact in Pro/3 terminology is called a sentence. A sentence consists of a predicate and one or two entities (entity arguments; or in natural language terminology: subject and object). Sentences with one entity argument is called unary (subject-predicate sentence), while sentences with two entity arguments are called binary (subject-predicate-object sentence).

The sentence model defines the sentence elements that can be stored in the knowledge base. Sentences are built from predicates and entity arguments. Entities are grouped into types. An entity type has a defined set of one or more data element types. Predicates are similarly grouped into predicates types. Predicate types may or may not have data element types. The number of entity arguments a predicate type can take (its cardinality) is fixed (one or two). All sentences with the same predicate type and entity arguments belong to the same sentence type, correspondingly, a sentence type is a unique combination of one predicate type and one or two entity types. All sentences (and sentence types) with the same predicate type belong to the same sentence group.

Also included in the sentence model are function declarations and inexact rule declarations. These are described separately.

The examples in this presentation is mainly from the Rent-a-car knowledge base

Entities and Entity Types

Entities are typed objects with one or more data elements. Entity types are templates for entities. Entity types are defined by a KB name, a NL name and a fixed number of data element types. An entity is defined by a reference to its type and its data element values (each data element value corresponds to the entity type's data element types. An entity must have a value for each and every data element type in the entity type definition.

Example

The business scenario entity type is defined by the sentence the entity type with NL - name business scenario and data element list car market share, scenario no and van market share is in the sentence model for segment name "rac"

Sample sentences with this entity type are:

business scenario with car market share 7.0%, scenario no 1 and van market share 10.0% exists!
business scenario with car market share 10.0%, scenario no 2 and van market share 15.0% exists!

Sentences are often represented in tabular form (in a table window):

A form-representation is used for data entry (or to view sentences with many data elements) (in a sentence window):

(This sentence-window is displayed when the [2i] row-button is pressed in the table window (over) - the 'i' indicates that the sentence has been entered (i as in input) as opposed a derived sentence ).

Entity type sentences (entity type definitions) can be inputted as any other sentences e.g. as natural language texts or through a sentence window as shown above. However, Pro/3 as a set of pre designed data entry windows for all sentence model entities. These windows have the convenience of combining the the entity type definition with the related terminological definitions.

Example

The terminological definitions relating to the business scenario entity type definition are:

the syntagm with language English, KB - name "eScen", syntax class ENTITY TYPE, syntax form PLURAL / UNDETERMINED and token list "business" and "scenarios" is in the terminology for segment name "rac"!
the syntagm with language English, KB - name "eScen", syntax class ENTITY TYPE, syntax form SINGULAR / UNDETERMINED and token list "business" and "scenario" is in the terminology for segment name "rac"!

These definitions state that eScen is the internal name (KB name) for the entity type, and that business scenario and business scenarios are the singular and plural natural language forms for the entity type in the English terminology.

The data entry window for entity types look like:

Atomic entity types

Atomic entity types are entity types with only data element. This allows for an alternative simpler NL syntax. 

Example

Assume that the business scenario entity type in the example above, has only one data element type scenario no. One of the sample sentences involving this simplified entity type is business scenario with scenario no 1 exists. However, scenario no can be dropped without creating any ambiguity since the entity type has only one data element type. In other words, the following simplified syntax is permissible business scenario 1 exists, and also 1 business scenario exists, although this does not make much sense in this particular example (it would in other, e.g. it is better to say the Ericsson person lives in Stockholm city rather than the person Ericsson lives in the city Stockholm) .

Predicates and Predicate Types

A predicate corresponds the action or verb element of a sentence, i.e. the actions relating to the predicate's arguments (the object and/or subject elements of the sentence). Arguments are entities. A Pro/3 predicate is either unary (one entity argument - cardinality 1) or binary (two entity arguments - cardinality 2). The predicate can additionally have any number of data elements (or none).

Predicate types are templates for predicates described by its internal name, the number of entity arguments it takes (its cardinality) and its data elements. Note that predicates of the same type always have the same number of entity arguments. However, the arguments can be of different entity types. As for entities, a predicate with data elements must have a value for each and every data element type in the predicate type definition.

Example

The exists predicate type referred to above is defined by the sentence

the predicate type with NL - name exists, cardinality 1 and no data element list is in the sentence model for segment name "rac"!

The following two terminological definitions complement this definition:

the syntagm with language English, KB - name "pEx", syntax class PREDICATE TYPE, syntax form SINGULAR and token list "exists" is in the terminology for segment name "rac"!
the syntagm with language English, KB - name "pEx", syntax class PREDICATE TYPE, syntax form PLURAL and token list "exist" is in the terminology for segment name "rac"!
the syntagm with language English, KB - name "pEx", syntax class PREDICATE TYPE, syntax form PREFIX / UNDETERMINED and token list "existing" is in the terminology for segment name "rac"!

These definitions state that pEx is the internal name (KB name) for the predicate type, and that exists, exists and existing are the singular, plural and prefix/undetermined natural language forms for the predicate type in the English terminology.

The data entry window for predicate types look like:

The is conditionally projected predicate type has one data element type. Its definition sentence is the predicate type with NL - name is conditionally projected, cardinality 1 and data element list scenario no is in the sentence model for segment name "rac"!

Data Elements and Data Element Types

Data elements are basic value elements of entities and predicates such as integers, strings, dates, lists of integers, lists of strings etc. A data element type is a named set of data elements described by its KB name and its value domain. (The term data element is occasionally used instead of data element type - the correct interpretation follows from the context. The term value is sometimes used instead of data element).

The following sentences (in table format) define the Rent-a-car data elements:

Examples

Definition sentences for the amount data element type are:

the data element type with NL - name amount, domain NUMBER, output - format ",.2" and output - width 12 is in the sentence model for segment name "rac"!

and

the syntagm with language English, KB - name "dAmt", syntax class DATA ELEMENT TYPE, syntax form SINGULAR and token list "amount" is in the terminology for segment name "rac"!

OUTPUT FORMAT

The output format field is only applicable to some doamins:

DOMAIN FORMAT CODE SYNTAX EXAMPLE/EXPLANATION
NUMBER [%][,][.<NoOfDecimals>]
  • ,.2: 1100.123 is shown as 1,100.12

  • %.1: 0.5412 is shown as 54.1%

INTEGER [,]
  • ,: 100000 is shown as 100,000

TERM-STRING [B]
  • "{C{SaUtilizationTren}{N9.46}{I12}{SToyota}}" is shown as "aUtilizationTren(9.46;12;Toyota)"

TERM-STRING [<FormatCode>{;<FormatCode>}*]

The format code syntax is only applicable to basic term-strings, and must either include one format code for each term component, or only one which will apply where applicable.

Segments

All structure entities in the KB (syntagms, synonyms, data element types, entity types, predicate types etc), that is all sentences of type is in the sentence model and is in the terminology are assigned a segment name. The segment names serve as simple categorizations (organizers) of different groups structure entities, particularly to distinguish between application structure entities and Pro/3's internal or meta entities. It is in impractical to mix up these two groups of structure entities in all but very special KBs. Pro/3's internal structure entities are assigned segment name "Pro/3", while other are assigned a  segment name defined by the KE. 

There is no knowledge semantics attached to segment names. They strictly serve as practical tool to organize the terminology and the sentence model. 

Segment Context

The segment context is a set of one or more segment names. Some reports and most windows dealing with structure entities are populated with entities from the segment context only i.e. structure entities in segments outside the segment contexts are not shown these reports and windows. The segment context can be changed any time (Structure-menu).

Pro/3 automatically inserts a special terminology entry with both KB name, NL name and segment name equal to the name of the DB. This segment name is set as the initial segment context.

Sentence groups and sentence types

Sentences with the same predicate type belongs to the same sentence group. Sentences with the same predicate type and the same entity type(s) as argument(s) (in the same order), belong to the same sentence type

Sentence types and groups are the most important knowledge classifiers in Pro/3.