Ontologies Great and Small: Size Matters
Ontologies are not all created equal. There are a few different types of these knowledge bases, each with its strengths and shortcomings. Ontologies vary from being domain-specific and focused only on the details of a single topic (such as pizza or wine) to being large and all-encompassing. The current business trend is to work with smaller, often custom ontologies that satisfy a business's particular queries. However, this approach risks overlooking valuable assets in greater ontologies that may be successfully reused.
This section demonstrates the difference in potential intelligence between an application that uses small ontologies and one that uses large ontologies. On the large end, consider the biggest ontology of them all: the Cyc project, a very ambitious attempt to collect all the world's knowledge in one knowledge base. Cycorp, a company that develops, commercializes, and applies the Cyc technology, claims to have about a quarter of the world's entire knowledge already organized. For the small ontology, consider one that has to do with pizza and comes packaged with Protégé, a free ontology visualization and editing tool.
In corporate software development, speed and quality are key. Small ontologies that deal only with a domain of interest have a shallower learning curve, require less research, and allow you to get the right data quickly and easily. The ontology also is more manageable because you can browse it easily. With a small, domain-specific ontology, its correct/intended use can be more intuitive as well, and scalability is not a major concern.
| A forward-thinking development team will build an application based on an architecture that allows that application to grow easily.|
On the other hand, the quality of a software product depends on more than just how manageable it is. A forward-thinking development team will build an application based on an architecture that allows that application to grow easily. While using smaller ontologies doesn't necessarily prevent having forward-looking architecture, one pitfall scenario can go as follows.
Imagine that your application helps customers order pizzas. You can use a small ontology to allow the customer to change toppings quickly, play around with different variations, and finally create the best virtual pizza ever. But does the restaurant have enough ingredients, or do they need more delivered? Will the customer need to pick up the pizza from the restaurant or can it be delivered? Does the oven work? These are issues outside the realm of strictly pizza. They have to do with transportation of ingredients, issues with the restaurant paying its electricity bill, and other order-fulfillment concerns. For these concerns, the application would be better served using a larger ontology like Cyc, which is available in RDF-based OpenCyc.
Reuse is a best practice of development, and Semantic Web development is no different. Having organized 25% of the world's knowledge, Cyc can be very helpful in that approachto a point. An ontology should be built with use cases in mind, the ultimate goal being to make retrieving certain data easier.