Översättning av modeller uttryckta med STANLIs begreppsmodell till Express



Relevanta dokument
Geografisk information Databeskrivning Beskrivningsspråk för begreppsmodeller

Geografisk information Representation av förändringar i datamängder

Nationell informationsstruktur 2015:1 Bilaga 1: Läsanvisning till modellerna

Arkitektur och Regelverk Definition av kodverk och klassifikation. Version 1.0

(Data)Modellering. nikos dimitrakas rum 2423

NVDB - Översiktlig informationsmodell

Databasdesign. E-R-modellen

n Detta för att kunna koncentrera oss på n Tal: number? n Symboler: symbol? n Strängar: string? n Tecken: char? n Boolskt: boolean?

Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion.

Design och underhåll av databaser

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Begreppsmodell TILLREG

Databaser design och programmering. Design processen ER- modellering

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

En snabb titt på XML LEKTION 6

Tillämpningsanvisningar

TENTAMEN TDDB53. Programmering i Ada för MI (provkod TEN2) den 7 april 2010 kl Institutionen för datavetenskap, IDA Olle Willén mars 2010

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Introduktion. Byggstenar TDBA

Objektorienterad programmering. Grundläggande begrepp

TDDC74 Programmering, abstraktion och modellering. Tentamen

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Uppgifter till praktiska tentan, del A. (7 / 27)

Nationell informationsstruktur 2015:1 Bilaga 2: Modeller för vård och omsorg

Databaser - Design och programmering. Relationsmodellen. Relationer - som tabeller. Relationer som tabeller. Alternativa notationer: Relationsschema

TDDC74 Programmering, abstraktion och modellering DUGGA 2

Föreläsning 3.1: Datastrukturer, en översikt

Informationsmodellering och e-infrastrukturer

MATEMATIKENS SPRÅK. Avsnitt 1

Viktiga frågor att ställa när ett argument ska analyseras och sedan värderas:

Nationell Informationsstruktur 2015:1. Bilaga 7: Arkitektur och metodbeskrivning

Grunderna för relationsmodellen!

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

TDDC74 Programmering, abstraktion och modellering. Tentamen

kl Tentaupplägg

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Objektorienterad Programmering (TDDC77)

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Begreppsanalys med modellering

Tentamen Grundläggande programmering

Utveckling av ett grafiskt användargränssnitt

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

BER AKNINGSBARHET F OR DATALOGER. Kent Petersson. Institutionen for Datavetenskap Goteborgs Universitet / Chalmers Goteborg, Sweden

Konceptuell modellering

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Nationell informationsstruktur 2015:2. Bilaga 1: Läsanvisning till modellerna

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Heldag om FGS FGS:er och deras tekniska regelverk. Karin Bredenberg, FGS funktionen. Standarder. FGS:er och deras tekniska regelverk 1

Dataproduktspecifikation Projektionszoner Sweref 99 Trafikverket. Version 5.0

Synpunkter på modellering av begrepp och termer

i LabVIEW. Några programmeringstekniska grundbegrepp

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

Laboration 1: Figurer i hierarki

Parameteröverföring. Exempel. Exempel. Metodkropp

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

DP7 FORMELL KONTROLL

Riktlinjer för bedömning av examensarbeten

Idag. Varför modellera? Modellering. Modelleringsverktygets egenskaper. Modelleringsverktyget

Business research methods, Bryman & Bell 2007

DAB760: Språk och logik

Karlstads Universitet, Datavetenskap 1

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Mål med lektionen! Repetera och befästa kunskaperna.

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00

Nationell informationsstruktur 2015:1 Bilaga 3: Modeller för hälso- och sjukvård

Geografisk information Typoberoende representation av geografiska företeelser. Geographic information Generic representation of geographic phenomena

Klassdeklaration. Metoddeklaration. Parameteröverföring

Dataproduktspecifikation Vägnummer för etiketter. Version 1.0

Välkomna! Presentation och förväntningar. Idag: Kort genomgång av Hitta språket Praktiska övningar kopplade till kartläggningsmaterialet

SVENSK STANDARD SS

COBOL. från grunden. monitors. Peter Sterwe. training people

System.out.println("Jaså du har "+ antaldollar + " stycken.");

Bilaga C (informativ) Översikt och exempel

Formell logik Kapitel 1 och 2. Robin Stenwall Lunds universitet

Tentamen, Algoritmer och datastrukturer

Presentationsgränssnitt för statistik och historik

Programmering = modellering

Logisk semantik I. 1 Lite om satslogik. 1.1 Konjunktioner i grammatisk bemärkelse. 1.2 Sant och falskt. 1.3 Satssymboler. 1.

Begreppsanalys person

Arkitektur och metodbeskrivning. Nationell informationsstruktur

Definition och initiering av fältvariabler (DEF, SET, REP)

En ansats till behovsstyrd applikationsutveckling

Sanning och lögnare. Rasmus Blanck VT2017. FT1200, LC1510 och LGFI52

1. Inledning, som visar att man inte skall tro på allt man ser. Betrakta denna följd av tal, där varje tal är dubbelt så stort som närmast föregående

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Classes och Interfaces, Objects och References, Initialization

PROV. 12 Egenskaper (provavsnitt)

RDA Kapitel 10. RDA 10.2 Släktens namn Kärnelement. Föredraget namn är ett kärnelement. Variantnamn är valfria.

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

Automatateori (2) Idag: Sammanhangsfria språk. Dessa kan uttryckas med Grammatik PDA

Dataproduktspecifikation Generaliserat järnvägsnät med förbindelser. Version 1.0

Anmärkningar till formuläret för överklagande

Nationell informationsstruktur 2016:1. Bilaga 7: Arkitektur och metodbeskrivning

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Om ämnet Engelska. Bakgrund och motiv

RAPPORTSKRIVNING. Skolans namn Program, kurs, läsår Undervisande lärares namn. (titel på arbetet)

Tecken och strängar i Java

Relationsmodellen. Relations modellen är idag den mest änvända datamodellen för kommersiella

Transkript:

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.