STG Allmänna Standiseringsgruppen 1995-10-03 1(17) Översättning av modeller uttryckta med STANLIs begreppsmodell till Express Marianne Janning Clary Sundblad På uppdrag av Allmänna Standardiseringsgruppen ASTRAKAN Karlaplan 2, 114 60 Stockholm. Telnr 08-662 26 26, Faxnr 08-662 27 27
2 Innehåll Error! No table of contents entries found.
3 Slutsatser Överföring från Stanli-språket till Express Att överföra de delar av en modell som uttrycks i Stanli-språkets formella delar till Express medför inga större problem och kräver endast kunskap om en liten del av Express. Man bör dock hålla i minnet att namnen på tex objekttyper och attributtyper kan behöva ändras eftersom Express i princip bara acccepterar bokstäver ur det engelska alfabetet. Namn som innehåller t.ex.svenska bokstäver måste ändras. I Express finns ingen motsvarighet till de begrepp som gör det möjligt att i Stanli-språket ange och namnge alternativa SYMBOLTYPer och SYMBOLer. Det är möjligt att motsvarande förhållanden går att uttrycka med hjälp av olika typer av regler i Express, men det finns inget uppenbart sätt att hantera detta. Om även regler och liknande, som vi normalt uttrycker i Stanli-språkets definitionsblanketter ska överföras till Express förutsätter det att dessa är stringent uttryckta med minimal tvetydighet. Det krävs dessutom djupa kunskaper i Express, motsvarande en programmerares, hos översättaren. Rekommendationer kring komplettering av Stanli-språket Stanli-språket saknar möjlighet att formellt beskriva regler och begränsningar. Språket är utformat för beskrivning av verksamheter och används ofta vid modelleringsseminarier där verksamhetskunniga deltar. I dessa situationer är det inte lämpligt att uttrycka modeller i programmeringsspråksliknande kod. I stället bör man beskriva t. ex. regler så tydligt som möjligt i naturligt språk. Denna text kan sedan översättas till Express under andra arbetsformer än seminarium. Vi anser alltså att Stanlispråket inte behöver det formella utrycksmöjligheter som Express medger. Dock framträder två uttrycksmöjligheter som Express erbjuder som man saknar istanli-språket: I Express kan DEFINED DATA TYPE bygga på en annan DEFINED DATA TYPE. I Stanlispråket motsvaras DOMÄNer av DEFINED DATA TYPEr. Men DOMÄNer kan inte uttryckas i termer av andra DOMÄNer. Det vore en fördel om man kunde införa detta i Stanlispråket. Motsvarigheten till Express-begreppen LIST och BAG finns ej i Stanli-språket. och det vore därför önskvärt att komplettera Stanli-språket med åtminstone LIST, som ger möjlighet att definiera en ordningsföljd mellan värden. Begreppsammanställning Nedan följer en sammanställning av Stanli-språkets begrepp och deras motsvarighet i Express. Stanli-språket OBJEKTTYP BESKRIVNINGSTYP ATTRIBUT SAMBANDSASPEKTTYP SAMBAND DOMÄN SYMBOLTYP SYMBOL EXPLICIT VÄRDE EXPRESS ENTITY ATTRIBUTE ATTRIBUTE ATTRIBUTE ATTRIBUTE med sitt motsvarande INVERSE ATTRIBUTE DEFINED DATA TYPE DEFINED DATA TYPE DEFINED DATA TYPE DEFINED DATA TYPE
4 IDENTIFIERARE SPECIALISERING UNIQUE SUBTYPES AND SUPERTYPES
5 Förord I denna skrift jämförs två modelleringsspråk. Det ena är ett grafiskt modelleringsspråk avsett för att uttrycka verksamhetsmodeller orienterade mot verksamhetsområden, där den geografiska eller lägesbundna aspekten bedöms vara väsentlig. Språket är framtaget inom STANLI-projektet av Stig Berild. Det beskrivs i "Begreppsmodell och grafisk notation för hantering av geografiskt relaterade verksamhetsmodeller", SIS/TK80 N9.3. Detta språk kallar vi i fortsättningen Stanli-språket. Det andra språket, Express, är avsett för specifikation av informationsbehov. Express är utvecklat i Tyskland av bl.a. Berndt Wenzel och har accepterats som standard inom en rad områden. Express finns beskrivet i manualer och ett antal böcker som dock inte är speciellt lättillgängliga. Vi baserar våra utsagor om Express på den inom ISO (the International Organization for Standardization) framtagna manualen "Express Language Reference Manual", ISO IS 10303-11, september 1993 och Bernt Wenzels OH-bilder från en presentation 1992. Beskrivningen görs utgående från de begrepp som definieras i Stanli-språket och visar på motsvarande textuella konstruktion i Express. Vi förutsätter att läsaren har goda kunskaper i modellering och modelleringsspråk. Uppdraget Denna studie har beställts av Allmänna Standardiseringsgruppen, STG inom ramen för verksamheten inom TK80, via Torbjörn Cederholm. Syftet är att klarlägga möjligheten att överföra modeller uttryckta enligt Stanli-språket till Express. Studien utgör en del i en större studie kopplad till STANLI-projektets medverkan i CEN/TC 287 och ISO/TC 211. Inledning Stanli-språket är ett grafiskt modelleringsspråk, dvs det uttryckssätt som är formaliserat är grafiskt. Språket innehåller även en rad begrepp vars beskrivningsform inte är formaliserad, dvs den grafiska beskrivningen kompletteras med verbala beskrivningar i fri form. Ofta hanteras dessa verbala beskrivningar i form av blanketter, men blanketterna finns inte definierade i språket utan kan utformas i överensstämmelse med det aktuella modelleringsprojektets behov. Inom ISO har ett ramverk med beteckningen ISO/IEC 10027 "Information technology - Information Resource Dictionary System (IRDS) antagits som standard för datakataloger. IBM har utifrån ramverket definierat ett språk för hantering av repository-information i ett avancerat datakatalogsystem benämnt Repository Manager och Stanli-språket har stora likheter med detta språk.
6 Person förnamn : NAMNSTRÄNG 1:1 mellannamn : INITIAL 0:1 efternamn : NAMNSTRÄNG 1:1 födelsedatum : DATUM 1:1 äger 0:M (ägs av 1:M) Trädgård namn : NAMNSTRÄNG 1:1 ort : NAMNSTRÄNG 1:1 maxzon : ZON 0:1 En modell med två objekttyper och en sambandstyp uttryckt med Stanli-språket. En modell i Express uttrycks verbalt i en kod som liknar programmeringsspråk. Några språk som påverkat utformningen av Express är Ada, Algol och PL/I. Dess syntax är mycket omfattande. Den omfattar både deklarativa och proceduriella delar. Kärnan i en modell, entiteter och deras attribut, uttrycks med deklarativa satser. Dessa kan kompletteras med proceduriell kod och på detta sätt uppnås kraftfulla uttrycksmöjligheter. Vid utformningen av språket har man försökt undvika att inkludera implementeringsaspekter. En modell i Express är datortolkbar och det finns en rad produkter på marknaden som kan tolka Expresskod och utnyttja den på olika sätt. ENTITY person foernamn mellannamn efternamn foedelsedatum aeger ENTITY traedgaard namn ort maxzon INVERSE aegs_av : namnstraeng; : OPTIONAL initial; : namnstraeng; : datum; : SET [0:?] OF traedgaard: : namnstraeng; : namnstraeng; : OPTIONAL zon; : SET [1:?] OF person FOR aeger; Samma modell som i föregående figur överförd till Express. En del av begreppen i Express kan uttryckas grafiskt med hjälp av Express-G. (Vi analyserar inte komponenterna i Express-G här. Se dock bilaga.)
7 initial mellannamn namnstraeng foernamn person foedelsedatum datum efternamn aeger S[0:?] (INV) aegs_av S[1:?] namn traedgaard maxzon zon ort Samma modell som i föregående figur överförd till Express-G.
8 Studiens uppläggning Framställningen följer i huvudsak följande mönster: det aktuella begreppets definition inom Stanli-språket redovisas, motsvarande konstruktion inom Express beskrivs och i en slutsats redogörs för möjligheten att översätta Stanli-språkets begrepp till Express. Den läsare som är bekant med något av språken kan naturligtvis hoppa över beskrivningen av detta språks konstruktioner medan den stressade läsaren kan gå direkt till respektive slutsats. De stycken i texten som avslutas med en referens till antingen SIS/TK80 N9.3 sid x eller Express-manualen är direkta citat eller så gått som raka översättningar från dessa dokument. Sidhänvisningen avser att göra det möjligt för den intresserade läsaren att hämta mer detaljerad information. Övriga textavsnitt är våra kommentarer och förklaringar. I texten använder vi KAPITÄLER för att markera de ord som finns definierade inom respektive språk och som här används i just denna definierade betydelse. Vi avslutar med att notera några konstruktioner som finns inom Express och som man ibland saknar när modeller ska uttryckas med Stanli-språket samt en sammanfattande jämförelse.
9 Objekttyp Stanli-språket En viss OBJEKTTYP är en abstraktion av en (tänkt) uppsättning objekt med en upplevd, tillräckligt överensstämmande karakteristik. Exempel är person, order, bil, fastighet, omdöme, projekt. För en objekttyp kan namn, beskrivning och maximalt antal anges. (SIS/TK80 N9.3 sid 30) OBJEKT är företeelser som kan urskiljas och beskrivas. (SIS/TK80 N9.3 sid 8) Express I Express finns ett antal närliggande begrepp: Ett OBJEKT är ett faktum, ett begrepp eller en instruktion. (ISO IS 10303-11, sid 2) En ENTITY är en klass av objekt som har gemensamma egenskaper. (ISO IS 10303-11, sid 2) En ENTITY DATA TYPE representerar en klass av OBJEKT som har gemensamma EGENSKAPer, som skapar domänen av ENTITY INSTANCEr. (ISO IS 10303-11, sid 2) En ENTITY INSTANCE representerar ett objekt. (ISO IS 10303-11, sid 2) I Express skapar en ENTITY DECLARATION en ENTITY DATA TYPE och deklarerar en identifierare för att referera till den, dvs ger den ett unikt namn. (ISO IS 10303-11, sid 30) Person... ENTITY person... Den grafiska symbolen till vänster motsvarar en OBJEKTTYP med namnet Person i Stanlispråket. Till höger visas motsvarande konstruktion i Express, dvs en ENTITY DECLARATION. Slutsats I Stanli-språket skiljer man inte som i Express mellan ENTITY och ENTITY DATA TYPE eftersom man beskriver en verksamhet och inte talar om representation av den. En OBJEKTTYP översätts således till en ENTITY. Vid översättning av en objekttyp i Stanli-språket till en entity i Express kan namnutformningen vålla problem, eftersom Express inte innehåller svenska tecken. Express är ett internationellt språk och saknar olika länders speciella tecken.namn som innehåller svenska bokstäver måste ändras t.ex. genom att ta bort prickar eller byta å mot aa, ä mot ae och ö mot oe. Samma problem finns vid namnsättning av alla begrepp i Express men diskuteras endast här.
10 Beskrivningstyp Stanli-språket En viss BESKRIVNINGSTYP är en inom verksamheten intressant typ av karakteristik, beskrivning eller förhållande för en viss OBJEKTTYP. Det finns två principiellt olika sätt att uttrycka en beskrivning, ATTRIBUTTYP och SAMBANDSASPEKTTYP. För en BESKRIVNINGSTYP anges ett unikt namn och avbildning (se nedan). (SIS/TK80 N9.3 sid 27) Express Ett ATTRIBUTE till en ENTITY DATA TYPE representerar en ENTITYs väsentliga egenskaper. (ISO IS 10303-11, sid 31) Beskrivningstyper Person förnamn : NAMNSTRÄNG 1:1 mellannamn : INITIAL 0:1 efternamn : NAMNSTRÄNG 1:1 födelsedatum : DATUM 1:1 äger 0:M (ägs av 1:M) Trädgård namn : NAMNSTRÄNG 1:1 ort : NAMNSTRÄNG 1:1 maxzon : ZON 0:1 ENTITY person foernamn : namnstraeng; mellannamn : OPTIONAL initial; efternamn : namnstraeng; foedelsedatum : datum; aeger : SET [0:?] OF traedgaard: ENTITY traedgaard namn ort maxzon INVERSE aegs_av : namnstraeng; : namnstraeng; : OPTIONAL zon; : SET [1:?] OF person FOR aeger; Till vänster visas Stanli-språkets notation för BESKRIVNINGSTYPer och till höger har motsvarande ATTRIBUT i Express skrivits med fetstil. De svenska bokstäverna å, ä och ö kan inte användas. Slutsats Stanli-språkets BESKRIVNINGSTYPer kan översättas till ATTRIBUTE i Express. Attributtyp, sambandsaspekttyp Stanli-språket ATTRIBUTTYP och SAMBANDSASPEKTTYP är SUBTYPer till BESKRIVNINGSTYP. (SIS/TK80 N9.3 sid 27) En viss ATTRIBUTTYP är en typ av karakteristik eller beskrivning för en viss OBJEKTTYP..(SIS/TK80 N9.3 sid 31) En viss SAMBANDSASPEKTTYP är en viss SAMBANDSTYP (definieras längre fram) sedd ur en av de två inblandade OBJEKTTYPernas perspektiv. (SIS/TK80 N9.3 sid 31)
11 Express Inom Express definieras inte några SUBTYPer till ATTRIBUTE, däremot anger man "mellan raderna" att man skiljer på olika typer av attribut. T.ex. säger man att inverser endast kan anges för sådana attribut som pekar ut en ENTITY DATA TYPE. (ISO IS 10303-11, sid 33) Person förnamn : NAMNSTRÄNG 1:1 mellannamn : INITIAL 0:1 efternamn : NAMNSTRÄNG 1:1 födelsedatum : DATUM 1:1 Attributtyper äger 0:M (ägs av 1:M) Trädgård namn : NAMNSTRÄNG 1:1 ort : NAMNSTRÄNG 1:1 maxzon : ZON 0:1 Sambandsaspekttyper BESKRIVNINGSTYPerna i Stanli-språket delas in i ATTRIBUTTYPer och SAMBANDS- ASPEKTTYPer. I Express blir båda dessa ATTRIBUT. Se föregående figur. Slutsats Det finns ingen motsvarighet till Stanli-språkets ATTRIBUTTYP och SAMBANDSASPEKTTYP i Express. ATTRIBUTTYP och SAMBANDSASPEKTTYP översätts till ATTRIBUTE i Express. Om ett ATTRIBUTE i Express pekar ut en ENTITY DATA TYPE så motsvarar det en SAMBANDSASPEKTTYP i Stanli-språket annars en ATTRIBUTTYP. Sambandstyp Stanli-språket En viss SAMBANDSTYP representerar en typ av förhållande eller associering, av intresse i en verksamhet, uttryckt mellan två OBJEKTTYPer. (SIS/TK80 N9.3 sid 31) Sambandsaspekttyp är huvudrikning inom 0;1 (har huvudriktning 1:1) Sambandstyp Pekar ut den SAMBANDSTYP, som en viss SAMBANDSASPEKTTYP ingår i som huvudriktning. Sambandsaspekttyp är inversriktning inom 0;1 (har inversriktning 1:1) Sambandstyp Pekar ut den SAMBANDSTYP, som en viss SAMBANDSASPEKTTYP ingår i som inversriktning. Express Om en annan ENTITY har etablerat ett ATTRIBUTE som pekar ut den aktuella ENTITYn via ett EXPLICIT ATTRIBUT, kan ett INVERSE ATTRIBUTE användas för att beskriva relationen inom
12 den aktuella ENTITYn. Varje ATTRIBUTE skapar en implicit invers. (ISO IS 10303-11, sid 32-33) Person förnamn : NAMNSTRÄNG 1:1 mellannamn : INITIAL 0:1 efternamn : NAMNSTRÄNG 1:1 födelsedatum : DATUM 1:1 äger 0:M (ägs av 1:M) Sambandstyp Trädgård namn : NAMNSTRÄNG 1:1 ort : NAMNSTRÄNG 1:1 maxzon : ZON 0:1 SAMBANDSASPEKTTYPen 'äger' och dess invers 'ägs av' utgör tillsammans en SAMBANDSTYP. Slutsats Det som i Stanli-språket deklareras som ett SAMBAND motsvaras i Express av ett ATTRIBUTE som pekar ut en ENTITY DATA TYPE och för vilken ett INVERSE ATTRIBUTE kan deklareras. Domän, Explicit värde, Symboltyp, Symbol Stanli-språket En viss DOMÄN representerar en definierad typ av semantiskt odelbara värden som är meningsfulla i en verksamhet. Giltiga värden kan anges genom mer eller mindre komplexa villkor för exempelvis teckensammansättning eller intervall. Giltiga värden kan även explicit räknas upp, exempelvis var och en av årets tolv månader under DOMÄNen 'månad'. Ett visst värde kan formuleras och tolkas genom flera alternativa symboler i form av exempelvis text, bild, graf, ljud, animation. (SIS/TK80 N9.3 sid 28) En DOMÄN måste ha ett namn och ett värdeområde kan anges i fri text. <objekttyp> <attributtyp> : <DOMÄN> <min per objekt> : <max per objekt>... För varje attributtyp kan DOMÄN anges. I Stanli-språket är ett visst EXPLICIT VÄRDE en förekomst av en viss DOMÄN. En DOMÄN kan ha många EXPLICITA VÄRDEn men behöver inte ha några. (SIS/TK80 N9.3 sid 28) En viss SYMBOLTYP är en definition av bl.a. form och format på SYMBOLer att användas för att uttrycka och för att ge möjlighet att tolka värden inom en viss DOMÄN. (SIS/TK80 N9.3 sid 33)
13 En viss SYMBOL är en tolkbar representation av ett visst EXPLICIT VÄRDE. En viss SYMBOL är alltid en förekomst av en viss SYMBOLTYP. (SIS/TK80 N9.3 sid 33) I Stanli-språket anges DOMÄNens namn i grafen vid ATTRIBUTTYPen. DOMÄNernas värdeförråd samt deras kopplingar till SYMBOLTYPer och eventuella EXPLICITa VÄRDEn definieras i tillhörande text. Vid praktisk modellering finns speciellt utformade blanketter för ändamålet. DOMÄN Namn: Beskrivning: REPRESENTERAS AV SYMBOLTYP SYMBOLTYPSNAMN svenska tecken (PRIMÄR) tyska tecken namnsträng En godtycklig sträng med inledande versal. BESKRIVNING max 25 tecken ur svenska alfabetets tecken, mellanslag och bindestreck max 25 tecken ur tyska alfabetet tecken, mellanslag och bindestreck. En DOMÄN kan representeras av flera SYMBOLTYPer. En av dem är alltid PRIMÄR. DOMÄN Namn: Beskrivning: initial En godtycklig versal. REPRESENTERAS AV SYMBOLTYP SYMBOLTYPSNAMN svenska tecken (PRIMÄR) BESKRIVNING ett tecken ur svenska alfabetets tecken I Stanli-språket finns inte möjlighet att definiera en domän i termer av en annan domän. DOMÄN Namn: Beskrivning: EXPLICIT VÄRDE SYMBOLTYPSNAM N romerskzon zon Inom Sverige existerande växtzoner. HAR PRIMÄRSYMBOL I, II, III, IV, V, VI, VII REPRESENTERAS AV SYMBOL decimalzon 1, 2, 3, 4, 5, 6, 7 Detta är ett exempel på en uppräkningsbar DOMÄN uttryckt i Stanli-språket. Det finns möjlighet att ange flera symboltyper för en DOMÄN och om den är uppräkningsbar innehåller den ett antal SYMBOLer, som representerar EXPLICITa VÄRDEn. Express I Express skapar en TYPE DECLARATION en DEFINED DATA TYPE och en identifierare (= namn) för att referera till den. (ISO IS 10303-11, sid 24 och 29) En DEFINED DATA TYPE kan referera till en annan DEFINED DATA TYPE i ett godtyckligt antal nivåer. På nedersta nivån ska DEFINED DATA TYPEn dock referera till NUMBER, REAL, STRING, BOOLEAN, LOGICAL eller BINARY. (ISO IS 10303-11, sid 16 och 24)
14 Till en DEFINED DATA TYPE kan en WHERE-clause knytas. Denna typ av villkorskonstruktion har en omfattande syntax som kan användas för att bygga upp komplexa konstruktioner. TYPE initial = namnstraeng; WHERE length_i = LENGTH (SELF ) = 1; END_TYPE ; TYPE namnstraeng WHERE char_1 END_TYPE ; = STRING; = SELF LIKE '@*'; I exemplet är 'initial' en ENTITY DATA TYPE som definierats som en 'namnstraeng', som i sin tur är definierad som en STRING där första bokstaven är en versal (anges av @). Initial är enligt definitionen en bokstav och den måste vara en versal eftersom första bokstaven i namnstraeng är en versal. Ett sätt att definiera en ENTITY DATA TYPE är att räkna upp dess värden. Man använder då en ENUMERATION TYPE. En ENUMERATION TYPE har som domän en ordnad mängd av namn. Namnen representerar ENUMERATION TYPEns värden. (ISO IS 10303-11, sid 25) Detta innebär att ett ATTRIBUTE som har ENUMERATION TYPE som domän endast kan hämta värden bland de uppräknade. Person förnamn : NAMNSTRÄNG 1:1 mellannamn : INITIAL 0:1 efternamn : NAMNSTRÄNG 1:1 födelsedatum : DATUM 1:1 äger 0:M (ägs av 1:M) Trädgård namn : NAMNSTRÄNG 1:1 ort : NAMNSTRÄNG 1:1 maxzon : ZON 0:1 Domän ENTITY person foernamn : namnstraeng ; mellannamn : OPTIONAL initial ; efternamn : namnstraeng ; foedelsedatum : datum ; aeger : SET [0:?] OF traedgaard : ENTITY traedgaard namn : namnstraeng ; ort : namnstraeng ; maxzon : OPTIONAL zon ; INVERSE aegs_av : SET [1:?] OF person FOR aeger; Till vänster visas Stanli-språket sätt att endast ange namnet på DOMÄNerna i grafen. SYMBOLTYPer, SYMBOLer och EXPLICITa VÄRDEn beskrivs över huvud taget inte i grafen. Till höger visas namnen på motsvarande datatyper i Express. Som syns i figuren ser man inte skillnad på 'person' som är en ENTITY DATA TYPE och 'namnstraeng' som är en DEFINED DATA TYPE. Men man hittar 'person' deklarerad som en ENTITY DATA TYPE och 'namnstraeng' deklarerad som en TYPE. Se ovan. Slutsats Ordet domän i Express är inte definierat utan används i sin allmänna betydelse. DOMÄN-, SYMBOLTYP-, SYMBOL- OCH EXPLICIT VÄRDE-begreppen i Stanli-språket motsvaras alla av DEFINED DATA TYPE och dess underliggande konstruktioner i Express. Expresspråkets
15 WHERE-clause erbjuder mycket omfattande uttrycksmöjligheter och kan t. ex. uttrycka det som man i Stanli-språket beskriver för SYMBOLer och SYMBOLTYPer. I Stanli-språket kan ett värdeförråd begränsas och beskrivas på olika sätt med hjälp av DOMÄN- och EXPLICIT-VÄRDE-begreppen, dock inte formellt som i Express. Till skillnad mot i Express skiljer man inom Stanli-språket på vilka värden som är tillåtna och hur de representeras. Representationsformen beskrivs med hjälp av symbol och symboltyp. I Stanli-språket finns inga uppräkningsbara mängder av värden men en DOMÄN bestående av EXPLICITA VÄRDEn kan sägas motsvara en ENUMERATION TYPE. I Express finns ingen motsvarighet till Stanli-språkets möjlighet att ange och namnge alternativa SYMBOLTYPer och SYMBOLer. I Stanli-språket kan man inte uttrycka en DOMÄN i termer av en annan DOMÄN. Avbildning Stanli-språket För en BESKRIVNINGSTYP kan man ange MINIMUM_PER_OBJEKT och MAXIMUM_PER_OBJEKT, som definieras som minsta respektive största antalet förekomster av en viss BESKRIVNINGSTYP per förekomst av beskriven OBJEKTTYP. Anges som ett tal eller som M (många). (SIS/TK80 N9.3 sid 27) Avbildningen i Stanli-språket anges som min : max i grafen för varje BESKRIVNINGSTYP. Express Ett ATTRIBUTE pekar ut en förekomst som antingen är ett enskilt element eller en grupp som innehåller flera element. Exempel på ett enskilt element är 'Kalle', '21', 'blå' och exempel på en grupp av element är {'Kalle', 'Olle', 'Karin'}, {'blå', 'röd', 'grön', 'gul'}. För att ange att ett ATTRIBUTE ska peka ut en grupp av element använder man något av begreppen LIST, BAG eller SET och för dem anger man minimalt och maximalt antal element. SET används för att representera en mängd medan BAG representerar en grupp som kan innehålla dubletter och LIST en ordnad mängd. Slutsats Även om avbildning uttrycks olika i de två språken kan man ändå översätta från Stanli-språket till Express enligt nedanstående tabell. Stanli-språket Express 1:1 default, skrivs ej ut 0:1 OPTIONAL eller SET [0:1] OF... 1:M SET[1:?] OF... 0:M SET[0:?] OF...
16 Motsvarigheten till Express-begreppen LIST och BAG finns ej i Stanli-språket, men det vore önskvärt att komplettera detta med åtminstone LIST för att kunna uttrycka en ordningsföljd mellan värden. Identifierare Stanli-språket I Stanli-språket utgörs en viss IDENTIFIERARE av de BESKRIVNINGSTYPer, som tillsammans utgör en möjlig typ av identifiering av en viss OBJEKTTYP. Ett visst OBJEKT av viss OBJEKTTYP kan m.a.o. unikt refereras till, givet en förekomst av var och en av de för OBJEKTTYPen angivna BESKRIVNINGSTYPERNA. OBJEKTTYPEN kan ha flera identifierare varav en normalt brukar ses som den primära. (SIS/TK80 N9.3 sid 29) Express I Express kan ett unikhetsvillkor för individuella ATTRIBUTE eller kombinationer av ATTRIBUTE specificeras i form av en unikhetsregel. Unikhetsregeln följer på ordet UNIQUE och specificerar antingen ett enda ATTRIBUTE eller en lista av ATTRIBUTE. I det första fallet finns inte två instanser av ENTITY DATA TYPEN som har samma värde för ATTRIBUTEt. I det senare fallet har inte två ENTITY DATA TYPer samma kombination av värden för listan av ATTRIBUTE.(ISO IS 10303-11, sid 35) Trädgård namn * namn : NAMNSTRÄNG : NAMNSTRÄNG 1:1 1:1 ort * ort : NAMNSTRÄNG : NAMNSTRÄNG 1:1 1:1 maxzon maxzon : ZON : ZON 0:1 0:1 ENTITY traedgaard namn : name_string; ort : name_string; maxzon : OPTIONAL zon; INVERS aegs_av : SET [1:?] OF person FOR aeger; UNIQUE id_tg : namn, ort ; Till vänster har attributtyperna 'namn' och 'ort' markerats med en asterisk vilket säger att de tillsammans identifierar en trädgård, dvs inga trädgårdar har samma uppsättning värden på båda attributtyperna. Det som deklareras under UNIQUE har samma innebörd även om man inte talar om identifierare i Express. Slutsats I Express finns inte begreppet identifierare. UNIQUE kan användas för att beskriva det som i Stanli-språket kallas identifierare. Specialisering Stanli-språket En viss SPECIALISERING uttrycker ett visst generiskt samband mellan en mer generell OBJEKTTYP (SUPERTYP) och ett antal mer specialiserade OBJEKTTYPER (SUBTYPer). Varje
17 OBJEKTTYP som är en instans av en SUBTYP är även en instans av SUPERTYPen. Varje SPECIALISERING uttrycker ett syfte. En viss OBJEKTTYP kan vara SUPERTYP för flera generiska samband, var och en med sitt syfte. Varje specialisering har ett unikt namn. Detta medför att alla utsagor som kan göras om SUPERTYPens förekomster även kan göras om SUBTYPERnas. Detta kallas ofta "arv". En SPECIALISERING är uttömmande om en förekomst av SUPERTYPen även måste tillhöra någon av SUBTYPerna (markeras med fylld ring). En SPECIALISERING har unik förekomst om en förekomst av SUPERTYPen tillhör högst en av SUBTYPerna (markeras med enkel ring, annars används dubbel ring). (SIS/TK80 N9.3 sid 32) Express I Express är det möjligt att ange att en ENTITY är en SUBTYPE av en annan ENTITY, SUBTYPEn innebär en specialisering av SUPERTYPEn. Varje instans av SUBTYPen är en instans av sin(a) SUPERTYP(er). SUBTYPEn ärver egenskaper t.ex. ATTRIBUT och regler från SUPERTYPEn. (ISO IS 10303-11, sid 38) Växt... Växthusväxt... växtplats Utomhusväxt... ENTITY vaext ABSTRACT SUPERTYPE OF (vaexthurvaext ANDOR utomhusvaext); En växt är alltid en växthusväxt eller en utomhusväxt eller både och. Växt... växtplats Växthusväxt... Utomhusväxt... ENTITY vaext SUPERTYPE OF (vaexthurvaext ANDOR utomhusvaext); En växt kan vara en växthusväxt eller en utomhusväxt eller både och, men behöver inte vara någon av dem.
18 Växt... växtplats Växthusväxt... Utomhusväxt... ENTITY vaext ABSTRACT SUPERTYPE OF ONEOF (vaexthurvaext, utomhusvaext); En växt är antingen en växthusväxt eller en utomhusväxt och får inte vara både och. Växt... växtplats Växthusväxt... Utomhusväxt... ENTITY vaext SUPERTYPE OF ONEOF (vaexthurvaext, utomhusvaext); En växt är antingen en växthusväxt eller en utomhusväxt och kan inte vara både och men behöver inte vara någondera.. Slutsats Specialiseringsbegreppen i de båda språken överensstämmer väl. För att ange om SPECIALISERINGen är uttömmande och har unik förekomst används dock helt olika uttryckssätt. Begreppen uttömmande och unik förekomst finns dock inte i Express, men motsvarande förhållanden kan uttryckas. Stanlispråket Express Exempel ABSTRACT SUPERTYPE OF (... ANDOR... ANDOR...) SUPERTYPE OF (... ANDOR... ANDOR...) ABSTRACT SUPERTYPE OFONEOF (...,...,...) SUPERTYPE OFONEOF (...,...,...)
19 Till vänster visas Stanli-språkets grafisk representation för olika typer av SPECIALISERINGar och i mitten motsvarigheten i Express. Till höger visas exempel på vad respektive representation innebär. I Express finns ingen möjlighet att uttrycka det som i Stanli-språket kallas namn på en specialisering, t.ex. växtplats, kön eller nationalitet. I praktisk modellering utelämnas ofta namnet, eftersom det är svårt att hitta adekvata namn. Ofta finns bara det intetsägande namnet typ och då tillför namnet ingenting till modellen. När namnet utelämnas bryter man dock mot Stanli-språkets syntax. Vi ser inte detta som något problem som måste lösas på annat sätt än att ett namnet utelämnas vid översättning till Express.
20 Några Express-begrepp som saknas i Stanli-språket. Regler I Stanli-språket beskrivs inte regler formellt. I beskrivningen av t.ex. en OBJEKTTYP kan regler för den beskrivas. Praktiskt sätt används en definitionsblankett där OBJEKTTYPen beskrivs närmare och bland annat regler kan redovisas. Vi ser inte något behov av att införa ett formellt regelspråk. Eftersom språket används i direktkontakt med personer från verksamhet anser vi att det blir både enklare och bättre om man använder tydlig svenska. Rent formellt kan man inte göra jämförelser. Men det är möjligt att på strukturerad svenska beskriva regler och sedan översätta dem till Express, som är mycket rikt på uttryckssätt för regler. Domän I Express kan DEFINED DATA TYPE bygga på en annan DEFINED DATA TYPE. I Stanli-språket motsvaras domäner av DEFINED DATA TYPEr. Men DOMÄNer kan inte uttryckas i termer av andra DOMÄNer. Det skulle t. ex. ibland vara enklare att uttrycka ett intervall om man utnyttjar en redan beskriven DOMÄN. DOMÄNen Feber skulle exempelvis kunna bygga på DOMÄNen Temperatur. Avbildning Motsvarigheten till Express-begreppen LIST och BAG finns ej i Stanli-språket. För att beskriva en ordningsföljd mellan attributvärden måste man i Stanli-språket definiera en OBJEKTTYP, som har en ATTRIBUTTYP Nummer. Om värdet på attributet nummer är unikt för varje förekomst så kan man skapa en ordningsföljd. Detta är en omständlig väg och det vore därför önskvärt att komplettera Stanli-språket med åtminstone LIST, som ger möjlighet att definiera en ordningsföljd mellan värden.