RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
Technical and adoption benefits brought by a public domain tool to explore and validate RESQML V2 Standard EPC Instances.
Co-Authors : Jean François Rainaud – IFP Energies Nouvelles
[email protected] Beiting Zhu-Colas – GEOSIRIS
[email protected] Mathieu Poudret – GEOSIRIS
[email protected] Alexandre Lorenzatti – UFRGS
[email protected] Mara Abel – UFRGS
[email protected]
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
Abstract Exploration and production workflows presently involve increasing volumes of data and interpretations that must be shared and exchanged between a variety of software applications throughout the reservoir life cycle. RESQML is the data exchange format used in the upstream oil and gas industry for transferring earth models between software applications in a vendor-neutral, open and explicit format. Issued at September 20, 2014, by the Energistics Consortium (www.energistics.org)1, RESQML V2 provides a solution for transferring between applications RESQML data-objects, relational information related to the exchange of structural, stratigraphic and reservoir frameworks and their associated properties and activity information records to follow up modeling operations. This presentation describes the public domain tools that the RESQML community is offering for allowing developers and end users to validate RESQML EPC instances written and read by RESQML users: software vendors (Paradigm, Schlumberger, and others) and petroleum companies (Total, Shell, Chevron and others) owning proprietary products or international research centers. The RESQML Explorer/Editor/Validator here presented helps to certify the conformity of RESQML V2 instances with respect to the XSD schema and to additional business rules by semantically controlling both the relationships that are in the heart of RESQML V2 and other semantic or numeric constraints textually described in the documentation. Since it allows the developers to explicit and control relational information at the semantic level, the RESQML Explorer/Editor/Validator allows them to self-control their model and provides them the necessary help during the testing periods. It allows the end users to identify problems and to report to vendors. By offering independent solutions, it allows the companies to develop convincing arguments for ensuring the acceptance and deployment of the RESQML standard at the corporate level. Dissemination and certification of RESQML V2 model will thus be facilitated and extensions to other Energistics standards will be made possible. In the paper we will describe tools that enable a user to:
1
Energistics is a global, non-profit, membership organization created to serve as a neutral body to facilitate and manage open data, information and process standards for the upstream oil and gas industry (www.energistics.org).
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
• • • •
read/explore/edit/write a RESQML EPC instance and check published schema conformity; check consistency of the relationships defined between data objects; verify semantic and numerical assertions related to properties attributes and relationships of XML instances; check compatibility of the dimensional properties of XML instances and attributes with regard to the size of HDF5 arrays.
1/ The Context What is RESQML for Exploration & Production users? RESQML is an XML and HDF5-based data-exchange standard that facilitates reliable, automated exchange of data among software packages used in subsurface workflows. RESQML consists in a set of XML schemas (XSD files) and other standards-based technology, which developers implement into software packages. A software application that has implemented RESQML can read and write the standard format. RESQML has been developed by a global consortium of operators, service companies, software vendors, and government agencies under the umbrella of Energistics [Energistics 2015-1].
Subsurface workflow challenges for asset teams As shown in Figure 1, the exploration and production (E&P) subsurface workflow is lengthy, iterative, and complex. It involves many people from different disciplines, sometimes different companies, and the use of many different software packages for complex analysis, interpretation, modeling, and simulation. This multi-discipline, multi-company, multi-software environment is iterative and requires users to move data back and forth between different software packages. Many of these packages use different data formats often proprietary and incompatible. Due to this inherently complex process and to their inability to easily exchange data, modelers in the E&P companies and their people must face various difficulties such as knowledge loss, workflow rigidity, uneasy characterizing and sharing of uncertainty, data loss, productivity loss.
How RESQML helps addressing these challenges? RESQML-compliant software can read and write this standard, common format, eliminating data incompatibility and the need for reformatting. The newest capabilities help RESQML V2.0.1 provide the following benefits:
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
• •
•
•
• •
They deliver a "knowledge hierarchy" to organize data and transform it into knowledge. They increase workflow flexibility, for example, with partial model transfers that allow you to update/transfer only the data that has changed. They support traceability, by using universally unique identifiers for each top-level data object and key metadata for data sources, updates, dates of change, etc. They support uncertainty management since they are able to run an increased number of more scenarios and realizations and to reliably update models. They define a rich set of subsurface data objects and enable the transfer of detailed models and of a variety of model types. They improve efficiency for both petro-technical and IT professionals.
For getting more information on the challenges of subsurface workflows, for understanding how RESQML helps addressing them, and for examining some key supported workflow use cases, see [Energistics 2015-2].
Figure 1 – Implementing RESQML in software used in the E&P subsurface workflows streamlines data flow among the many different software packages used. The latest version supports more workflows and more flexible workflows. New capabilities provide a rich set of data objects, a well-defined knowledge hierarchy throughout the model, methods for specifying and transferring relationships among data objects, and the ability to group all of the information into a single, structured package [Energistics 2015-1].
RESQML workflow for end users: a simple example Figure 2 displays an example of a very simple subsurface workflow using RESQML-enabled software. When users need to move data to the next
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
software application in their workflow, they choose to write (export) data to the RESQML format. In this example, User A using Software A writes the data to the RESQML format, which is transported into an Energistics package (for more information, see below). That next software application may be a tool used by another discipline in the workflow or by a partner company in a joint venture. If that software application is RESQML-enabled, it can read (import) the Energistics Package containing the RESQML data and process the data in its native environment.
Figure 2 – A user writes (exports) a file to the RESQML format, which is stored in an Energistics Package and may be read (imported) by other RESQML-enabled software [Energistics 2015-1].
2/ What is RESQML for IT people? An information resource set RESQML is a set of XML schemas (XSD files) freely available to download and use from the Energistics website. The RESQML SIG (Standard Interest Group) developed a first UML Data Model using the Enterprise Architect toolkit and it produces for every new version of the standard a dedicated set of XSD Files representing this Data Model.
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
Anyone can download the latest version of the UML Data model of RESQML, its XSD and its companion files, from the Energistics website at: http://www.energistics.org/reservoir/resqml-standards/current-standards. The downloading includes all the textual and numeric technical resources described in Table 1, which will be used to set up the Explorer/Editor/Validator. Table 1 - Technical resources of the Explorer/Editor/Validator
Resource
Content description
RESQML:XSD files
The RESQML package includes a readme file that details the contents of the download package.
RESQML UML Data Model
The entire UML data model that developers and architects can explore for better understanding of data objects, definitions, organization, and relationships. Developed using Enterprise Architecture (EA) modeling software (version 12), the UML model exists as an EA project (EAP) file.
RESQML Business Overview and Use Case Guide
An introduction to RESMQL for domain/petro-technical professionals. Provides: •
An overview of the business value and domain challenge that RESQML helps to solve;
•
A representative list of supported use cases.
RESQML Technical Usage Guide
Detailed explanation of RESQML key concepts and design intended for software/IT professionals.
RESQML Technical Reference Guide
Lists and defines all packages, data objects, elements, including related business rules. This document also identifies relationships between/among data objects and highlights significant information about relationships (if any).
By using these schemas and the corresponding documentation which contain textually defined business rules, developers can develop the link from a RESQML EPC (see below) to their favorite application. Using these specifications, developers can export and import a whole description of a prospect or a single representation by using two or more containers: one Energistics Packaging Container (EPC) carrying the data objects instances (XML format) and one or many HDF5 Files including most of the numeric information. The Energistics Packaging Container The Energistics Packaging Container follows the specification of the Energistics Packaging Conventions, which consists in a set of guidelines, restrictions, and types about the usage of the Open Packaging Conventions (OPC). The EPC is the mechanism that allows associating all the objects for all the Energistics specifications (see Figure 3). The development of the EPC was initiated by the RESQML SIG for providing a means that enables the grouping of all the elements of a subsurface model. This solution is presently supported by the Energistics CTA (Common Technical Architecture team),
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
which works to develop consistent solutions for the common needs across all Energistics' specifications.
Figure 3 – An illustration of an EPC package [Energistics 2015-1].
The Open Packaging Conventions: OPC is an open standard defined by ECMA International [ECMA 2012] and ISO [ISO 2012]. It defines the characteristics of a package which: • Is a .ZIP archive file containing various files called “parts”; • Can contain information on the content type of each part; • Is documented by means of metadata (Dublin Core and other) called “core properties”; • Can also contain typed relationships between parts, which specify semantics of the connection. OPC is widely used as it is the standard for packaging .*x Microsoft Office documents with document. Because it is an open standard, free libraries (in C#, Java and C++) are available for being implemented into software packages in order to help with the reading and the writing of these documents. Contents of an EPC package can be: • XML top-level elements defined in the RESQML V2.0 data model; • XML top-level elements defined in other Energistics standards such as WITSML or PRODML; • Any other external file that could contain some additional, informal information, such as: PDF, videos, Microsoft Office documents. The HDF5 file(s) could also be part of the EPC package file, but because an HDF5 file cannot be streamed and can already compress its datasets, the guideline recommends to keep the HDF5 file(s) outside of the EPC package. In order to ease the parsing of the package by software trying to read it, each part of the package must have its content type specified. One address should exist per Energistics top-level elements in the standard content type part
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
defined by OPC. The content type must follow RFC 2616 [Fielding et al. 1999] and it must indicate the Energistics format version (for xml proxy usage) and the type of the top-level element. Below is the generic syntax of an Energistics part: Energistics content type: application/xformat+xml;version=versionNumber;type=objectType Below are two RESQML content type examples: • RESQML 1.1 document: application/xresqml+xml;version=1.1;type=obj_resqmlDocumentStandAlone • RESQML 2.x horizon: application/xresqml+xml;version=2.x;type=obj_geneticBoundaryFeature The EPC Relationships An internal part of the EPC container is an Object defined by the published XSD schema as an XSD Top level Element. Symmetrically, an external part of the EPC container could be HDF5 files containing numeric information. Each internal part of an EPC container can define all the relationships that it has with other internal parts of the package and even with external parts. In order to provide to an EPC reader all necessary information, EPC mandates all the relationships to be specified in both directions. For example, a horizon interpretation has a relationship to the horizon feature it interprets. And, conversely, the horizon feature also has a relationship to its horizon interpretations.
3/ Why a specific validation of a RESQML EPC is important for Adoption A RESQML specification is one UML model split into several associated XSD schemas. If we compare RESQML V2 to other Energistics standards for information transfer, we can see that there exists, behind RESQML, a complete data model defined through UML. This model contains valuable relationships between classes while the other standards are only defined by an XML schema. The RESQML approach was chosen to facilitate the dialog between end users and IT people and to deliver a more comprehensive and more expressive model but, at the end, using this method might add complexity for developers. Since our objective is the adoption by the industry, the Energistics team decided to provide XML schemas as the main deliverable to express the
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
technical specifications. In UML we can use different relationships types: inheritance, containment and reference. Going to an XSD schema you may lose the particularity of these relationships. We roughly have one same projection for inheritance and containment and no way to properly reference independent classes. To fulfill the need of relationships between independent Top Level Elements (the main RESQML objects), Energistics created a generic connection between object: the Data Object Reference (DOR). The use of this Data Object Reference authorizes also a partial transfer of the information because the EPC should only contain an “abstract” object linked thanks to a DOR. In this case, a server address could indicate where the corresponding “concrete” object is stored. Regarding simple XML instances, which do not rely on any DOR, developers can use classic tools like “XML spy” or “GSoap” to explore their models and validate their content types versus the XSD schema. But, it is not possible in our case to validate the cross references brought by the DOR mechanism with such classical tools. A RESQML Specification contains textually or numerically defined Business Rules between the XML instances With the distribution of RESQML, Energistics is delivering a number of textual or numeric Business Rules which are impossible to apply automatically check on a model definition with classical XML tools. For example: The first “count” attribute of a Grid2DPatch contained in a ObjGrid2DRepresentation must be less or equal to the attribute “inlineCount” of the grid2DPatch.fastests axisCount of the same ObjGrid2DRepresentation. Usually, a constraint of this type can be verified by using Object Constraint Language [OCL 2010], but if a given value comparison is applied on two different context objects (Top Level Objects in our case), it is impossible to apply OCL since an OCL expression focuses on only one context object and since UML relations between top-level object are translated into DOR during XSD schemas generation. A RESQML specification delivers specific access to HDF5 binary Files In the distribution of RESQML, the XML objects mainly describe the meta data information. Most of the numerical values are recorded into HDF5 Binary file [HDF5 2015]. It is sometimes necessary to correlate the meta-data information and the dimension of arrays defined in the HDF5. In this case the classical validation tools are not able to gather information into these two different sources (XML and HDF5) and to compare them.
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
Consistency with respect to a RESQML specification must be controlled to facilitate the dialog and a seamless exchange between various end users The final objective of RESQML V2 is to be adopted by a majority of end users during their daily job for exchanging Earth Model Elements between software provided different vendors and possibly advanced research products. It is thus necessary to control the quality of the information transferred in the EPC Package. To obtain such a result, software developers need to calibrate their development with respect to an independent and certified tool which is able to take into account all the specific difficulties described before. This independent tool should be designed to accept new releases of the standard with a light maintenance support, and it needs to be transparent enough for facilitating IT developer’s interpretation when some error is notified. Besides, since not all software vendors can support the whole extension of the model (from seismic interpretation to reservoir simulation), the end users will need to look inside the RESQML V2 EPC package even if their preferred software does not read some specific elements. We have also seen some use cases on which the exploration/edition of a model and its HDF-related content could be very useful to modify and fix some parameters and data before importing in a third party software. And, at the end, a routine checking of all exchange could be set into the data management system of the company to ensure a seamless transfer of information, and some reporting facilities that can help the support teams in cases of exception. The Development of the Explorer/Editor/Validator aims to fulfill all these goals. Nevertheless, this tool is not designed to validate the characteristics functions of a geomodeling software. For example, its objective is not to validate geometrical consistency between two entities (such as, checking whether one is located in a higher geometric position than the other).
4/ Architecture and Development of the Tool This tool is based on the ECLIPSE (IBM) development environment. It uses Modeling-Driven technology to set its internal Data Model and allows the use of the Eclipse Modeling Framework (EMF) for automatically generating two concurrent Java data models: one corresponding to the published XSD expression of the model and another to the published UML expression of the Model.
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
EMF supports the definition of structural meta-models and the subsequent use of models conforming to these meta-models. EMF also supports the generation of Java code to represent the meta-models. Additional Java code can be provided to add behavior to the structural meta-models2. We apply the following steps to handle validation by combining EMF with OCL: Step 1: Reading and checking the EPC file content An EPC package is a container of Top Level Elements XML instances plus some relationships expressed as “Data Object Reference” (DOR). These Top Level Elements are based on the published XSD expression of the model. When reading an EPC file, the software verifies at first the syntactic validity of these instances by checking their conformity with respect to the XSD schemas. In a second step, we check that these correspond two relations in the “_rels” part of the EPC to each DOR: one from the source to the target object and the other from the target to the source object. Moreover, we check that UUID (Universal Unique ID) are consistent (i.e. basically the same) in DOR and corresponding “_rels” relations. At this step, it is not possible to check the semantic of the relations with respect to the UML expression. Step 2: exploration and Edition of the EPC package We then set an interactive application with several views interacting together to explore and to edit an EPC package. This was done by applying EMF generation mechanism to the published XSD Schema, and using Graphical Tools such as ZEST3 and a specific HDF Viewer for browsing the numeric values. Step 3: for validation purpose, transfer of the EPC package content into an internal data model based on the UML expression of the model We cannot easily go further in the validation of the data model by referring to the published XSD schema, mainly because relations between top-level objects have been translated into DOR. The solution is then to operate the semantic and numeric validation by referring the published UML model, where relations between Top Level Object are properly defined.
2
3
http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.ocl.doc%2Fhelp%2FOverviewandGettingStarted.html https://www.eclipse.org/gef/zest/
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
A dedicated development was necessary to transfer the information registered in the EPC package content, into the internal data model by referring the published UML model. For this, we directly transfer all the attributes (e.g. int, string, enum, etc.) but not the DOR. We restore, instead, the native top-level objects relations (the ones defined in the UML expression of the RESQML model). We now have a new instance of the EPC package expressed in the structure of the UML model. The validation can then be processed on this new instance. Step 4: using OCL for semantic and/or numeric validation of references and attributes We then use OCL Language constraints to describe the necessary validation operations. This choice has been guided by the fact that this language is a standard and that it is understandable even by non- developers. The OCL (Object Constraint Language) is EMF-compatible. It provides a modeling language that allows the behavior to be embedded within the structural meta-models or provided as a complement to those meta-models. As a modeling language, OCL understands the models. For this reason, the OCL code is much more compact than the equivalent Java. OCL code can be statically checked, whereas the corresponding Java code often uses reflection and cannot be checked in this way. Eclipse OCL is an implementation of the OMG OCL 2.4 specification for use with Encore and UML meta-models4. The OCL specification is defined by the OMG. It originally evolved as part of UML where it is used for the detailed mathematical aspects that are not appropriate for graphical exposition. OCL 2.0 was split off from UML 2.0 in recognition of its greater utility. During the first months of the project we tried to directly apply OCL on the XSD schema embedded into the Explorer/Editor application. With some short tracks, we succeeded to fulfill the majority of our needs. But for some complex constraints involving DOR, it was impossible to use OCL with enough comfort. It is the reason why we now apply the OCL constraints to the internal instance based on the published UML Model. This approach is now completely embedded in the product. In the following example of business, we check some semantic constraints applied to relations between top-level objects including Enum value checking:
4
http://download.eclipse.org/ocl/doc/5.0.0/ocl.pdf
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
An ObjHorizonInterpretation must interprets an ObjGeneticBoundaryFeature carrying an geneticBoundaryKind that is equal to “horizon”. Step 5: OCL/HDF5 dedicated development using HDF library OCL has a lot of advantages but is not fit for acquiring values by using external library. Since some of the constraints to be checked are relative to array dimensions of HDF5 files, we had to adopt a specific approach. Consider the example of the numeric validation that needs to be operated between an attribute and the size of the corresponding HDF5 array, both defined in one same top-level object : If a Grid2dRepresentation is defined thanks to a Point3dZValueArray-based geometry then the Grid2dPatch SlowestAxisCount and FastestAxisCount are consistent with associated array dimensions in the associated HDF5 file. In this case, we first get the HDF5 Group path in the context object and then use the HDF5 library to get the corresponding array and to obtain its dimensions (NI, NJ). Then, by using an OCL expression template, we instantiate a new OCL expression incorporating the NI, NJ value as numeric values, so that we can compare with the values recorded as SlowestAxisCount and FastestAxis Count in the EPC objects. Our validator is able to build these new “concrete” OCL expressions at runtime.
5/ Usage of the tool For RESQML SIG developers and users, Energistics is going to decide how to expose this tool on its website www.energistics.org. An Eclipse development repository structure is set up on Bitbucket. The set of repositories which compose the RESQML Editor/Visualizer/Validator code are hosted on the Bitbucket hosting service and use the Mercurial revision control tool. Each of the core repositories holds the code corresponding to the following functions: • EPC: top level portion of the RESQML model; • EPC.edit: GUI elements to provide the RESQML model edition/visualization; • EPC.editor: RESQML model editor with the Graph and Table views; • EPCValidatorConfig: RESQML model validation features; • Resqml: RESQML model elements;
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
• • •
Resqml.edit: GUI elements to provide the RESQML model edition/visualization; Resqml.editor: RESQML model editor ResqmlEPC_Editor: integrates the editors composing the final product.
Developers can also access the source at certain conditions since the repositories are for private access or the moment. Symmetrically, final users can download a Java product with its execution environment. They will be able to launch and operate the tool together with a specifically adapted HDF Viewer. The interactive Explorer/Editor/Validator Tool is composed of a system of menu bars and 5 different views (see Figure 4). A command line version is also available for validation only.
Figure 4 – Overview of the different views
Thanks to the “File/Import EPC” menu option, the user can import an EPC package with its associated HDF (see Figure 5). While importing, the system validates the XML syntax used by the writer versus the XSD schema and DOR/_rels consistency (see section 4, step 1).
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
Figure 5 – Importing an EPC package
Several views provide information about the EPC content (see Figure 6). The Table View presents the list of top-level objects included into the EPC Container with their type, title and UUID. The user can sort this list according to these items in order to make easier the content visualization. On the left, the Resource Set view presents the information contained into a selected top-level object and the property view displays its attributes. The user can edit this instance from the property view with an internal validation control (e.g: Enums values are proposed) and can save its editions. He can create a new EPC with a new name and associate the previous HDF5 file to this new EPC.
Figure 6 – Table View, Resource Set View and Properties View
Additionally, the Graph View displays the relations between top-level objects. Some filters allow the user to focus on RESQML features, interpretations or
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
representation. On the right of Figure 7, we can see a grid representation selected in the resource set part after choosing it from the Graph View. If the user wants to access to the numerical values, he can select on the Element “Point3dHdf5Array” the HDF5 Data set and get directly into the corresponding hdf group path which helps him to access directly the data (see bottom left part of Figure 7).
Figure 7 – Graph View and direct access to HDF5 numeric values from the Resource Set View.
The business rules are launched by the file menu and are described in xml files (see Figure 8).
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
Figure 8 – Interactive validation with respect to a given business rule.
After launching this OCL-based business rule validation, the application screens all corresponding objects and delivers a diagnosis in the log View Window (are view) and in a log file (see Figure 9). This interactive mechanism is complemented by a command line mechanism to automatize the use of many business rules constraints over an EPC container without launching the user interface.
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
Figure 9 – Execution of an OCL-based validation on one RESQML V2 package.
CONCLUSION We have presented here a graphical and interactive tool for exploring and editing the RESQML objects embedded into an EPC Container. This tool can also help to teach how to describe the E&P business objects with the RESQML standard and will be used to validate E&P business rules applied between independent objects. The architecture is specifically adapted to follow schema evolution and could be in the future applied to other standards. Due to its transversal role, its independence from the vendors and due to its distribution in open source , this tool will be a great support to facilitate RESQML V2.* and other standards adoption.
REFERENCES [ECMA 2012] Standard ECMA-376 Office Open XML File Formats. ECMA International. http://www.ecmainternational.org/publications/standards/Ecma-376.htm [Energistics 2015-1] RESQML Technical Usage Guide For RESQML V2.0.1. Energistics: Energy Standard Resource Centre. http://www.energistics.org/reservoir/resqml-standards/current-standards. [Energistics 2015-2] RESQML Business Overview and Use Case Guide V2.0.1. Energistics: Energy Standard Resource Centre. http://www.energistics.org/reservoir/resqml-standards/current-standards.
RAINAUD RESQML Standard adoption benefit brought by an exploration / validation tool: PNEC 2016
Fielding, R., Gettings, J. et al. 1999. RFC 2616 Hypertext Transfer Protocol HTTP/1.1,http://www.w3.org/Protocols/rfc2616/rfc2616sec3.html#sec3.7 (accessed 17 Nov 2013). [HDF5 2015] HDF5. The HDF Group. https://www.hdfgroup.org/HDF5/ [ISO 2012] ISO/IEC 29500-2:2012 Information technology -- Document description and processing languages -- Office Open XML File Formats -Part 2: Open Packaging Conventions. ISO. http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumb er=61796 [OCL 2010] Object Contraints Language. OBJECT MANAGEMENT GROUP (OMG). http://www.omg.org/spec/OCL/2.2/PDF/