In ObjectLogic you may have something like:
X:Person[hasName->Y].
this will split into
X:Person and X[hasName->Y].
´This has essential disadvantages during the evaluation! The FrameOptimizer merges these facts if possible:
att(X,Person,hasName,Y).
This means enormous time-savings in an integration scenario.
The following rule types are supported:
| • | dbaccess rules as they are generated by the OS db import plugin |
| • | Mapping rules as they are generated by the OS mapping tool |
| • | Rules where each att-literal is accompanied by an appropriate isa literal in the head and body |
| • | Classification rules like ?X:D :- ?X:E and ... where D is a sub concept of E |
Restrictions:
| • | The model must not contain any instances. |
| • | The model must be compatible with CNG=on, ANG=on, MNG=on. |
| • | Fillnull for the query is not supported. |
| • | Queries for identifiers like ?- ?X:C. are not supported, only queries for attribute values. |
| • | the rules involved in a query must be of the type above. |
Example
… :- ?X:Person[hasAge->?Y] …
optimized:
… :- att(Person,hasAge,Y) …
NOTE: Because of performance issues do not use the schema optimizer and the frame optimizer at the same time.