26 Feb Choosing an Ontology Framework
Ontology is a knowledge representation language like Roger Schank‘s Semantic Networks and John Sowa‘s Conceptual Graphs or Doug Lenat‘s Semantic Web. An Ontology framework is the model (structure, function and content definition) in which you choose to build your ontology. Like a Relational Database or an Object Oriented Programming Language, an ontology has defined structures, functions and content. You can build your own framework from scratch if you feel so inclined. You are not obligated to do so because there are several frameworks and tools available for implementing and authoring ontologies. Resource Description Framework (RDF) is like the XML of ontologies and many are based on it, but more advanced frameworks may make your work easier.
Perhaps the most widely used framework today is the wise but dyslexic OWL (Web Ontology Language). OWL and its successor, OWL2 grew out of multiple efforts, most notably, the semantic web project in which it was designed to build semantic webs by enabling authors to publish the semantic content of web pages. OWL’s position is strong as it is endorsed by the World Wide Web Consortium (W3C). Tim Berners-Lee of W3C and Doug Lenat of CYCorp are early advocates in the field. Formal semantics of OWL 2 is based on Description Logic (DL), a subset of First Order Logic, of type SROIQ(D). OWL comes with three variants (sublanguages), ordered by increasing expressiveness as OWL Lite, OWL DL and OWL Full, depending on your needs. OWL Lite is a great place to start.
|Understanding Context Cross-Reference|
|Click on these Links to other posts and glossary/bibliography references|
|Prior Post||Next Post|
|Your Place in the Noosphere||Correlation in Neuroeconomics|
|Ontology context||Roger Schank 1986|
|Resource Description Framework (RDF)||John Sowa 1984|
Ontologies capture knowledge in context. The context is expressed as taxonomical trees in which higher order entities (categories and domains) generalize properties of things wherewith you can group them. All the entities from the highest to the lowest are concepts, and often instances, and have properties of their own. Lower order entities (concepts and instances) inherit general properties from above and possess unique properties of their own.
Preparing to Implement an Ontology
As with any data, information or knowledge tool, you begin by organizing the information you want to touch with a knowledge representation tool. If your subject domain is plants and animals, there is already a top level taxonomy that can help you organize your information. If it’s pizza you want to describe, you can probably pull most of the important knowledge elements out of your head. Many domains and classes of problems require you to analyze the available information, understand the sub-domains and categories, then define the concepts and instances, classify them into the appropriate categories and domains, and assign then shared and unique properties to the elements at each level.
As you begin to work with ontologies, you’ll need an ontology editor of which there are many available. Protégé, NeOn Toolkit (for big and multi-lingual projects), and SWOOP editors support OWL. For RDF, there are Rhodonite and TopBraid Composer (also supports OWL2 and SPARQL). SPARQL (Sparkle) is a tool that lets you retrieve and manipulate data stored in RDF format in a way analagous to the way Structured Query Language (SQL) accesses relational data.
The knowledge in the ontology is all well and good. Eventually, you will want to do something with it. Once again, you can build your own processes that look into the ontology, find meaningful knowledge applicable to your needs, then use the knowledge in automated processes. Once again, you don’t have to build these processes from the ground up as there are reasoners like FaCT++, HermiT or Pellet.
I have just brushed the surface today, with useful pictures and links. I plan to add more meat for you in my future posts. For a discussion of how to implement a fuzzy ontology using C#, look at Václav Slavíček‘s articles at The Code Project. See you next time.
|Click below to look in each Understanding Context section|
|4||Perception and Cognition||5||Fuzzy Logic||6||Language and Dialog||7||Cybernetic Models|
|8||Apps and Processes||9||The End of Code||Glossary||Bibliography|