Wees duidelijk met je data

In een vorige bijdrage had ik het over de kwaliteit van informatiesystemen (zie Goochelen met cijfertjes). Het kan ook interessant zijn om even stil te staan bij de zaken waar je een informatiesysteem mee voedt: de data, of zo je wil, de gegevens. Als daar geen duidelijke afspraken over gemaakt worden, dan riskeer je helemaal in de soep te draaien. En daarbij denk ik aan drie aspecten: de syntaxis, de semantiek en de pragmatiek. U zei?

Eigen illustratie.


Syntaxis

Gegevensuitwisseling gebeurt altijd op basis van taal. Dat is niet noodzakelijk een bestaande mens-tot-mens-taal, het kan ook een kunstmatige taal zijn. Denk maar aan morse, semafoor in de scheepvaart of zelfs doodgewone verkeerslichten.

De syntaxis van een taal is het geheel aan regels in het gebruik ervan. Volg je die regels niet, dan gebeuren er letterlijk en figuurlijk ongelukken. Denk nog maar eens aan verkeerslichten.

Wanneer we het nu heel specifiek hebben over computerdata, dan bepaalt de syntaxis bijvoorbeeld welke tekens gebruikt kunnen worden in welke combinaties. De syntaxis definieert de structuur van data.

Stel dat de verkoopdienst van een bedrijf aan elke klant een klantennummer toekent, bestaande uit drie hoofdletters, een punt, vijf cijfers, een punt, twee hoofdletters. Dan is DGS.52413.CZ een geldig klantennummer. 524.DGS13.CZ is dat niet.

Op basis van syntaxis kan je informatiesystemen automatisch data laten accepteren of laten weigeren. Geldige codes zijn okee, ongeldige niet.

Semantiek

Onder semantiek van gegevens verstaan we de betekenis die de gegevens hebben. Voor de computer zelf is semantiek niet belangrijk, wel voor degene die de gegevens invoert en vooral voor degene die de gevens moet gebruiken. Want de gebruiker moet weten wat de gegevens betekenen vóór hij er iets mee kan aanvangen.

Een simpel voorbeeldje. Je manager stuurt je een e-mail met het goede nieuws dat je een nieuwe laptop mag aankopen voor een bedrag van 1.200 euro. Maar is dat 1.200 euro mét btw of zónder btw? Een groot verschil, niet alleen voor de boekhouding, maar ook voor de laptop zelf.

Nog een ander voorbeeld waar semantiek belangrijk is. Op twee verschillende afdelingen in een bedrijf worden klantengegevens opgeslagen. In de ene afdeling heeft men het over naam en gemeente van de klant, in de andere afdeling gebruikt men familienaam en woonplaats. Niet alleen kunnen die twee databanken niet met mekaar communiceren, er is ook nog het risico op misverstanden.

Dubbele stelregel van de semantiek: geen verschillende namen voor gelijke gegevens, geen gelijke namen voor verschillende gegevens.

Pragmatiek

Voor velen is het verschil tussen semantiek en pragmatiek niet zo heel duidelijk. Het gaat toch allebei over de betekenis van de data? Inderdaad, maar bij pragmatiek gaat het vooral over de reactie van de gebruiker, wat hij er al dan niet mee doet.

Een voorbeeldje? Je stuurt een herinnering aan je klant omdat hij zijn factuur niet betaalt. Om in orde te zijn met de pragmatiek, moet die herinnering aan bepaalde voorwaarden voldoen. Het volstaat niet om gewoon te vragen of hij zijn factuur wil betalen. Neen, er moet een duidelijke verwijzing zijn naar de oorspronkelijke factuur, datum, bedrag, betalingstermijn en zelfs wat de gevolgen zullen zijn als de klant de factuur niet betaalt. Zodat de herinnering bij de klant het juiste gedrag uitlokt: dat hij de factuur betaalt.