Modelleren van XML element content of Hoe doe je dat? Harrie Passier & Bastiaan Heeren TouW-dag 13 november 2010.

Slides:



Advertisements
Verwante presentaties
WACHT MENEER VAN DALEN NOG STEEDS OP ANTWOORD ?
Advertisements

Educational model for assessment
dia's bij lessenserie Pythagoras ± v Chr.
Practica Computerlinguistiek Tekst en uitleg:
Coördinaten Transformaties
Flexibel rekenonderwijs in groep 3 en 4 Bijeenkomst 3
Presentatie Machten,Wortels & Ontbinden Deel 1
Metadata uitwisselschema project Ellen Mulder Digiframe
vwo A/C Samenvatting Hoofdstuk 2
Niveau 1F Paraat hebben: (selectie) Omzetten van eenvoudige breuken in decimale getallen. Optellen en aftrekken van veel voorkomende gelijknamige en ongelijknamige.
Het CE wiskunde C Ruud Stolwijk Toetsdeskundige wiskunde bij Cito
vwo B Samenvatting Hoofdstuk 1
Extra vragen voor Havo 3 WB
Omtrekshoeken Stelling van de constante hoek:
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
INTERACTION DESIGN Week 4.
1 Het probleem RO Milieu Landbouw SocZekerheid Etc. LerenWerkenWonenPensioenEtc. Overheids- organisatie Burger ??? Regelgeving per domein Vraag op levensmoment.
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
Kennisuitwisseling in LOK Landelijk onderwijsweb Kennistechnologie Evert van de Vrie Kennisuitwisseling in LOK Landelijk onderwijsweb Kennistechnologie.
Projectie en stelling van thales
Welk beeld bij.
ribwis1 Toegepaste wiskunde, ribPWI Lesweek 01
Workshop Teamleiders OGW en sturen op OGW.
Hoofdstuk 4 Vlakke figuren.
Chris Pollentier 18 / 12 / 2002 De LOGO taalwereld.
MICROCONTROLLERS.
Les 12: DTD.
Voorrangsregels bij rekenen (1)
Letterrekenen K. van Dorssen.
Hoofdstuk 9 havo KWADRATEN EN LETTERS
Hoofdstuk 1 Roosterpapier, hoekpunten, zijden, diagonalen
havo B Samenvatting Hoofdstuk 1
Reguliere talen nReguliere grammatica: versimpelde Contextvrije grammatica nFinite-state Automaton: andere manier om een taal te beschrijven nReguliere.
3FD na de vakantie !! Wiskunde deel B + Geodriehoek !!! + potlood !! + gum !! + rekenmachine !! Koop het als je het niet hebt !
Het kwadraat van een getal
havo en vwo wiskunde B Wim Doekes
Variabelen en berekeningen
Netwerkvoormiddag Communicatieve Vaardigheden - Zakelijke Communicatie
Tentamen vraag 1 Als L en M talen zijn, dan nL  M is gelijk aan { s  t | s  L, t  M } nL M is gelijk aan { s t | s  L, t  M } nL n is gelijk aan.
Welkom op de ouderavond van de groepen 4
1 XSLT processing & control Datamodellering 2006.
MBR AtT1 College 9 Diagnose met correctmodellen. Verdieping in de formalisatie. In reader: Characterizing diagnoses and Systems J. de Kleer, A.
MBR AtT1 College 7 : covering theorie (Deel 2) model MAB-diagnose: College 6: Covering theorie College 7: Algoritme voor covering theorie werkelijk.
Docentinstructie: Het is aan te bevelen de eerste dia’s klassikaal te tonen en met uitleg te bespreken. Als na zes dia’s een korte demo van Celsius/Fahrenheit.
Onderzoeksvaardigheden 3
Rekenen met variabelen. Variabele: rekenen met variabelen een variabele is een letter die een getal voorstelt. de letters a, b, c, n, p, q, x, y en z.
Projectie en stelling van thales
Welkom bij de workshop Werken met een denkschrift
Geweldloos verzet. Aanleiding Ouders en kinderen hebben te maken met agressief gedrag in het gezin. Geweldloos verzet.
Inhoud Optellen en aftrekken. Vermenigvuldigen en delen.
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek.
Wiskunde voor Engineering HU / Boswell Bèta 11 augustus.
Wiskunde voor Engineering HU / Boswell Bèta 10 augustus.
Voortgang. Mijn voortgang in python Binaire getallen De computer gebruikt binaire getallen om alles te doen. Het is de taal waarin de computer praat.
Datamodelleren FCO-IM methode.
Nieuwe gewoontes aanleren met SharePoint
Gameprogrammeren: Expressies
Onderwijspsychologie
2 VMBO-T/HAVO deel Driehoeken tekenen Drie zijden gegeven VMBO-T
2 VMBO-T/HAVO deel Haakjes wegwerken De regel a(b + c) = ab + ac
Modelleren en Programmeren voor KI Practicumopdracht 4: SAT Solver
havo B Samenvatting Hoofdstuk 1
Eigenschappen van vierhoeken
Congruente driehoeken
Datamodelleren FCO-IM methode.
Rekenen Mevr. Koçak 27 november 2018.
Stap drie bij projecten
Telproblemen.
Python – For loop + strings
Transcript van de presentatie:

