Skip to content

Controlflow Pattern

Source: ODP portal  ·  Published by: ontologydesignpatterns.org  ·  Category: behavioral  ·  Domain: general

To represent control flows: activation, branching, decisions, concurrency, etc.

What it answers

  • Which steps come directly after a given step in a procedure, and are those steps alternatives to one another or steps that run at the same time?
  • Where in a procedure is a choice made, which options does it choose between, and where do the parallel branches have to wait for each other before the work continues?
  • Which activity made the choice at a given choice point in a procedure, and which of the available decisions did it settle on?

The pattern

The graph is the axioms the pattern asserts; nothing here is inferred. Drag to rearrange, scroll to zoom, and use the graph's own search box to find a term inside it.

Opens at level of detail 3: classes, individuals, properties and restrictions, without the literals. Raise it with the LOD control in the graph's own toolbar to see annotation values and anything a reasoner adds.

Download the pattern

Should you use this one?

Size 18 classes, 6 properties, 120 axioms
Brings in 2 imported ontologies, so adopting it adopts those too
Reasoning HermiT finds this pattern consistent, with no unsatisfiable class, and its worked example consistent with the pattern.

Check it yourself: the published pattern  ·  an archived copy  ·  the ontology itself.

If a link does not open

ontologydesignpatterns.org, which publishes most of this library, does not currently answer over HTTPS, and its wiki redirects submission pages to its front page. The archived copy is there for exactly that reason. The ontology files themselves are still served over plain HTTP.

Terms it declares

The 38 classes and properties this pattern models, as the recommender scores them. Annotation properties and built-ins are excluded, because an annotation property is not modelling.

  • http://www.ontologydesignpatterns.org/cp/owl/agentrole.owl#Agent
  • http://www.ontologydesignpatterns.org/cp/owl/classification.owl#Concept
  • http://www.ontologydesignpatterns.org/cp/owl/classification.owl#classifies
  • http://www.ontologydesignpatterns.org/cp/owl/classification.owl#isClassifiedBy
  • http://www.ontologydesignpatterns.org/cp/owl/controlflow.owl#AbstractMergingTask
  • http://www.ontologydesignpatterns.org/cp/owl/controlflow.owl#ActionTask
  • http://www.ontologydesignpatterns.org/cp/owl/controlflow.owl#ActivationTask
  • http://www.ontologydesignpatterns.org/cp/owl/controlflow.owl#BooleanCaseTask
  • http://www.ontologydesignpatterns.org/cp/owl/controlflow.owl#BranchingTask
  • http://www.ontologydesignpatterns.org/cp/owl/controlflow.owl#CaseTask
  • http://www.ontologydesignpatterns.org/cp/owl/controlflow.owl#ConcurrencyTask
  • http://www.ontologydesignpatterns.org/cp/owl/controlflow.owl#ControlTask
  • http://www.ontologydesignpatterns.org/cp/owl/controlflow.owl#DecisionActivity
  • http://www.ontologydesignpatterns.org/cp/owl/controlflow.owl#DeliberationState
  • http://www.ontologydesignpatterns.org/cp/owl/controlflow.owl#DeliberationTask
  • http://www.ontologydesignpatterns.org/cp/owl/controlflow.owl#EndingTask
  • http://www.ontologydesignpatterns.org/cp/owl/controlflow.owl#LoopTask
  • http://www.ontologydesignpatterns.org/cp/owl/controlflow.owl#MergingTask
  • http://www.ontologydesignpatterns.org/cp/owl/controlflow.owl#SynchroTask
  • http://www.ontologydesignpatterns.org/cp/owl/objectrole.owl#Object
  • http://www.ontologydesignpatterns.org/cp/owl/objectrole.owl#Role
  • http://www.ontologydesignpatterns.org/cp/owl/objectrole.owl#hasRole
  • http://www.ontologydesignpatterns.org/cp/owl/objectrole.owl#isRoleOf
  • http://www.ontologydesignpatterns.org/cp/owl/participation.owl#Event
  • http://www.ontologydesignpatterns.org/cp/owl/participation.owl#Object
  • http://www.ontologydesignpatterns.org/cp/owl/participation.owl#hasParticipant
  • http://www.ontologydesignpatterns.org/cp/owl/participation.owl#isParticipantIn
  • http://www.ontologydesignpatterns.org/cp/owl/sequence.owl#directlyFollows
  • http://www.ontologydesignpatterns.org/cp/owl/sequence.owl#directlyPrecedes
  • http://www.ontologydesignpatterns.org/cp/owl/sequence.owl#follows
  • http://www.ontologydesignpatterns.org/cp/owl/sequence.owl#precedes
  • http://www.ontologydesignpatterns.org/cp/owl/taskexecution.owl#Action
  • http://www.ontologydesignpatterns.org/cp/owl/taskexecution.owl#executesTask
  • http://www.ontologydesignpatterns.org/cp/owl/taskexecution.owl#isExecutedIn
  • http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Role
  • http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Task
  • http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#hasTask
  • http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#isTaskOf

An example of it in use

The pattern says what may be asserted; this says it. The graph below is a small set of individuals that instantiate the classes above and are connected by its properties, so the shape the pattern describes is visible as data rather than as a schema.

Download the example


Import this pattern into your own ontology from inside Protégé: OntoBoard → Reuse → Pattern library…, which hands it to Import terms… and writes the term list, the module, the import and the catalog entry the way ODK expects. See Working with ODK.

Something wrong with this pattern, its example or this page? Report a problem with this pattern - the form opens with the pattern filled in, and a title and a sentence are all it needs.