Main public repository for the BeAware Ontology.
This dataset repository corresponds to the following publication:
@INPROCEEDINGS{10275440,
author={Ruiz-Celada, Oriol and Dalmases, Albert and Suárez, Raúl and Rosell, Jan},
booktitle={2023 IEEE 28th International Conference on Emerging Technologies and Factory Automation (ETFA)},
title={BE-AWARE: an ontology-based adaptive robotic manipulation framework},
year={2023},
volume={},
number={},
pages={1-4},
keywords={Service robots;Perturbation methods;Distance measurement;Cognition;Planning;Task analysis;Manufacturing automation;Robotic manipulation;knowledge;reasoning;ontology},
doi={10.1109/ETFA54631.2023.10275440}}
The beaware_ontology.owl is the core semantic knowledge representation for the BeAware Framework. It defines the structure of behaviors, primitives, flavors, and their relationships using OWL (Web Ontology Language) in RDF/XML format. This ontology enables the framework to reason about behavior composition, context-dependent execution, and monitoring/recovery structures.
The ontology is organized into three main sections:
- Object Properties - Define relationships between classes
- Data Properties - Define attributes with literal values
- Classes - Define the core concepts and their hierarchies
Class: Behavior
Represents a composite action composed of other behaviors and primitives. In Behavior Trees (BTs), they are represented by SubTree and BehaviorTree tags.
Key Properties:
hasBTid- Unique identifier for the behavior treehasPortwithDefaultValue- Default values for behavior portshasRole- Functional role of the behavior
Important: Not all behaviors are high-level (PDDL) behaviors. High-level behaviors that appear in the PDDL domain are instances of HighLevelBehavior.
Subtypes:
HighLevelBehavior- Behaviors that appear in PDDL domain (formerly called "HighBehavior")FunctionalBehavior- Behaviors with specific functional rolesAuxiliaryBehavior- Supporting behaviorsConditionBehavior- Condition-checking behaviorsRecoveryBehavior- Recovery action behaviors
Class: Primitive
Represents an indivisible unit of action. In BTs, they are represented by the Action tag. Primitives are the atomic operations that cannot be further decomposed.
Key Properties:
hasPortwithDefaultValue- Default values for primitive ports
Class: Flavor
Flavors modify or augment behaviors through context-specific transformations. They define how behaviors should be adapted based on different execution contexts.
Key Properties:
hasTrigger- Specifies when/how the flavor is applied
Main Subtypes:
Flavors that apply to the target subbehavior itself:
AddBtoA- Loads template for B and adds it to the right of A with a decorator (Fallback, Sequence, etc.)ReplaceAbyB- Replaces behavior A with behavior BIgnore- Deletes or marks the target subbehavior to be skippedBAlternativetoA- Marks B as an alternative to A
Flavors that modify the order of behaviors in a sequence:
SwitchAandB- Swaps the execution order of behaviors A and BDelayAUntilAfterB- Delays execution of A until after B completesDelayAUntilBeforeB- Delays execution of A until just before B startsAifBfails- Executes A only if B returns failure; equivalent to A→B becoming A?B (if A succeeds, B is skipped)
Flavors that modify or set parameters in the BT:
FixParameter- Sets a parameter to a fixed valuehasParamTarget- Name of the parameter to modifyhasNewValue- New value to assign- Example:
AddKinematicRestriction(subclass) - Adds kinematic constraints
ModulateParameter- Dynamically modulates a parameter valueReplaceByParam- Replaces a parameter by obtaining value through a queryobtainsParamValuewithQuery- Query to obtain the new valuereplacedByParam- Parameter to replace
Flavors that directly interact with internal state:
ASetsPropertyQ- Behavior A sets property Q in the statehasTargetBehavior- The behavior that sets the propertyhasTargetProperty- The property being set
Flavors related to kinematic constraints and motion:
AddKinematicRestriction- Adds kinematic restrictions to behaviors
Flavors for adding monitoring and recovery capabilities to behaviors:
-
AhasMRS- Base class indicating a behavior has monitoring/recovery structurehasTargetBehavior- The behavior being monitored/recovered
-
AhasPreCondition- Behavior has preconditions to check before executionhasConditionBlock- Behavior(s) implementing the condition checkhasRecoveryBlock- Behavior(s) to execute if condition fails
-
AhasHoldCondition- Behavior has conditions to maintain during executionhasConditionBlock- Behavior(s) implementing the condition monitoringhasRecoveryBlock- Behavior(s) to execute if condition is violatedisTerminal- Boolean flag indicating if failure is terminal
-
AhasHoldConditionTerminal- Hold condition where failure is terminal (subclass ofAhasHoldConditionwithisTerminal=true) -
AhasPostCondition- Behavior has postconditions to verify after executionhasConditionBlock- Behavior(s) implementing the condition checkhasRecoveryBlock- Behavior(s) to execute if condition fails
-
AhasRecovery- Puts action in a fallback with recovery behavior if action failshasRecoveryBlock- Behavior(s) to execute on failure
-
AisRetriable- Marks a behavior as retriable on failure
Classes: ContextMode, ActionMode (equivalent)
Context modes define different execution contexts for behaviors. When a behavior has multiple context modes, the framework expands it into multiple variants (e.g., "High Behavior Y" → "High Behavior Y__context_mode_alpha", "High Behavior Y__context_mode_beta").
Subtypes:
RiskActionMode- Context mode for risky actions
Context modes enable the same behavior to have different implementations or parameters depending on the execution context.
Object properties define relationships between individuals in the ontology:
| Property | Domain | Range | Description |
|---|---|---|---|
hasFlavor |
Behavior | Flavor | Links a behavior to its associated flavors |
hasMRSFlavor |
Behavior | MRSFlavor | Links a behavior to MRS-specific flavors |
hasContextMode |
Behavior | ContextMode | Links a behavior to its context modes |
hasTargetBehavior |
Flavor | Behavior | Identifies the target behavior of a flavor |
hasTargetBehaviorA |
Flavor | Behavior/Primitive | First target in binary flavor operations |
hasTargetBehaviorB |
Flavor | Behavior/Primitive | Second target in binary flavor operations |
hasRecovery |
Behavior | Behavior | Links a behavior to its recovery behavior |
hasConditionBlock |
MRSFlavor | Behavior | Links MRS flavor to condition checking behaviors |
hasRecoveryBlock |
MRSFlavor | Behavior | Links MRS flavor to recovery behaviors |
incompatibleWith |
Behavior | Behavior | Marks two behaviors as incompatible |
modeHasFlavor |
ContextMode | Flavor | Links context modes to their specific flavors |
hasTargetProperty |
Flavor | Data | Target property for state-modifying flavors |
Data properties define attributes with literal values:
BeAwareProperties (Top-level)
-
BehaviorProperties - Properties of behaviors
hasBTid(string) - Behavior tree identifierhasRole(string) - Functional role
-
FlavorProperties - Properties of flavors
hasTrigger(string) - Trigger condition for flavor application
-
ParamModulateProperties - Properties for parameter modification
hasParamTarget(string) - Target parameter namehasNewValue(double) - New parameter valueobtainsParamValuewithQuery(string) - Query to obtain parameter valuereplacedByParam(string) - Parameter to be replaced
-
MRSProperties - Monitoring and Recovery Structure properties
isTerminal(boolean) - Whether failure is terminal
-
General Properties
hasParameter(string) - Generic parameter associationhasPort(string) - BT port specificationhasPortwithDefaultValue(string) - BT port with default valuehasValue(string) - Generic value propertyhasDecorator(string) - BT decorator type (Sequence, Fallback, etc.)
The ontology distinguishes between physical and abstract entities:
-
Physical - Real-world entities
Object- Physical objects in the environment
-
Abstract - Conceptual entities (disjoint from Physical)
Behavior- Abstract behavior conceptsPrimitive- Abstract primitive actionsFlavor- Abstract behavior modificationsContextMode/ActionMode- Abstract execution contextsParameter- Abstract parameter conceptsTBD- Placeholder for testing (to be ignored)
Class: TBD
A placeholder class for testing and work-in-progress elements. Classes under TBD should be ignored in production:
AfullfillsCondition- (Work in progress)Condition- (Work in progress)ErrorClass- (Work in progress)KinematicRestriction- (Work in progress)
The ontology enforces several disjointness constraints:
-
Top-level disjointness:
Abstract,Physical,ErrorClassare mutually disjoint
-
Abstract entity disjointness:
Behavior,Primitive,Flavor,Parameterare mutually disjoint
-
Flavor modification disjointness:
Ignore,ReplaceByParam,SequenceModifierare mutually disjoint
# Behavior "Pick Object" with two context modes
Pick_Object rdf:type HighLevelBehavior ;
hasBTid "Pick Object" ;
hasContextMode Gentle_Mode ;
hasContextMode Fast_Mode .
# Context modes have associated flavors
Gentle_Mode modeHasFlavor FixSpeed_Slow .
Fast_Mode modeHasFlavor FixSpeed_Fast .
# Results in expanded behaviors:
# - "pick_object__gentle_mode"
# - "pick_object__fast_mode"# Behavior with precondition and recovery
Navigate_To_Location hasFlavor CheckPathClear_Precondition ;
hasFlavor Retriable .
CheckPathClear_Precondition rdf:type AhasPreCondition ;
hasConditionBlock Check_Obstacle_Free ;
hasRecoveryBlock Clear_Path_Recovery .# Replace gripper behavior in specific context
Adaptive_Grasp_Mode modeHasFlavor Replace_StandardGrip_by_PrecisionGrip .
Replace_StandardGrip_by_PrecisionGrip rdf:type ReplaceAbyB ;
hasTargetBehaviorA Standard_Grip ;
hasTargetBehaviorB Precision_Grip .The ontology supports integration with PDDL (Planning Domain Definition Language):
- High-Level Behaviors are marked as instances of
HighLevelBehaviorclass - These behaviors correspond to PDDL domain actions
- In Python code, they are identified by the
pddl_behavior=Trueflag - Context mode expansion creates separate PDDL actions for each mode
Example:
- PDDL domain has action
(pick ?obj) - Ontology has
Pick_Objectbehavior with 2 context modes - Results in behaviors:
pick_object__gentle,pick_object__fast - Each has its own BT template and parameters
- Ontology IRI:
http://www.semanticweb.org/oriol.ruiz/ontologies/2023/8/beaware_ontology - Format: RDF/XML (OWL 2)
- Generated by: OWL API (version 4.5.9.2019-02-01T07:24:44Z)
