skos documentation properties, alternatives

ok, this is an attempt to summarize some alternatives
for modeling SKOS' documentation properties.

use cases/patterns:
- maintain/store plain note content
- maintain/store structured note content
- maintain/link to remote note document

####### current approach: ########
- n terms
   - 0 classes
   - n general rdf:Properties
- each property can be used to link a concept
  to either a literal value, a (blank) untyped
  note node, or a document.
- use case examples:
   [[[
      <skos:Concept rdf:about="#foo">
         <skos:example>bar</skos:example>
      </skos:Concept>
   ]]]
   [[[
      <skos:Concept rdf:about="#foo">
         <skos:example rdf:parseType="Resource">
            <rdf:value>bar</rdf:value>
         </skos:example>
      </skos:Concept>
   ]]]
   [[[
      <skos:Concept rdf:about="#foo">
         <skos:example rdf:resource="bar.html" />
      </skos:Concept>
   ]]]
- advantages:
   - only n terms need to be invented
- (potential) disadvantages:
   - interpretation of instance data and auto-
     generating forms can't be unambiguously done
     by looking at the model only
   - instance data may need to be pre-processed
     to be usable with OWL DL systems

####### alternative approach 1: ########
- n*2 terms
   - 0 classes
   - n owl:DatatypeProperties
   - n owl:ObjectProperties
- separate properties are used
- use case examples:
   [[[
      <skos:Concept rdf:about="#foo">
         <skos:example>bar</skos:example>
      </skos:Concept>
   ]]]
   [[[
      <skos:Concept rdf:about="#foo">
         <skos:exampleNote rdf:parseType="Resource">
            <rdf:value>bar</rdf:value>
         </skos:exampleNote>
      </skos:Concept>
   ]]]
   [[[
      <skos:Concept rdf:about="#foo">
         <skos:exampleNote rdf:resource="bar.html" />
      </skos:Concept>
   ]]]
- advantages
   - unambiguous use of documentation properties
   - OWL DL-happy (?)
- disadvantages
   - doubled number of documentation properties
   
####### alternative approach 2: ########
- n+2 terms
   - n classes
   - 1 owl:DatatypeProperty
   - 1 owl:ObjectProperty
- a single object property is used to link a concept
  to a note, notes can be typed.
- use case examples:
   [[[
      <skos:Concept rdf:about="#foo">
         <skos:note>
            <skos:Example>
               <skos:noteValue>bar</skos:noteValue>
            </skos:Example>
         </skos:note>
      </skos:Concept>
   ]]]
   [[[
      <skos:Concept rdf:about="#foo">
         <skos:note>
            <skos:Example>
               <skos:noteValue>bar</skos:noteValue>
            </skos:Example>
         </skos:note>
      </skos:Concept>
   ]]]
   [[[
      <skos:Concept rdf:about="#foo">
         <skos:note>
            <skos:Example rdf:about="bar.html" />
         </skos:note>
      </skos:Concept>
   ]]]
- advantages
   - unambiguous use of documentation properties
   - more or less the same serialization for any
     use case
   - OWL DL-happy (?)
   - untyped notes are possible
   - notes can get multiple types (e.g. a public
     editorialNote, types from other vocabs)
   - facilitated querying (?)
- disadvantages
   - serializations are a little bit more complex
   - no plain literal notes (which doesn't really
     facilitate the generation of simple editing
     forms)

hope this is helpful at all, still looks like a job
for the vocab management task force..


regards,
benjamin

--
Benjamin Nowack

Kruppstr. 100
45145 Essen, Germany
http://www.bnode.org/

Received on Sunday, 27 February 2005 22:14:56 UTC