Here are some ways that people use to "solve" arbitrariness problems that I am aware of, some are better solutions than others, and some can be combined:
Identifier directories - Use already published subject identifiers from other ontologies, these can be found in identifier directories like subj3ct.com and others.
To my knowledge, there is no standardized[7] manner in the current interchange formats[5][6] to describe what identifier directories you are using (just a namespace reference will not do); this means that you need to inform your listeners of this in a seperate document, or as some kind of metadata[4].
Unfortunately, the description of the subjects are open for human interpretation, as it is usually written in plain language (and mostly in English), making it unsuitable for automated systems, or in other words; the listener has to still teach her system what the subjects are.
Adding identifier metadata - Put metadata[4] into the subject identfier, for the color orange one could make an identifier that has the word color in it, like this http://example.com/color#orange, a company could be something like this http://example.com/company#orange .
In my opinion, this is probably the worst way of solving the problem, unless combined with some of the other solutions, some of my reasons are:
- To my knowledge, there is no standardized[7] syntax to build these identifiers, so what the identifiers really mean is up for listeners interpretation
- You still have not said what orange is, only that it is something that is related to color
- You have created a new arbitrariness problem, now with color or company
- Identifiers with lots of metadata can become long and unmanagable
- The more metadata you put into a identifier the less interchangeability[8] you will have; unless you just add new identifiers every time you change something that affects your existing identifiers, which could bloat you ontology
Adding ontology metadata - Adding metadata[4] directly into a ontology is, in my opinion, not a best practice, you should rather make a second ontology for your metadata (a metamap). You could describe all your identifiers in the metamap, but since there is no standardized[7] manner of doing this, you must still document your metamap, which sadly somewhat defeats the purpose of the exercise.
Adding Descriptive Logic - Personally I think Descriptive Logic[10] is the way to solve the identifier arbitrariness problem as it will explain subjects in a structured manner, which will also support automated systems; in fact, Knowledge Representation[11] use Descriptive Logic. Unfortunately, to my knowledge, Descriptive Logic is not available for Topic Maps, although there have been some attempts with combining OWL[12] with TMDM[13] and TMCL[14].
Hopefully, a custom knowledge representation language will be part of the topic maps ISO standards in the future.
---
[1] The Antropology of a Language, Harriet Joseph Ottenheimer, Thomson - Wadsworth, 2006, page 179
[2] Ontology , Wikipedia
[3] The Antropology of a Language, Harriet Joseph Ottenheimer, Thomson - Wadsworth, 2006, page 178
[4] Metadata, Wikipedia
[5] XML Topic Maps (XTM) 1.0, TopicMaps.org
[6] Topic Maps - XML Syntax, TopicMaps.org
[7] Standardization, Wikipedia
[8] Interchangeability, Wikipedia
[9] Topic Maps - Data Model, isotopicmaps.org
[10] Description logic, Wikipedia
[11] Knowledge representation, Wikipedia
[12] OWL Web Ontology Language Overview, W3C
[13] Building Topic Maps in OWL-DL, Anne Cregan, Artificial Intelligence Group, University of New South Wales
[14] TMCL and OWL, Lars Marius Garshol, Bouvet

