Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 A Core Course on Modeling Organizing concepts trees tables Organizing meaning objects semantics Notation Mapping ACCEL aggregation: vectors quantified.

Similar presentations


Presentation on theme: "1 A Core Course on Modeling Organizing concepts trees tables Organizing meaning objects semantics Notation Mapping ACCEL aggregation: vectors quantified."— Presentation transcript:

1 1 A Core Course on Modeling Organizing concepts trees tables Organizing meaning objects semantics Notation Mapping ACCEL aggregation: vectors quantified expressions user defined functions Week 2 – the Art of Omitting

2 2 A Core Course on Modeling concepts: trees ‘Where do you live?’ Week 2 – the Art of Omitting

3 3 A Core Course on Modeling Organizing concepts: trees country (e.g., Netherlands) province (e.g., North Brabant) city (e.g., Eindhoven) quarter (e.g., Woensel) Week 2 – the Art of Omitting

4 4 A Core Course on Modeling Week 2 – the Art of Omitting Organizing concepts: trees partOf() country (e.g., Netherlands) province (e.g., North Brabant) city (e.g., Eindhoven) quarter (e.g., Woensel)

5 5 A Core Course on Modeling Organizing concepts: trees kingdom (e.g., animalia) phylum (e.g., chordata) class (e.g., mammalia) order (e.g., cetacea) isA() family (e.g., delphinidae), genus (e.g., orcinus), species (e.g., orca) Week 2 – the Art of Omitting

6 6 A Core Course on Modeling Organizing concepts: trees isA() Extensional definition: enumerate existing things grouping in (sub)sets Week 2 – the Art of Omitting

7 7 A Core Course on Modeling Organizing concepts: trees Hierarchy: often too restrictive Subsets often relate to meaning Several hierarchies co-exist Week 2 – the Art of Omitting

8 8 A Core Course on Modeling Organizing concepts: tables A B C X Y Z Week 2 – the Art of Omitting Alternative: table

9 9 A Core Course on Modeling Organizing concepts: tables A B C X Y Z property P values A,B,C property Q values x,y,z Week 2 – the Art of Omitting ABC Xc1c2c3 Yc4,c5c6 Zc7c8c9 Alternative: table

10 10 A Core Course on Modeling Organizing concepts: tables A B C X Y Z property P values A,B,C property Q values x,y,z Week 2 – the Art of Omitting ABC Xc1c2c3 Yc4,c5c6 Zc7c8c9 Example: set of vehicles; P = ‘medium’, A,B,C= ‘land’, ‘water’, ‘air’, Q = ‘payload’, X,Y,Z = ‘passengers’, ‘freight’, ‘mail’.

11 11 A Core Course on Modeling Organizing concepts: tables A B C X Y Z Week 2 – the Art of Omitting property P values A,B,C (group) property Q values x,y,z (period) ABC Xc1c2c3 Yc4,c5c6 Zc7c8c9

12 12 A Core Course on Modeling Organizing concepts: tables A B C X Y Z ABC Xc1c2c3 Yc4,c5c6 Zc7c8c9 property P values A,B,C property Q values x,y,z what to do with >2 properties? Week 2 – the Art of Omitting

13 13 A Core Course on Modeling Organizing concepts: tables A B C X Y Z PQ c1AX c2BX c3CX c4AY c5AY c6CY c7AZ c8CZ c9CZ c4, c5 are undistinguishable [P:B, Q:Y] does not occur Week 2 – the Art of Omitting

14 14 A Core Course on Modeling Organizing concepts: tables A B C X Y Z PQ c1AX c2BX c3CX c4AY c5AY c6CY c7AZ c8CZ c9CZ orthogonal table: every property applies to each concept Week 2 – the Art of Omitting M M M N M N N N M … … … … … … … … … … Q

15 15 A Core Course on Modeling Organizing concepts: tables Week 2 – the Art of Omitting Not every tree leads to an orthogonal table (Orthogonal) table: better compression than tree Orthogonal table: with N properties, distinguish O(2 N ) concepts or log(M) properties for M concepts. (Arbitrary) tree: N internal nodes for N leaves.

16 16 A Core Course on Modeling Organizing concepts: tables Week 2 – the Art of Omitting image: tasteholdercreamtoppingcherry ice1vanillaconeyessmartiesred ice2vanillastickyessmartiesred ice3chocstickno hazelnut none ice4vanillaconenosmartiesgreen ice5strawberrybowlyeshazelnutnone orthogonal table ontology: helps explore option space

