1 Inleiding Dit document behandelt de gegevensstandaard CdbXML 3.0, een eenvoudige en efficiënte XMLstructuur om cultuurdata uit te wisselen. Onder cultuurdata begrijpen we: een brede waaier aan gegevens die onder meer betrekking hebben op het cultuuraanbod (culturele activiteiten), organisaties, en locaties waar er cultuur wordt aangeboden. De uitwisseling van data kan zowel plaatsvinden tussen de CultuurDatabank en de verschillende organisaties of partners, als tussen (culturele) organisaties onderling. Om de verspreiding van gegevens vlot te laten verlopen en de kennisdeling op het veld te bevorderen, was het aangewezen om een gegevensstandaard te ontwerpen.
1.1 Over CultuurNet Vlaanderen CultuurNet Vlaanderen is een vzw met als opdracht om: -
Via cultuurcommunicatie mensen te stimuleren om (meer) aan cultuur te participeren.
-
Via informatie- en onthaalservices het gemakkelijker te maken om aan cultuur te participeren.
CultuurNet Vlaanderen doet dat via: -
De ontwikkeling en exploitatie van de CultuurDatabank en cultuurweb.be.
-
Landelijke campagnes en initiatieven op het vlak van collectief onthaal en collectieve marketing.
-
Het stimuleren en optimaliseren van collectief onthaal, communicatie en marketing op het niveau van 'Zone 30' (steden, gemeenten, regio's en provincies).
-
Visieontwikkeling, deskundigheidsbevordering en praktijkontwikkeling.
Daarnaast staat CultuurNet Vlaanderen ook in voor de communicatie en organisatie van de uitreiking van de CultuurPrijzen Vlaanderen.
1.2 Contactgegevens CultuurNet Vlaanderen Arenbergstraat 1d, 1000 Brussel Algemeen telefoonnummer: 02/551.18.70 Fax: 02/551.18.99 E-mail: [email protected] Helpdesk CultuurDatabank: [email protected] Wil je op de hoogte blijven van de activiteiten van CultuurNet Vlaanderen? Schrijf je dan in op de nieuwsbrief via http://www.cultuurnet.be/front/nieuwsbrief/registratie.jsp. Voor opmerkingen en suggesties over de CdbXML 3.0 standaard, en daarbij behorend deze documentatie, kan je terecht bij [email protected]. Om van start te gaan met de eigenlijke gegevensuitwisseling neem je contact op met [email protected].
1.3 CdbXML 3.0 documentatie De documentatie is opgesteld zodat je in een mum van tijd aan de slag kan gaan met de implementatie van CdbXML 3.0. Ze bestaat uit een referentiehandleiding, een voorbeeldapplicatie met een bijbehorend voorbeeld XML bestand en een entiteitendiagram. De laatste versie van de documentatie is steeds beschikbaar op: http://www.cultuurdatabank.com/CdbXML.
p. 4 van 65
Dit document doet dienst als referentiehandleiding. De structuur van CdbXML 3.0 wordt toegelicht a.d.h.v. het XML Schema (XSD)1, met nadruk op de meest gehanteerde informatie-eenheden (producties, evenementen, links en actoren) en hun gegevens. Het is bedoeld voor IT–specialisten die verantwoordelijk zijn voor de ontwikkeling van informatiesystemen die gegevens communiceren conform de CdbXML 3.0 standaard. Technische kennis omtrent XML en ontwikkeling van informatiesystemen is voor een goed begrip van dit document dan ook een pluspunt. Naast deze referentiehandleiding is er als extra onderdeel van de documentatie een voorbeeldapplicatie. CultuurDemo is live en voor download beschikbaar is op http://www.cultuurdatabank.com/CdbXML. De applicatie is geschreven in PHP, maar er werd voldoende commentaar voorzien zodat de werking ook zonder PHP kennis duidelijk is. Aan CultuurDemo is een standaard voorbeeld XML document toegevoegd. Dit bestand bestaat uit 20 evenementen waarin alle soorten cultuuraanbod aan bod komen die in CultuurDatabank kunnen worden opgeslagen (te downloaden via http://www.cultuurdatabank.com/CdbXML). Het laatste onderdeel van de documentatie is het entiteitenmodel, een diagram waarin alle entiteiten met hun relaties en attributen werden opgenomen. Dit onderdeel werd ter beschikking gesteld in de documentatie zodat in één oogopslag het volledige model kan worden beschouwd. Gebruik het niet één op één voor de implementatie van je type definitie of je fysische datalaag. Aandachtspunt 1: Wijzigingen Dit document is onderhevig aan wijzigingen. Afgedrukt of lokaal opgeslagen kan het niet meer als up-to-date worden beschouwd. De meest recente versie is beschikbaar op http://www.cultuurdatabank.com/CdbXML.
1.4 Toelichting notatie en beschrijving elementen Waar van toepassing wordt in dit document bij de toelichting van de informatie-eenheden en hun elementen de volgende structuur gevolgd: 1. Definitie, d.i. een globale beschrijving van één element en een bijbehorend diagram, op basis van het CdbXML 3.0 XML Schema1. 2. Voorbeeld, d.i. een XML structuur met de meest voorkomende subnodes voor het beschreven element. 3. Overzicht subnodes, d.i. een tabel waarin voor de node in kwestie en haar subnodes rijen worden samengesteld die bestaan uit volgende kolommen: a. Element, d.i. de CdbXML 3.0 benaming, vb. shortdescription b. Pad, d.i. verwijzing naar de locatie van het element in het XML schema gebaseerd op XPath syntax: i. /cdbxml/events/event/contactinfo voor het contactinfo element vanuit de root node ii. //keywords voor alle keyword elementen eender waar ze zich bevinden in het XML document iii. //@cdbid voor alle cdbid attributen eender waar ze zich bevinden in het XML doucment c. Toelichting, d.i. de betekenis van het element en, indien van toepassing, eigenschappen zoals data type en maximale lengte. d. Verplicht voor, d.i. of een element verplicht is. ‘Price’ is bijvoorbeeld niet verplicht voor een aanbod, maar als ‘price’ voorzien wordt, is haar subnode ‘pricevalue’ wel verplicht.
1
Termen zoals XML, CdbXML 3.0 en XML Schema worden toegelicht in een woordenlijst. p. 5 van 65
2 Hoofd informatie-eenheden Binnen de scope2 van de CultuurDatabank onderscheiden we de volgende types informatie: Aanbod, Culturele Actoren en Links. Volgende voorbeelden illustreren dit onderscheid: -
Aanbod: “Volver”, een film van Pedro Almodóvar met Penelope Cruz speelt 12 augustus om 20h. op het terras van café Zeezicht. Aanbod beantwoordt dus de vragen “Wat, waar, wanneer” voor cultuuraanbod.
-
Aanbod als Productie: het theaterstuk “Onegin” wordt ingestudeerd door de toneelgroep “Het Toneelhuis”. Dit resulteert dan in een lijst evenementen (d.i. aanbod) waar de productie effectief opgevoerd wordt. Producties zijn dus potentieel cultuuraanbod, klaar om georganiseerd te worden. Een productie bevat algemene gegevens voor een aanbod zoals titel, korte beschrijving, afbeeldingen enz. Deze gegevens worden gekopieerd naar het aanbod. Daarom stellen we dat een productie dikwijls fungeert als sjabloon voor een aanbod.
-
Culturele Actoren: culturele actoren zijn organisaties en personen met culturele relevantie, al dan niet gerelateerd aan producties en aanbod. Dit kunnen bijvoorbeeld individuele uitvoerders zijn of gezelschappen, maar evengoed fysieke locaties (plaatsen waar aanbod doorgaat). In bovenstaand voorbeeld (het theaterstuk “Onegin”, zie hierboven “Aanbod als Productie”) is Het Toneelhuis zowel organisator als uitvoerder; Guy Cassiers is regisseur; de Bourlaschouwburg locatie enz. Allen zijn “Culturele Actoren” in de interpretatie van de CultuurDatabank.
-
Links: potentieel elk internetadres of elke website die drager is van culturele informatie. Het kan een site zijn die een aanbod behandelt, vb. www.gentsefeesten.be, of info verstrekt over culturele actoren of onderwerpen vb. een cultureel steunpunt (www.vti.be), een persoon (www.mathiassercu.be), een kunstdiscipline (www.tento.be), een chatbox of forum (http://www.canvas.be/VRTForum/forum.jspa?forumID=38).
Figuur 1: Hoofd informatie-eenheden voor CdbXML 3.0
2
De scope van de volledige inhoud van de CultuurDatabank is erg breed opgevat. Binnen die scope onderscheiden we prioritaire versus niet-prioritaire informatie. En er is inhoud die we expliciet niet opnemen. De afbakening vind je in het “Masterdocument Gegevensstandaard en Categorisatie voor de cultuursector” op http://www.cultuurnet.be/cultuurdatabank p. 6 van 65
Hoe informatie-eenheden tot elkaar in relatie staan wordt toegelicht in paragraaf 8.1. Aandachtspunt 2: één informatietype per XML document Een CdbXML 3.0 document draagt steeds één van de hoofdinformatie-eenheden (event, production, actor, link), al dan niet in combinatie met metadata (gegevens over het betreffende XML document zoals de gebruikte categorisatieversie) en delete XML (mededeling van verwijderde gegevens uit de CultuurDatabank). In 95% van de gevallen zullen partners aanbod (“events”) afnemen uit de CultuurDatabank. Indien dit voor jou het geval is, is van onderstaande hoofdstukken enkel het hoofdstuk over aanbod van belang en de hoofdstukken die onderliggende elementen van aanbod behandelen. Dit document is daarenboven vooral geschreven vanuit het oogpunt van afnemers (subscribers) i.p.v. data-leveranciers (publishers), maar de gehanteerde standaard voor import en export is wel dezelfde. Er is een aparte paragraaf toegevoegd met aandachtspunten voor publishers, zie Hoofdstuk 9. We gaan nu dieper in op elke informatie-eenheid.
3 Aanbod 3.1 Definitie Aanbod omvat zowel het tijdelijke als het permanente aanbod. Het onderscheid tussen tijdelijk en permanent aanbod situeert zich in het tijdsaspect van het aanbod. Permanent aanbod kent geen einddatum en –uur. Het begrip “tijdelijk aanbod” staat voor alle culturele activiteiten met een beperkte duur, al dan niet gebaseerd op een productie. Het kan gaan om aanbod op één of meer welbepaalde data, of om aanbod dat loopt gedurende een bepaalde periode. Enkele voorbeelden zijn: een toneelvoorstelling van Het Paleis in de Singel, een vertoning van een film in Brussel, een voorstelling van een boek geschreven door een Vlaming, een tijdelijke tentoonstelling over Van Eyck, een cursus, een lezing, enz... Bij permanent aanbod maken we een bijkomend onderscheid tussen het aanbod van kunstwerken (bezichtiging) en de activiteiten. Landschappen, sites, hedendaagse architectuur, monumenten beschouwen wij als het permanent aanbod dat voortvloeit uit kunstwerken. Bij het permanent aanbod van activiteiten zien we de permanente tentoonstellingen en educatie. Voorbeelden van permanent aanbod zijn het standbeeld van Brabo op de markt van Antwerpen, het Waasland, ‘Rubens' eigen werk’ in het Rubenshuis, een dagarrangement van het Nationaal Tabaksmuseum in Wervik.
p. 7 van 65
Figuur 2: Overzicht van de basisstructuur van een evenement
p. 8 van 65
3.2 Voorbeeld Onderstaand voorbeeld toont de minimale set van gegevens die noodzakelijk is om een aanbod te definiëren. <event cdbid="14FAFC4B-B52E-AAF9-96C27E569353C01A"> 2007-06-0920:00:00+01:00 <mail>[email protected] <eventcategories> NationaalTheaterVoorstellingen <eventdetails> <eventdetail lang="nl"> vrijdag 09/06/2006 om 20:00 <shortdescription>Radioboeken zijn verhalen, door Nederlandse en Vlaamse auteurs geschreven op verzoek van deBuren. De schrijvers lezen hun verhalen voor en Klara verzorgt de opname en de radiouitzending. OneginAntwerpenBE18 <street>Komedieplaats 2000
Voorbeeld 1 - minimale XML structuur voor een aanbod
3.3 Overzicht elementen aanbod 3.3.1 cdbxml/events/event De elementen van aanbod uit Figuur 2 worden in onderstaande tabel toegelicht. Element
Pad
Toelichting
Verplicht voor
agefrom
//event/agefrom
De leeftijdsklasse van de doelgroep. Dit veld wordt meestal gebruikt bij aanbod voor kinderen. Bij aanbod voor kinderen jonger dan twaalf jaar wordt als mediabestand een pictogram van vlieg verzonden (meer over mediabestanden in paragraaf 7.5). Dit pictogram dient bij het aanbod getoond te worden.
--
p. 9 van 65
calendar
//event/calendar
Voor elk aanbod worden er op een gestructureerde manier tijdsgegevens opgeslagen3. Alle informatie over gestructureerde tijdsgegevens vind je in hoofdstuk 7.4.
//event
contactinfo
//event/contactinfo
Er moet minstens één contactgegeven voorzien worden voor informatie of reserveringen. Volgende soorten contactgegevens bestaan: links, emailadressen, telefoon- of faxnummers, (post)adressen. Meer informatie over het contactinfo element vind je in paragraaf 7.2.
//event
eventcatego ries
//event/eventcategories
Aanbod heeft (net als producties, actoren en links) de verplichte categorieën type en thema. Meer uitleg over categorisatie in paragraaf 7.1.
//event
eventdetails
//event/eventdetails
In eventdetails zitten beschrijvende, al dan niet meertalige velden: titel, korte beschrijving, lange beschrijving, media, geschatte duur, prijs, toegangsvoorwaarden, samenvatting van tijdsinformatie. Zie paragraaf 3.3.2 voor verdere detaillering.
//event
Eventrelatio ns
//event/eventrelations
--
Relatedprod uction
//event/eventrelations/ relatedproduction
Een aanbod kan nul, één of meerdere relaties hebben tot ander aanbod. Zie hoofdstuk 8.1 voor meer informatie over relaties tussen informatieeenheden. Vanuit het aanbod kan er nul of één relatie “heeft als productie” gelegd worden naar de overeenstemmende productie die als sjabloon fungeert voor het aanbod. Zie hoofdstuk 8.1 voor meer informatie. Type
--
string(250)
//event/eventrelations/ relatedproduction/@cdb id
De CultuurDatabank ID van de gerelateerde productie.
De ID uit de databank van een andere publisher dan CultuurDatabank, vb. Socius:12345
--
//event/eventrelations/ parentevent
Aanbod kan ook een hiërarchische relatie hebben tot ander aanbod. Het gaat hier dan om koepelaanbod, zoals de Gentse Feesten en de Zomer van Antwerpen enz. Men kan dan alle evenementen relateren aan het koepelaanbod. Zie hoofdstuk 8.1 voor meer informatie.
--
//event/eventrelations/ parentevent/@cdbid
De CultuurDatabank ID van het gerelateerde koepelaanbod.
--
//event/eventrelations/ parentevent/@externali d
De ID uit de databank van een andere publisher dan CultuurDatabank, vb. Socius:12345
--
keywords
//event/keywords
Het is mogelijk het aanbod met trefwoorden te beschrijven. De lijst van trefwoorden wordt gebruikt bij het zoeken. Het is echter niet de bedoeling om trefwoorden ook aan het publiek te laten zien. Trefwoorden worden door een komma (,) of punt-komma (;) gescheiden.
--
languages
//event/languages
Talen waarin het aanbod kan gevolgd worden. Dit kan bijvoorbeeld bij een Franse film die Nederlands ondertiteld is. Dan is het mogelijk om dit aanbod in het Nederlands en in het Frans te volgen.
--
parentevent
Type
string(250)
3
Omdat //calendar het meest complexe onderdeel van CdbXML 3.0 is, ontvangen afnemers van CultuurDatabank gegevens naast de gestructureerde tijdsinformatie een samenvatting van tijdsgegevens in een vrij tekstveld: //event/eventdetails/calendarsummary. p. 10 van 65
//event/languages/lang uage
//event/languages/lang uage/@type
Eén taal van het aanbod. Voorbeeld
Nl
Type
String
Voorbeeld
Dubbed
Type
--
--
enumeration(‘dubbed’, ‘spoken’, ‘subtitles’)
//event/location
De plaats waar het aanbod doorgaat. Dit is een verplicht veld omdat bij elk cultuuraanbod minimaal de vragen “wat”, “waar” en “wanneer” moeten beantwoord zijn.
//event
//event/location/actor
De locatie kan een actor zijn gerelateerd aan het aanbod. Zie hoofdstuk 8.1 voor meer informatie over relaties tussen informatie-eenheden.
--
//event/location/locatio npart/address
Het adres van de locatie waar het aanbod doorgaat. Meer informatie over de opbouw van het address element vind je in hoofdstuk 7.3.
//location part
//event/location/label
De naam van de locatie waar het aanbod doorgaat.
//location part
//event/location/locatio npart/label/@cdbid
De CultuurDatabank ID van de locatie.
--
//event/location/locatio npart/label/@externalid
De ID uit de databank van een andere publisher dan CultuurDatabank, bijvoorbeeld Socius:12345
--
//event/organisor
De organisator van het aanbod
//event
//event/organisor/actor
De organisator kan een actor zijn gerelateerd aan het aanbod. Zie hoofdstuk 8.1 voor meer informatie.
--
//event/organisor/label
De naam van de organisator.
//organiso r
//event/organisor/label /@cdbid
De CultuurDatabank ID van de organisator.
--
//event/organisor/label /@externalid
De ID uit de databank van een andere publisher dan CultuurDatabank bijvoorbeeld Socius:12345
--
properties
//event/properties
CultuurDatabank kan zelf of in opdracht van de partner attributen (properties) toevoegen aan een aanbod. Attributen voor de partner worden enkel uitgewisseld met de partner in kwestie. De partner is ook zelf verantwoordelijk voor het beheer ervan in CultuurDatabank. Eigenschappen toegevoegd door CultuurDatabank worden publiek ter beschikking gesteld. Meer informatie over properties vind je in paragraaf 7.6.
--
reservations
//event/reservations
De organisatie waar men terecht kan voor reserveringen of ticketverkoop.
--
//event/reservations/ac tor
De reservator kan een actor zijn gerelateerd aan het aanbod. Zie hoofdstuk 8.1 voor meer informatie over relaties tussen informatieeenheden. Noteer dat ook bij contactinfo kan aangegeven worden dat een contactgegeven geschikt is voor reservaties.
--
//event/reservations/la bel
De naam van de reservator.
//organiso r
//event/reservations/la bel/@cdbid
De CultuurDatabank ID van de reservator.
--
//event/reservations/la bel/@externalid
De ID uit de databank van een andere publisher dan CultuurDatabank, bijvoorbeeld Socius:12345
--
location
Type
organisor
Type
Type
string(250)
string(250)
string(250)
p. 11 van 65
attributen
//event/@availablefrom
Het availablefrom datumveld bevat de datum waarop het aanbod publiek gemaakt mag worden. Deze datum kan ofwel in de toekomst liggen (de embargodatum) of kan gelijkgesteld worden met de huidige datum als er geen embargo datum aanwezig is. Zo kan er steeds een indicatie ‘nieuw’ staan bij het aanbod waar de ‘gepubliceerd op’ datum in de buurt van de huidige datum ligt.
--
//event/@availableto
Gegevens waarbij de ‘availableto’ datum verstreken worden als gearchiveerd beschouwd. Tenzij expliciet aangegeven door de gebruiker ligt de datum in ‘availableto’ één dag na de laatste dag waarop het aanbod doorgaat (meer over archiveren in paragraaf 8.3).
--
//event/@cdbid
ID uit de CultuurDatabank van het type UUID. @cdbid wordt enkel voorzien door CultuurDatabank. De ID uit de databank van een publisher wordt opgeslagen in @externalid.
--
//event/@externalid
Combinatie van de naam van de eigenaar en de unieke identificatiecode van de betreffende link in de databank van de partner, bijvoorbeeld Socius:12345.
--
//event/@private
Voor elk aanbod wordt aangegeven of de gegevens al dan niet ter beschikking mogen worden gesteld van het brede publiek. Meer informatie over werken met privé-gegevens in paragraaf 8.6.
--
Type
Boolean
Default
False
3.3.2 //event/eventdetails Eventdetails bevat verplichte en optionele beschrijvende velden voor het aanbod waarbij meertaligheid van toepassing is. Meer info over meertaligheid vind je in paragraaf 8.5. In het geval van de informatie-eenheid “event” betreft het de titel en de korte beschrijving als verplichte velden (net zoals bij de overige informatie-eenheden). Optioneel kunnen een samenvatting van de kalenderinformatie, een lange beschrijving, een prijs, toegangsvoorwaarden en multimedia toegevoegd worden. Ook uitvoerders kunnen worden toegevoegd via eventdetails, dit in tegenstelling tot andere gerelateerde actoren zoals de locatie of de organisator. Uitvoerders worden toegevoegd via eventdetails omdat hun rol t.a.v. het aanbod vrij omschreven kan worden..
p. 12 van 65
Figuur 3 - Beschrijvende velden voor het event element
Element
Pad
Toelichting
admission
//event/eventdetails/ad mission
De voorwaarden waaraan moet worden voldaan om toegang te krijgen tot het aanbod: bijvoorbeeld ‘stadskledij vereist’, ‘kinderen niet toegelaten’,...
calendarsu mmary
//event/eventdetails/cal endarsummary
Omdat de gestructureerde tijdsinformatie in //calendar vrij complex kan zijn en berekenen van een samenvatting voor detailschermen invloed zal hebben op de snelheid van je applicatie voorziet de CultuurDatabank in een samenvatting van tijdsgegevens. Je kan deze links laten liggen om zelf andere samenvattingen te genereren, of je kan ze redundant opslagen voor gebruik.
Type
Verplicht voor --
string(1000) --
Enkel CultuurDatabank als publisher voorziet in deze informatie. estimatedti me
//event/eventdetails/es timatedtime
Deze duur dient ter indicatie van hoelang een gemiddeld bezoek aan het aanbod duurt. Type
performers
//event/eventdetails/pe
--
string(60)
De organisatie of persoon die aanbod uitvoert.
p. 13 van 65
--
title
longdescript ion
rformers
Het type “uitvoerder”, bijvoorbeeld regisseur, acteur, dansgezelschap,… wordt vrij omschreven in het role attribuut.
//event/eventdetails/pe rformers/performer/act or
De uitvoerder kan een actor zijn gerelateerd aan het aanbod. Zie hoofdstuk 8.1 voor meer informatie over relaties tussen informatieeenheden.
De ID uit de databank van een andere publisher dan CultuurDatabank, bijvoorbeeld Socius:12345
--
//event/eventdetails/pe rformers/performer/@r ole
Een vrije omschrijving van de rol die de uitvoerder aanneemt t.o.v. het aanbod, vb. regisseur, spreker, …
--
//event/eventdetails/titl e
De taalafhankelijke naam waaronder het aanbod bekend is bij het publiek.
//event/eventd etails
//event/eventdetails/lo ngdescription
Type
Voorbeeld
Olen Zomert
Type
string(250)
We maken een onderscheid tussen een korte en een lange omschrijving. Als de korte omschrijving aan de gebruiker wordt getoond in een resultaatscherm na een zoekopdracht, dan kan de lange omschrijving wordt getoond als detailinformatie wordt opgevraagd. Type
media
//event/eventdetails/m edia
string(250)
--
String
Aan een aanbod kunnen er verschillende multimedia-bestanden gekoppeld worden: tekst, beeld, video, audio,… Een media element
--
omvat o.m. een type (foto, logo, …), een titel, copyright en een aanduiding per type wat het hoofdbestand is. Meer informatie vind je in paragraaf 7.4. price
//event/eventdetails/pri ce
De prijs van het aanbod. Prijs is ofwel “gratis”, dan wordt in //price/pricevalue 0 (nul) ingevuld, ofwel “niet-gratis”, dan wordt in //price/pricevalue een waarde hoger dan 0 (nul) ingevuld, ofwel opbepaald, dan is het //price element niet beschikbaar.
--
//event/eventdetails/pri ce/pricevalue
Het pricevalue element wordt gebruikt om een richtprijs in te vullen voor het aanbod. Bij voorkeur is dit de gemiddelde prijs zonder kortingen. Om aan te duiden dat een aanbod gratis is, vul je hier 0 (nul) in.
//price
Type //event/eventdetails/pri ce/pricedescription
shortdescrip tion
//event/eventdetails/sh ortdescription
Double
Een vrij tekstveld waarin extra prijsinformatie zoals voorverkoop, toegestande cheques etc. kan ingevuld worden. Meestal verschilt de prijs naar verschillende groepen of zijn er bijzondere kortingen. Er is voor gekozen dit niet op een gestructureerde wijze bij te houden omdat de prijsstructuren heel complex kunnen zijn. Voorbeeld
Olen Zomert
Type
string(1000)
Korte omschrijving wordt bijvoorbeeld aan de gebruiker getoond in een resultaatscherm na
p. 14 van 65
--
//event/eventd etails
een zoekopdracht. Voorbeeld
Jewgeni Onegin, de roman in verzen van Poesjkin, is een van de grootste werken uit de negentiende-eeuwse Russische literatuur. Guy Cassiers liet zich voor zijn eerste grote regie bij Het Toneelhuis inspireren door dit hyperromantische verhaal over een onmogelijke liefde.
Type
string(400)
4 Actoren 4.1 Definitie Actoren zijn organisaties en personen die in relatie gebracht worden tot cultuur. Deze actoren kunnen verschillende rollen opnemen zoals locatie, organisator, reservator, uitvoerder, producent,… Mogelijke vormen van actoren zijn organisaties zoals musea, bibliotheken, socio-culturele verenigingen, heemkundige kringen, kunstgalerijen, of personen zoals muzikanten, beeldende kunstenaars of acteurs. Voorbeelden van actoren zijn organisaties zoals De Vooruit, Vlaams Centrum voor Amateurkunsten, CC Berchem, Decascoop, of personen zoals Tom Barman, Hugo Claus of Paul Dujardin.
p. 15 van 65
Figuur 4: Overzicht van de basisstructuur van een Actor
4.2 Voorbeeld <shortdescription>Loop binnen in Cultuurcafé De Rits om iets te drinken, een babbeltje te doen. Kortom, om te doen wat mensen doen op café. Maar het cultuurcafé is meer. Mensen die geïnteresseerd zijn in cultuur komen elkaar daar tegen. En mensen die nog niet geïnteresseerd zijn, krijgen goesting in cultuur. Cultuurcafé De Rits
Voorbeeld 2 - klassieke XML structuur voor een actor van het type locatie
4.3 Overzicht elementen actor 4.3.1 cdbxml/actors/actor De elementen van de Actor informatie-eenheid uit worden in onderstaande tabel toegelicht. Element
Pad
Toelichting
Verplicht voor
actorcategor ies
//actor/categories
Actoren hebben net als de overige informatie-eenheden verplichte categorieën type en thema. (meer uitleg over categorisatie in paragraaf 8.1)
//actor
actordetails
//actor/actordetails
Beschrijvende, al dan niet meertalige, velden titel, korte beschrijving, lange beschrijving en media. Zie paragraaf 4.3.2 voor deze subnodes van //actordetails.
//actor
contactinfo
//actor/contactinfo
Contactinfo van een culturele actor voor informatie of reserveringen. Volgende soorten contactgegevens zijn mogelijk: links, e-mailadressen, telefoon- of faxnummers, (post)adressen. Meer informatie over contactinfo vind je in paragraaf 7.2.
//actor
keywords
//actor/keywords
Het is mogelijk dat een organisatie of persoon nog onder andere namen gekend is. Deze namen worden bijgehouden in keywords. Hierin worden ook afkortingen en andere populaire zoektermen voor de actor in kwestie bijgehouden. De lijst van trefwoorden wordt gebruikt bij het zoeken. Het is echter niet de bedoeling om trefwoorden ook aan het publiek te laten zien. Trefwoorden worden door een komma (,) of punt-komma (;) gescheiden.
--
properties
//actor/properties
CultuurDatabank kan zelf of in opdracht van de partner attributen (properties) toevoegen aan een actor. Attributen voor de partner worden enkel uitgewisseld met de partner in kwestie. De partner is ook zelf verantwoordelijk voor het beheer ervan in CultuurDatabank. Eigenschappen toegevoegd door CultuurDatabank worden publiek ter beschikking gesteld. Meer informatie over properties vind je in paragraaf 8.6.
--
relatedactor s
//actor/relatedactors
Een actor kan nul, één of meerdere relaties hebben ten opzichte van een andere actor. Een actor kan een hiërarchische relatie hebben ten opzichte van een andere organisatie, bijvoorbeeld de KAV met de verschillende afdelingen. Een actor kan ook een relatie hebben met een andere actor die vrij omschreven kan worden. Het gaat hier wel om structurele relaties, die op zichzelf bestaan en niet in functie van een
--
p. 17 van 65
specifiek aanbod. Meer informatie over relaties tussen informatie-eenheden vind je in hoofdstuk 8.1. weekschem e
//actor/weekscheme
De contacturen of openingsuren van een organisatie. Het //weekscheme element van actor wordt ook gebruikt in het //calendar element van aanbod. Meer info over //calendar vind je in paragraaf 7.4.
--
attributen
//actor/@availablefrom
Het is mogelijk aan te geven vanaf wanneer de actor informatie mag gepubliceerd worden, d.i. ter beschikking gesteld van kanalen voor het publiek (bv. cultuurweb.be, websites van partners, etc).
--
//actor/@availableto
@availableto geeft de vervaldatum aan tot wanneer de link mag getoond worden aan het publiek. Gegevens waarbij de availableto datum verstreken worden als gearchiveerd beschouwd (meer over archiveren in paragraaf 8.1).
--
//actor/@cdbid
ID uit de CultuurDatabank van het type GUID. @cdbid wordt enkel voorzien door CultuurDatabank. De ID uit de databank van een publisher wordt opgeslagen in @externalid. (Meer uitleg over publishers en subscribers in paragraaf 0)
--
//actor/@externalid
Combinatie van de naam van de eigenaar en de unieke identificatiecode van de betreffende actor in de databank van de partner, bijvoorbeeld Socius:12345.
--
//actor/@private
Voor elke actor wordt aangegeven of de gegevens al dan niet ter beschikking mogen worden gesteld van het brede publiek. Meer informatie over werken met privé-gegevens in paragraaf 8.6.
--
//actor/@person
Type
Boolean
Default
False
Hiermee kan worden aangegeven of het een persoon of organisatie betreft. Type
Boolean
Default
False
--
4.3.2 //actor/actordetails Actordetails bevat de beschrijvende velden. In het geval van de informatie-eenheid “actor” betreft het titel en de korte beschrijving als verplichte velden, net zoals bij de overige informatieeenheden. Daarnaast kunnen lange beschrijving en media toegevoegd worden. Eigen aan beschrijvende velden is dat ze meertalig zijn. Meer info over meertaligheid vind je in paragraaf 8.4.
p. 18 van 65
Figuur 5 - Beschrijvende velden voor Actor element
Element
Pad
Toelichting
Verplicht voor
calendarsu mmary
//actor/actordetails/cal endarsummary
Omdat de gestructureerde tijdsinformatie in //calendar vrij complex kan zijn en berekenen van een samenvatting voor detailschermen invloed zal hebben op de snelheid van je applicatie voorziet de CultuurDatabank in een samenvatting van tijdsgegevens. Je kan deze links laten liggen om zelf andere samenvattingen te genereren, of je kan ze redundant opslagen voor gebruik.
--
Enkel CultuurDatabank als publisher voorziet in deze informatie. title
longdescript ion
//actor/actordetails/title
//actor/actordetails/lon gdescription
De taalafhankelijke naam waaronder de organisatie of persoon zich wil kenbaar maken aan het publiek. Voorbeeld
Cultuurcentrum Hasselt
Type
string(250)
We maken een onderscheid tussen een korte en een lange omschrijving. Als de korte omschrijving aan de gebruiker wordt getoond in een resultaatscherm na een zoekopdracht, dan kan de lange omschrijving wordt getoond als detailinformatie wordt opgevraagd. Type
shortdescrip tion
//actor/actordetails/sho rtdescription
--
String
Korte omschrijving wordt bijvoorbeeld aan de gebruiker getoond in een resultaatscherm na een zoekopdracht. Voorbeeld
//actor/actor details
The Violent Husbands is jong talent uit Brugge. Hun muziek is een nooit gehoorde mix tussen country, jazz en elektronica met héél veel nadruk op de teksten. Let maar
p. 19 van 65
//actor/actor details
op. Ze zingen over huiselijk geweld, zwakke knieën en de pijn en genot van volwassen worden; alle ingrediënten dus om je een breuk te lachen. Hun podiumact is een beetje cabaret en staat garant voor een zeer leuke avond. Type media
//actor/actordetails/me dia
string(400)
Aan een organisatie of een persoon kunnen er verschillende multimedia-bestanden gekoppeld worden: tekst, beeld, video, audio,… Een media element omvat o.m. een type (foto, logo, …), een titel, copyright en een aanduiding per type wat het hoofdbestand is. Meer informatie vind je in paragraaf 7.4.
--
5 Productie 5.1 Definitie Een productie kan je zien als potentieel aanbod, klaar om georganiseerd te worden. Vandaar dat een productie (nog) geen gegevens bevat die eigen zijn aan de organisatie ervan, zoals de locatie, de prijs, de toegangsvoorwaarden, de kalender,… We beschouwen een productie ook als een “template” van aanbod. Het bevat een deel van de gegevens van het aanbod. Deze gegevens zijn eigen aan de productie en blijven in principe ongewijzigd ongeacht wie het organiseert en aanbiedt aan het publiek. Gegevens eigen aan een productie zijn de naam, de omschrijving, de uitvoerder(s), beeldmateriaal,… Ze vormen samen de algemene info van aanbod. Het afzonderlijk bijhouden van producties vergemakkelijkt het invoeren van aanbod dat gebaseerd is op een productie. Zo kan de producent een productie aanmaken in de Cultuurdatabank en voorzien van alle omschrijvingen, foto’s,… Daarna kan de organisator de productie gebruiken als basis voor de invoer van het aanbod. De inhoud van de productie kan naar het aanbod gekopieerd worden en desgewenst nog aangepast worden door de organisator. Vervolgens voegt hij de kalender toe, de prijs, locatie,... Indien de productie als basis voor het aanbod gebruikt wordt dan blijft deze link bewaard. Dit biedt als extra voordeel dat een speellijst kan gegenereerd worden, die duidelijk oplijst op welke locaties en wanneer er voorstellingen plaatsvinden van deze productie.
p. 20 van 65
Figuur 6: Overzicht van de basisstructuur van een productie
5.2 Voorbeeld Onderstaand voorbeeld toont de minimale set van gegevens die noodzakelijk is om een productie te definiëren. <production> <productioncategories> NationaalTheaterVoorstellingen <productiondetails> <productiondetail lang="nl"> <shortdescription>Jewgeni Onegin, de roman in verzen van Poesjkin, is een van de grootste werken uit de negentiende-eeuwse Russische literatuur. Guy Cassiers liet zich voor zijn eerste grote regie bij Het Toneelhuis inspireren door dit hyperromantische verhaal over een onmogelijke liefde. Onegin
Voorbeeld 3 - minimale XML structuur voor een productie
p. 21 van 65
5.3 Overzicht elementen productie 5.3.1 cdbxml/productions/production De elementen van productie uit Figuur 2 worden in onderstaande tabel toegelicht. Element
Pad
Toelichting
Verplicht voor
agefrom
//production/agefrom
De leeftijdsklasse van de doelgroep. Dit veld wordt meestal gebruikt bij aanbod voor kinderen. Bij aanbod voor kinderen jonger dan twaalf jaar wordt als mediabestand een pictogram van vlieg verzonden (meer over mediabestanden in paragraaf 7.5). Dit pictogram dient bij het aanbod getoond te worden.
--
productionc ategories
//production/production categories
Producties hebben (net als aanbod, actoren en links) de verplichte categorieën type en thema. Meer uitleg over categorisatie in paragraaf 8.1.
//producti on
productiond etails
//production/production details
In productiondetails zitten beschrijvende al dan niet meertalige velden: titel, korte beschrijving, lange beschrijving, geschatte duur, uitvoerders, media. Zie paragraaf 3.3.2 voor de subnodes van productiondetails.
//producti on
keywords
//production/keywords
Het is mogelijk de productie met trefwoorden te beschrijven. De lijst van trefwoorden wordt gebruikt bij het zoeken. Trefwoorden worden door een komma (,) of punt-komma (;) gescheiden.
--
languages
//production/languages
Talen waarin de productie kan gevolgd worden. Dit kan bijvoorbeeld bij een Franse film die Nederlands ondertiteld is.
--
//production/languages /language
Eén taal van de productie
--
//production/languages /language/@type
Voorbeeld
Nl
Type
String
Voorbeeld
Dubbed
Type
enumeration(‘dubbed’, ‘spoken’, ‘subtitles’)
--
properties
//production/properties
CultuurDatabank kan zelf of in opdracht van de partner attributen (properties) toevoegen aan een productie. Attributen voor de partner worden enkel uitgewisseld met de partner in kwestie. De partner is ook zelf verantwoordelijk voor het beheer ervan in CultuurDatabank. Eigenschappen toegevoegd door CultuurDatabank worden publiek ter beschikking gesteld. Meer informatie over properties vind je in paragraaf 8.6.
--
attributen
//production/@available from
Het availablefrom datumveld bevat de datum waarop de productie publiek gemaakt mag worden. Deze datum kan ofwel in de toekomst liggen (de embargodatum) of kan gelijkgesteld worden met de huidige datum als er geen embargo datum aanwezig is.
--
//production/@available to
Gegevens waarbij de availableto datum verstreken worden als gearchiveerd beschouwd. Tenzij expliciet aangegeven door de gebruiker ligt de datum in //production/@availableto één dag na de laatste dag waarop de productie doorgaat (meer over archiveren in paragraaf 8.1).
--
//production/@cdbid
ID uit de CultuurDatabank van het type UUID. @cdbid wordt enkel voorzien door CultuurDatabank. De ID uit de databank van een
--
p. 22 van 65
publisher wordt opgeslagen in @externalid. (Meer uitleg over publishers en subscribers in paragraaf 0) //production/@externali d
Combinatie van de naam van de eigenaar en de unieke identificatiecode van de betreffende link in de databank van de partner, bijvoorbeeld Socius:12345
--
//production/@private
Voor elke productie wordt aangegeven of de gegevens al dan niet ter beschikking mogen worden gesteld van het brede publiek. Meer informatie over werken met privé-gegevens in paragraaf 8.6.
--
Type
Boolean
Default
False
5.3.2 //production/productiondetails Productiondetails bevat beschrijvende velden voor de productie. Elementen in productiondetails kunnen meertalig voorzien worden. In het geval van de informatie-eenheid “production” betreft het titel en de korte beschrijving als verplichte velden, net zoals bij de overige informatie-eenheden. Daarnaast kunnen een lange beschrijving en media toegevoegd worden, de geschatte duur en de uitvoerders. Meer info over meertaligheid vind je in paragraaf 8.4.
Figuur 7 - Beschrijvende velden voor het production element
Element
Pad
Toelichting
Verplicht voor
estimatedti me
//production/production details/estimatedtime
Deze duur dient ter indicatie van hoelang een gemiddeld bezoek de productie duurt.
--
p. 23 van 65
Type performers
title
longdescript ion
//production/production details/performers
De organisatie of persoon die de productie uitvoert. Het type “uitvoerder”, bijvoorbeeld regisseur, acteur, dansgezelschap,… wordt vrij omschreven in het role attribuut.
//production/production details/performers/perf ormer/label/@externali d
De ID uit de databank van een andere publisher dan CultuurDatabank. De external id is opgebouwd uit combinatie van de naam van de eigenaar en de unieke identificatiecode van de betreffende uitvoerder in de databank van de partner, bijvoorbeeld Socius:12345
Een vrije omschrijving van de rol die de uitvoerder aanneemt t.a.v. de productie, vb. regisseur, spreker, …
--
//production/production details/title
De taalafhankelijke naam waaronder de productie bekend is bij het publiek.
//producti on/produc tiondetails
//production/production details/longdescription
Type
//production/production details/media
string(250)
Voorbeeld
Romeo en Julia
Type
string(250)
We maken een onderscheid tussen een korte en een lange omschrijving. Als de korte omschrijving aan de gebruiker wordt getoond in een resultaatscherm na een zoekopdracht, dan kan de lange omschrijving wordt getoond als detailinformatie wordt opgevraagd. Type
media
string(60)
--
String
Aan een productie kunnen er verschillende multimedia-bestanden gekoppeld worden: tekst, beeld, video, audio,… Een media element
--
omvat o.m. een type (foto, logo, …), een titel, copyright en een aanduiding per type wat het hoofdbestand is. Meer informatie vind je in paragraaf 7.4. shortdescrip tion
//production/production details/shortdescription
Korte omschrijving wordt bijvoorbeeld aan de gebruiker getoond in een resultaatscherm na een zoekopdracht. Voorbeeld
Jewgeni Onegin, de roman in verzen van Poesjkin, is een van de grootste werken uit de negentiende-eeuwse Russische literatuur. Guy Cassiers liet zich voor zijn eerste grote regie bij Het Toneelhuis inspireren door dit hyperromantische verhaal over een onmogelijke liefde.
Type
string(400)
p. 24 van 65
//producti on/produc tiondetails
6 Links 6.1 Definitie Links in de CultuurDatabank zijn referenties naar pagina’s op het web die gerelateerd zijn aan cultuur. We maken een onderscheid tussen enerzijds links die gerelateerd zijn aan culturele actoren of aanbod, bijvoorbeeld de link van het S.M.A.K., de link van de Erfgoeddag, de homepagina van Jan Fabre,… Anderzijds zijn er de links die op zich staan en niet als medium fungeren voor één specifieke actor of aanbod. Voorbeelden hiervan zijn gespecialiseerde portaalsites (vortals) met betrekking tot cultuur, bijvoorbeeld Cinebel (www.cinebel.be) waar je alle informatie over het filmaanbod terugvindt, Tento (www.tento.be) voor het tentoonstellingsaanbod,… Een geleverd CdbXML document met link informatie bevat 1 of meer links. Figuur 8 toont een overzicht van de link gerelateerde gegevens.
Figuur 8 – Overzicht van de basisstructuur van een link
p. 25 van 65
6.2 Voorbeeld Onderstaand voorbeeld toont de minimale set van gegevens die noodzakelijk is om een link te definiëren. <shortdescription>Kinepolis bioscoop Kinepolishttp://www.kinepolis.be
Voorbeeld 4 - minimale XML structuur voor een link
6.3 Overzicht elementen links 6.3.1 cdbxml/links/link De elementen van de Link informatie-eenheid uit Figuur 8 worden in onderstaande tabel toegelicht. Element
Pad
Toelichting
Verplicht voor
linkcategori es
//link/linkcategories
Links hebben net als actoren en aanbod de verplichte categorieën type en thema. (meer uitleg over categorisatie in paragraaf 8.1)
//links
keywords
//link/keywords
Het is mogelijk de link met trefwoorden (keywords) te beschrijven. Deze trefwoorden worden gebruikt bij het zoeken. Trefwoorden worden door een komma (,) of punt-komma (;) gescheiden.
--
languages
//link/languages
Hier kan men aangeven in welke taal of talen de informatie op de website kan geconsulteerd worden.
--
linkdetails
//link/linkdetails
Beschrijvende, al dan niet meertalige, velden titel en korte beschrijving (shortdescription). Zie paragraaf 6.3.2 voor deze subnodes van linkdetails.
//links
properties
//link/properties
CultuurDatabank kan zelf of in opdracht van de partner attributen (properties) toevoegen aan een link. Attributen voor de partner worden enkel uitgewisseld met de partner in kwestie. De partner is ook zelf verantwoordelijk voor het beheer ervan in CultuurDatabank. Eigenschappen toegevoegd door CultuurDatabank worden publiek ter beschikking gesteld. Meer informatie over properties vind je in paragraaf 8.6.
--
p. 26 van 65
url
//link/url
De waarde van de URL. Voorbeeld Pattern
//links
http://www.tento.be http://.* https://.*
Type attributen
//link/@availablefrom
string(400)
Het is mogelijk aan te geven vanaf wanneer de link mag gepubliceerd worden, d.i. ter beschikking gesteld van kanalen voor het publiek (bv. cultuurweb.be, websites van partners,
--
etc). //link/@availableto
Sommige websites bieden voor een beperkte periode relevante informatie, bijvoorbeeld linken van tijdelijk aanbod. Na deze periode kan de link nog steeds toegankelijk zijn maar de informatie op de website is al lang achterhaald. Om dit te vermijden geeft de vervaldatum aan tot wanneer de link mag getoond worden aan het publiek. Gegevens waarbij de availableto datum verstreken worden als gearchiveerd beschouwd (meer over archiveren in paragraaf 8.1).
--
//link/@cdbid
ID uit de CultuurDatabank van het type GUID. @cdbid wordt enkel voorzien door CultuurDatabank. De ID uit de databank van een publisher wordt opgeslagen in @externalid. (Meer uitleg over publishers en subscribers in paragraaf 0)
--
//link/@externalid
Combinatie van de naam van de eigenaar en de unieke identificatiecode van de betreffende link in de databank van de partner, bijvoorbeeld Socius:12345
--
//link/@private
Voor elke link wordt aangegeven of de gegevens al dan niet ter beschikking mogen worden gesteld van het brede publiek. Meer informatie over werken met privé-gegevens in paragraaf 8.6.
--
Type
Boolean
Default
false
6.3.2 //link/linkdetails Linkdetails bevat de beschrijvende velden. In het geval van de informatie-eenheid “link” betreft het enkel de titel en de korte beschrijving. Events en actors echter hebben meer beschrijvende velden zoals een lange beschrijving of mediabestanden zoals foto’s en brochures. Eigen aan beschrijvende velden is dat ze meertalig zijn. Meer info over meertaligheid vind je in paragraaf 8.4.
p. 27 van 65
Figuur 9 - Beschrijvende velden Link hoofd informatie-eenheid
Element
Pad
Toelichting
Verplicht voor
title
//link/linkdetails/title
Titel of benaming van de site waarnaar de link verwijst.
//links/lin kdetails
Voorbeeld
De tentoonstellingswebsite van Vlaanderen en Brussel
Type Shortdescrip tion
//link/linkdetails/shortd escription
string(250)
Korte omschrijving wordt bijvoorbeeld aan de gebruiker getoond in een resultaatscherm na een zoekopdracht. Voorbeeld
//links/lin kdetails
Wie een tentoonstelling of een museum wil bezoeken, kan op deze site grasduinen door de uitgebreide kalender. Je vindt hier ook nieuws, praktische en inhoudelijke informatie en tips. Geregistreerde gebruikers kunnen deelnemen aan wedstrijden.
Type
string(400)
7 Globale elementen 7.1 Categorisatie 7.1.1 Definitie Categoriseren definiëren we als een proces waarbij gerelateerde items volgens een gecontroleerde set van termen worden gegroepeerd en op logische wijze geordend. Dit biedt verscheidene voordelen. In eerste instantie laat een classificatie toe dat de gebruiker vlot in een databank kan zoeken of er in kan ‘browsen’. Een categorisatie reduceert de complexiteit van uitgebreide gegevensbestanden en is eenvoudig weer te geven. 4
4
De doelstellingen en kwaliteitscriteria die werden opgesteld voor de mastercategorisatie, en toelichting bij elke categorie staan in het “Masterdocument Gegevensstandaard en Categorisatie voor de cultuursector” op http://www.cultuurnet.be/cultuurdatabank p. 28 van 65
Aandachtspunt 3: versies categorisaties De CultuurDatabank categorisatie is beschikbaar op http://www.cultuurdatabank.com/CdbXSD/3.0/FINAL/. Je kan deze on-line versie oproepen vanuit je informatiesysteem om steeds over de meest recente versie te beschikken. Een grondige omwerking van de categorisatie komt in principe niet voor. Wel kunnen te allen tijde categorieën worden toegevoegd. Bij toevoegingen aan de categorisatie worden partners die gegevens uitwisselen met CultuurDatabank tijdig via e-mail op de hoogte gebracht. Meer informatie over versies vind je in hoofdstuk 8.7. De CultuurDatabank categorisatie bestaat uit meerdere dimensies. Een dimensie is een kenmerk of een eigenschap van een informatie-eenheid. Voor wat het aanbod betreft, kunnen we stellen dat elk aanbod een bepaalde vorm heeft (tentoonstelling, festival, beurs, etc.), een centraal onderwerp of thema (b.v. film) en optioneel een doelgroep (b.v. gezinnen) en bepaalde voorzieningen (zoals audiogids). Ook culturele actoren hebben diverse eigenschappen op basis waarvan er een categorisatie kan worden opgesteld, zoals het type organisatie (b.v. artistiek gezelschap) en het centrale onderwerp of thema waarrond de organisatie werkt (b.v. theater). Overzicht informatie-eenheden en hun categoriedimensies Informatie-eenheid
Dimensie
Verplicht
Aanbod (//event)
Type aanbod
X
Thema
X
Toelichting5
Publieksbereik Doelgroep Voorzieningen
X
Toegankelijkheid Organisaties en personen (//actor)
De formattering van categorisation.xml (zie Aandachtspunt 3) werd opgenomen in het XML Schema. Hoewel de categorisatie recursief opgesteld is, is de diepte in principe beperkt tot vijf niveaus, m.n. de root node, de dimensies, en subnodes “niveau 1”, “niveau 2” en “niveau 3”.
5
Bij voorzieningen (vb. autoparking) kan men een toelichting invoeren (vb. “Achter het gebouw.”) p. 29 van 65
Figuur 10: XML structuur voor categorisation.xml ...
Voorbeeld 5: fragment uit categorisation.xml Aandachtspunt 4: categorieën mappen Je kan de CultuurDatabank categorisatie gebruiken om de navigatie van een web site samen te stellen of een gestructureerd zoekmechanisme te voorzien. Het is dan van belang dat je de categorisatie vereenvoudigt door een groot aantal categorieën samen te voegen tot een beperkt aantal categorieën. Bepaalde doelgroepen kunnen behoefte hebben aan een zeer specifieke categorisatieboom, terwijl andere doelgroepen genoegen nemen met een meer eenvoudige boom. In dit geval dienen de data die zich bevinden in meerdere categorieën in een kleiner aantal categorieën te kunnen worden geplaatst. Cultuurweb.be bijvoorbeeld mapt de dimensies “type aanbod” en “thema” op een eigen eenvoudige categorisatie om zo in een publieksgerichte navigatie te voorzien. Een aangewezen technologie op mappings door te voeren is XSLT.
7.2 Contactgegevens en informatie 7.2.1 Definitie Het //contactinfo element is voor twee informatie-eenheden verplicht: voor //event en //actor. Zodoende kan men via één of meer links, emailadressen, telefoon- of faxnummers of (post)adressen contact opnemen voor informatie of reserveringen voor het aanbod, een organisatie of persoon.
Er moet per aanbod één of meer contactgegevens voorzien worden.
//event
//actor/contactinfo
Er moet per actor één of meer contactgegevens voorzien worden.
//actor
//contactinfo/address
Adressen zijn fysieke of virtuele adressen. Meer info over //address vind je in paragraaf 7.3.
--
//contactinfo/address/ @main
Als meerdere adressen voorzien worden, kan één adres als het hoofdadres aangeduid worden. Het
--
address
p. 32 van 65
hoofdadres is het meest publieksrelevant.
//contactinfo/address/ @reservation
mail
//contactinfo/mail
//contactinfo/mail/@ma in
//contactinfo/mail/@res ervation
phone
//contactinfo/phone
Type
Boolean
Default
False
Net als voor andere contactinfo elementen (//url, //mail, //phone) kan een adres aangeduid worden als adres waar men terecht kan voor reserveringen en tickets. Type
Boolean
Default
False
--
Het is mogelijk om meerdere emailadressen bij te houden voor een aanbod of actor. Type
Als meerdere emailadressen voorzien worden, kan één emailadres als het hoofdadres aangeduid worden. Het hoofdadres is het meest publieksrelevant. Type
Boolean
Default
False
Net als voor andere contactinfo elementen (//url, //addres, //phone) kan een emailadres aangeduid worden als adres waar men terecht kan voor reserveringen en tickets. Type
Boolean
Default
False
--
--
Het is mogelijk om meerdere telefoonnummers bij te houden voor een aanbod of actor. Telefoon- en faxnummers worden NIET gestructureerd opgeslagen. Gebruik bij voorkeur volgende notatie: +32 3 5510740: +[LANDCODE][ ][REGIOCODE][ ][NUMMER]
//contactinfo/phone/@ main
//contactinfo/phone/@r eservation
//contactinfo/phone/@t ype
Type
string(60)
Pattern
GEEN
Als meerdere telefoonnummers of faxnummers worden voorzien, kan één telefoonnummer of één faxnummer als het hoofdnummer aangeduid worden. Het hoofdnummer is het meest publieksrelevant. Type
Boolean
Default
False
Net als voor andere contactinfo elementen (//url, //addres, //mail) kan een telefoonnummer aangeduid worden als nummer waar men terecht kan voor reserveringen en tickets. Type
Boolean
Default
False
Default is //phone een telefoonnummer. Er kan echter fax geselecteerd worden als type. Type
Enumeration(‘phone’,’fax’)
Default
Phone
p. 33 van 65
--
--
--
url
//contactinfo/url
Het is mogelijk om meerdere links bij te houden voor een aanbod of actor waar men terecht kan voor informatie, contact en/of reserveringen. De hoofd URL is het meest publieksrelevant. Voorbeeld Pattern
http://www.tento.be http://.* https://.*
Type //contactinfo/url/@mai n
//contactinfo/url/@rese rvation
string(400)
Als meerdere emailadressen voorzien worden, kan één emailadres als het hoofdadres aangeduid worden. Type
Boolean
Default
False
Net als voor andere contactinfo elementen (//url, //addres, //phone) kan een emailadres aangeduid worden als adres waar men terecht kan voor reserveringen en tickets. Type
Boolean
Default
False
--
--
Aandachtspunt 5: adressen in het locatie element vs. adressen in contactinfo In het geval van //event is het adres dat wordt opgegeven in //contactinfo niet het adres van de locatie, dus niet de plek waar het aanbod plaatsvindt. Dat adres vind je terug in de subnode van locatie: //location/address.
7.3 Adressen en geografische informatie 7.3.1 Definitie Het //address element komt op twee plaatsen voor: -
In //contactinfo; hier betreft het een adres waar men er terecht kan voor informatie.
-
In //event/location (verplicht); hier wordt in //address het adres van de locatie voorzien, dus waar een aanbod doorgaat.
Voorbeeld 8: adres van Hof Ter Lo met GIS-coördinaten en //city/@cdbid voorzien
7.3.3 Overzicht elementen address Element
Pad
Toelichting
Verplicht voor
address
//event/location/addres s
Voor aanbod (//event) is locatie een verplicht veld omdat bij elk cultuuraanbod minimaal de vragen “wat”, “waar” en “wanneer” moeten beantwoord zijn. Voor locaties is het adres een verplicht veld. Voor een fysiek adres zijn land, postcode en gemeente verplichte velden. Zodoende weet de lezer altijd waar een aanbod doorgaat.
//location
//contactinfo/address
Contactinfo wordt voorzien bij aanbod (//event) en culturele actoren (//actor). Het betreft contactgegevens waar men terecht kan voor informatie. Naast een hyperlink (//url), een e-mail adres (//mail) of telefoonnummer (//phone) kan ook een adres voorzien worden als contactgegeven.
--
p. 35 van 65
attributen
//address/@main
//address/@reservation
physical
//address/physical
Als meerdere adressen voorzien worden, kan één adres als het hoofdadres aangeduid worden. Type
Boolean
Default
False
Net als voor andere contactinfo elementen (//url, //mail, //phone) kan een adres aangeduid worden als adres waar men terecht kan voor reserveringen en tickets Type
Boolean
Default
False
Dit zijn effectieve fysieke locaties, dus geen virtuele plaatsen zoals vb. chatrooms. Ze beschikken minstens over een postcode, gemeente en land. Daarnaast kunnen straat en GIS-gegevens voorzien zijn. Voorbeeld
virtual
//address/virtual
--
--
--
Minimum velden voor een “beach party”: 8370, Blankenberge, BE
Indien aanbod doorgaat op een “virtuele” lokatie, d.i. een lokatie zonder fysiek adres, dan wordt dit als dusdanig ook aangegeven op niveau van //address. Voorbeelden van virtuele lokaties zijn een TV- of radiokanaal, een website, chatkanaal,…
--
http://www.abconcerts.tv/index.html Voorbeeld 9: XML structuur van een virtueel adres city
//address/physical/city
De gemeente van het adres.
//address/ physical
//address/physical/city/ @cdbid
Als een gemeente bij opslaan in de CultuurDatabank wordt gevonden in het stedenoverzicht, wordt het element //city/@cdbid ingevuld.
--
Het stedenoverzicht bevat alle steden en gemeenten in Vlaanderen en Brussel. Of een gemeente gevonden wordt is afhankelijk van de correcte postcode-gemeente combinatie, maar ook van een correcte schrijfwijze. Het voordeel van //city/@cdbid is dat hiermee de regio wordt herkend waarin de gemeente zich bevindt. Zodoende kan gezocht worden naar bijv. al het aanbod in de regio “Aalst”. Informatie over regio’s vind je in paragraaf Fout! Verwijzingsbron niet gevonden.. //city/@cdbid is de combinatie van postcode en gemeente, in hoofdletters, met speciale karakters verwijderd. Voorbeeld: 3798_S_GRAVENVOEREN. country
gis
//address/physical/cou ntry
//address/gis
Het land waar het adres zich bevindt.
//address/ physical
Voorbeelden
BE, FR, EN
Type
Enumeration([ISO codes landen]): zie XML Schema voor het volledige overzicht.
Als een geldige combinatie van gemeente en straat wordt gevonden, wordt het //address element verrijkt met GIS-gegevens bij opslaan in de CultuurDatabank.
p. 36 van 65
--
GIS-gegevens kunnen enkel voorzien worden voor adressen in Vlaanderen en Brussel. Zie Voorbeeld 8 voor een adres waarbij GIS-coördinaten ter beschikking zijn. //gis/xcoordinate
X coördinaat
//gis
//gis/ycoordinate
Y coördinaat
//gis
//latlowerleft
Y coördinaat linkerhoek onderaan
--
//latupperright
Y coördinaat rechterhoek bovenaan
--
//lonlowerleft
X coördinaat linkerhoek onderaan
--
//lonupperright
X coördinaat rechterhoek bovenaan
--
housenr
//address/physical/hou senr
Huisnummer van het adres
--
street
//address/physical/stre et
Straat van het adres
--
zip
//address/physical/zip
Postcode van de gemeente
//address/ physical
7.4 Gestructureerde tijdsinformatie 7.4.1 Definitie We maken het onderscheid tussen permanent en tijdelijk aanbod. -
Voor permanent aanbod kan optioneel het weekschema waarop het aanbod toegankelijk is worden meegegeven, d.i. de openingsuren per weekdag.
-
Voor tijdelijk aanbod maken we het onderscheid tussen enerzijds aanbod dat doorgaat gedurende een bepaalde periode. Hiervan wordt de begin- en einddatum van de periode bijgehouden en eventueel het weekschema, d.i. de openingsuren per dag, waarop het aanbod toegankelijk is binnen die periode. Anderzijds kan aanbod doorgaan op één of meerdere afzonderlijke tijdstippen. Er moet dan minimum de datum worden meegegeven met optioneel het aanvangsuur en een einduur.
Aandachtspunt 6: weekschema voor culturele actoren Net als voor periodiek en permanent aanbod kan ook voor actoren optioneel een weekschema worden meegegeven, waarbij het fungeert als openings- of contacturen.
Figuur 14: XML structuur aanbod dat doorgaat op één of meerdere tijdstippen
p. 37 van 65
Figuur 15: XML structuur periodiek aanbod
Figuur 16: XML structuur permanent aanbod
Aandachtspunt 7: fysisch datamodel voor kalenderinformatie Hoewel gestructureerde tijdsinformatie op het eerste zicht complex lijkt kan je toch een relatief eenvoudig fysiek datamodel hanteren. Dit is het model dat CultuurDatabank hanteert:
Figuur 17: tabellen voor opslaan tijdsinformatie
p. 38 van 65
In event.calendartype wordt (een cijfer voor) één van volgende waarden opgeslagen: -
tijdstip,
-
tijdstippen,
-
periode,
-
permanent.
Voor tijdstip -
wordt in calendar.datetimestart de datum en het aanvangsuur opgeslagen;
-
als er een einduur is wordt dit in calendar.datetimeend opgeslagen.
Voor tijdstippen -
wordt meerdere malen het patroon van tijdstip gehanteerd.
Voor periode -
wordt in event.datefrom de startdatum opgeslagen,
-
in event.dateto de einddatum
Voor actors, en voor permanent en periodiek aanbod kan een weekschema voorzien worden: -
hier zijn enkel uren van belang: voor datum wordt een non-waarde gehanteerd (vb. UNIX birth date)
-
voor elke dag van de week wordt calendar.daytype en calendar.opentype ingevuld:
-
o
calendar.daytype: code voor ma t/m zo
o
calendar.opentype: code voor open, gesloten, open op afspraak, verplaatst van tijd
als er per dag meerdere openingstijden zijn (vb. van 10 tot 12 en 14 tot 17) wordt hetzelfde daytype herhaald
Voor weekschema’s of dagen binnen een periode of als een evenement verplaatst is van tijdstip zijn er uitzonderingen mogelijk: -
calendar.exception bit is WAAR
-
de exception betreft of het evenement op een datum/uur open, gesloten, open of afspraak is; dit wordt in calendar.opentype opgeslagen
7.4.2 Voorbeelden 2006-06-0920:00:00+01:00
Voorbeeld 10: aanbod dat éénmalig doorgaat 2006-04-2319:00:00+01:002006-05-07
Voorbeeld 11: aanbod dat op meerdere tijdstippen plaatsvindt 2006-05-062006-09-17 <exceptions> <exception> 2006-06-05open10:00:00+01:0018:00:00+01:00 <weekscheme> <monday opentype="closed"/> <wednesday opentype="open"> <saturday opentype="open">
p. 40 van 65
<sunday opentype="open">
Voorbeeld 12: aanbod dat gedurende een periode loopt, met weekschema <weekscheme> <monday opentype="closed"/> <wednesday opentype="closed"/> <saturday opentype="closed"/> <sunday opentype="open">
Voorbeeld 13: permanent aanbod dat enkel 's zondags te bezichtigen is
7.4.3 Overzicht elementen calendar Element
Pad
Toelichting
Verplicht voor
calendar
//event/calendar
Calendar bevat gestructureerde tijdsinformatie voor aanbod. Calendar is een verplicht element omdat bij elk cultuuraanbod minimaal de vragen “wat”, “waar” en “wanneer” moeten beantwoord zijn.
//event
Periods
//calendar/periods
In de huidige versie van CdbXML kan maar één periode voorzien worden. De node periods is echter voorzien zodat op termijn mogelijk meerdere periodes kunnen ingevuld worden.
--
Period
//calendar/periods/peri od
In het element “period” wordt kalenderinformatie opgeslagen voor aanbod dat loopt gedurende een periode.
--
datefrom
//calendar/periods/peri od/datefrom
De startdatum van een evenement dat gedurende een periode loopt.
//period
Dateto
//calendar/periods/peri od/datefrom
Voorbeeld
2006-06-05
Type
Date
De einddatum van een evenement dat gedurende een periode loopt. Voorbeeld
2006-06-27
Type
Date
p. 41 van 65
//period
exceptions
//calendar/periods/peri od/exceptions
Eén of meer uitzonderingen op de dagen in de periode wanneer het aanbod loopt, of op de openingstijden die gehanteerd worden.
--
Weekschem e
//calendar/periods/peri od/weekscheme
Binnen een periode kunnen de openingstijden worden overgenomen waarop het aanbod beschikbaar is. Meer informatie over weekschema’s vind je in paragraaf 7.4.4.
In de huidige versie van CdbXML kan één permatentopeningtime element toegevoegd worden. In de toekomst is het echter mogelijk dat er meerdere blokken kunnen toegevoegd worden, vb. tijdens de zomer, tijdens de winter.
--
permanento peningtime
//calendar/permanento peningtimes
In het permanentopeningtime element wordt kalenderinformatie opgeslagen voor aanbod dat permanent beschikbaar is. Technisch is dit element hetzelfde opgebouwd als periods, behalve dat er geen datefrom en dateto velden zijn.
Eén of meer uitzonderingen op de dagen in de periode wanneer het aanbod loopt, of op de openingstijden die gehanteerd worden.
--
Weekschem e
//calendar/periods/peri od/weekscheme
Binnen een periode kunnen de openingstijden worden overgenomen waarop het aanbod beschikbaar is. Meer informatie over weekschema’s vind je in paragraaf 7.4.4.
--
timestamps
//calendar/timestamps
In het timestamps element wordt kalenderinformatie opgeslagen voor aanbod dat beschikbaar is op één of meer tijdstippen.
--
Sommige partners kiezen ervoor de data tussen //period/datefrom en //period/dateto uit te rollen in tijdstippen. Dit heeft als voordeel dat zoekopdrachten eenvoudiger te programmeren zijn maar als nadeel dat lange lijsten kunnen ontstaan. Zo zijn er tentoonstellingen en koepelevementen die meer dan een jaar duren. timestamp
//calendar/timestamps/ timestamp
Eén element binnen //timestamps. Dus één tijdstip waarop het aanbod doorgaat. In zeer veel gevallen gaat aanbod op één tijdstip door. Het komt echter ook geregeld voor dat aanbod op meerdere tijdstippen plaatsvindt, bijv. voor films waarbij een voorstellingen gedurende verschillende weken op meerdere tijdstippen per dag spelen.
availability
//exception/availability
Het is mogelijk dat een evenement op een bepaald tijdstip al uitverkocht is, of geannuleerd, of verplaatst van datum of locatie. Dit wordt opgeslagen in availability. Zie paragraaf 7.4.6 voor meer informatie over availability.
--
Date
//exception/date
De datum waarop het evenement doorgaat.
//timesta mp
Type timestart
//exception/timestart
Het aanvangsuur van het evenement. Type
timeend
//exception/timeend
Date
Time
Het einduur van het evenement. Type
--
Time
Aandachtspunt 8: gestructureerde tijdsinformatie is relatief complex We raden aan de tijdsmodule in iteraties te bouwen: 1. één tijdstip, 2. periode,
p. 42 van 65
--
3. meerdere tijdstippen, 4. weekschema, 5. uitzonderingen 6. en ten slotte availability. Je hoeft niet alle elementen uit //calendar te implementeren. Zo kan je availability, weekschemes en exceptions laten vallen. Dan bied je echter geen exacte tijdsinformatie en verlies je zaken zoals uitverkocht, geannuleerd etc. Je kan als subscriber op CDB data ook enkel werken met de vrije tekst waarde in calendarsummary.
7.4.4 Weekschema’s: openingstijden en contacturen
7.4.4.1
Definitie
Het weekschema wordt gebruikt om de openingstijden en contacturen van een actor of voor een evenement op te slaan. Bij het aanmaken van een weekschema is een invulling van elke weekdag verplicht. Die invulling bestaat uit het “open type” (open, gesloten, of open op afspraak), en optioneel openingstijden. Als er geen weekschema voorzien wordt, kan je er van uitgaan dat het evenement altijd beschikbaar is, of de locatie altijd open. Een locatie kan op één dag niet als deels gesloten en deels open worden ingevoerd (ze moet dan ingevoerd worden als open van een bepaald uur tot een ander uur). Evenmin kan een locatie maar op een deel van de dag open zijn op afspraak; “op afspraak” slaat dus steeds op de gehele openingsperiode van één dag. Daarvoor wordt een //exception node gebruikt.
Voor periodiek aanbod, voor permanent aanbod of voor een actor (vb. een locatie) kunnen de openingstijden worden opgeslagen waarop het aanbod beschikbaar is. //weekscheme heeft verplichte subnodes voor elke dag van de week: //monday, //tuesday, //wednesday, //thursday, //friday, //saturday, //sunday. Alle dagen hebben hetzelfde attribuut //@opentype en dezelfde subnode //openingtime
--
opentype
//@opentype
Opentype geeft aan voor een bepaalde dag of het aanbod dan open, gesloten of open op afspraak is.
--
Type
Enumeration(‘open’, ‘closed’, ‘byappointment’)
openingtime
//openingtime
Voor elke dag kan er één of meer openingtime elementen zijn. Deze geven start en einduur weer (zie Voorbeeld 14).
--
From
//openingtime/@from
Startuur voor een openingstijd.
--
Type To
//openingtime/@to
Time
Einduur voor een openingstijd. Type
Time
p. 44 van 65
--
7.4.5 Uitzonderingen: open, gesloten of open op afspraak
7.4.5.1
Definitie
Figuur 19: XML structuur voor uitzonderingen binnen periodes en weekschema's
Voorbeeld 15: uitzonderingen bij periode met weekschema
p. 45 van 65
7.4.5.3
Overzicht elementen exception
Element
Pad
Toelichting
Verplicht voor
exception
//exceptions/exception
Een exception is een uitzondering op de standaard tijdsinformatie. Binnen //exceptions kunnen één of meer //exception elementen voorkomen. //exception heeft dezelfde opbouw als //timestamp (zie paragraaf 7.4.3) behalve dat er een opentype element voorzien wordt.
--
availability
//exception/availability
Het is mogelijk dat een evenement op een bepaald tijdstip al uitverkocht is, of geannuleerd, of verplaatst van datum of locatie. Dit wordt opgeslagen in availability. Zie paragraaf 7.4.6 voor meer informatie over availability.
--
Date
//exception/date
De datum binnen de periode waarop de uitzondering van toepassing is. Of het tijdstip binnen het weekschema waarop de uitzondering van toepassing is.
//exceptio n
Type opentype
//exception/opentype
Date
Het soort van uitzondering. Het aanbod kan binnen de periode op een bepaald tijdstip alsnog gesloten of enkel open op afspraak zijn.
//exceptio n
Of voor wat betreft openingstijden van de locatie waar het aanbod doorgaat kan het aanbod op een bepaald tijdstip alsnog open, of gesloten of enkel open op afspraak zijn. Type
Enumeration(‘open’, ‘closed’, ‘byappointment’)
timestart
//exception/timestart
Het uitzonderlijke aanvangsuur
Timeend
//exception/timeend
Het uitzonderlijke einduur
Type
Type
--
Time --
Time
7.4.6 Uitzonderingen: beschikbaarheid
7.4.6.1
Definitie
Volgende uitzonderingen op de beschikbaarheid van aanbod zijn mogelijk: -
Aanbod kan voor een bepaald tijdstip of voor een tijdstip binnen een periode uitverkocht zijn. Dit kan aangegeven worden in de kalender.
-
Indien het aanbod initieel wel bekendgemaakt is en later toch niet doorgaat mag dit aanbod niet verwijderd worden. Het is van belang voor het publiek dat de informatie over het aanbod behouden blijft. Voor het tijdstip of de periode waarvoor het aanbod geannuleerd is, wordt dan een aanduiding gegeven.
-
Een aanbod kan verplaatst worden naar een andere dag of een andere locatie. Het is van belang voor de gebruikers dat ze nog steeds het aanbod kunnen terugvinden en dat ze weten waar het aanbod verplaatst is in de tijd of in de ruimte.
p. 46 van 65
Figuur 20: XML structuur uitzonderingen op beschikbaarheid
Voorbeeld 17: aanbod dat op een bepaald tijdstip binnen een periode geannuleerd werd
7.4.6.3
Overzicht elementen availability
Element
Pad
Toelichting
Verplicht voor
availability
//availability
Er zijn drie uitzonderingen op beschikbaarheid van aanbod zijn mogelijk, met name aanbod is geannuleerd, uitverkocht of verplaatst. Aanbod kan verplaatst zijn naar een ander tijdstip of naar een andere locatie (zie Voorbeeld 16).
--
//availability heeft één of meer van volgende subnodes: //cancelled, //newlocation, //newtime, //soldout. cancelled
//availability/cancelled
Het aanbod is op een bepaald tijdstip geannuleerd. Type
--
Boolean
newlocation
//availability/newlocatio n
Het aanbod is op een bepaald tijdstip gewijzigd van locatie.
--
Location
//availability/newlocatio n/location
De nieuwe locatie waar het aanbod plaatsvindt. Meer informatie over het //location element vind je in paragraaf 3.3.1.
//newlocat ion
newtime
//availability/newtime
Het nieuwe tijdstip waarnaar het aanbod werd verplaatst.
--
date
//availability/newtime/d ate
De datum voor het nieuwe tijdstip waarnaar het aanbod werd verplaatst.
//newtime
Type timestart
//availability/newtime/ti mestart
Het aanvangsuur voor het nieuwe tijdstip waarnaar het aanbod werd verplaatst. Type
Timeend
//availability/newtime/ti meend
date //newtime
time
Het eventuele einduur voor het nieuwe tijdstip waarnaar het aanbod werd verplaatst.
p. 48 van 65
--
Type soldout
//availability/soldout
time
Het aanbod is op een bepaald tijdstip uitverkocht. Type
--
Boolean
7.5 Multimedia 7.5.1 Definitie Het media element bevat referenties naar externe bestanden, vb. audio, video, afbeeldingen, brochures etc. Aandachtspunt 9: wijzen van referentie naar mediabestanden Verwijzingen naar bestanden gebeuren mits absolute of relatieve paden. Een absoluut pad verwijst naar een Internet adres (URL), een relatief pad verwijst naar een bestand dat mee geleverd werd met het XML document. In het laatste geval zullen het XML document en de bestanden gebundeld worden in een compressiebestand (ZIP) in dezelfde folder als het XML document. Voorbeelden verwijzingen: -
De referentie naar het bestand. Binaries kunnen niet opgenomen worden in CdbXML documenten om de grootte van de bestanden te beperken zodat bij transformaties geheugenproblemen vermeden worden. Meer info over hlink in het Aandachtspunt 9. Voorbeelden
Fragment uit live optreden The Violent Husbands Wommelgem zomert
Type mediatype
//media/mediatype
string(250)
Hoewel mediatype geen verplicht veld is wordt het wel altijd voorzien door CultuurDatabank. Als andere publishers dit veld niet voorzien wordt dit gedurende de transformatie bij opslaan in CultuurDatabank berekend a.d.h.v. filetype. Type
ID van het mediabestand in CultuurDatabank. Te negeren.
--
//media/@private
Als een bestand enkel mag gebruikt worden door de eigenaar kan dit als niet-publieke informatie opgeslagen worden.
--
//media/@main
Type
Boolean
Default
False
Bij meerdere mediabestanden die bij eenzelfde instantie horen, kan er één als hoofdmedium worden aangeduid. Als dit een afbeelding is kan
p. 50 van 65
--
dit gebruikt worden in een overzichtspagina.
7.6 Generieke velden 7.6.1 Definitie Met het CdbXML 3.0 formaat heeft de CultuurDatabank een flexibel gegevensmodel ontwikkeld om partners de mogelijkheid te geven gegevens te communiceren die buiten het vaste datamodel van de CultuurDatabank vallen. Aan elke informatie-eenheid kunnen specifieke attributen worden toegevoegd zonder dat het gegevensmodel van de CultuurDatabank moet worden aangepast. Nu de CultuurDatabank volop in productie is en op grote schaal gebruikt wordt, blijkt immers dat voor sommige objecten bijkomende specifieke gegevens nodig zijn die niet in de gegevensstandaard zijn opgenomen. De gegevensstandaard is daarom uitgebreid met het property element waarin XML fragmenten of strings kunnen worden opgenomen. Toegang tot properties dient expliciet te worden aangevraagd bij CultuurNet.
Figuur 22: structuur van het properties element <property type="partner" name="TinckTicketID"> 1234567
Voorbeeld 19: property element met string value 7.6.2 Voorbeeld ... <property type="partner" name="Wandelroute"> Ekerse PuttenBrug van den AzijnKarel Van Nieuwenhuyze ...
Voorbeeld 20: property element met XML value p. 51 van 65
7.6.3 Overzicht elementen properties Element
Pad
Toelichting
Verplicht voor
type
//property/@type
In dit veld wordt het property type opgeslagen. Operator properties worden door CultuurDatabank voorzien en zijn voor iedereen beschikbaar. Partner properties worden ingevuld door, en zijn beschikbaar voor de eigenaar van de betreffende instantie. Validator properties worden door de ingevoerd ingevuld bij een element als de validator geselecteerd wordt en worden ter beschikking gesteld van de validator groep.
//property
Type
enumeratie(‘partner’,’operator’, ’validator’)
name
value
any
//property/@name
//property/value
//property/any
In dit veld wordt in samenspraak met CultuurNet de benaming van de property voorzien. Voorbeeld
TicketTinckID
Type
string(60)
In value wordt een string opgeslagen van minimum 1 karakter. Voorbeeld
12345678
Type
string
Een any element in een XML Schema maakt het mogelijk een XML document uit te breiden met elementen die niet gespecificeerd werden door het Schema. Zie Voorbeeld 20.
p. 52 van 65
//property
8 Extra toelichting 8.1 Relaties tussen informatie-eenheden
Figuur 23: Belangrijkste relaties tussen informatie-eenheden. Een actor kan nul, één of meerdere relaties hebben ten opzichte van het aanbod. We onderscheiden verschillende soorten relaties. De relaties tot het aanbod die voor actoren gelden: -
Organisator: De organisatie of persoon die het aanbod organiseert.
-
Reservator: De organisatie of persoon die verantwoordelijk is voor reservaties en/of tickets.
-
Uitvoerder: De organisatie of persoon die aanbod uitvoert. Het type “uitvoerder”, bijvoorbeeld regisseur, acteur, dansgezelschap,… wordt vrij omschreven.
-
Locatie: De organisatie die als locatie van aanbod dient.
Aandachtspunt 10: rijke actor informatie geëmbed in event De tournee “Homo Erectus” van de muziekgroep “Gorki” kan doorgaan in Ancienne Belgique of in de sporthal van het St-Gabriëlcollege. In het eerste geval zal er een relatie tussen het aanbod “Homo Erectus” en de actor “Ancienne Belgique” bestaan. In het tweede geval is die relatie er niet omdat de sporthal niet toegevoegd werd als actor. In CultuurDatabank-jargon bevat de eerste actor rijke informatie en is de tweede actor een dummy instantie. Om de beschikbare rijke actor informatie (dus voor bovenstaand voorbeeld Ancienne Belgique) te ontvangen in een aanbod-element moet je dit expliciet aanvragen bij CultuurNet. Een nadeel is dat de XML-bestanden dan aanzienlijk groter worden. Immers, als AB zowel locatie is als organisator dan zal de actor-instantie tweemaal toegevoegd worden met alle bijhorende gegevens. Een actor kan nul, één of meerdere relaties hebben ten opzichte van een andere actor. We onderscheiden verschillende soorten relaties. p. 53 van 65
-
Een actor kan een hiërarchische relatie hebben ten opzichte van een andere organisatie, bijvoorbeeld de KAV met de verschillende afdelingen.
-
Een actor kan ook een relatie hebben met een andere actor die vrij omschreven kan worden. Het gaat hier wel om structurele relaties, die op zichzelf bestaan en niet in functie van een specifiek aanbod.
Directeur
Voorbeeld 21: voorbeeld van relatie tussen actoren van het type "andere" Een aanbod kan geen, één of meerdere relaties hebben tot ander aanbod. - Vanuit het tijdelijke of permanente aanbod kan er nul of één relatie “heeft als productie” gelegd worden naar de overeenstemmende productie die als sjabloon fungeert voor het tijdelijke of permanente aanbod. - Aanbod kan ook een hiërarchische relatie hebben tot ander aanbod. Het gaat hier dan om koepelaanbod, zoals de Gentse Feesten en de Zomer van Antwerpen enz. dat bestaat uit verschillende activiteiten, evenementen. Men kan dan alle evenementen relateren aan het koepelaanbod. <eventrelations> Pukema Rock
Voorbeeld 22: voorbeeld van relatie "heeft als productie" <eventrelations> <parentevent cdbid="9F494785-C218-1783-C420F3561DB61D07">Mechelen Kinderstad
Voorbeeld 23: voorbeeld van koepelaanbod
8.2 Gemeenten en regio’s Locaties waarbij voor de stad een CDB ID (//city/@cdbid) werden voorzien, kunnen gerelateerd worden aan één of meer regio’s. Zodoende kan gezocht worden naar aanbod in de “CultuurDatabank regio” Aalst of de provincie Antwerpen. Aalst BE9300
... ...
p. 54 van 65
Voorbeeld 24: relatie tussen gemeente en regio Gemeenten ingedeeld in regio’s zijn beschikbaar in het XML document regions.xml op http://www.cultuurdatabank.com/XMLSchema/CdbXSD/3.0/FINAL/. De formattering van regions.xml werd opgenomen in het XML Schema.
Figuur 24: XML structuur voor regions.xml Volgende types regio’s bestaan op dit moment: -
CdbRegio’s (op basis van een studie van CultuurNet Vlaanderen over culturele regio’s in Vlaanderen en Brussel)
-
Provincies
8.3 Archiveren In //@availableto wordt door het CultuurDatabank systeem voor tijdelijk aanbod automatisch de laatste dag na het verstrijken van het aanbod weggeschreven. Gebruiker kunnen daarnaast via www.cultuurdatabank.be gegevens zelf archiveren. In dat geval wordt het “huidige” tijdstip opgeslagen in //@availableto.
p. 55 van 65
Figuur 25 - Archiveren via www.cultuurdatabank.be Fysiek verwijderen gebeurt in CultuurDatabank enkel als het foutieve gegevens betreft of gegevens die niet voldoen aan de invoerrichtlijnen. Subscribers zullen dus zelden “delete XML” ontvangen. Om je databank klein te houden kan je daarom gearchiveerde gegevens zelf fysiek verwijderen. Een populaire tactiek is bijvoorbeeld al het aanbod dat langer dan een maand verstreken is fysiek te verwijderen. Het aanbod dat sinds een dag verstreken is kan bijv. enkel nog ter beschikking gesteld worden via zoekformulieren.
8.4 Delete XML Bij fysiek verwijderen uit de CultuurDatabank worden CDB ID en het moment van verwijderen weggeschreven in een apart component. Subcribers die delta files ontvangen, krijgen daarbij overzichten van verwijderde instanties sinds de vorige delta. Omdat enkel de ID wordt onthouden is de kans groot dat subscribers ook ID’s ontvangen van verwijderde bestanden die nooit in hun systeem zaten.
8.5 Meertaligheid In CdbXML 3.0 is voorzien dat elk vrij tekstveld meertalig kan zijn. Vrije tekstvelden werden gegroepeerd in *detail elementen: eventdetail, actordetail, productiondetail en linkdetail. Het *detailelement zelf is voorzien van een verplicht @lang attribuut. <eventdetails> <eventdetail lang="nl"> Van 28/02/2006 tot 23/12/2006 <price> <pricevalue>3 <shortdescription>Documenten, foto's, affiches, voorwerpen en boeken werpen een licht op de voornaamste Belgische tempels en hun plaats binnen de algemene vrijmetselaarsarchitectuur. De tentoonstelling zelf gaat door in een gebouw dat vroeger dienst deed als vrijmetselaarsloge. Architectuur en Vrijmetselarij <eventdetail lang="fr"> <shortdescription>Documents, photos, publicités, affiches, objets, livres. Documents, photos, publicités, affiches, objets et livres illustrent dans cette exposition les principaux temples belges et leur situation dans le contexte architectural maçonnique. L'expo est elle-même accueillie sous les voûtes d'un ancien temple maçonnique. Architectures maçonniques
Voorbeeld 26: meertalige velden Binnen de *detail elementen zijn “title” en “shortdescription” verplicht. Als een titel in maar één taal werd opgeslagen in CultuurDatabank, dan wordt de titel gekopieerd naar de andere taal. Als een korte beschrijving niet in de verschillende talen is voorzien, dan wordt “NB” ingevuld.
8.6 Privé-gegevens Bepaalde gegevens mogen door CultuurDatabank niet gedeeld worden met derden. Hiervoor wordt het attribuut private op WAAR gezet. Deze gegevens worden enkel ter beschikking gesteld van CultuurNet en de eigenaar van de gegevens. Of gegevens privé zijn kan ingesteld worden per informatie-eenheid, maar daarnaast ook voor het globale element “media”. <event availablefrom="2006-04-03T00:00:00+01:00" availableto="2006-05-23T00:00:00+01:00" cdbid="6132A5D7-04E0-C175-03152B0AD9676BDA" private="true">...
p. 57 van 65
Voorbeeld 27: privé-gegevens
8.7 Leeftijdsklasse De leeftijdsklasse waarvoor een aanbod geldt wordt ten eerste als categorie binnen de doelgroep dimensie opgenomen en ten tweede als apart attribuut voorzien (//event/agefrom). Als categorie bestaan volgende mogelijkheden: -
Vanaf kleuterleeftijd (3+)
-
Vanaf lagere schoolleeftijd (6+)
-
Jongeren vanaf 12 jaar (12+)
-
Jongeren vanaf 15 jaar (15+)
-
Volwassenen (18+)
Het agefrom veld is een numeriek veld. Hierin kan dus eender welke leeftijd worden ingevuld. Als de categorie voorzien is zal ook het numeriek veld ingevuld worden. Het volstaat dus je op //event/agefrom te baseren.
Aandachtspunt 11: Het pictogram Vlieg Als een leeftijdsklasse onder de 12 jaar van tel is, dan moet het pictogram Vlieg worden opgenomen in je publicatie. Dit pictogram wordt als mediabestand met het desbetreffende aanbod mee verstuurd: <events> <event> 3 … <eventdetails> <eventdetail lang=”nl”> … <media> CultuurNet Vlaanderenvlieg.jpgjpghttp://www.cultuurdatabank.com/Vlieg/vlieg+website.jpg Met het pictogram Vlieg wordt het culturele aanbod dat geschikt is voor kinderen tot 12 jaar gemarkeerd. …
Voorbeeld 28: privé-gegevens Meer informatie over mediabestanden is beschikbaar in paragraaf 7.5.
p. 58 van 65
8.8 CdbXML versies Het XML Schema, categorisation.xml en regions.xml hebben allen versienummers. De versie van het XML Schema werd opgenomen in de namespace declaratie. De versies van regions.xml en categorisation.xml werden ten eerste opgenomen als attribuut van de betreffende node en ten tweede in de metadata die wordt verzonden bij het XML document. -
CdbXML 3.0 namespace
-
categorisation.xml ...
-
regions.xml ...
CdbXML heeft een hoofdversienummer (in dit geval “3”) en een subversienummer (in dit geval “0”), wat het versienummer in dit geval op 3.0 brengt. Daarnaast heeft een versie een status. Deze kan DRAFT of FINAL zijn. In status DRAFT kunnen ten allen tijde wijzigingen worden doorgevoerd. Bij status FINAL wordt het schema bevroren (d.i. niet meer gewijzigd in het huidige versienummer), behalve in uitzonderlijke situaties voor correctiesvan inconsistenties tussen de documentatie en het XML Schema.6 Het subversienummer wordt verhoogd als wijzigingen worden doorgevoerd die geen gevolgen hebben voor publishers of subscribers in die zin dat ze geen ontwikkelingen vereisen om in overeenstemming te blijven. Het betreft hier meestal toevoegen van niet-verplichte elementen. Het hoofdversienummer wordt verhoogd als de wijzigingen wel gevolgen hebben, dus als ze wel ontwikkelingen vereisen aan de kant van de partner. Deze gevolgen uiten zich in het niet meer valide zijn van de XML. Ze vereisen veelal aanpassingen in de databanken, XML parsing- en generatiemodules, of andere applicaties van partners. Wijzigingen worden verspreid naar partners die beschikken over een abonnement. Merk op dat enkel datafeeds gebruikt mogen worden mits geldig en correct abonnement, enkel in dat geval wordt de gebruiker ook op de hoogte gehouden van eventuele wijzigingen. Bij wijziging van het emailadres van de contactpersoon moet dit bvb. doorgegeven worden. Daarnaast worden ze gepubliceerd in een nieuwe directory en onder een nieuwe namespace, bijvoorbeeld http://www.cultuurdatabank.com/XMLSchema/CdbXSD/3.1/FINAL/. De oudere versies blijven bestaand. Na verloop van tijd kan een publisher (bijv. CultuurNet) echter besluiten deze versies niet meer te ondersteunen. Hij kan dan alsnog voorzien in een achterwaartse transformatie voor subscribers wiens systemen het nieuwe schema nog niet ondersteunen. Deze ondersteuning is voor minimaal 1 jaar gegarandeerd en wordt in voorkomend geval expliciet gecommuniceerd. Wijzigingen aan de categorisatie en de regio-indeling worden doorgevoerd binnen dezelfde versie van CdbXML als het enkel toevoegen van nieuwe elementen worden betreft (er wordt bijvoorbeeld een nieuw thema toegevoegd aan categorisatie). Het versie attribuut wordt dan wel aangepast en de wijzigingen worden meegedeeld aan de partners. Bij grondige wijzigingen (vb. een volledige omschakeling van de categorisatie) wordt ook voor CdbXML een nieuwe versie voorzien. 6
Er is niet vastgesteld of het schema dan wel de documentatie leidend (correct) is. p. 59 van 65
Als een publisher geen metadata over de gehanteerde versies publiceert (zie onderstaand voorbeeld) dan wordt er van uit gegaan dat het de “standaard” versie is die ondersteund wordt. Deze wordt één niveau hoger gepubliceerd. De laatste versie is bijv. beschikbaar in: http://www.cultuurdatabank.com/XMLSchema/CdbXSD/3.0/FINAL/categories/1.7/ en de standaard versie is beschikbaar in http://www.cultuurdatabank.com/XMLSchema/CdbXSD/3.0/FINAL/categories/ <metadata>
Voorbeeld 29 met het XML document mee verzonden indicatie van de versienummers van de categorisatie en regio-indeling
9 Wijze van publiceren: full en delta feeds Er zijn verschillende (SOA) design patterns bedenkbaar voor gegevensuitwisseling waarvan de meest signifante “pull-type” (aka bulletin boards) notificaties en “publish/subscribe” mechanismen zijn. Uitwisseling van CdbXML 3.0 documenten gebeurt via een publish/subscribe mechanisme. Op vastgestelde tijdstippen ontvangt met name de centrale CultuurDatabank service hub “IIS” (Informatie Integratie Systeem”) gegevens van publishers en publiceert ze deze via http of ftp naar locaties van subscribers.
Afnemer
Publicatie
Listener
Subscriber abonnement
Publisher abonnement
IIS transactiehub
Figuur 27: Publish/subscribe pattern IIS Hierbij wordt eerst een “full” feed gepubliceerd en vervolgens “delta’s” t.o.v. deze full. Een full feed is het volledige niet-verlopen aanbod dat op dat moment beschikbaar is in de databank van de publisher. Delta feeds bevatten de verschillen t.a.v. de betreffende full, meer bepaald p. 60 van 65
toevoegingen, aanpassingen en verwijderingen. Fulls worden in principe enkel gegenereerd bij aanvang van een inschrijving door een subscriber op de feed van de publisher of op expliciete aanvraag voor bijvoorbeeld foutenherstel. Het is in belang van beide systemen om te werken met delta’s omdat een periodieke publicatie van full feeds een overgroot deel aan overhead genereert en erg belastend is voor de uitwisselende systemen.
10 Publisher aandachtspunten 10.1 Unieke identificatie aanbod en (gerelateerde) objecten Om dubbels te vermijden in de databank van de subscriber moet je als publisher ID’s voorzien voor hoofdinformatie-eenheden, én voor gerelateerde objecten. Voorbeelden van gerelateerde objecten zijn aan aanbod gerelateerde actor objecten zoals de locatie en de organisator. Meer uitleg over relaties tussen objecten vind je in Hoofdstuk 8.1. ID’s gegenereerd door de CultuurDatabank worden voorzien in //@cdbid. ID’s uit databanken van andere publishers worden in het //@externalid attribuut opgeslagen. <events> <event externalid="12345"> ... HallaarBE <street>Adres 2220 ... Voorbeeld 30: voorbeeld externalid Volgende externalid’s moeten door publishers voorzien worden: -
10.2 Validatie CdbXML documenten wordt gevalideerd a.d.h.v. een XML Schema dat beschikbaar is op http://www.cultuurdatabank.com/XMLSchema/CdbXSD/3.0/FINAL. Als publisher moet je de gegevens die je wil verzenden voorafgaan valideren tegen dit Schema, op deze locatie. Een versie lokaal downloaden voor validatie is niet geldig omdat off-line versies niet als up-to-date beschouwd worden. Geselecteerde categorieën worden gevalideerd a.d.h.v. het aparte XML document, categorisation.xml. Dit bestand is eveneens beschikbaar op bovenstaand adres. De categorisatie maakt dus geen deel meer uit van het XML Schema zoals bij voorgaande versie van CdbXML. Dit werd gedaan omdat categorisatie onderhevig is aan wijzigingen. Meer informatie over categorisatie vind je in Hoofdstuk 7.1. Meer informatie over wijzingen vind je in Hoofdstuk 8.7
10.3 HTML inhoud Omdat gegevens uit de CultuurDatabank niet enkel gebruikt worden om web sites mee te voeden maar ook o.a. voor de gedrukte media is het niet toegestaan HTML tags in elementen te verwerken (bijv. in //longdescription).
10.4 De CultuurDatabank overschrijft bepaalde waarden Volgende waarden worden bij importeren in de CultuurDatabank genegeerd of herberekend: -
Tijdssamenvatting: //calendarsummary
-
GIS coördinaten (enkel voor Vlaanderen en Brussel) //gis
Meer informatie over “rijke actorinformatie” staat in Aandachtspunt 10: rijke actorinformatie geëmbedded in aanbod
p. 62 van 65
-
Beschikbaar van: //@availablefrom
-
Beschikbaar tot: //@availableto
-
CultuurDatabank ID: //@cdbid
10.5 Let op voor volgende valkuilen Volgende inhoudelijke tekorten komen al eens voor bij XML Documenten van publishers: -
Er mag geen tijdsinformatie opgenomen worden in korte en lange beschrijvingen. Dit is niet aan te raden omdat hiervoor al het gestructureerde calendar element beschikbaar is. Meer informatie over het calendar element vind je in Hoofdstuk 7.4.
-
Prijsbeschrijving (//price/pricedescription) mogen enkel worden opgenomen in combinatie met de standaard prijs (//price/pricevalue). In de standaard prijs kan 0 ingevuld worden als het aanbod gratis is.
-
Als je niet over een korte beschrijving beschikt zal dit de kwaliteit van de gegevens niet ten goede komen. Er kan dan echter “NIET BESCHIKBAAR” worden ingevuld. Deze standaard notatie maakt het voor publishers mogelijk de presentatie hierop aan te passen.
-
In de lange beschrijving hoort enkel een algemene beschrijving over het aanbod thuis, geen tijdsinformatie of informatie over de locaties enz. Het betreft in feite gelijkaardige inhoud als de korte beschrijving maar dan uitgebreid.
-
Als de lengte van de korte beschrijving (400 karakters) korter is dan de lengte in de databank van de publisher dan wordt de korte beschrijving afgesneden na het laatste punt. Na onderzoek bleek dat dit zelden afdoet aan de inhoud van de korte beschrijving. Als er geen punt in de korte beschrijving beschikbaar is, dan wordt afgesneden na het laatste woord dus niet midden in een woord.
-
In de CultuurDatabank wordt nog de ISO 8859-1 karakter encodering gehanteerd. Hierbij wordt afgeweken van de meer en meer de facto encodering standaarden UTF-8 en UTF-16. Meer informatie over karakter encodering is beschikbaar op http://en.wikipedia.org/wiki/ISO_8859-1.
11 Toekomstige versies Volgende ideeën liggen alvast op tafel voor toekomstige versies: -
Ten gronde vereenvoudigen categorisatie (samenvoegen type en thema boom)
-
Redactionele inhoud toelaten, gerelateerd aan aanbod
-
Rankings toelaten gerelateerd aan aanbod, met een verwijzing naar een eigenaar van de ranking
-
URL relateren aan producties
-
Qua tijdsinformatie meerdere periodes en meerdere permanentopeningtime elementen toelaten
-
Het CIDN ter vervangen van de huidige UUID
-
Sublocaties toelaten voor locaties (vb. ‘de rode zaal’ van deSingel)
-
Een vrij tekstveld toevoegen aan kalenderinformatie (vb. gesloten tijdens vakantieperiode)
12 Woordenlijst IIS abonnement Bevat de details over bestandaanlevering van een bepaalde publisher (bijv. CultuurDatabank). Een IIS abonnement is gerelateeerd aan één publisher en eventueel aan verschillende subscribers. CdbXML 3.0
p. 63 van 65
CdbXML 3.0 is de naam van de gegevensstandaard die wordt gehanteerd voor uitwisseling van cultuurdata. CdbXML 3.0 is een eenvoudige en efficiënte XML-structuur. De naam is afkomstig van van CultuurDatabank XML 3.0. Delta file Databestand welke alleen nieuwe en/of gewijzigde instanties bevat. Entiteitendiagram Een entiteitendiagram biedt een high-level overzicht van de klassen waaruit het domeinmodel bestaat met de nadruk op verwijzingen tussen klassen en attributen van klassen. GIS Een Geografisch Informatiesysteem (GIS), is een informatiesysteem waarmee ruimtelijke gegevens/informatie over geografische objecten kunnen worden opgeslagen, beheerd, bewerkt, geanalyseerd en/of gepresenteerd.8 GUID Zie UUID Instantie Deze benaming werd overgenomen uit object-georiënteerd modelleren waarbij een object een instantie is van een klasse. Zo kan het object “Romeo en Julia” een instantie zijn van de klasse “Event”. IIS Het Informatie Integratie Systeem (IIS) is een ‘universeel-stekker’ voor datacommunicatie van verschillende systemen van verschillende culturele instellingen uit de profit en non-profit sectoren, zij het als publicerende partij of als geabonneerde partij. De CultuurDataBank (CDB) is één van deze systemen die zowel als publicerende partij en als geabonneerde partij optreedt. Het IIS ontvangt bestanden met culturele informatie van partners, de zgn. publishers, en transformeert deze naar een standaard formaat en slaat ze op. Andere partners, de zgn. subscribers, kunnen zich abonneren op deze bestanden en krijgen ze op gezette tijden in hun eigen formaat toegestuurd. Namespace Een namespace is een container die de context van de elementen (vb. woorden en benamingen) binnen een taal afbakent. Hierdoor kunnen elementen in een andere namespace terugkomen zonder dat er ambiguïteit ontstaat. De directorystructuur van een besturingssysteem is hier een goed voorbeeld voor. De directory is dan de namespace. Binnen de directory kan een benaming maar één keer voorkomen. Buiten de directory, in een andere directory, mag de benaming opnieuw gebruikt worden. PHP PHP is een scripttaal, die hoofdzakelijk wordt gebruikt om op webservers dynamisch webpagina's te creëren. De website van PHP is www.php.net. Publisher Publishers leveren cultuurdata via IIS.
8
Bron: http://nl.wikipedia.org/wiki/GIS p. 64 van 65
Subscriber Subscribers nemen cultuurdata af via IIS. UUID Een Universally Unique Identifier (UUID) is een 16-byte nummer dat er als volgt kan uitzien: 550e8400-e29b-11d4-a716-446655440000. Het is een identificatiecode die gebruikt wordt in software ontwikkeling, gestandardiseerd door de Open Software Foundation (OSF). De bedoeling van UUIDs informatie uniek te identificeren zonder significante centrale coördinatie. Daardoor kan iedereen een UUID creëren en er redelijk zeker van zijn dat deze nooit – tenzij expliciet de bedoeling – gebruikt zal worden voor een ander doeleinde. Informatie met een UUID label kan dus gecombineerd worden in één database zonder dat er conflicten ontstaan. De meest voorkomende implementatie is Microsoft's Globally Unique Identifiers (GUIDs).9 XML eXtensible Markup Language (XML) is een standaard om gegevens gestructureerd vast te leggen. Deze manier is gedefinieerd en mag iedereen gebruiken. Het is ontworpen om zowel door een programma als door een mens leesbaar te zijn. XML is niet alleen geschikt om gegevens in op te slaan maar wordt de laatste tijd ook meer en meer gebruikt om gegevens via het internet te versturen.10 De definitie volgens het W3C (World Wide Web Consortium) vind je op http://www.w3.org/XML/. XML Schema, XSD XML Schema is een taal voor het beschrijven van de structuur van XML documenten. Hierbij worden XML documenten formeel gespecificeerd, en op grond waarvan zij kunnen worden gevalideerd, bijvoorbeeld door XML validators. Een XML Schema geeft hiervoor onder meer aan wat de elementen zijn van een XML document, waar zij voorkomen, wat de kenmerken zijn waaraan ze moeten voldoen, enzovoorts. Zeer simplistisch uitgedrukt kan een XML Schema onder meer aangeven, wat voor soort tags in een XML document mogen voorkomen.11 XPath XPath is een syntax om informatie te vinden in een XML document. Het is een onderdeel van de W3C XSLT standaard. XSLT XSLT of XSL Transform, voluit Extensible Stylesheet Language Transformations is een standaard voor het omzetten van de informatie in een XML document naar een ander formaat (vb. PDF), of een anders gestructureerd XML document.