Some concepts about DoKS (in Dutch)

From DoKSwiki

Inleiding

Bibliothecarissen kennen een lange traditie in het beschrijven en catalogeren van boeken door middel van bibliografische records. Deze records bevatten informatie zoals de titel, de auteur, trefwoorden, enz.. Wanneer we bezig zijn met e-content spreken we van metadata (gegevens over de data zelf). Dublin Core is bijvoorbeeld een populaire metadata standaard.

In DoKS gebruiken we ook metadata records om objecten te beschrijven. Deze objecten kunnen zowat alles inhouden, van multimedia (foto's, muziek, e-books) die samen met de metadata in DoKS opgeslagen kunnen worden tot echte objecten die niet elektronisch opgeslagen kunnen worden (kunst, auto's, ...).

Een record kan ook feitelijke informatie bevatten in plaats van metadata. Een FAQ (Frequently Asked Question - Veelgestelde vraag) bevat bijvoorbeeld een vraag en een antwoord.

Records en Structuren

Verschillende types van objecten hebben nood aan verschillende metadata sets. Daarom is het in DoKS mogelijk om je eigen metadata sets te specifiëren als 'structures'. Een structure bepaalt alle velden voor een specifiek type van record. Een FAQ structure zal een antwoord veld bevatten terwijl een Dublin Core structure een description veld, een creator veld, enz.. zal bevatten. Dit wordt allemaal gedefinieerd in een XML configuratiebestand 'structures.xml' waarvan je hieronder een voorbeeld ziet.

<?xml version="1.0" ?> <structures>

 <structure name="FAQ" descriptionname="question">
   <field type="text" name="answer" required="true" maxlength="10000"/>
   <field type="fileset" name="attachments"/>
 </structure>
 <structure name="Discussion" descriptionname="subject">
   <field type="recordlink" name="threadParent" classname="Discussion"/>
   <field type="recordlinklist" name="replies" classname="Discussion"/>
   <field type="text" name="body" maxlength="10000"/>
   <field type="fileset" name="attachments"/>
   <action name="reply" script="Discussion_reply"/>
 </structure>
 <structure name="Document" descriptionname="title">
   <field type="text" name="summary" maxlength="10000"/>
   <field type="fileset" name="documents"/>
 </structure>
 <structure name="Author" descriptionname="name" listfields="description">
   <field type="recordlinklist" name="work"/>
 </structure>
 <structure name="ETD" descriptionname="title">
   <field type="recordlinklist" name="authors" classname="Author"/>
   <field type="text" name="summary" maxlength="10000"/>
   <field type="html" name="publisher"/>
   <field type="integer" name="publicationDate"/>
   <field type="fileset" name="full_text"/>
   <field type="fileset" name="appendices"/>
 </structure>
 <structure name="KHK_ETD" extends="ETD">
   <field type="text" name="promotor" maxlength="1024"/>
   <field type="integer" name="thesisNumber"/>
 </structure>

</structures>


Zoals je kan zien heeft ieder veld een naam en een type. Hieronder vindt u een volledige lijst van mogelijke veld types.

Naast de door de gebruiker gedefinieerde velden, bevat elk record ook een description (beschrijving), een creatiedatum, een datum waarop het record laatst is gewijzigd en een eigenaar. Je kan aan het description veld een bijnaam geven zodat het meer betekenisvol is voor een specifieke structuur (bijvoorbeeld titel of vraag in plaats van description).

Een structuur kan ook een uitbreiding zijn van een andere structuur op een objectgeöriënteerde manier. In het voorbeeld van de KHK_ETD erft deze structure al de velden van de ETD structure en worden er nog twee aanvullende velden gedefinieerd. Dit betekent ook dat als je zoekt naar ETD records, je ook de KHK_ETD records zal vinden

Folders (mappen)

Folders komen qua concept overeen met directories in een bestandssysteem. Ze vormen een boomstructuur en worden gebruikt om records te organiseren. Eén record kan tegelijkertijd in verschillende folders gestopt worden. Op deze manier zijn er verschillende zoekpaden naar hetzelfde record. De folders kunnen bijvoorbeeld gebruikt worden om een classificatiesysteem na te bootsen of de structuur van een organisatie of een bedrijf, gemeenschap en zo verder..

Je moet aanduiden welke structuren toegelaten zijn in een bepaalde folder. Dit betekent dat enkel records toegevoegd kunnen worden aan een folder waarvan de structuur toegelaten is in die folder. Deze structuren worden getoond als tabs in de web interface die het ook mogelijk maken om enkel records te bekijken van een bepaalde structuur.

Je kan een info record aan een folder toevoegen. Dit record kan worden gebruikt om de inhoud van een map voor te stellen. De pagina waar u nu naar kijkt is een voorbeeld van zo'n info record. Je kan zonder beperkingen gaan bepalen welke structures gebruikt worden als folderinfo record.

Veld types

Zoals voordien aangegeven heeft elk veld in een structure een specifiek type zodat de integriteit tot op zekere hoogte gecontroleerd kan worden. Het is bijvoorbeeld niet mogelijk om willekeurige tekst in een datum veld in te voeren. Momenteel worden volgende types van velden ondersteund:

   * string veld: één lijn tekst
   * text veld: meerdere lijnen tekst
   * html veld: tekst die letterlijk door een browser geïnterpreteerd zal worden
   * url veld: tekst die getoond zal worden als html anchor
   * choice veld: een waarde die gekozen moet worden uit een op voorhand gedefinieerde set van waarden
   * multi choice veld: nul of meerdere waarden moeten gekozen worden uit een op voorhand gedefinieerde set van waarden
   * boolean veld: waar of onwaar
   * integer veld: een integer getal
   * number veld: een double precision floating point getal
   * fileset veld: een set van bestanden (attachments)
   * record veld: een veld dat en volledig ander record bevat
   * recordlink veld: een link naar een ander record (met een specifieke structuur)
   * recordlinklist veld: een lijst van links naar andere records (met een specifieke structuur)

De recordlink en recordlinklist veldtypes hebben een bijzondere aard omdat ze ons toelaten relaties tussen bepaalde records te gaan aanduiden. Dit kan bijvoorbeeld gebruikt worden om de relatie tussen auteurs en artikels of tussen documenten en annotaties aan te duiden.