17 17 A Core Course on Modeling Organizing concepts: tables Week 2 – the Art of Omitting image: tasteholdercreamtoppingcherry ice1vanillaconeyessmartiesred ice2vanillastickyessmartiesred ice3chocstickno hazelnut none ice4vanillaconenosmartiesgreen ice5strawberrybowlyeshazelnutnone orthogonal table ontology: helps explore option space

18 18 A Core Course on Modeling Organizing meaning: objects Week 2 – the Art of Omitting image: tasteholdercreamtoppingcherry ice1vanillaconeyessmartiesred ice2vanillastickyessmartiesred ice3chocstickno hazelnut none ice4vanillaconenosmartiesgreen ice5strawberrybowlyeshazelnutnone ice1 = [taste:vanilla, holder:cone, cream:yes, topping:smarties, cherry:red] coneIce = [taste:{vanilla, choc, strawberry}, holder:cone, cream:{yes, no}, topping:{smarties, hazelnut}, cherry:{red, green, none}] ice = [taste:{vanilla, choc, strawberry}, holder:{cone, stick, bowl}, cream:{yes, no}, topping:{smarties, hazelnut}]

19 19 A Core Course on Modeling Organizing meaning: objects Week 2 – the Art of Omitting image: image: Intensional definition: specifiy things by properties irrespective existence extensional   intensional

20 20 A Core Course on Modeling Organizing meaning: objects Week 2 – the Art of Omitting image: x : Y means: if x and Y are sets: x  Y if x is an element: x  Y abbreviate ‘{a}’ by ‘a’ isA(x,Y) means: for every P in Y, x.P : Y.P. isA(x,Y): inheritance; x inherits from Y x is more concrete, Y is more abstract

21 21 A Core Course on Modeling Organizing meaning: objects Week 2 – the Art of Omitting image: examples isA( ): ice1: coneIce; conIce : ice; isA(ice1, coneIce); isA(coneIce, ice); isA(ice, [holder:{cone, stick, bowl}] ) isA(ice, [ ]) isA(coneIce, [ ]) ice1 = [taste:vanilla, holder:cone, cream:yes, topping:smarties, cherry:red] coneIce = [taste:{vanilla, choc, strawberry}, holder:cone, cream:{yes, no}, topping:{smarties, hazelnut}, cherry:{red, green, none}] ice = [taste:{vanilla, choc, strawberry}, holder:{cone, stick, bowl}, cream:{yes, no}, topping:{smarties, hazelnut}] a concept with just a single property (‘holder’) a very abstract concept, having no properties at all (‘a thing’)

22 22 A Core Course on Modeling Week 2- conceptual modeling The anatomy of concepts: a concept can be an item (a concrete, unique thing) Organizing meaning: objects

23 23 A Core Course on Modeling Week 2- conceptual modeling The anatomy of concepts: a concept can be an item (a concrete, unique thing) or a concept can be a class Organizing meaning: objects

24 24 A Core Course on Modeling Week 2- conceptual modeling designer: gustaveEiffel location: ChampsDeMars height: 320 m The anatomy of concepts: a concept can be an item (a concrete, unique thing) an item can have properties a concept can be a class … with values that may be concepts with properties of their own Organizing meaning: objects

25 25 A Core Course on Modeling Week 2- conceptual modeling The anatomy of concepts: a concepts can be an item (a concrete, unique thing) an item can have properties a concept can be a class … with values that may be concepts with properties of their own a class can be an aggregation or a class can be an abstraction such as:’monuments in Paris’ such as: ‘bunch of steel girders’ Organizing meaning: objects

26 26 A Core Course on Modeling Week 2- conceptual modeling The anatomy of concepts: a concepts can be an item (a concrete, unique thing) an item can have properties a concept can be a class … with values that may be concepts with properties of their own a class can be an aggregation … of all similar things, called elements or members (sometimes numbered) a class can be an abstraction Organizing meaning: objects

27 27 A Core Course on Modeling Week 2- conceptual modeling The anatomy of concepts: a concepts can be an item (a concrete, unique thing) an item can have properties a concept can be a class … with values that may be concepts with properties of their own a class can be an aggregation … or all different things (elements, members - sometimes named) a class can be an abstraction Organizing meaning: objects

