CellML.org - Meeting Minutes 25 August 2000
|
Author: 1 SummarySome major advances were made at the August 25 meeting. The most important of these related to the definition of ontology parallel to model definition and the links between the two. The CellML data model was also expanded on (although it is still very simple). We also added one more item to the graphical notation standard for diagrams. 2 Graphical NotationI'd left out one critical component from my proposal for a graphical notation that first appeared in the August 24 meeting minutes: namely a shape for representing components that occur inside subspaces or boundaries (the mechanisms of CellML '99). Some examples of these kinds of components are the channels and pumps that you find inside a membrane-type boundary. As we were running out of simple shapes, we decided to resort to a hexagon for rendering these components. 3 OntologyThe August 25 meeting was notable for an agreement on the method in which ontology definition could be successfully merged with the existing network/component/connection data model. 3.1 What Is Ontology?The title of this section should probably be "what do we mean by ontology in the context of CellML", but that doesn't fit on one line, so I had to abbreviate it. Ontology generally refers to theories about existence, and is really a branch of philosophy, but the concepts have been adopted in the fields of software engineering and data modelling for describing the many forms of data that might occur when tackling a particular problem. As far as cellular modelling is concerned, we are more interested in defining a set of "component-classes" and "connection-classes". (These classes can also be thought of as "templates" or "type-definitions", but I'm going to refer to them as classes from here on in.) Components and connections in the model can then associate themselves with the classes defined in the ontology: each component associated with a particular class is known as an instance of that class. A class definition may contain a set of properties that all instances of that class automatically inherit (unless otherwise specified), and also define a set of properties that an instance may not possess. Most importantly, the total set of properties that a component or connection possesses is the union of the properties defined in its class definition (if they exist) and any properties defined in the instance of the component or connection that appears in the network. 3.2 Why Have Ontology?The fact that the actual structure of the model can be stored in either the ontology (the collection of class definitions) or in the network (the actual model definition) in an arbitrary way allows CellML processing software some flexibility in its handling of CellML models. Consider the following cases:
3.3 Advanced FeaturesThe concepts in the ontology section of CellML closely resemble those in object-oriented programming. More advanced concepts from this field can also be introduced into CellML that dramatically increase the power and usability of CellML. The most obvious of these is inheritance. If one class definition is identified as extending another, then it automatically obtains all of the properties that the defined in the extended class. For instance, a cellular-membrane class might extend a membrane class, obtaining all of the variables and equations defined in the membrane class definition, and adding some of its own. Some mechanism for not inheriting properties, and for resolving naming conflicts may be needed. In object-oriented programming, the only thing more important than a class-definition's properties are its methods. Assuming that CellML must be able to incorporate blocks of computer code or scripting language, it may be appropriate to add method declarations to class definitions, where the method body contains code or script that operates on the variables declared in the class definition or variables obtained explicitly from an undisclosed location. 3.4 Defining An OntologyA simple and elegant way to define a set of class definitions is to use the data models for the components that we are "templating" to form the template. That is, we can use the data model for a component where it appears in a model, as the basis for a component class definition as it appears in the ontology. Inside of an ontology the class property of a component or connection (see data model in Section 4) identifies the class definition. It must be present and unique within the set of all class properties defined in the ontology. Inside a model definition, the class property of a component or connection associates the current object with the class definition of the same name in the ontology. More on ontology definition in the next set of meeting minutes. 4 Data ModelThe August 25 meeting marked the first real formalisation of the basis for the CellML data model. The result is shown in Figure 1. There are some constraints on available relationships between objects in the data model that are best expressed in words:
| ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||