Table of Contents

Frequently Asked Questions...

FMA Specific questions...

1) What is the FMA and what does FMA stand for?
The FMA stands for Foundational Model of Anatomy ontology. The FMA is a reference ontology for the domain of anatomy. It is a symbolic representation of the phenotypic structure of the human body. Over 75,000 anatomical classes ranging from macroscopic to molecular level are organized in an Aristotelian-type class subsumption hierarchy, using the Protege frame-based knowledge acquisition tool. The ontology is made available by various servers that are part of the Digital Anatomist Information System. The symbolic modeling of the structure of the human body is in a form that is understandable to humans and is also navigable and interpretable by machine-based systems. The Foundational Model of Anatomy ontology is one of the information resources integrated in the distributed framework of the Anatomy Information System developed and maintained by the Structural Informatics Group at the University of Washington.

2) What domain might the FMA be used for?
Anatomy provides the foundation for the other biomedical sciences or information domains. For this reason, anatomy is the first subject taught in health related educational and training programs. Manifestations of health and disease can be thought of as properties (i.e., attributes) of anatomical structures ranging in size from biological macromolecules to cells, tissues, organs, organ systems and body parts. Therefore, anatomy is fundamental to all biomedical sciences, and the classes represented in the FMA generalize to essentially all biomedical domains. In other words, it is not possible to represent or describe the content domains of other, non-anatomical, biomedical disciplines without explicitly or implicitly referring to anatomical entities. For example, the circulation must take for granted the existence of the heart and blood vessels, and the same is true for gastritis and the stomach as well as for dementia and the brain. This means that anatomy is foundational to non-anatomical biomedical disciplines because they reuse anatomical classes.

3) How large is the FMA?
The FMA consists of 75,000 anatomical classes, 130,000 unique terms, over 205,000 frames, and 174 unique slots in use representing different types of relations, attributes and attributed relationships. There are over 44,000 English synonyms, of a class's preferred name, as well as more than 15,000 non-English equivalents. The relationship network of the FMA contains more than 2.5 million relationship occurences. Over 1,000,000 of these occur on classes, about 450,000 of which relate classes directly to other classes.

4) How many person hours has gone into creating the FMA?
The FMA has been under development since 1995. The total number of person-years spent on the development of the FMA is roughly 30. This does not include time spent engineering software for maintenance and the development of automated FMA authoring tools.

5) Are only english terms found in the FMA?
The FMA contains 8,500 Latin, 4,700 French, 500 Spanish, 350 German terms.

6) What is the granularity scope of the FMA?
The largest class represented in the FMA is the human body and the smallest anatomical class is biological molecule, which consists of two or more atoms held together by a covalent bond. The FMA represents anatomical entities from a very fine granularity such as the biological molecules to cells, tissues, organs, organ systems, major body parts, up to the entire body. It improves upon the currently available computable anatomical resources in both detail and scope of represented knowledge. The FMA contains anatomical classes and relationships necessary to model the structure of the entire human body.

7) What formats is the FMA available in?
The FMA is currently only available as a MySQL relational database. It is too large for most flat-file formats, as these generally require loading the entire knowledge base at once. There are ongoing efforts by our collaborators in exporting the FMA into OWL. The following give information on their current work:

Noy NF and Rubin DL. Translating the Foundational Model of Anatomy into OWL. Journal of Web Semantics, December 2007. More details in the technical report at of anatomy_into owl

The OWL version is accessible here:

Golbreich C, Zhang S, Bodenreider O. (2006) The foundational model of anatomy in OWL: Experience and perspectives. Journal of Web Semantics, Web Semantics: Science, Services and Agents on the World Wide Web, Volume 4, Issue 3, Pages 181-195. A version of the OWL file can be viewed here.

Dameron O, Rubin DL, Musen M. (2005). Challenges in converting frame-based ontology into OWL: the Foundational Model of Anatomy case-study. In Proceedings, American Medical Informatics Association Fall Symposium, 181-185, Washington DC .

In an ontology alignment challenge sponsored by OAEI , under the direction of Heiner Stuckenschmidt (University of Mannheim), the FMA was initially translated into OWL prior to its mapping with the anatomy part of GALEN. You can download the OWL-full translation of the FMA from this site.

8) Is there a way to associate images with Anatomical classes?
This functionality is under development. The ImageManager Repository is a database system, developed by the University of Washington Structural Informatics Group, for managing collections of annotated images. Using a locally developed plugin called the "Preferred-Image Tab" an author or user may associate an image with an anatomical class. While this plugin has not yet been made available to our users, we are in the process of developing a web-service that would allow users/applications to retrieve the preferred image, that we have associated, given an anatomical term or FMA identifier.