28 28 A Core Course on Modeling Week 2- conceptual modeling The anatomy of concepts: a concepts can be an item (a concrete, unique thing) an item can have properties a concept can be a class … with values that may be concepts with properties of their own a class can be an aggregation … or all different things (sometimes named) a class can be an abstraction Organizing meaning: objects

29 29 A Core Course on Modeling Week 2- conceptual modeling The anatomy of concepts: a concepts can be an item (a concrete, unique thing) an item can have properties a concept can be a class … with values that may be concepts with properties of their own a class can be an aggregation … or all different things (sometimes named) a class can be an abstraction … that typicaly has less properties than its concreter instances Organizing meaning: objects

30 30 A Core Course on Modeling Week 2- conceptual modeling The anatomy of concepts: a concepts can be an item (a concrete, unique thing) an item can have properties a concept can be a class … with values that may be concepts with properties of their own a class can be an aggregation … or all different things (sometimes named) a class can be an abstraction … that can be instantiated by a more concrete concept Organizing meaning: objects

31 31 A Core Course on Modeling Week 2- conceptual modeling The anatomy of concepts: a concepts can be an item (a concrete, unique thing) an item can have properties a concept can be a class … with values that may be concepts with properties of their own a class can be an aggregation … or all different things (sometimes named) a class can be an abstraction … that can be instantiated by a more concrete concept use the right terms for the right things: concept item class aggregation, element abstraction, instance property Organizing meaning: objects

32 32 A Core Course on Modeling Week 2- conceptual modeling Notation: denote aggregation image: v = {1, 2, 3}, a set with three numerical elements – not separately accessible p = [1, 2, 3], an array with three numbered numerical elements, p[0] = 1 q = [a, b, c], an array with 3 numbered concepts, q[0] = a r = [‘a’, ’b’, ’c’], an array with three numbered strings, r[0] = ‘a’ s = [‘x’:1, ’y’:2, ’z’:3], an array with three named numerical elements, s[‘x’] = 1 {1, 2, 3} == {3, 2, 1} [1, 2, 3] != [3, 2, 1] whereas [‘x’:1, ‘y’:2, ‘z’:3 ] == [‘y’:2, ‘z’:3, ‘x’:1]

33 33 A Core Course on Modeling Week 2- conceptual modeling Notation: denote aggregation image: v = {1, 2, 3}, a set with three numerical elements – not separately accessible p = [1, 2, 3], an array with three numbered numerical elements, p[0] = 1 q = [a, b, c], an array with 3 numbered concepts, q[0] = a r = [‘a’, ’b’, ’c’], an array with three numbered strings, r[0] = ‘a’ s = [ x :1, y :2, z :3], an array with three named numerical elements, s[‘x’] = 1 {1, 2, 3} == {3, 2, 1} [1, 2, 3] != [3, 2, 1] whereas [‘x’:1, ‘y’:2, ‘z’:3 ] == [‘y’:2, ‘z’:3, ‘x’:1] Quotes are optional for the names of properties

