COPS concept of Program). The fact that these two
notions differ suggests that it would be useful to
extend the COPS core ontology to other concepts.
The “web services” community has generated a
variety of initiatives – METEOR-S, OWL-S,
WSMO (Roman et al., 2005) – which seek to
formally describe the discovery, evocation and
orchestration (at different levels of automation) of
such services. These efforts are currently far
removed from COPS’ aims because (i) the work
emphasizes the operational nature of the descriptions
and (ii) these descriptions concerning the function
(the Action in COPS) realized by the service (e.g.
booking a travel ticket) are situated on a meta level,
which allows defining the prerequisites for operation
of the service (e.g. information about the travel has
to be given) and the effects resulting from its
execution (e.g. the ticket price is debited from a
bank account). Within the framework of the
NeuroLOG project, the functionalities targeted in
terms of the evocation and orchestration of software
tools are similar, which is why we plan to extend
COPS to consider this level of description.
In the software engineering domain, Welty (2005)
has suggested developing Comprehensive Software
Information Systems (for software maintenance) by
using an ontology which enables a detailed,
conceptual description of software. This ontology
could be considered as an extension of the COPS
Expression sub-ontology, as it enables description at
the code level and consideration of all the syntactical
constructions available in programming languages.
On the other hand, it supposes (strangely) that the
entities playing data and result roles are real world
entities (e.g. persons) and not conceptualizations
modeling the real world. In COPS, we chose to
follow (Turner & Eden’s, in press) idea whereby
program semantics are based on data and data types
which model real world entities - for example (in the
object paradigm), an instance which models an
individual person or a class which models a set of
persons.
Other work in the software engineering domain
(Oberle et al., 2005) has led to publication of CSO
(the Core Software Ontology) in order to better
develop, administer and maintain complex software
systems. The ontology-building approach is similar
to ours, with re-use of the DOLCE high level
ontology and core ontologies such as DnS
(“Descriptions & Situations”, Gangemi & Mika,
2003). COPS and CSO also share some modeling
choices, such as the distinction between three
entities (called Inscriptions, Expressions and
Conceptualizations in COPS). However, we can
note some different modeling choices. For example,
in CSO (and assuming that every program can be a
data item for another program), the Data concept
subsumes the Software concept. In contrast, COPS
assimilates the Data concept to a participant role (cf.
2.2) which can be played by arbitrary entities -
Programs, for example. In fact, whereas CSO
considers only one type of Action (namely
“computational activities” whose participants are
necessarily Inscriptions (in the sense of COPS)
inscribed on some sort of hardware), COPS
distinguishes several categories of Actions according
to the nature of the participant entities (cf. 3.2).
COPS’ richer framework allows it to define a
Program Compilation as an Action in which at least
two Programs participate. Lastly, we can note that
the functional dimension of programs is absent in
CSO.
Those comparisons show that some core ontology
proposals for the software domain do exist but that
the various efforts are not yet coordinated and that
the existing ontologies display some important
differences in terms of both range and structure.
5 CONCLUSION
In this paper, we have presented the foundations of a
core ontology of programs and software (COPS)
derived by specializing the DOLCE foundational
ontology and whose goal is to help structure more
specific programming domains. In this connection,
the next application of COPS within the NeuroLOG
project, to help conceptualizing the domain of image
processing tools, will provide an opportunity for
evaluating the modeling choices made for the
building of the ontology.
COPS’ current conceptualization reveals a domain
populated by entities having various nature. Indeed,
there are temporal entities (program executions),
physical entities (program inscriptions), plural
entities (program collections), functional entities
(program execution platforms) and, lastly, dual-
nature (syntactic and functional) entities - the
programs themselves. COPS’ model-building
feedback confirms the fact that ontological resource
re-use (enabling modeling choices at several
abstraction levels) is necessary for controlling the
complexity of such domains.
In its current version, COPS only covers a part of
this domain. Work in process is extending the
ontology in several directions. A first goal is to
extend the programs semantics: links with
processing (functions) only give an account of the
“what”, so it lacks the “how” - requiring us to take
into account algorithms and data types which have
only been positioned (cf. Fig. 5) and not precisely
analyzed. A second goal is to enlarge COPS to
program specifications: we plan to re-use the
TOWARDS A GENERAL ONTOLOGY OF COMPUTER PROGRAMS
169