Changes between Version 5 and Version 6 of CmdiClavasIntegration


Ignore:
Timestamp:
05/22/13 15:10:01 (11 years ago)
Author:
twagoo
Comment:

updated xml examples for instances and comp specification

Legend:

Unmodified
Added
Removed
Modified
  • CmdiClavasIntegration

    v5 v6  
    3535A vocabulary of institutes will become available on a short time scale.
    3636
    37 === Specifying vocabularies in CMDI components ===
     37=== Specifying vocabularies in CMDI specifications, schemata and instances ===
    3838
    39 Each concept within a vocabulary is identified by an OpenSKOS specific URI and optionally has a reference to a 'source' URI (e.g. ISOCat). For CLAVAS enabled fields in CMDI metadata '''instances''' we want to store one of these URIs as an attribute, e.g.:
     39==== Specifying vocabularies in CMDI instances ====
     40
     41Each concept within a vocabulary is identified by an OpenSKOS specific URI and optionally has a reference to a 'source' URI (e.g. ISOCat). For fields that link to vocabularies as '''open vocabularies''', we want to store one of these URIs as an attribute in CMDI metadata '''instances''', e.g.:
    4042
    4143{{{
    4244#!xml
    43 <language clavas:id="http://cdb.iso.org/lg/CDB-00138580-001">Dutch</language>
     45<language cmd:VocabItem="http://cdb.iso.org/lg/CDB-00138580-001">Dutch</language>
    4446}}}
     47
     48Notice the ''cmd''-prefix to disambiguate and prevent clashes with potential custom attributes of this name.
    4549
    4650Each vocabulary item has an CLAVAS URI and optionally a 'source URI' (which generally will come from the primary data source, e.g. ISOCat), as in the example above.  There will be a deterministic fall-back mechanism in Arbil that chooses the source URI if available, otherwise the CLAVAS URI.
    4751
    48 The value that serves as the text content should come from one of the child elements of the concept definition. Typically this will be the preferred label as specified in the vocabulary item returned from the API but it could also come from another element (e.g. a notation element that has a language code). Which path to use should be part of the component specification.
     52The value that serves as the text content should come from one of the child elements of the concept definition. Typically this will be the preferred label as specified in the vocabulary item returned from the API but it could also come from another element (e.g. a notation element that has a language code). Which path to use should be determined in the component specification (possibly part of the vocabulary URI).
    4953
    50 Vocabularies can be designated as either closed or open, and Arbil will present them accordingly but will always allow arbitrary input (as it does now). We have to accept that values cannot always be validated against closed vocabularies coming form an external service (in contrast to closed controlled vocabularies that come from the schema as we already have). Applications like Arbil and harvesters could have validation steps in addition to schema validation that check the validity of the values in elements that have a vocabulary reference. Possibly Schematron could be used to implement this.
     54'''Closed vocabularies''' will be no different from standard CMDI closed vocabularies on the instance level. All required information will be available from the schema (see below).
    5155
    52 Taking these things into account, an element specification in a CMDI component or profile could look something like:
     56==== Specifying vocabularies in CMDI component specifications ====
     57
     58Taking the above into account, an element specification in a CMDI component or profile could look something like:
     59
     60===== Open vocabularies =====
     61
     62Specified using attributes on CMD_Element
     63* !ValueScheme has to be string. For this we add a schematron rule to the general component schema.
     64* Vocabulary URI (can be URL or URN) gets specified in Vocabulary attribute
     65* Value field optionally specified, either as a parameter on the URI or as a separate attribute (TODO: DECIDE). It would be nice if we could pass the 'label' selection on to the API so that a pre-selection can happen server side (making the processing of the response more uniform)
     66
     67Example:
    5368
    5469{{{
     
    5873    CardinalityMax="1"
    5974    CardinalityMin="1"
    60     clavas:vocabulary="http://openskos.org/api/institutions"
    61     clavas:type="open"
    62     clavas:valueElement="prefLabel"
     75    ValueScheme="string"
     76    Vocabulary="http://openskos.org/institutions?label=name"
    6377/>
    6478}}}
    6579
    66 The "clavas"-attributes could go straight into the generated profile XSD, pretty much like the "datcat"-attributes and read like that from the schema by client applications.
     80OR
     81
     82{{{
     83#!xml
     84<CMD_Element
     85    name="Institution"
     86    CardinalityMax="1"
     87    CardinalityMin="1"
     88    ValueScheme="string"
     89    Vocabulary="http://openskos.org/institutions"
     90    VocabularyLabel="name"
     91/>
     92}}}
     93
     94
     95===== Closed vocabularies =====
     96
     97{{{
     98#!xml
     99<CMD_Element
     100    name="Language"
     101    CardinalityMax="1"
     102    CardinalityMin="1"
     103    Vocabulary="http://openskos.org/api/languages?label=iso-639-3">
     104    <ValueScheme>
     105      <enumeration>
     106         <item AppInfo="Dutch" VocabItem="http://cdb.iso.org/lg/CDB-00138580-001">dut</item>
     107         <item AppInfo="French" VocabItem="http://cdb.iso.org/lg/CDB-00138512-001">fra</item>
     108      </enumeration>
     109    </ValueScheme>
     110</CMD_Element>
     111}}}
     112
     113==== Specifying vocabularies in CMDI profile XSD's ====
     114
     115The values of the vocabulary related attributes could go straight into the generated profile XSD, pretty much like the "datcat"-attributes and read like that from the schema by client applications. We can put them
    67116
    68117=== CLAVAS vocabulary sources ===