34 34 A Core Course on Modeling Week 2- conceptual modeling Notation: denote aggregation image: p = [1, 2, 3], an array with three numbered numerical elements, p[0] = 1 is an abbreviation for p = ['0': 1, '1': 2, '2': 3] which is the same as p = ['1': 2, '0': 1, '2': 3] (order doesn't matter) But in the abbreviation, naming ('0':…, '1':…, '2':…) is left out. To know which of [1, 2, 3] or [2, 1, 3] is meant, order convention is required.

35 35 A Core Course on Modeling Week 2- conceptual modeling Notation: denote aggregation image: Sets, lists, concepts and accessing elements: P=[a, b, c]: ordered list, [a, b, c]  [b, a, c] access elements: P[0] == a, etc. P={a, b, c}: set ( unordered ), {a, b, c} == {b, a, c} P={a … b}: set containing all x, a  x  b P=['john':a, 'pete':b, 'suzy': c]: named list or concept access elements: P['pete'] == b, alternative: P.pete == b ['john':a, 'pete':b, 'suzy': c] == ['pete':b, 'john':a, 'suzy': c] there is no notation to access an individual element only use for numbers, weekdays, … but only for values that have total ordering.

36 36 A Core Course on Modeling Mapping image: p = [1, 2, 3] q = [10, 20, 30] vector addition: sum = [p[0]+q[0], p[1]+q[1], p[2]+q[2]] = [11, 22, 33] Easier: sum = p + q ACCEL applies mapping whenever possible. Week 2 – the Art of Omitting

37 37 A Core Course on Modeling ACCEL Why ACCEL? compare to MS Excel, not to BASIC, C++, Matlab, … low threshold for non-programmers follows to-do-list approach from Lectures built-in features (chapters 5 & 6) Pareto Genetic Optimization Sensitivity Analysis with Condition Numbers.. why NOT ACCEL? Week 2 – the Art of Omitting

38 38 A Core Course on Modeling ACCEL: aggregation all agregation by vectors vectors aggregate arbitrary quantities e.g.: v = [1, 2, 3]; v[1] : 2 e.g.: v = [‘x’:1, ‘y’:2, ‘z’:3]; v[’y’] : 2 (v.y : 2) also: v = [x:1, y:2, z:3] but NOT v[y] instead of v[‘y’] e.g.: v = [1, [10, 20], 3]; v[0] : 1 v[1] : [10,20] v[1][1] : 20 v[0][1] :undefined … but ACCEL tries not to disappoint its users… but ACCEL tries not to disappoint its users Week 2 – the Art of Omitting

39 39 A Core Course on Modeling ACCEL: aggregation … but ACCEL tries not to disappoint its users… but ACCEL tries not to disappoint its users index1=slider(0,0,10) index2=slider(0,0,10) printB=b printC=c printD=d a=[1,[10,20],3] b=a[index1] c=b[index2] d=a[index1][index2] Week 2 – the Art of Omitting

40 40 A Core Course on Modeling ACCEL: aggregation netherlands=[…,'provinces':p, …] p=[gr,fr,dr,ov,gl,ut,nh,zh,zl,nb,li] gr=['cap':'groningen', 'pop':582161,'area': ] fr=['cap':'leeuwarden','pop':647239,'area': ] dr=['cap':'assen','pop': , 'area': ] ov=['cap':'zwolle','pop': , 'area': ] gl=['cap':'arnhem','pop': , 'area': ] ut=['cap':'utrecht','pop': , 'area': ] nh=['cap':'haarlem','pop': , 'area': ] zh=['cap':'den haag','pop': , 'area': ] zl=['cap':'middelburg','pop':381202, 'area': ] nb=['cap':'den bosch','pop': , 'area': ] li=['cap':'maastricht','pop': , 'area': ] Week 2 – the Art of Omitting

41 41 A Core Course on Modeling ACCEL: aggregation netherlands=[…, 'provinces':p, …] p=[gr,fr,dr,ov,gl,ut,nh,zh,zl,nb,li] gr=['cap':'groningen', 'pop':582161,'area': ] …. prov0=p[0] prov1= … prov2= … pop0=prov0.pop pop1= … pop2= … totPop=pop0 + pop1 + … what is the exact population?  sum over provinces image: Week 2 – the Art of Omitting

42 42 A Core Course on Modeling ACCEL: quantified expressions netherlands=[…, 'provinces':p, …] p=[gr,fr,dr,ov,gl,ut,nh,zh,zl,nb,li] gr=['cap':'groningen', 'pop':582161,'area': ] …. Alternative: quantified expressions totPop = #(dummy, seq, term, operation) dummy: a quantity that assumes subsequent values from seq seq: a set of values. E.g., vSequence(0,11) = [0,1,2,3,4,5,6,7,8,9,10] term: an expression,perhaps depending on dummy operation: what to do with the values of term Week 2 – the Art of Omitting

43 43 A Core Course on Modeling ACCEL: quantified expressions netherlands=[…, 'provinces':p, …] p=[gr,fr,dr,ov,gl,ut,nh,zh,zl,nb,li] gr=['cap':'groningen', 'pop':582161,'area': ] …. Alternative: quantified expressions totPop = #(dummy, seq, term, operation) totPop = #(i, [1,2,3], i, add)  totPop = 6 t = [3,4,5,6,7] totPop = #(i, [1,2,3], t [i], add)  totPop = t [1] + t [2] + t [3] = = 15 u = [[1,2],[3,4],[5,6]] totPop = #(i, [0,1,2], u[i][1], add)  totPop = ([1,2])[1] + ([3,4])[1] + ([5,6])[1] = = 12 Week 2 – the Art of Omitting

44 44 A Core Course on Modeling netherlands=[…, 'provinces':p, …] p=[gr,fr,dr,ov,gl,ut,nh,zh,zl,nb,li] gr=['cap':'groningen', 'pop':582161,'area': ] …. Alternative: quantified expressions totPop = #(dummy, seq, term, operation) totPop = #(i, vSequence(0,11), p [i]. pop, add) maxPop = #(i, vSequence(0,11), p [i]. pop, max) minArea = #(i, vSequence(0,11), p [i].area, min) … but suppose we need the most spacious province? ACCEL: quantified expressions Week 2 – the Art of Omitting

45 45 A Core Course on Modeling netherlands=[…, 'provinces':p, …] p=[gr,fr,dr,ov,gl,ut,nh,zh,zl,nb,li] gr=['cap':'groningen', 'pop':582161,'area': ] …. Alternative: quantified expressions totPop = #(dummy, seq, term, operation) totPop = #(i, vSeq(0,11), p [i]. pop, add) maxPop = #(i, vSeq(0,11), p [i]. pop, max) minArea = #(i, vSeq(0,11), p [i].area, min) … but suppose we need the most spacious province? ACCEL: quantified expressions Week 2 – the Art of Omitting

46 46 A Core Course on Modeling netherlands=[…, 'provinces':p, …] p=[gr,fr,dr,ov,gl,ut,nh,zh,zl,nb,li] gr=['cap':'groningen', 'pop':582161,'area': ] …. ACCEL: quantified expressions spaciousness = area / population Week 2 – the Art of Omitting

47 47 A Core Course on Modeling netherlands=[…, 'provinces':p, …] p=[gr,fr,dr,ov,gl,ut,nh,zh,zl,nb,li] gr=['cap':'groningen', 'pop':582161,'area': ] …. maxSpaciousness = #(i, vSeq(0,11), spaciousness(i), max) … but spaciousness is not a single quantity: depends on i, so takes different values during computation. Quantities that depend on other quantities:user defined functions. spaciousness(i) = p[i]. area / p[i]. pop Notice: i takes various values during the compuation; is not a quantity. Instead i is called a dummy. ACCEL: user defined functions Week 2 – the Art of Omitting

48 48 A Core Course on Modeling netherlands=[…, 'provinces':p, …] p=[gr,fr,dr,ov,gl,ut,nh,zh,zl,nb,li] gr=['cap':'groningen', 'pop':582161,'area': ] …. ACCEL: user defined functions maxSpaciousness=#(i,vSeq(0,11),spaciousness(i),max) spaciousness(i)=p[i].area/p[i].pop p=[Pgr,Pfr,Pdr,Pov,Pgl,Put,Pnh,Pzh,Pzl,Pnb,Pli] Pgr=['cap':'groningen','pop':582161,'area': ]... Pli=['cap':'maastricht','pop': ,'area': ]  so the most spacious province offers 8900 m 2 /person ! … But which province is that? Week 2 – the Art of Omitting

49 49 A Core Course on Modeling netherlands=[…, 'provinces':p, …] p=[gr,fr,dr,ov,gl,ut,nh,zh,zl,nb,li] gr=['cap':'groningen', 'pop':582161,'area': ] …. As follows: maxSpaciousness=#(i,vSeq(0,11),spaciousness(i),max) spaciousness(i)=p[i]. area / p[i]. pop mostSpacious=#(i,vSeq(0,11),if(spaciousness(i)==maxSpaciousness,i,0),max) capitalOfMostSpacious=p[mostSpacious]. cap  curious for result? Try yourself! ACCEL: user defined functions Week 2 – the Art of Omitting

50 50 A Core Course on Modeling idea: expression that is evaluated more than once in a computation:  user-defined functions can be used whenever quantities are used can have arbitrary arguments (one or more) … with arbitrary names (no name clashes) can return whatever you want, e.g. myFunc(a,b) = ['x':a,'y':b] p=myFunc(3,4) gives result p=['x':3,'y':4] p=myFunc(3,4)['x'] and myFunc(3,4).x both give result p=3 use to organize your thinking use to keep script readible use to shorten script use to keep formal and conceptual models similar ACCEL: user defined functions Week 2 – the Art of Omitting


Download ppt "1 A Core Course on Modeling Organizing concepts trees tables Organizing meaning objects semantics Notation Mapping ACCEL aggregation: vectors quantified."

Similar presentations


Ads by Google