# Merging Spatio-Temporal Objects and Business Processes: Land Reform Process Case Study
## 3 Methodology
### Mapping BPMN to Logical Model  
After the transformation of the MADS conceptual schema into a set of tables and constraints in PostgreSQL/PostGIS, we aim to transform the updated MADS's related BPMN into an executable model that materializes process modeling into queries supported by PostgreSQL/PostGIS. This updated BPMN model we aim to transform represents the evolution from the initial BPMN draft, which was automatically generated from MADS and refined to align with the unique requirements of each business model. According to [29] a conforming BPMN implementation must support the usage of all constructs defined in the standard, implement the behavior of the constructs as specified, be able to detect invalid BPMN process models and consume the standardized serialization format. In terms of process executability, some attempts have been made to implement BPMN. The Business Process Execution Language (BPEL) is an XML-based language used for business process implementation. While BPMN provides a graphical representation of a given process-based model, BPEL is used to exchange (i.e., export-import) and execute data; BPEL enables the specification of BPMN. Although the mapping between BPMN and BPEL is complex, flawed, and has various problems. The work of [48] makes use of XML nets, an executable method for Petri net process modeling. The model represents the data needed by the process using a graphical language, and the data manipulations are graphically displayed in the XML nets. Refs. [49; 50] proposed a transformation and visualization of BPMN models into Petri Nets. The formal language Petri nets have found extensive applications in industrial systems and are considered a suitable language to do such analyses due to the availability of many existing analysis tools. Ref. [50] proposed a mapping from the conceptual model BPMN to the executable one, Petri Nets. Ref. [51] describes a formally well-founded approach to linking data and processes conceptually, based on adopting UML class diagrams to represent data and BPMN to represent the process using OCL operation contracts. In [51], OCL is used mainly to define a textual integrity constraint that UML instances of the schema should satisfy and the operation contracts that UML instances should satisfy before/after executing some operation recorded in BPMN. Ref. [8] used OCL to describe BPMN constraints. \begin{table}
\begin{tabular}{c c} \hline \hline
**MADS** & **BPMN** \\ \hline Geo & GOMETRY \\ \hline Simple Geo & GEOMETRYCOLLECTION \\ \hline Complex Geo & GEOMETRYCOLLECTION \\ \hline Point & POINT \\ \hline Point set & MULTIPONT \\ \hline Oriented line & LINESTRING \\ \hline Oriented line set & MULTILINESTRING \\ \hline Simple area & POLYGON \\ \hline Complex area & MULTIPOLYGON \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Mapping between the spatial data types of MADS towards PostgreSQL/PostGIS. Our approach for implementing MADS and executing BPMN in PostgreSQL/PostGIS aligns with the methodology employed in [51]. Indeed, even though BPMN can be directly executable thanks to BPMN engines like Activity ([[http://www.activiti.org/](http://www.activiti.org/)]([http://www.activiti.org/](http://www.activiti.org/))), jBPM ([[http://www.jbpm.org/](http://www.jbpm.org/)]([http://www.jbpm.org/](http://www.jbpm.org/))), and Camunda ([[http://www.camunda.org/](http://www.camunda.org/)]([http://www.camunda.org/](http://www.camunda.org/))) URLs accessed 1 September 2023, we used Petri net in our implementation. Petri net is used to check the correctness of BPMN and to have complete control of the transformation of the BPMN concept with OCL annotation into SQL queries for PostgreSQL/PostGIS. Furthermore, Petri net presents a clear, mathematically proven, and easily understandable visual workflow model. We used OCL expressions to enhance the semantics of BPMN and strongly link its elements/activities with the MADS objects and, as a consequence, with the relations representing MADS objects in PostgreSQL.