A few days back I wrote about a project where we decided to use SKOS rather than OWL to model two domain ontologies. Recently, in a new project building on the base of the previous, we’ve come to the opposite conclusion.
Why these differences? And how can we design the system to support both modeling paradigms? I’ll try to answer the first part here, and the latter in a followup to this post.
Why was the situation so different different that one project landed on using SKOS, a thesaurus representation, while the next OWL, a formal ontology representation. First of all it was the functional requirements.
The SKOS project was focused on associations and loose hierarchy where it was not natural to aggregate resources. Refining meant drill down based on the additional metadata of the resourches, i.e. through faceted filtering. The number of resources was low enough to make human annotation possible (approx 9000). And the relativly high number of classes (approx 5000) made it hard to maintain any but a hiararchy of topics.
The OWL project, on the other hand, had requirements that the user would gradually refine his query through navigation, e.g. from “Rock” to “Folk Rock”. Or from “Bob Dylan” to “Bob Dylan the song writer”. The resources are numerous (more than 300k), whereas classes are expected to be low (approx 1000). Resources will also contain more specific metadata allowing OWL expressions.
Overall the applications are quite similar, still we have chosen to model differently. It would be nice to hear if others have the same experience. Our next step is too allow the tools to handle both.