OntologyDesignPatterns

RDF and OWL focus on triples. Triples are okay for summarizing web page property values, but to model anything really complex like a pathway, you need to adopt powerful standard patterns of triples - structures of them used in specific ways, each of which can be productively reused over and over again.

This page is dedicated to links of specific examples. Please add your favorites, and try to discuss their potential both in general, and with at least one example NOT taken from biochemistry. Why? Because if an example has uses only in BioPAX, it may well be too specialized to be a true design pattern:

**** AssociationPattern - This is the base for a huge number of specializations. Instances start with a blank node, then attach ONLY objectProperty slots called Roles, and assign their combination a type. Examples of its usage include:

**** TopicPattern - This is the "complement" to an Association in a bipartite graph structure. It models the independent things and concepts in a domain, whereas properties model the relative things, and associations model structures, N-ary relations, collections, and other mediating things.

**** ConceptualGraph patterns - These upper-ontology concepts handle natural language clause meanings - the wholes and parts of situations, events, and processes. Biopax cannot escape these linguistic structures by talking only about physical entities at microscopic scales; by ignoring them, it merely makes itself incompatible with main stream modeling theory.

Maybe release 3.0 will adopt some of the above design patterns, which fit with natural human grammar far better than do binary relations - an often confusing oversimplification.


Questions: (please hereafter post email to follow up)

Gary: Hey Dan, this looks like a cool page. Would it be possible to post some OWL examples that people could load up in Protege to check out? It would clarify a number of the concepts you are using e.g. what is a blank node? Is a topic map the same as the tag system in [WWW] http://del.icio.us, [WWW] http://youtube.com, and all the new hip websites? What is a "naked singularity"?

Dan: You do not need Protege to see this stuff, Gary, just your web browser. However, I know some examples would help, so...

Oliver: I have read these pages and I am still not sure what these design patterns mean, how they are used and what their benefit is. Can you please send me a few examples of ontologies that were designed according to these design patterns? That would greatly help.

Dan: The association of a whole to its parts is as important in modeling as class-instance. Most computer languages honor it via built-in data patterns, classes, and idioms for structures and collections, but SW languages are pretty weak here.

SW users are notoriously poor at dealing with whole-part models in all their many forms. Too much notational flexibility in using triples may prevent any one pattern from arising as a standard. Everyone picks their own, no useful libraries of examples build up, and so the whole-part wheel gets endlessly re-invented.

The XTM (TopicMap) standard from ISO uses associations (AKA "n-ary" relations), not triples, to build up descriptive data structures. Whole-part models are trivial to embed into associations, and because only one basic pattern exists for them in XTM, its whole-part models have a lot less variety.

This lets shared community experience build up much faster at the "best practice" level. Such benefits are subtle, but WholePartPattern types build up over several layers. I think they are why XTM competes so well world-wide against RDF.

AssociationPattern and TopicPattern declare in OWL-DL what XTM uses. They can let RDF users "catch up" on expressivity levels for Whole-Part and Collection models. By adding OWL's inferencing and constraint checking powers - things missing from XTM - they can also make these design patterns especially "hot".

The WholePartPattern makes sophisticated concepts much easier to define in OWL - for Structures, Substances, Situations, Processes, Collections, Descriptions, etc.. Using a simple naming rule, one can just list the PART types all needed Association types should possess and you are done except for the class constraints. [WWW] These PSIs show examples.

The ConceptualGraph layer expands Situation and Process types into bulk "whole-part" semantics models for English verbs, prepositions and modifiers which can instantiate directly into English clause meanings. Here are related ontologies showing examples at this linguistic level:

By nesting such models inside one another, arbitrarily complex circumstances, stories, and activities can be formally modeled (as typed whole-part association graphs) that tap into our normal human thought patterns, speaking powers, and written texts.

Their domain independence (relatively speaking) makes them a favorite for NLP work, but BioPAX can also reuse these "upper ontology" concepts as handy types for its top-level classes, class constraints, domains, etc.

They would be much more precise than owl:thing, and help BioPAX integrate better with other ontologies. Their value just in annotation and specs, however, is ample for me to cite them in a ReleaseToolsProposal.

last edited 2008-01-18 17:49:49 by DanCorwin