9) What has been developed for querying the FMA?
There are several available ways of querying the FMA. One of these, Emily Lite, is a query interface that enables FMA users to pose questions about the relationships between FMA classes. Another FMA querying tool, OQAFMA takes, as input, StruQL queries and returns XML-formatted results. The GAPP, query interface allows question to submitted in natural-language form. Both Emily and Gapp transform user queries into StruQL queries which are then processed by the OQAFMA query engine.

[Table Of Contents]

Modeling questions...

1) Why are Right Lung and Left Lung subclasses of Lung?
Right lung and left lung are subclasses of lung because the authors of the Foundational Model of Anatomy ontology wanted the class lung to exist without the consideration of laterality. Because lung is an abstraction of both right and left lung queries run on the abstracted class lung will return results pertaining to what both lungs have in common. In this model narrowing or abstracting queries is possible. Creating abstractions of terms also helps the authors organize and model information.

2) Why do the FMA authors use single inheritance?
The authors believe that single inheritance assures the true essence of a class on a given context.

3) Why have the authors created the class non-physical anatomical entity?
The FMA authors created the class Non-physical anatomical entity in order to incorporate anatomical classes that do not have physical dimension such as anatomical relationships and organizational patterns.

4) What does a merged hierarchy mean and why use one?
A merged hierarchy in a Protege ontology means that a class has two or more direct-superclasses. A class may have multiple direct-superclasses however every class must have at least one. The FMA uses single inheritence except in one special case where the META-CLASS hierarchy merges with the THING hierarchy (also termed class hierachy). The results of this merge aids the FMA authors in being very efficient when defining classes, and facilitates fast FMA database queries. To better explain why the authors chose to create this merge I will discuss two possible scenarios.

In the first scenario every class that is subsumed by THING can only be a regular class. Every class subsumed by META-CLASS can only be a metaclass (also known as a direct-type). Every regular class must have a metaclass to define the types of own slots it will have. The problem with this scenario is that class information needs to be duplicated to have both metaclasses which define regular classes and the anatomical classes which contain the actual slot values.


figure 1. ( Red - metaclass relationship, Blue - direct-superclass relationship) - In the above figure, class A and class A prime contain the same information however one class is in the STANDARD-CLASS hierarchy and the other class is in the META-CLASS hierarchy.

In the second scenario there is no need to duplicate class information. The rules still apply as in the first scenario to classes subsumed by THING and META-CLASS but the structure of model has changed. In this scenario the THING and META-CLASS hierarchies merge into a single hierarchy and all classes subsumed by CLASS A now contain both the properties of a regular class and a metaclass.


figure 2. ( Red - metaclass relationship, Blue - direct-superclass relationship) - in the above figure, class A is equal to both class A and class A prime in figure 1.

The FMA authors chose to implement the second protege modeling scenario because it saved them from having to create twice the number of classes needed.

[Table Of Contents]

Protege API questions...

1) What is a Slot and what are the different types of slots?
In Protege a slot represents either a relationship between one frame, such as a class or an instance, and another frame, or it contains values of a primitive type, such as strings or boolean values, and represents an attribute of the frame. Together the slot attributes and slot relationships of a class or instance collectively define the frame. Every slot is given a name that identifies the relationship that it represents. In Protege slots are attached to frames in two distinct ways, as own slots and as template slots. Own slots and their values describe the relationships and attributes that pertain to the frame on which they are attached. Template slots, on the other hand, represent the attributes/relationships (and possibly values) that will be propagated to all of their instance frames. Only frames that represent classes have template slots.

FMA snapshot

figure 3. This is a snapshot of a subset of slots attached to the class Heart (from the classes-tab) in Protege.

2)What is the difference between a metaclass and a class?
Every class must have a direct-type, which is called its metaclass. The direct-type of a class defines what own slots a class will have. Any class within a Protege ontology may be assigned as a direct-type for any other class even itself. Once a class is created by default its direct-type is its superclass.

3) What is the difference between a SimpleInstance and an Instance?
In Protege, all frames are instances of some class. This class is, inversely, the direct type of the instance. If a frame is an instance of a metaclass, then it is also a class. If it is an instance of a regular class, then it is a simple instances. An instance can only have one direct type. Through the API, it is easy to determine if an instance is a "simple Instance" by using the instanceof operator. The term “instance” used here should not be confused with the instance of the real world which is an individual like John Smith, or the liver of John Smith.

