supporting ontology engineering approach should be
able to: (a) allow the conceptual modelers and
domain expert to be explicit regarding their
ontological commitments, which in turn enables
them to expose subtle distinctions between models
to be integrated and to minimize the chances of
running into a False Agreement Problem (Guarino,
1998); (b) support the user in justifying their
modeling choices and providing a sound design
rationale for choosing how the elements in the
universe of discourse should be modeled in terms of
language elements.
This marks a contrast to almost all languages
traditionally used for knowledge representation and
conceptual information modeling, in general, and in
the semantic web, in particular (RDF, OWL, F-
Logic, UML, EER). Although these languages
provide the modeler with mechanisms for building
conceptual structures (taxonomies or partonomies),
they offer no support neither for helping the modeler
on choosing a particular structure to model elements
of the subject domain nor for justifying the choice of
a particular structure over another. Finally, once a
particular structure is represented, the ontological
commitments which are made remain, in the best
case, tacit in the modelers’ mind. In the worst case,
even the modelers and domain experts remain
oblivious to these commitments.
An example of an ontologically well-founded
modeling language is the one proposed in
(Guizzardi, 2005), which is here dubbed OntoUML.
This language has its real-world semantics defined
in terms of a number of ontological theories, such as
theory of parts, of wholes, types and instantiation,
identity, dependencies, unity, etc. However, in order
to be as explicit as possible regarding all the
underlying subtleties of these theories (e.g., modal
issues, different modes of predication, higher-order
predication), this language strives for having its
formal semantics defined in a logical system as
expressively as possible. Now, as well understood in
the field of knowledge representation, there is a clear
tradeoff between logical expressivity and
computational efficiency (Levesque & Brachman,
1987). In particular, any language which attempts at
maximizing the explicit characterization of the
aforementioned ontological issues risk sacrificing
reasoning efficiency and computational tractability.
In contrast, common knowledge representation and
deductive database languages (e.g., some instances
of Description Logics) have been designed to afford
efficient automated reasoning and decidability.
In summary, ontology engineering must face the
following situation: on one side, we need
ontologically well-founded languages supported by
expressive logical theories in order to produce sound
and clear representations of complex domains; on
the other side, we need lightweight ontology
languages supported by efficient computational
algorithms. How to reconcile these two sets of
contradicting requirements? As advocated by
(Guizzardi & Halpin, 2008), actually two classes of
languages are required to fulfill these two sets of
requirements. Moreover, as any other engineering
process, an ontology engineering process lifecycle
should comprise phases of conceptual modeling,
design, and implementation. In the first phase, a
reference ontology is produced aiming at
representing the subject domain with truthfulness,
clarity and expressivity, regardless of computational
requirements. The main goal of these reference
models is to help modelers to externalize their tacit
knowledge about the domain, to make their
ontological commitments explicit in order to support
meaning negotiation, and to afford as best as
possible the tasks of domain communication,
learning and problem solving. The same reference
ontology can then give rise to different lightweight
ontologies in different languages (e.g., F-Logic,
OWL-DL, RDF, Alloy, and KIF) so as to satisfy
different sets of non-functional requirements.
Defining the most suitable language for codifying a
reference ontology is then a choice to be made at the
design phase, by taking both the end-application
purpose and the tradeoff between expressivity and
computational tractability into account.
In this article, we illustrate the issues at stake in
the aforementioned tradeoff by briefly discussing a
fragment of an industrial case study in the domain of
Oil and Gas Exploration and Production. However,
since we were dealing with an existing OWL-DL
codified ontology, we had to reverse the direction of
model development. Instead of producing a
reference model in OntoUML which would then
give rise to an OWL-DL codification, we had to start
with an OWL-DL ontology and apply a reverse
engineer process to it in an attempt to reconstruct the
proper underlying reference model in OntoUML. By
doing this, we manage to show how much of
important domain knowledge had either been lost in
the OWL-DL codification or remained tacit in the
mind of the domain experts.
The article is organized as follows. Section 2
briefly characterizes the domain and industrial
setting in which the case study took place, namely,
the domain of oil and gas exploration and production
and in the context of a large Brazilian Petroleum
Organization. Section 3 illustrates the reengineering
REVERSE ENGINEERING A DOMAIN ONTOLOGY TO UNCOVER FUNDAMENTAL ONTOLOGICAL
DISTINCTIONS - An Industrial Case Study in the Domain of Oil and Gas Production and Exploration
263