MR POTATOHEAD goes onto OWL


An ontological rendition of agent-based models of land use and cover change


This page describes an implementation of
MR POTATOHEAD in Protege-OWL.  You need not be proficient in agent-based models of land use and cover change (ABM-LUCC) or ontology to benefit from this page, although it helps if you have had an encounter or two with either ABM-LUCC or ontology.  If you prefer gentle introductions to daring forays when dealing with new research methods or software, please read the following brief descriptions of MR POTATOHEAD and ontology before installing Protege-OWL on your machine.  If you are an ABM-LUCC modeler interested in ontologizing ABM-LUCC through MR POTATOHEAD, you might want to spend some time on Protege-OWL before downloading the ontologized version of MR POTATOHEAD. 

MR
POTATOHEAD

ABM-LUCC enable modelers to focus on processes rather than results of interaction among purposive agents.  While results of agent interactions are often captured in variables that are amenable to mathematical and statistical modeling, creating agents and the rules of interaction among them requires computer code written in a variety of languages and simulation toolkits.  Therefore, ABM-LUCC lack a unified, standardized language for model communication and comparison.  To remedy this shortcoming of ABM-LUCC, one can use a conceptual design pattern (CDP), a fancy name for a framework that describes the conceptual design of a model.  CDPs can be procedural, ontological or possibly a mixture of both.  A procedural CDP focuses on model building, model execution or model processes.   For example, "Overview, Design concepts and Details" (
ODD) examines a model from a procedural vantage point.  An ontological CDP focuses on the structure of the model itself.  One such CDP is MR POTATOHEAD: Model Representing Potential Objects That Appear in The Ontology of Human-Environmental Actions and Decisions.  MR POTATOHEAD is an ontological CDP; it focuses on classes of concepts used in ABM-LUCC, their properties and the relations among them by dividing ABM-LUCC into component classes.  MR POTATOHEAD classes derive from one another in two ways: 

  1. A class is either parent or child to another class.  A member of the child class is definitely a member of the parent class.  That is why this inheritance relation is called an is-a relation.  For example, computers are either laptops, mainframes or desktops.  Therefore, as a class Computer has a few children or subclasses: Laptop, Mainframe, and Desktop.  Any laptop, mainframe or desktop is a computer.  So Laptop is-a Computer; Mainframe is-a Computer; and Desktop is-a Computer.
  2. A class is made up of other classes or primitives.  Any component of a class that is not another class is a primitive.  For example, numbers are often considered primitives.  We call the components of a class its properties.  A class has properties, so we call this inclusion relation has-a relation. Going back to our computer example, every computer has memory.  Every memory belongs to the class Memory.  Therefore, as a class Computer has Memory.  Now because Laptop, Mainframe, and Desktop are subclasses of Computer, each has Memory

Protege-OWL

Protege-OWL is an application for creating ontology based on the mark-up language
Web Ontology Language (OWL).  In order to use MR POTATOHEAD 1.0, you need to install Protege-OWL on your machine:

  1. Visit the download page.
  2. Although you do not need to register to download Protege-OWL, you would benefit from registration, because Protege-OWL is under active development.  If you don't like to register proceed, otherwise follow the links in the registration page.
  3. Under Protege 3.3.1 choose full Protege.  This is important because visualizing ontology requires the full version of Protege-OWL. 
  4. Choose the proper download based on your operating system.  If you are using a Mac the rest is automatic.  For other operating systems choose the version that includes Java VM, unless you are comfortable with Java and can locate the Java VM on your machine yourself. 
  5. Choose the default values offered by the installer for the rest of the steps. 

Now that you have Protege-OWL installed on your machine you need an ontology visualization application:

  1. You can find a list of Protege-OWL plug-ins here
  2. Under Topics choose Visualization.  You will see quite a few visualization applications here.  We generated our graphs using OntoViz.  To run OntoViz you will need to install GraphViz first. 
  3. GraphViz installation packages are specific to the operating system you use.  If you use a Mac, you can find the installer here.  For other operating systems visit the GraphViz download page.  Remember where you install GraphViz, because you may need to return to it later to activate OntoViz.     
  4. Once you have downloaded GraphViz, start Protege-OWL.  Open any of the Protege-OWL files included in the installation, for example newspaper.pprj.  Once in Protege, click on Project and choose Configure.  Find the OntoVizTab checkbox in Tab Widgets, check it, and click OK.  You should now see the Ontoviz tab at the rightmost side of the tabs.  If you don't find the OntoVizTab checkbox or don't see the Ontoviz tab after checking the OntoVizTab checkbox, you need to modify a file in Protege-OWL: Find the installation directory for Protege-OWL.  If you use Windows the default installation directory is C:\Program Files.  In the Protege 3.3.1 directory, find the plugins subdirectory.  Within plugins there is another subdirectory called dfki.protege.ontoviz.  There you will see a few files.  One file is called protege.  Open it with a text editor.  Here is where you need to know the GraphViz installation directory.  Add the following line to the file:

dot.command="[Graphviz installation directory]\\bin\\dot.exe"

Under Windows the default installation directory is C:\\Program Files\\Graphviz2.16.  So you should add

dot.command="C:\\Program Files\\Graphviz2.16.\\bin\\dot.exe"
 
save and close the file. 

This is a good place to start experimenting with Protege-OWL before you download MR POTATOHEAD code.  Open any one of the files that comes with the standard installation of Protege-OWL, preferably pizza.pprj.  On the Help menu click on Protege-OWL Tutorial.  This opens a page of support material.  Download a copy of Protege-OWL Tutorial.  This de facto standard introduction to Protege-OWL is accessible to beginners; it is written clearly and provides numerous examples on how to use Protege-OWL functionalities.  Spending a few hours on this tutorial will provide you with enough ontology building skills as to be able to frame an ABM-LUCC in MR POTATOHEAD.  You can also try your hand at more advanced features of Protege-OWL such as logical reasoning and inference once you are comfortable with the basics of Protege-OWL.

MR POTATOHEAD OWL 1.0

Now that you have Protege-OWL and OntoViz on your machine, you can download MR POTATOHEAD OWL 1.0, the first rendition of MR POTATOHEAD in Protege-OWL.  MR POTATOHEAD OWL 1.0 comes in a zip file that includes:

  1. Protege-OWL code for MR POTATOHEAD.  This file is called LUCC and should be opened with Protege-OWL. 
  2. A Java-style documentation folder for LUCC called Documentation.  This folder contains all MR POTATOHEAD classes and properties. 

Once you open LUCC in Protege-OWL, click on OWL Classes tab.  This will show you all the classes used to make LUCC.  Click on class LUCC.  Each class has two views: the Logic View and the Properties View.  You can change views by clicking the radio buttons on the lower right corner of the frame.  The default view is Logic View where you see is-a relations of a class.  The Properties View gives you the list of properties for each class.  If you change the view for LUCC you will see seven properties of LUCC: hasDemographics, hasEnvironment, ....  To visualize the properties of LUCC click on the OntoViz tab.  Below tabs, on the upper left hand side of the frame you will see Config.  In front of config you will see a few icons.  Under Config, you will notice nine small boxes: frame, sub, sup, slx, isx, ....  Highlight lucc.  Click on the first icon in front of Config: .  This means add (+) a class (c) to the visualization frame.  LUCC should appear in the panel.  Check slx, isx, and sle boxes and press the rightmost button in front of Config .  The meaning of each of the checkboxes is explained in OntoViz help.  However, after a few hits and misses you will realize what each checkbox means.  For example, sup means superclass, sub means subclass and ins means instance.  To save click on Op.  Click on the general tab.  Once in general, check "save as gif".  This will save your graph in the .gif format in the LUCC directory with the default file name of LUCC.  Warning: OntoViz saves the last graph it has created, throwing away previous ones.  So save the graphs, preferably in a different directory with more expressive names, before you create new ones.   Here is our graph showing the top level structure of a LUCC:



As another example, here is the top level graph for the Landscape class:

This graph clearly shows that Landscape is a component of Environment, which is in turn a component of LUCC.  We can extend this has-a relation to the lower level classes: Each Landscape has GISLayers and SpatialDataStructures and so on. 

Graphs can also show is-a relations.  For example, the following graph shows the different types of agents in a LUCC:



You can find more complex graphs that include multiple is-a and has-a relations here.

Feedback

MR POTATOHEAD is a work in progress.  We are instantiating a few ABM-LUCC in MR POTATOHEAD at the moment to test the robustness of the framework.  We would like you to try it and tell us where you find it wanting.  Quieries, comments and suggestions about the design of MR POTATOHEAD are especially welcome.  MR POTATOHEAD OWL is developed by Dawn Parker and Gary Polhill.  This site was developed by Seyed Rizi, Center for Social Complexity, George Mason University.