Ontology Design Principles

From Spatial Data on the Web Working Group
Jump to: navigation, search

This is a developing list of design principles to be applied to the work of the group Please add your favourite principle here, and put your name on it so that we can discuss and adopt or reject in meetings. When such decisions are made they will also be adopted here

There is a recent paper on this topic by Hitzler at al -- should dig this up. Also we did this early in SSN design -- should re-visit those ones -Kerry

OWL constructs

  1. Use local restrictions in preference to domain and range axioms - Kerry
  2. Consider the OWL sub language we should stick to (my vote is for OWL-DL) - Kerry
    1. This is important for reasoning. However, may limit expressivity. May also limit reuse of some popular existing vocabularies (SKOS, Dublin Core) which are not DL compliant. - Scox
  3. When reusing terms from other ontologies, its ok to use them as annotation properties as long as they are not already declared as owl: classes, object- or data- properties in the source. If they are defined as owl: classes, object- or data- properties they must be reused as the same type and they must be reused in the full context of that other ontology. Otherwise we will prevent our ontology from being used together with that source one, ever. Exception: such reused terms may be used arbitrarily as properties of the ontology itself. See OWL 2 Structural Specification section 5.8.1. (http://www.w3.org/TR/owl2-syntax/#Typing_Constraints_of_OWL_2_DL) --Kerry

Annotation Properties

  1. Use rdfs:comment to provide an extended English description of the meaning - Kerry
  2. Provide rdfs:label and rdfs:comment text in multiple languages (at least including English) - Kerry
  3. Use dc:source to reference the source of a term -- using a URI if possible - Kerry
    1. rdfs:seeAlso is also useful - SCox
  4. Use rdfs:isDefinedBy to reference the ontology URI itself - Kerry, but I don't care about this much
    1. This is a common but not universally respected pattern - SCox
  5. Use modularization via owl:imports to reduce ontology sizes to meaningful chunks and for aligning with external ontologies, reusing the same namespace for the chunks. -- Kerry
  6. For ssn we used rdfs:seeAlso annotations to generate modular documentation (Laurent did this work): consider reuse -- Kerry
  7. natural-language constructions are always given a language code. (a very obvious one, but useful to have this explicit) -- Linda

Quality checking

  1. Use the W3C RDF validator -- Kerry
  2. Use the Manchester OWL validator -- Kerry
  3. Use another validator I have forgotten the name of -- Kerry
  4. See also http://wiki.cbnl.org/xwiki/bin/view/3.+Modeling+Guide/Ontology+Quality+Assurance+Tools -- Linda
  5. Validate the consistency of the ontology during editing with active reasoners. Or if not possible, validate using SPARQL queries and reports. -- Linda