Model Integration Guide for BPMN®

BPMN to SpecIF mapping

For introduction to the Business Process Model and Notation (BPMN), see the BPMN 2.0 Symbol Reference, for example.

Resources

BPMN-XML SpecIF
collaboration SpecIF:Diagram
process1 tbd
participant2, laneSet, lane3, task, manualTask, userTask, scriptTask, serviceTask, sendTask, receiveTask, callActivity, transaction, subProcess, businessRuleTask, forking and joining parallelGateway, joining exclusiveGateway, joining inclusiveGateway FMC:Actor
forking exclusiveGateway, forking inclusiveGateway, forking eventBasedGateway FMC:Actor plus FMC:Event per outgoing sequenceFlow
dataObjectReference4, dataStoreReference4, messageFlow5 FMC:State
startEvent, timerStartEvent, messageStartEvent, intermediateEvent, messageThrowEvent, intermediateThrowEvent, intermediateCatchEvent, intermediateTimerCatchEvent, intermediateMessageCatchEvent, boundaryEvent, timerBoundaryEvent, messageBoundaryEvent, endEvent FMC:Event
group6 SpecIF:Collection

Where:

  • For all entities in the left column the namespace ‘bpmn:’ is used; the XML header defines targetNamespace="http://bpmn.io/schema/bpmn".
  • All SpecIF resource class terms are defined in the Vocabulary.
  • The original model element type is stored in a property named dcterms:type.

Comments:

  1. The participants are transformed, but not the processes, for the following reasons:
    • To our experience with different tools, there is no process without participant, but there can be participants without a process.
    • Participants are source or target of messageFlows, but not the referenced processes.
    • Thus, the role and need of a process in BPMN as implemented by the tools we know is unclear.
  2. A participant is also called a ‘pool’.
  3. A lane is considered a responsible person or role, thus an FMC:Actor.
  4. Interestingly enough, in BPMN the name and other information are properties of dataObjectReference resp. dataStoreReference (rather than dataObject or dataStore). Also the associations point to the references. Therefore, the references are transformed and the dcterms:type is anyways set to dataObject resp. dataStore.
  5. A messageFlow between different processes is transformed to a dataObject with SpecIF:writes and SpecIF:reads statements connecting to the sending resp. receiving process steps or events.
  6. Currently a group is not represented as a SpecIF model element, because some (or even all) widely used BPMN modelers do not indicate explicitly in their BPMN-XML export, which activities or other are contained. Thus, the semantics of a group are not easily derived. The geometric coordinates of the diagram can be analyzed to identify contained elements of a group, of course: This is a development task to do.

Statements

At present, the following statements are derived from BPMN diagrams, where the statement terms (predicates) are highlighted in italics:

BPMN-XML   SpecIF Comment
Appearance on diagram diagram SpecIF:shows model-element SpecIF:shows  
Graphical Containment process SpecIF:contains lane SpecIF:contains  
Graphical Containment lane SpecIF:contains activity or event SpecIF:contains  
dataInputAssociation activity SpecIF:reads data SpecIF:reads  
dataOutputAssociation activity SpecIF:writes data SpecIF:writes  
sequenceFlow activity SpecIF:precedes activity SpecIF:precedes  
sequenceFlow (‘outgoing’ with respect to the event) event SpecIF:precedes activity SpecIF:precedes  
sequenceFlow (‘incoming’ with respect to the event) activity SpecIF:precedes event SpecIF:precedes  
association annotation SpecIF:refersTo model-element SpecIF:refersTo  

Where:

  • For all entities in the left column the namespace ‘bpmn:’ is used; the XML header defines targetNamespace="http://bpmn.io/schema/bpmn".
  • ‘model-element’ is one of [ ‘FMC:Actor’, ‘FMC:State’, ‘FMC:Event’ ]
  • ‘activity’ is one of [ task, manualTask, userTask, scriptTask, serviceTask, sendTask, receiveTask, callActivity, transaction, subProcess ], thus a FMC:Actor.
  • ‘data’ is one of [ dataObjectReference, dataStoreReference ], thus a FMC:State.
  • ‘event’ is one of [ startEvent, intermediateThrowEvent, intermediateCatchEvent, boundaryEvent, endEvent ], thus a FMC:Event.
  • All SpecIF statement class terms are defined in the Ontology.
  • The original model element type is stored in a property named dcterms:type.

Example

The following clipping from BPMN-XML represents an event, an activity, a sequenceFlow and a forking exclusive gateway:

BPMN Clipping

The following SpecIF graph expresses the same:

SpecIF from BPMN Clipping

The full example can be inspected, here:

Transformation Code

Here you may look at the current code of the BPMN to SpecIF transformation.