Modelleren van XML element content of Hoe doe je dat? Harrie Passier & Bastiaan Heeren TouW-dag 13 november 2010

XML element content XML:theory and applications L. Wiegering H. Pootjes H. Passier Introduction Basics of XML Opdracht: Vind het goede content model

Modelleren van content modellen moeilijk? 75% = eenvoudig (book voorbeeld) 20% = lastiger 5% = moeilijk

Modelleren van content modellen moeilijk? … … … oXygen Wat als: - b = klant - c = naam - d = nummer

Modelleren van content modellen moeilijk? Model van de zetten tijdens een damspel: Probleem: - niet deterministisch - … en niet deterministisch te maken

Modelleren van content modellen belangrijk? Ongeveer de helft v.d. XML documenten wijst niet naar een schema Ongeveer 2/3 van de schema’s bevatten fouten en zijn te ruim gedefinieerd Dit leidt tot problemen bij informatie-uitwisseling tussen applicaties

Aanleiding Binnen Computer Science is weinig aandacht voor methodisch werken en het gebruik van (formele) methoden [Parnas, Dean, Gries, …] –Vooral aandacht voor wat, nauwelijks hoe “Hoe doe je dat nou?” Gekeken naar de cursus XML; het systematisch modelleren van XML content modellen als voorbeeld uitgewerkt –Methode –Leerproces

Het (systematisch) oplossen van problemen Van precieze recepten (7 ×(3 - 8)), heuristieken t/m vuistregels/richtlijnen (Unified process & UML) Nodig: –Beschrijving domein (opbouw getallen, operatoren, expressies) –Regels voor het manipuleren (optellen, aftrekken, …) –Doel (reduceren tot een getal) –Strategie (eerst optellen/aftrekken, dan ….)

Beschrijving domein: syntax Een XML content model is te beschouwen als een reguliere expressie –Empty stringEMPTY (  ) –Alfabetelementnamen –SequentieR,S(RS) –KeuzeR|S –Nul of een keerR? –Nul of meer keerR* –Een of meer keerR+ Ons book voorbeeld: (title author+ chapter+)

Beschrijving domein: Taal L(  )= {  } L(a)= {a} L(ST)= L(S)L(T) L(S|T)= L(S)  L(T) L(T*)= (L(T))* (T?)= L(T |  ) = L(T)  {  } L(T+)= L(TT*) = L(T)L(T*) XY = {xy | x  X, y  Y } {a, b}{c, d} = {ac, ad, bc, bd} L((a|b) c) = { L(ST) } L(a|b) L(c) ={ L(S|T) } (L(a)  L(b)) L(c) = { distributie } L(a)L(c)  L(b)L(c) = { L(a) } {a}{c}  {b}{c} = { concatenatie } {ac}  {bc} ={ vereniging } {ac, bc}

