, Last updated by serban, on Wed, 10/06/2010 - 13:33

Updated at 22.March.2010eProPlan-O:  The basic plugin to edit operator conditions and effects (short description).

This Protégé 4.0 (build 111+) plug-in provides a special Class View named "eProPlan: Operator Conditions & Effects" which allows the user to edit the "condition" and the "effect" annotations of subclasses of the Operator class. These are the basis of the STRIPS-like (but we do not change the world, we only extend it with new objects, but that is not really a restriction, you can make a new possible world for every operator
applications) planning done by eProPlan.
Operator Conditions and Effects are like the normal Protégé 4.0 SWRL-rules with some syntax extensions and some restrictions resulting from the purpose of these rules.

Figure 1 : The eProPlanO Tab to Model Operator

Use of concept expresions: In premisses of Conditions and Effects you can use not only concept names as one-place predicates, but also concept expressions enclosed in "[]", i.e. an atom using a concept expression
looks like [concept-expresion](?Var), e.g.
[DataTable and
(targetAttribute exactly 1 Attribute) and
(inputAttribute min 1 Attribute) and
(targetColumn only (DataColumn and columnHasType only (Scalar or Categorial))) and
(inputColumn only (DataColumn and columnHasType only (Scalar or Categorial)))

Use of negation-as-failure not(atom-conjunction): In premisses of Conditions and Effects you can use negation-as-failure, e.g. not(MissingValueFreeDataTable(?D), ScaledTable(?D)), i.e. the atoms in- side must be enclosed in "". (a not used inside concept expresions is the normal DL complement-reasoning, not negation-as-failure). In the conclusion of a condition new(?this), OperatorName(?this) and all required inputs (i.e. uses and sub-properties, parameter and sub-properties and simpleParameter and subproperties) of this operator must appear. The first argument of these inputs must be ?this, the second argument must be a variable bound by
the premisses (i.e. occur in an atom there, but not only inside a negation-as-failure), e.g. uses(?this,?D).
new(?New) is a built-in that generates a new unique individual and returns it in ?New.

In the premisses of an effect OperatorName(?this) must occur. In the conclusion of an effect not only new(?New), but also newFor(?New,?Old), copy(?New,?Old,atom-conjunction), copyComplex(?New,?Old,<?V1,...,?Vn>) may occur. All variables in an atom in the conclusion must be bound by the premisses or as ?New-variable in any previous new/copy-built-in. An atom without ?this or any ?New-variable from any previous new/copy-built-in is NOT allowed, i.e. we do not allow changing the previous-world, but you can re-use (MetaData) parts of the previous-world.

newFor(?New,?Old) is a built-in that for EACH different binding of ?Old (within ?this Operator) a new instance ?New is generated.

copy(?New,?Old,atom-conjunction) is a built-in that for EACH different binding of ?Old (within ?this Operator) a new instance ?New is generated and every thing that is STORED (not inferred) for ?Old and NOT
matches any atom in the conjunction is copied (?Old should be one argment in each atom, the other could be ?_ or bound before).
copyComplex(?New,?Old,<?I1,...,?In>) is a build-in that or EACH different binding of ?Old (within ?this Operator) generates a new instance ?New and for each object ?I related to ?Old via a subProperty of complexObjectPart(?Old,?I) a new ?NI is generated as well, except for those ?I, that are member in <?I1,...,?In> (for every binding of <?I1,...,?In> for ?Old in ?this). Everything STORED (not inferred) for ?Old or a copied ?I is copied to ?New or the corresponding new ?NI. Everything that is stored for any of the <?I1,...,?In> is not copied (be the other argument in a property be ?Old, something different or an ?I not in <?I1,...,?In>).
?_ is the always different anonymous variable (you may know from Prolog as _), that therefore can only be used where unbound variales are allowed, i.e. inside premisses and as the 2nd argument in a property in copy.
We extended the SWRL rule checkers and implemented two new ones: one for the conditions and one for the effects. The editors also have support for autocompletion suggesting to the user what to type next.

Added at 24.Feb.2010

Figure 2: The eProPlanO-Edit-Dialog for Operator Conditions & Effects

eProPlan-O tab layout for download here.