This information is taken from the TopQuadrant web site, Ontology Development page. I am still trying to understand some of this information.
More people understand CSV files (comma separated values), relational databases, Microsoft Excel spreadsheets, and perhaps even XML for approaches to storing and using information better than they might understand an ontology. (See this blog post if you are trying to understand what an ontology is.)
Ontologies are powering the next generation of software applications. Ontologies are active models of information that are like and unlike other information modeling approaches you may be more familiar with:
- Like databases, ontologies are used by software applications at run time to provide information to the users of the software applications. HOWEVER, unlike databases, relationships in the ontologies are ‘first-class’ constructs, have rich explicit semantics and are used locally or globally because the nature of the information and the syntax of the information can be exchanged between business systems (as opposed to use being restricted to your internal database because the syntax is proprietary or the semantics are hard coded into the software)
- Like object models, ontologies describe classes and attributes (properties). HOWEVER, unlike object models, ontologies are set-based. (I don't understand what this means, I will try and figure this out...watch for a subsequent post.)
- Like business rules, ontologies encode business rules which are basically some formal and implementable expression of a user requirement; HOWEVER, unlike business rules, ontologies organize rules using class structures (they are formally grouped), they are written using a global standard format, which means that the business rules can be effectively exchange between business systems.
- Like XML schemas, ontologies are native to the web and can be serialized in XML; HOWEVER, unlike XML schemas, ontologies are graphs (not trees), can be used for reasoning, an infinite number of explicit relations can be expressed (rather than the one implicit relation of an XML schema).
XBRL is closer to something like RDF than it is to XML Schema. In fact, that is why the elements within an XBRL taxonomy are "flat". XBRL tried to overcome the limitations of XML Schema by using only parts of it. This is why tuples in XBRL are so bad for extensibility; they basically go back to using XML Schema.
The XBRL definition relation is similar to RDF-type expressions of information. Definition relations are somewhat standard in that they use XLink. But, it does not seem that XLink is catching on.