This is a SKOS System Organization Primer.
The most important thing which I got out of this webcast was a better understanding exactly what SKOS brings to the table and the difference between a controlled vocabulary, a thesaurus, a taxonomy, an ontology:
- Controlled vocabulary. Basically a set of standard terms. For example, "Yes" and "No" is a controlled vocabulary. May seem odd; but one could also use "yes" and "no"; "true" and "false"; "yeah" and "nay"; you get the point. A listing of postal codes for each of the states in the United States is a controlled vocabulary.
- Taxonomy. A taxonomy adds the notion of a hierarchy between the members of a controlled vocabulary. For example, the terms "horse" and "cat" and "dog" are all types of "mammals".
- Thesaurus. A thesaurus provides a specific type of relationship, a similar term, a broader term, or a narrower term.
- Ontology. An ontology allows you to define your own types of relationships; specific, explicit types of relationships rather than general "parent-child" type relationships.
So SKOS is the global standard way for defining controlled vocabularies, taxonomies, thesauri. SKOS is also a standard way to build other ontologies, it seems. SKOS leverages the standards RDF and OWL. So basically, SKOS is a standard way of using the RDF and OWL standard to extend the SKOS framework. So, SKOS is extensible in a controlled manner.
Why is this important for XBRL? Two reasons. First, this clearly shows the weakness of things like the "parent-child" relationship in the XBRL presentation relations. "Parent-child" has no real meaning. But, people building taxonomies (a) imply meaning, (b) imply meaning differently thus creating inconsistencies, (c) don't communicate that meaning to others using the XBRL taxonomy. This is true of both the IFRS and US GAAP financial reporting taxonomies.
Second, the XBRL definition relations DO provide a mechanism for communicating meaning of relations. For example, the XBRL Dimensions specification does exactly this, defining "all", "not-all", "hypercube-dimension", "dimension-domain", "domain-member" relations. Now, these are more technically oriented-type relations; but they are explicit. Other explicit type relations can be defined. However, is XBRL the best mechanism for articulating more relationships? Is SKOS better? Or OWL?