|Note that this language inherits the behaviors and components of the Mathematical Engineering Language (M-EKL) and of the Core Engineering Language (C-EKL).|
A-EKL uses the full set of capabilities of the Engineering Knowledge Language (EKL) letting you access attributes and functions and manipulate types. V5 applications aim at creating design objects enriched by a knowledge type. A-EKL is the level of language required to manipulate them as knowledge objects through tightly integrated knowledge artifacts:
A_EKL also provides a full set of functionalities to manipulate V5 features as Knowledge Objects
Knowledgeware and Extended Functions and Types
|Object Type||Feature Type||Literal Type|
|Keywords||Design tables||Generative Functions|
|Pointer Objects||Search Function||String|
|Analysis Operators||Circle Constructors||Direction Constructors|
|Electrical Functions||Line Constructors||Measures|
|Part Measures||Plane Constructors||Point Constructors|
|Surface Constructors||Wireframe Constructors|
|Operators belonging to Knowledge products.|
|Operators and constructors belonging to non Knowledge products.|
|Note that the packages available in the Knowledge Expert browser are documented in the Reference section in the Knowledge Expert User's Guide.|
The knowledge type is defined by:
Note that an attribute can be:
An object in V5 implements one or several types. Implementing means that this object will have the attributes defined by the type (and its super types). It also means that it can be used at a place where we expect an object of this type. For example, a mechanical feature (like a Pad) implements both the type of its specification (the Pad) and the type of its result (a solid).
When manipulating an object in the Knowledgeware language, it is possible to read or to write its attributes. We describe here the basic types hierarchy. The applicative types inherit from this basic hierarchy, and use these types for the definition of their attributes.
Types can be broken down into 3 main categories:
All types derive from a basic type called ObjectType
(1). If a function takes such a type as argument, you will be
able to pass both values and objects. You can therefore create a list of
objects or a list of values (
Note that the List (5) type is a sub-type of Feature. So an attribute of List type is similar to an attribute of Point type, i.e. they both provide access to an object of List type or of Point type.
An attribute is characterized by its name and its type.
|Example 1||Example 2|
|The reference to the attribute of x is passed as variable of the sinus function. The variable is read within this function which reads the value of the attribute att of x.||The reference of the attribute att of x is passed as variable of the affectation operator. Within this operator, the variable is valuated, thus allowing you to write the value of the attribute att of x.|