Regels voor het manipuleren R |(S|T)= (R|S) | T R | S= S | R R | R= R R(ST)= (RS)T  R = R  = R R? =  | R R* =  | RR* R+= RR* RS | RT= R (S|T) RT | ST= (R|S) T R*R= RR* (RS)*R= R(SR)* R n ≤ R+ (voor n ≥ 0) R n ≤ R* (voor n ≥ 1 ) abc | bc | bac | abcd = { R | S = S | R } bc | bac | abc | abcd = { R S | R T = R ( S | T ) } b(c|ac) | abc | abcd = {  R = R  = R } b(  c|ac) | abc | abcd = b(  |a)c | abc | abcd = ba?c | abc | abcd = ba?c | abc  | abcd = ba?c | abc(  |d) = ba?c | abcd?

Doel Deterministisch content model (SGML) ?

Doel Deterministisch content model (SGML) Precieze content modellen –Specificeren precies die rijtjes kindelementen die we willen toelaten en geen andere bijvoorbeeld –Bijvoorbeeld: cd?|dc Correcte content modellen –Specificeren minstens die kindelementen die we willen toelaten –Bijvoorbeeld: ( c|d)+ (ook cccddd is nu toegelaten) Ik ga alleen in op de precieze modellen

Verwijderen van niet-determinisme Twee situaties: 1.Een content model bevat R|S, en de doorsnede van starters(L(R)) en starters(L(S)) is niet leeg. –Voorbeeld: ab|ac 2.Een content model bevat R?, R* of R+, en de doorsnede van starters(R?) en de set aan namen die kan volgen is niet leeg. –Voorbeelden: a?a en (ab)*ac Ik ga alleen in op de eerste situatie

Strategie situatie 1 Gegeven R|S met minstens 1 gelijke starter (zeg a): 1.Herschrijf R en S zodat a het eerste element in de sequentie is –Expandeer cardinaliteiten (bijvoorbeeld R*=  | RR* en R+ = RR*) –Verwijder  (  R = R  = R) –Distribueer sequentie over keuze (RT | ST = (R|S) T) 2.Herschik zo nodig (R | S = S | R ) 3.Factoriseer (RS | RT = R (S|T)) en introduceer hiervoor zo nodig . (ab)+ | bc | abc = ab(ab)* | bc | abc = ab(ab)* | abc | bc = ab((ab)*|c) | bc (a|b)a | a = aa | ba | a = aa | a | ba = aa | a  | ba = a(a|  ) |ba

Strategie voor precieze modellen (I) Startvorm (SF): Schrijf alle sequenties van kindelementen op gescheiden door keuze-tekens. Dit is een eerste precies model … … … c | cd |dc

Strategie voor precieze modellen (II) Invoer: Een XML content model in SF Uitvoer: Een deterministisch content model zonder  tekens 1.Verwijder redundante keuzen (R|R = R), pas zo nodig de volgorde aan (R|S = S|R) 2.Maak het model deterministisch (zie voorgaande strategie) 3.Verwijder aanwezige  tekens (R? = R|  ) c | cd | dc = c  | cd | dc = c(  |d) | dc = cd? | dc ab |  | abab | ab =  | ab | ab | abab =  | ab | abab =  | ab  | abab =  | ab(  |ab) =  | ab(ab)? = (ab(ab)?)?

Samenvatting Niet alle XML content modellen zijn eenvoudig Veel XML schema's zijn incorrect te ruim gedefinieerd Vertrouw niet op tools als XML Spy en oXygen Met pen en papier modelleren blijft noodzakelijk Een formele aanpak werpt zijn vruchten af –Inzicht –Doelen (precieze en correcte modellen) –Goede modellen Voor precieze en correcte modellen hebben we een strategie Een (meer) methodische/formele aanpak zou meer gebruikt moeten worden Literatuur: Passier, H., Heeren, B., Modeling XML Content Explained Passier, H., Notes on modeling XML element content