Een echt ‘universeel datamodel’ op basis van natuurlijke taal hoeft niet voor elk project te worden aangepast en zou veel tijd besparen tijdens de informatie-analyse. Dit lijkt mogelijk te worden met de ontwikkeling van het ‘generiek modelleren’. Andries van Renssen beschrijft deze methode aan de hand van Iso 10303-221, een nieuwe standaard voor opslag van informatie en voor informatie-uitwisseling tussen applicaties.
Informatie-analyse op basis van natuurlijke taal wordt al lang gepropageerd – met name door prof. G.M. Nijssen – en is vastgelegd in de informatie-analysemethode Niam. De voorstanders van informatie-analyse op basis van natuurlijke taal claimen dat die methode tijdwinst oplevert tijdens de analysefase. Opvallend is echter dat voor elk project weer een nieuw datamodel ‘op basis van natuurlijke taal’ nodig lijkt te zijn. De universele informatiekunde heeft tot nu toe geen universeel datamodel opgeleverd.
Veel meer tijdwinst zou behaald worden als een formele versie van die ‘natuurlijke taal’ eens en voorgoed gedefinieerd werd, waardoor een ‘universeel datamodel’ zou ontstaan. De mogelijkheid daartoe lijkt aangetoond met de ontwikkeling van het ‘generiek modelleren’ door Shell. Iso 10303-221, ofwel Application protocol 221 (AP221) van de nieuwe standaard Iso 10303 (Step) voor de opslag van informatie en voor informatie-uitwisseling tussen applicaties, is eveneens gebaseerd op het principe van het generiek modelleren.
Bovendien is AP221 te zien als een aanzet voor een universeel datamodel dat kan worden beschreven in een aan de natuurlijke taal ontleende formele grammatica. Het datamodel van AP221 is ontwikkeld voor de beschrijving van technische installaties en documenten gedurende de gehele levensduur van die installaties, maar ook voor de beschrijving van processen en activiteiten van organisaties die daarmee verband houden. Het model is echter zo algemeen toepasbaar dat het ook op heel andere gebieden bruikbaar is, zoals voor gegevenspakhuizen in commerciële omgevingen.
‘Bottom-up’ of ’top-down’
De meeste informatie-analysemethoden beginnen het probleemgebied bottom up te onderzoeken, liefst aan de hand van voorbeelden. Het resulterende database-ontwerp zal daardoor als maatwerk passen op het toepassingsgebied, maar is zeer waarschijnlijk niet geschikt voor een bredere toepassing. Stel dat een analist een toepassing moet specificeren voor het selecteren van onderdelen uit een catalogus, voor een bepaald bedrijf of een specifieke bedrijfstak. In welke mate zal de door hem gespecificeerde database toepasbaar zijn voor andere bedrijven of bedrijfstakken?
‘Bottom-up’methoden hebben als voordeel dat ze parallel lopen aan de leercurve van de analist en als bijkomend voordeel dat ze starten met het concrete ’taalgebied’ van het onderzoeksgebied.
Dergelijke methoden verlopen dan ook ‘van specifiek naar generiek’. Op die manier worden tijdens de analysefase de meer gegeneraliseerde concepten langzamerhand geïdentificeerd. Deze vormen vervolgens de entiteiten met hun attributen in het datamodel. In zo’n datamodel worden ook beperkingen opgenomen die voor het probleemgebied van toepassing zijn. Zo acht men het vaak niet nodig om gegevens over de ‘historie’ bij te houden. Wanneer de gebruikers dan gegevens wijzigen, is het niet mogelijk om op te vragen hoe de situatie voor de wijziging was. Dergelijke beperkingen worden soms aangebracht om de implementatie te vereenvoudigen. De ‘bottom-up’benadering leidt daarom bijna automatisch tot datamodellen die door de beperkte generalisatie en de ingebouwde beperkingen slechts bruikbaar zijn voor het bestudeerde probleemgebied, totdat de behoeften van de gebruikers veranderen. En dat is vaak al snel…
De methode die in Iso 10303 – AP221 is gevolgd, begint echter ’top- down’ vanuit een algemeen geldende ‘grammatica’. Dat wil zeggen: generieke objecten, algemeen geldige associaties en universeel geldende beperkingen. De algemeen geldende regels worden uitgebreid met de specifieke terminologie van een bepaald toepassingsgebied. Dat gebeurt door het toevoegen van een gespecialiseerd ‘woordenboek’ aan de algemeen geldende grammatica. Daardoor wordt een zeer flexibel en breed toepasbaar generiek datamodel verkregen met een zeer specifiek ingevulde terminologie.
Universele grammatica
In de universele grammatica van AP221 komen taalelementen voor als:
– … is een deel van …
– … is een soort …
– … heeft de eigenschap … met waarde …
– … is vastgemaakt aan …
– … heeft een rol als … in activiteit …
– … bevindt zich ten opzichte van … op een afstand van … in de richting van … en gedraaid over … graden in het … vlak – enz.
Als nu op de plaats van de stippeltjes een woord uit een gespecialiseerd woordenboek wordt ingevuld, dan is een willekeurig object uit dat woordenboek in belangrijke mate te beschrijven.
Stel dat een woordenboek wordt toegevoegd met alle soorten pompen en onderdelen van pompen met hun eigenschappen, zoals de woorden ‘lengte’, ‘diameter’, enzovoort. Dan is met dit kleine stukje universele grammatica al een groot deel van de catalogus van een pompenfabrikant te beschrijven. En als aan dezelfde grammatica een woordenboek met termen uit de woningbouw wordt toegevoegd, kan een architect een groot deel van een huis beschrijven.
Associatie-oriëntatie
Men zegt wel eens schertsend dat alle datamodellen uiteindelijk op hetzelfde neerkomen: object ‘iets’ heeft een associatie met een ander object ‘iets’. Dit blijkt echter geen grapje te zijn. Ook de menselijk hersenen lijken pas betekenis toe te kennen aan ‘iets’ als er een associatie is met een ander ‘iets’. De informatie lijkt niet zozeer te liggen in de objecten als wel in de associaties: niet object-georiënteerd, maar associatie-georiënteerd. Dit is ook te zien aan de bovengenoemde voorbeelden van universele taalelementen. De taalelementen zijn associaties. De woorden die op de plaats van de stippeltjes worden ingevuld, krijgen hun betekenis door de associaties die deze woorden in een context plaatsen en betekenis geven.
Een associatie tussen twee objecten wordt in een datamodel beschreven als een relatie (relationship) tussen twee entiteiten. Deze relatie zal in het algemeen een zogenaamde ‘veel op veel’ (n:m) relatie zijn. Diezelfde relatie is te beschrijven als een zin die de associatie tussen de twee objecten aangeeft. Dat is bijvoorbeeld het geval met associaties die decomposities beschrijven en met associaties die classificatie beschrijven. Ter verduidelijking worden hieronder de eerste twee bovengenoemde taalelementen nader uitgewerkt.
Decompositie en assemblage. In het algemeen geldt dat een geheel kan worden verdeeld in een willekeurig aantal delen en dat een deel een deel kan zijn van een willekeurig aantal ‘gehelen’. Als we ons bovendien realiseren dat de termen ‘deel’ en ‘geheel’ beide ‘rollen’ van een object zijn, dan blijkt men met een zin elke willekeurige decompositie en assemblage te kunnen beschrijven.
Deze zinnen beschrijven een n:m associatie van elke willekeurige decompositie en assemblage. Het taal-element dat deze associaties beschrijft is: een object (A) ‘kan een deel zijn van’ een ander object (B).
Dit is toepasbaar op specifieke gevallen van A en B, maar ook op klassen (soorten) van A en B. Voor specifieke gevallen A en B wordt de associatie beschreven door het taalelement: A ‘is een deel van’ B. Voor het algemene geval van objecten van een bepaalde soort (klasse) van C1 en C2 wordt de associatie beschreven door het taalelement: een object van soort C1 ‘kan een deel zijn van’ een object van soort C2, of verkort weergegeven: C1 ‘kan een deel zijn van’ C2.
Classificatie. De meeste analysemethoden kennen wel het onderscheid tussen klassen en specifieke objecten. Daarbij worden de klassen meestal gebruikt als ‘entiteiten’, terwijl de specifieke objecten instanties zijn van deze entiteiten. Daardoor is het mogelijk gegevens vast te leggen over specifieke objecten; algemeen geldende gegevens over de klassen ontbreken echter meestal.
Wanneer bijvoorbeeld in een database voor pompgegevens de entiteit ‘pomp’ voorkomt, kunnen er in de attributen gegevens over specifieke pompen worden opgenomen. Maar voor algemeen geldende gegevens over pompen is daarin geen plaats. Om dat mogelijk te maken zou er een entiteit ‘pomp-klasse’ toegevoegd moeten worden.
In AP221 wordt een systematisch onderscheid gemaakt tussen de entiteit ‘klasse van object’ en de entiteit ‘specifiek object’. Het universele ‘iets’ wordt dus allereerst onderscheiden in ‘specifiek’, ‘klasse’ of ‘associatie’. Door een specifiek object expliciet, via een classificatie-associatie-object, te relateren aan een bepaalde klasse van objecten krijgt het specifieke object pas de eigenschappen en het gedrag van die klasse.
Volgens de methode van generiek modelleren heeft dus niet ‘pomp P101’ een bepaalde eigenschap, maar is er een specifiek ‘iets’ met de naam ‘P101’ dat geclassificeerd is als ‘pomp’.
Het AP221-datamodel maakt het door deze generalisering mogelijk om het toepassingsgebied van het datamodel uit te breiden, zonder dat het datamodel zelf uitgebreid behoeft te worden. Zo’n uitbreiding van het toepassingsgebied wordt bereikt door het toevoegen van een ‘klasse bibliotheek’ waarin nieuwe klassen gedefinieerd worden en waarin de eigenschappen van die klassen zijn opgenomen. Anders gezegd: door het toevoegen van een woordenboek kan de taal uitgebreid worden, zonder dat de grammatica (het datamodel) aangepast behoeft te worden.
Woordenboeken
In de bovengenoemde zinnen moeten woorden op de plaats van de stippeltjes (…) worden ingevuld. Het gaat om namen van specifieke objecten, namen van klassen uit het woordenboek of waarden van eigenschappen (getallen en text-strings), al dan niet voorzien van een eenheid, bijvoorbeeld: 100 kg.
Naast de standaard-eenheden moeten alleen de namen van klassen gestandaardiseerd worden om de universele taal ook eenduidig interpreteerbaar te maken. Voor diverse toepassingsgebieden zijn en worden daarom standaard-woorden gedefinieerd en in ‘woordenboeken’ opgenomen. Zulke woordenboeken worden ‘klasse bibliotheken’ genoemd. Het zijn de standaard-gegevens die de taal mede definiëren. Daarom is er een ‘start set’ van woorden in de Iso-standaard AP221 opgenomen. Een voorbeeld ter verduidelijking.
Bij een database voor motorgegevens ligt het voor de hand dat de klasse ‘motor’ gebruikt wordt als entiteit. In zo’n database worden daaraan dan attributen toegevoegd waardoor die entiteit geschikt is om informatie over motoren M1, M2, enzovoort vast te leggen. M1 en M2 zijn dan instanties van de entiteit motor. Voor het onderscheid tussen verschillende soorten motoren is er een extra attribuut nodig of zijn andere entiteiten nodig. Hetzelfde geldt voor onderdelen van motoren. In AP221 is de klasse ‘motor’ echter een instantie van het object ‘klasse van object’, terwijl M1, M2, enzovoort, namen van instanties zijn van het object ‘specifiek object’. Het gegeven dat M1 een motor is, volgt daarom in AP221 uit de associatie tussen twee entiteiten: M1 ‘is geclassificeerd als’ motor.
Door deze methode is het bijvoorbeeld mogelijk om in AP221 informatie vast te leggen over motoren in het algemeen, terwijl verschillende typen motoren als instanties kunnen worden toegevoegd en geassocieerd met de hogere klassen, bijvoorbeeld door de associatie: race-motor ‘is geclassificeerd als’ motor. Maar in een met AP221 overeenstemmende database kunnen ook andere objecten beschreven worden. Zelfs als er nog geen ‘klasse bibliotheek’ voor een bepaald gebied is, is het voldoende om aan het ongewijzigde AP221-datamodel slechts een ‘klasse bibliotheek’ toe te voegen om het geschikt te maken voor een nieuw toepassingsgebied.
Attributen of associaties
De meeste informatie-analysemethoden gaan ervan uit dat de eigenlijke informatie ‘gedragen’ wordt door de objecten. Daartoe wordt aan de objecten een bepaald aantal ‘attributen’ toegevoegd die de informatie over de objecten bevatten.
Fundamentele analyse van de inhoud van attributen heeft echter tot het inzicht geleid dat attributen altijd verwijzen naar andere objecten, net als dat in het menselijk brein het geval is. Het is dan ook beter attributen te vervangen door associaties met die andere objecten. De in AP221 gevolgde methode gaat er daarom vanuit dat de informatie wordt ‘gedragen’ door de associaties tussen de objecten. Hierdoor kent AP221 in principe geen attributen, maar slechts associaties tussen objecten. Die associaties zijn zelf ook entiteiten; ze vormen zelfs de belangrijkste entiteiten. Om de historie te registreren, worden ze in principe nooit gewijzigd of verwijderd. Als ze niet meer gelden wordt hun geldigheid beëindigd door een nieuwe associatie met het eindtijdstip van hun geldigheid. Zelfs de naam van een object wordt eraan toegekend via een associatie, met als gevolg dat een willekeurig aantal synoniemen zonder meer mogelijk zijn. Dit heeft tot gevolg dat een object in verschillende talen z’n eigen naam kan krijgen. Een beperkte lijst van ‘standaard associaties’ vormt de ruggegraat van de grammatica van AP221 en maakt het tot een ‘universeel datamodel’.
Toepassing van AP221
AP221 is gedefinieerd in Express, een computertaal die ook binnen Iso 10303 is gestandaardiseerd. Daardoor is AP221 computer interpretable en rechtstreeks te gebruiken voor de definitie van een database of voor de definitie van een file in neutraal formaat voor gegevensuitwisseling (een Stepfile volgens Iso 10303 deel 21). Dit neutrale formaat is onafhankelijk van de bron-applicatie en van de doel-applicatie.
Verdere verbetering van dit datamodel zou kunnen leiden tot de vraag: ‘Data modelleren, hoe lang nog?’ Het resulterende datamodel lijkt misschien op het eerste gezicht abstract en moeilijk toepasbaar. Inderdaad vereist het veelzijdige analisten die een breed toepassingsgebied kunnen overzien, en slimme programmeurs voor de implementatie. Bovendien zou men verwachten dat het vervangen van attributen door associaties leidt tot een erg groot datamodel. Het tegendeel is het geval! Het AP221-datamodel is aanzienlijk kleiner dan de meeste datamodellen die een beetje breed toepassingsgebied hebben.
Voor de implementatie van AP221 zijn in diverse delen van de wereld consortia van bedrijven gevormd. Zo bestaat in Nederland het consortium Samenwerkingsverband voor de Proces Industrie (SPI-NL) dat samenwerkt met vier andere industriële consortia van fabrikanten en installateurs van apparatuur, pijpleidingen en instrumentatie.
Internationale samenwerking
In Europees verband wordt er samengewerkt in Epistle met gelijksoortige consortia uit ondermeer Engeland en Noorwegen. Sommige daarvan zijn betrokken bij implementaties van projecten, omdat verschillende bedrijven zoveel waarde aan deze nieuwe standaard toekennen, dat ze van hun toeleveranciers eisen dat ontwerpgegevens elektronisch afgeleverd worden in een met AP221 overeenstemmend formaat.
Daarnaast is er een Europees implementers forum waarin software- leveranciers samenwerken, omdat kennisvermeerdering op dit gebied kennelijk belangrijker wordt geacht dan de onderlinge concurrentie.
Bovendien vindt internationaal samenwerking plaats aan de Iso-Step standaard door bedrijven uit de automobielindustrie, de vliegtuig-, scheeps-, utiliteitsbouw, enzovoort. Doelstelling daarbij is te komen tot een gemeenschappelijke taal om gegevens tussen computers uit te wisselen in een neutraal formaat, onafhankelijk van de applicaties en hun implementatie-omgeving.
Inmiddels zijn de betrokkenen ervan overtuigd dat daarvoor een werkelijk ‘universeel datamodel’ mogelijk is en dat de huidige versie van AP221 een heel eind in die richting gaat.
Ir. A.S.H.P. van Renssen is werkzaam bij Shell, Engineering Application Portfolio & Process Plant Datamanagement te Den Haag
Breed toepasbaar
Enige jaren geleden besloot Shell om de software in principe niet meer intern te ontwikkelen. Sindsdien zijn de resultaten van jarenlange ervaring in het ontwikkelen van datamodellen niet langer ‘vertrouwelijk’ en zijn ze beschikbaar voor derden. Inmiddels wordt de techniek van het ‘generiek modelleren’, die binnen Shell is ontwikkeld, ook buiten het bedrijf steeds breder toegepast. Een belangrijke toepassing is een datamodel in de nieuwe Iso-standaard voor uitwisseling en opslag van produktinformatie in een neutraal, applicatie-onafhankelijk formaat. Deze standaard is Iso 10303 en wordt doorgaans ‘Step’ genoemd.
Onlangs is aangetoond dat generiek modelleren de mogelijkheid biedt om een database te creëren die geschikt is voor heel verschillende toepassingsgebieden. Een voorbeeld daarvan vormt een gegevenspakhuis dat te gebruiken is voor technische, commerciële en ook administratieve toepassingen.