[Table Of Contents]

FMA Maintenance Questions...

1) What automated error detection test are run on the FMA?
Every week a battery of automated error detection tests are performed on the FMA. Additionally, the FMA authors perform frequent manual content reviews. The detected errors are fixed automatically, where possible, or manually, when such corrections require expert domain knowledge. Some of the automated tests were originally suggested in Law and Order: Assessing and enforcing compliance with ontological modeling principles paper written by Songmao Zhang and Olivier Bodenreider. from the National Library of Medicine. New tests are added regularly s we learn of new ontological error types. Some tests also check for various sorts of data corruption.

[Table Of Contents]

Common Installation Hangups...

1) The correct driver is not installed.
The most common installation hang-up is that the correct mysql driver is not present in Protege’s root directory. To fix this error simply add this driver to Protege’s root directory, that will typically be something like the following 'C:\Program Files\Protege_3.0'. This problem may also occur if the mysql driver is not named 'driver.jar'. If there is no 'driver.jar' in your root directory please download it from the following: mysql driver download.

Driver Error

figure 4. No driver found error.

2) The "full installation" option was chosen when installing Protege.
Another installation problem sometimes results from a "full install" of Protege. Although this problem does not seem to manifest itself currently, in the past the "full installation" option has lead to errors when opening the FMA project. These errors are presumably the result of some plugin conflict and can be avoided by choosing Protege's "basic install" option. Feel free to try the full installation but be aware that this could be a source of project load failures.

Driver Error

figure 5. Protege installer.

3) The PPRJ file is not configured correctly.
Your pprj file should contain the three fields, URL, username, and password. Each of these fields must be re-entered to reflect the personal settings of the pprj file owner. The URL field must contain 'localhost' when connecting to a database on a local machine on Windows, Linux, or Unix. The database table name FMA will already be filled and should not be changed. The username must have had privileges granted to it before issuing the populate database command or opening the FMA using a pprj file. If no other password has been set the root mysql user name and password will already have privileges and password set.


figure 6. Snippet of a PPRJ file.

4) MySQL is out of date.
Make sure that you are using the latest MySQL version, either MySQL 4.1 or later. One problem the arises frequently is that old MySQL version cannot understand the latest MySQL syntax. The following is an example of a command in the latest MySQL version that is added to the create table statements but causes an error when using an old MySQL version. To fix this problem manually remove every line 'ENGINE=MyISAM DEFAULT CHARSET = latin1'. Another possible solution is to upgrade to a newer MySQL version.


figure 7. MySQL is out of date.

5) MySQL is not configured correctly.
Occasionally MySQL is not set to automatically run during the operating system startup. If MySQL is not running before Protege or MySQL commands are issued an error will result. An "unable to connect" error message will follow. To fix this error make sure that MySQL is running in the background before trying to use MySQL or Protege. If you have installed MySQL as a service you may set the services that automatically start during startup on windows by 1) going to the control panel, 2) clicking on 'Administrative Tools', 3) clicking on 'services' 4) clicking on 'MySQL' from the list of services 5) Selecting the General tab, 6) Selecting Automatic under the 'Startup type' label. To install MySQL as a windows service download the latest MySQL from their download site. When installing MySQL our recommendation is to choose the typical setup, then click the checkbox on the last step that has the label 'configure the MySQL Server now'. If you have not set up MySQL as a service you will have to start MySQL manually.


figure 8. MySQL is not configured correctly.

6) MySQL semicolon syntax error.
There have been problems with the MySQL command for populating the database containing a semicolon at the end of the statement. Depending on what editor or console you are using this may or may not be an issue. The confusing thing about this error is that the response indicates that the error is caused by and incorrect username or password. In fact, the real problem is the semicolon at the end of the statement.


figure 9. MySQL semicolon syntax error.

7) MySQL populate database command syntax error.
When writing a MySQL dump command you should not first log into MySQL to issue the command. This command should not be issued within MySQL but from the console. When writing this command we suggest that you use -p, which is short hand for --password, without entering your password. A prompt will ask you for your password if the command was issued correctly before the MySQL database is populated with the FMA. Sometimes this command does not work and the password must be entered along with the entire command 'mysql -u your_user_name -p your_password database_name'.


figure 10. MySQL populate database command syntax error.

[Table Of Contents]