NIAM
NIAM (Natural language Information Analysis Method) is een informatie analyse/data modelering methode en is onder andere ontwikkeld door Prof. Dr. Ir. G.M. Nijssen in de jaren '70. De kenmerk van NIAM is dat het analyseren van informatie door middel van de "menselijk gesproken taal" wordt uitgevoerd. Dit heeft als voordeel dat het analyseerproces in samenwerking met de gebruiker uitgevoerd kan worden. Zo ontstaan er geen verkeerde interpretaties door de gebruiker en/of de analist.
Inhoud |
[bewerk] Geschiedenis
- Begin jaren 70: Fillmore deed een onderzoek naar het gebruik van de gesproken taal in combinatie met onderzoekingen.
- 1974: Abrial onderzocht de relatie tussen het gebruik van semantiek (de betekenis van woorden) en binaire relaties (relaties tussen twee ‘objecten’) bij het modelleren van informatie.
- 1975: Falkenberg vervolgde de onderzoek door niet alleen deze techniek te gebruiken bij binaire relaties, maar n-aire relaties (relaties tussen meerdere ‘objecten’).
- 1976-1977: Nijssen ontwikkelde een notatie voor deze methode en noemde dat ENALIM (Evolving Natural Language Information Model). Nijssen leidde een groep van onderzoekers uit België die deze methode verder ontwikkelde. De methode werd toen bekend als NIAM (Nijssen Information Analyse Methodology).
- Jaren 80: Nijssen en Falkenberg gingen samenwerken op de University of Queensland om de methode verder uit te werken.
- 1989: Nijssen schreef in samenwerking met Halphin het eerste boek over deze methode.
- Begin jaren 90: Halphin ontwikkelde een uitbreiding van NIAM: Formal ORM (FORM) en er ontstonden allerlei tools voor op de computer om met de NIAM methode informatie te modelleren.
NIAM betekent tegenwoordig “Natural language Information Analysis Method”, omdat Nijssen niet de enige was dat aan deze methode had gewerkt, maar een heel team achter hem stond. Ook wordt het gezien als een onderdeel van ORM (Object Role Model) en staat daaronder meer bekend als FCO-IM (Fully Communication Oriented Information Modeling).
[bewerk] Werkwijze
De werkwijze van NIAM is geheel anders dan bij de meeste andere informatie analyse methode. In plaats van entiteiten zien als gerelateerde tabellen zijn bij NIAM de relaties de entiteiten. In NIAM’s termologie heet een relatie ook ‘role’. Hierdoor is bij NIAM moeilijk om entiteiten los van elkaar te zien. In NIAM is het de bedoeling om met behulp van de menselijke gesproken taal “feiten” vast te leggen. Deze feiten bestaat in NIAM dan uit: entiteiten, attributen en domeinen.
Hieronder volgt een stappenplan hoe NIAM wordt toegepast. Achter elke kernwoord van de stappen staat wat het inhoudt.
- Verwoorden betekent dat je samen met een domeindeskundige (een persoon die met de informatie werkt dat de analist gaat modelleren) het hele proces verwoordt. Dit gebeurt gewoon in zijn eigen taal, daarom is het verstandig dat de informatieanalist dit ook doet in samenwerking met de domeindeskundige en niet zelf gaat verwoorden. De domeindeskundige kan het beste verwoorden wat er allemaal gebeurt in het bedrijf.
- Classificeren is het indelen van feittypen in groepen.
- Kwalificeren is een betekenisvolle naam geven aan feittypen.
- IGD (Information Grammatica Diagram) is het uiteindelijke schema met allerlei symbolen en de bijbehorende verwoorden feiten.
- Toepassen van de beperkingregels in de IGD.
- Groeperen: zoveel mogelijk feittypen samenvoegen zonder dat er redundantie optreedt.
- Lexicaliseren de IGD zodanig veranderen dat de rollen worden gespeeld door de feittypen zonder dat er redundantie optreedt.
- Tabellen genereren. Normaal genereer je de kolommen van tabellen met de entiteiten. Niet bij NIAM, daar gebruik je de rollen om kolommen te maken. Twee of meer rollen tussen twee feittypen worden de kolommen.
[bewerk] Schrijfwijze
[bewerk] Symbolen
Hieronder volgen de meest gebruikte symbolen in NIAM…
figuur 1
figuur 2
In figuur 2 zie je twee rollen bij elkaar, nummer 1 en 2. Aan de linkerkant zit een labeltype en aan de rechterkant een labeltype dat een rol bevat (genomaliseerde feittype). De zinnen die bij rol 3 passen zijn:”Er is een stad die Amsterdam heet” en “Er is een stad die Utrecht heet”. Op deze manier zie je wat de rollen zijn van de naam en de stad. “Naam” woont in de stad “naam van de stad”.
[bewerk] Beperkingregels
- Waardenregel: deze worden opgelegd aan de labeltypen. Ze specificeren de soorten waarden dat bij deze labeltypen kunnen bevatten. De waarden bij een labeltypen en/of rol worden ook wel populatie genoemd. Voorbeeld:
figuur 3
In figuur 3 zie je rechtsboven de labeltype “Burgerlijke stand” een regel met accolades. Dit is een waardenregel dat zegt dat de labeltype “Burgerlijke stand” alleen maar de waarden:”Ongehuwd, samenwonend en gehuwd” mogen bevatten en geen andere.
- Uniciteitsregel: Is een beperkingsregel dat je aan een rol kan opleggen. Dit geeft aan dat een bepaalde populatie maar één keer mag voorkomen bij de betreffende rol en dus uniek moet zijn. Voorbeeld:
figuur 4
Op rol 2 heeft de uniciteitsregel gekregen (een streep met aan beide zijde een pijlpunt). Dit zegt dat onder rol twee de populatie geen dubbele waarde mag bevatten. Studentnummer S123456 dat onderaan in het rood staat is dus fout, deze staat bovenaan ook al een keer. Uniciteitsregels over twee of meer rollen wilt zeggen dat de combinatie van die rollen geen dubbele waarden mogen bevatten. Dus als bij figuur 4 een uniciteitsregel over rol 2 en 3 zou staan, zou de onderste regel wel goed zijn, maar dan moet de klas anders zijn dan bij de bovenste populatie, anders is de combinatie dubbel en dat mag niet.
- Totaliteitsregel: Dit is een soort van “not-null” regel. De rol dat deze regel opgelegd heeft gekregen mogen niet leeg gelaten worden, maar moeten opgevuld worden. Voorbeeld:
figuur 5
De zwarte stip dat tegen de genomaliseerde labeltype staat geeft de totaliteitsregel aan. Dit houdt dus in dat alle waarde (populatie) van die labeltype ingevuld moeten worden en niet leeg gelaten mag worden.
- Deelverzamelingsregel: Is een beperkingsregel dat geplaatst kan worden tussen twee setten van rollen. Dit geeft aan dat de populatie van de som van de ene set rollen, de som is van de andere set rollen. Voorbeeld:
figuur 6
Rol 1 en 2 zijn een deelverzameling van de rollen 3,4 en 5. rol 1 kom over met rol 3 en rol 2 met rol 5. Deze rollen hebben dan ook dezelfde populatie. Het kan niet zijn dat rol 1 en 2 andere waarden bevatten dan rol 3 en 5.
- Gelijkheidsregel: Is bijna hetzelfde als een deelverzamelingsregel, alleen dan geldt deze ‘heen en weer’ van de beide set rollen. Dan zou bij figuur 6 de pijl vervallen en dan zijn rollen 1 en 2 gelijk met rollen 3 en 5.
- Aantallenregel: Deze geeft aan hoe vaak een populatie mag voorkomen bij de betreffende rol. Voorbeeld:
figuur 7
Boven rol 1 staat een klein rondje met daarin ‘=3’. Dit houdt in dat er onder rol 1 een bepaalde waarde niet meer dan 3 keer voor mag komen. Naast de ‘=’teken, kunnen de groter dan (- of gelijk) en kleiner dan (- of gelijk) gebruikt worden.
[bewerk] Bronnen
- http://www.objectrolemodeling.com/AboutORM/History/tabid/48/Default.aspx
- Guido Bakema, Jan Pieter Zwart en Harm van der Lek (2002). "Volledig Communicatiegeoriënteerde Informatiemodellering, FCO-IM. Den Haag: ten Hagen & Stam. ISBN: 90-267-2316-4