Plan-X: XCompact. Komprimeret serialisering af semi-struktureret data. Bachelorprojekt i datalogi. Christian Iversen, Espen Højsgaard, Rune Højsgaard

Størrelse: px
Starte visningen fra side:

Download "Plan-X: XCompact. Komprimeret serialisering af semi-struktureret data. Bachelorprojekt i datalogi. Christian Iversen, Espen Højsgaard, Rune Højsgaard"

Transkript

1 Plan-X: XCompact Komprimeret serialisering af semi-struktureret data Bachelorprojekt i datalogi Christian Iversen, Espen Højsgaard, Rune Højsgaard Forår 2005 Datalogisk Institut Københavns Universitet Vejleder: Fritz Henglein

2 Resumé Denne opgave beskriver en metode til komprimeret serialisering af XML-dokumenter, kaldet XCompact. XCompact adskiller sig fra andre XML-specifikke kompresionsmetoder, ved at den kompakte serialisering kan navigeres som en træstruktur. Vores evaluering viser, at XCompact ikke kan konkurrere med eksisterende værktøjer på kompression alene i bedste fald komprimerer XCompact halvt så godt. XCompact s serialiserede format kan bruges som backend til XML Store, hvilket vi har implementeret som CompactStore. Evalueringen viser at CompactStore i nogle tilfælde er hurtigere og i andre tilfælde langsommere end Koala XML Store s LocalXMLStore. Tak til For projektoplæg, råd og vejledning vil vi gerne takke Fritz Henglein. Ydermere vil vi gerne takke Henning Niss, der har været behjælpelig med at forklare XMLStorearkitekturen. Rasmus Jensen skal have tak for en god introduktion til komprimering og for henvisninger til artikler om kompression. 2

3 INDHOLD Indhold Indhold 3 1 Indledning Problemformulering Uddybning og afgrænsning Relateret arbejde Konklusion Baggrundsmateriale XML Indlæsning XOP Document Value Model og XML Store Værdiorienteret programmering DVM XML Store Kompression LZ77 og LZ Huffman-kodning XML kompression Komprimeret og navigerbar serialisering af XML Designmål Begrænsninger Navigation Round-tripping Struktur og data Attributter Data Gruppering Komprimering Struktur En naiv strukturrepræsentation Opdeling i struktur og metadata Samlet liste af knuder Pladseffektiv repræsentation af talliste Pladseffektive pegere til data Delte undertræer Huffman-kodning af indeksnumre Effektiv kodning af knude-navne Side 3 af 169

4 INDHOLD 3.5 Det endelige format Implementation Huffman-kodning XMLStore Læsevejledning Brugervejledning XCompress & XDecompress CompactStore Afprøvning Empirisk evaluering Datasæt Platform Kompression XCompact Sammenligning med andre kompressorer Navigation Praktiske problemer og mulige fejlkilder Forespørgsler Sammenligning af CompactStore og LocalXMLStore Anvendelighed Fremtidigt arbejde 43 7 Litteratur 44 A Scripts 47 A.1 Script til XPath-testkørsler A.2 Script til kompressionstestkørsler B Kildekode 50 B.1 org.planx.xcompact.cli B.1.1 CleanXML.java B.1.2 CompactBuilder.java B.1.3 CompactDumper.java B.1.4 CropXML.java B.1.5 StatXML.java B.1.6 StoreBuilder.java B.1.7 StorePath.java B.1.8 XCompress.java B.1.9 XDecompress.java B.1.10 XMLStoreBuilder.java B.1.11 XMLStoreDumper.java Side 4 af 169

5 INDHOLD B.1.12 XPathBench B.2 org.planx.xcompact.compression B.2.1 DifferenceDecodeIntIterator.java B.2.2 DifferenceDecodeLongIterator.java B.2.3 IntegerListCompression.java B.2.4 Options.java B.2.5 SimpleDecodeIntIterator.java B.2.6 SimpleDecodeLongIterator.java B.2.7 StringListCompression.java B.3 org.planx.xcompact.compression.huffman B.3.1 HuffmanCodeBook.java B.3.2 HuffmanCodeCalculator.java B.3.3 HuffmanCodeTable.java B.3.4 HuffmanElement.java B.3.5 HuffmanException.java B.3.6 HuffmanIterator.java B.3.7 HuffmanList.java B.3.8 HuffmanReader.java B.4 org.planx.xcompact.compression.xml B.4.1 AbstractElement.java B.4.2 CodeBookBuilder.java B.4.3 CompactNode.java B.4.4 DefaultLocator.java B.4.5 DefaultLocatorFormatter.java B.4.6 DefaultLocatorReader.java B.4.7 DefaultXMLCompressor.java B.4.8 DefaultXMLDecompressor.java B.4.9 Element.java B.4.10 Header.java B.4.11 IncompatibleLocatorException.java B.4.12 Locator.java B.4.13 LocatorFormatter.java B.4.14 LocatorReader.java B.4.15 NodeInfo.java B.4.16 SAXHandler.java B.4.17 StructureSerializer.java B.4.18 UnsupportedFieldException.java B.4.19 XMLCompressor.java B.4.20 XMLDecompressor.java B.5 org.planx.xcompact.compression.xml.containers B.5.1 Container.java B.5.2 ContainerManager.java B.5.3 ContainerReader.java Side 5 af 169

6 INDHOLD B.5.4 DeflateContainerReader.java B.5.5 DeflateSharedContainer.java B.5.6 DeflateSharedContainerManager.java B.5.7 DeflateSingleContainer.java B.5.8 DeflateSingleContainerManager.java B.5.9 DeflateTagContainerManager.java B.5.10 HuffmanSharedContainer.java B.5.11 HuffmanSharedContainerManager.java B.5.12 HuffmanSharedContainerReader.java B.5.13 HuffmanSingleContainerManager.java B.5.14 HuffmanTagContainerManager.java B.5.15 RawContainerReader.java B.5.16 RawSharedContainer.java B.5.17 RawSharedContainerManager.java B.5.18 RawSingleContainerManager.java B.5.19 RawTagContainerManager.java B.6 org.planx.xcompact.io B.6.1 BitInputStream.java B.6.2 BitOutputStream.java B.6.3 DataInputStreamAdapter.java B.6.4 FileList.java B.6.5 LimitedInputStream.java B.6.6 RandomAccessBitInput.java B.7 org.planx.xcompact.store B.7.1 AbstractIterator.java B.7.2 CompactReader.java B.7.3 CompactReference.java B.7.4 CompactStore.java B.7.5 CompactStoreReference.java B.7.6 CorruptedStoreException.java B.7.7 ProxyNode.java B.8 org.planx.xcompact.util B.8.1 GenericArray.java B.8.2 Pair.java B.8.3 ResetIterator.java B.8.4 Unboxer.java B.8.5 UnboxingIterator.java Side 6 af 169

7 1 INDLEDNING 1 Indledning XML-dokumenter er selvbeskrivende tekstdokumenter, der indeholder semi-struktureret data. Indholdet af et XML-dokument kan opfattes som en træstruktur med ustruktureret data ved bladene. XML-dokumenter kan læses af både mennesker og maskiner en egenskab der opnås med en meget verbos og delvis redundant syntaks, hvilket medfører at XMLdokumenter optager meget lagerplads i forhold til deres informationsindhold. Sammenligner man eksempelvis med en almindelig databaseløsning, hvor metadata gemmes én gang for hele databasen, gemmes det i XML én gang for hver post (eng. record). Da XML-dokumenter er pladskrævende er det ønskværdigt at komprimere dem. Dette kan gøres med generelle værktøjer til tekstkomprimering som gzip eller bzip2. Alternativt kan værktøjer, der er specialiseret til kompression af XML anvendes, f.eks. XMill af Liefke og Suciu [20]. XMill kan komprimere XML-dokumenter omtrent lige så godt som bzip2. Denne kompression opnås ved at samle ensartet data i containere, og komprimere hver container for sig med gzip eller brugerspecificerede kompressionsværktøjer. Disse kompressorer reducerer pladsforbruget, men bevirker at det komprimerede XMLdokument ikke længere kan læses og tolkes uden en komplet dekompression en operation der kræver tid og hukommelse. Det er derfor ønskværdigt med et værktøj, der kan komprimere og serialisere XML-dokumenter til et format, hvor strukturen kan navigeres uden en forudgående deserialisering og dekompression. XML Store [23] er en værdiorienteret lagerfacilitet til gemme XML-dokumenter. XML S- tore implementerer Document Value Model (DVM) API et, der modellerer XML-dokumenter som et træ, hvor man kan følge kanterne fra en knude til dens børn. Metoden, der beskrives i denne rapport, er målrettet mod at lave en komprimeret serialisering af XML, hvorpå en pladsbesparende implementation af DVM API et kan baseres. Rapporten antager at læseren er bekendt med grundlæggende datalogiske begreber eksempelvis træstrukturer men forudsætter ikke et kendskab til hverken komprimering eller XML. Denne rapport, kildekode og datasæt m.m. kan hentes fra projektets hjemmeside [37]. 1.1 Problemformulering Projektet har til formål at undersøge følgende: Er det mulig at lave en komprimeret serialisering af et XML-dokument, der effektivt kan navigeres efter DVM-modellen og som endvidere har en kompressionsratio svarende til XMill s. 1.2 Uddybning og afgrænsning De basale idéer vi vil basere vores metode på er følgende: 1. identiske undertræer slås sammen, hvorved træet transformeres til en DAG 1 1 Directed Acyclic Graph Side 7 af 169

8 1 INDLEDNING 2. anvend tekstkomprimering på karakterdata 3. DAG en serialiseres som en Huffman-kodet listerepræsentation, baseret på knudernes indvalens Punkt 1. udføres allerede effektivt i XML Store og vi vil derfor ikke undersøge dette aspekt den interesserede læser henvises til [5]. Punkt 2. er et område, hvor flere projekter, bl.a. XMill, har vist at en stor kompression kan opnås, ved at tage karakterdatas placering i træstrukturen i betragtning. Vi vil i denne rapport se på, hvilke modeller andre projekter har anvendt og hvilke der er brugbare, når navigationen skal bevares. Punkt 3. forekommer som et simpelt spørgsmål om at implementere en Huffman-koder. Dette er korrekt med hensyn til selve kodningen af strukturen. Men når det kommer til kodebogen, så er der mange måder at komprimere og serialisere den. Det særlige ved vores kodebog er, at den indeholder graf-knuder med tilknyttet information, nemlig knudens navn. Da mange knuder i et XML-dokument ofte har samme navn, vil det være uhensigtsmæssigt at gemme navnet sammen med hver knude. Hvis dette kan undgås, kan der spares plads. 1.3 Relateret arbejde Der findes meget litteratur om komprimering generelt, men mængden af litteratur om XML-specifik komprimering er meget begrænset. De metoder vi er bekendt med, er XMill [20], XGrind [25], SCM [3] og Multiplexed Hierachical Modelling (MHM) [7], der er baseret på Prediction by Partial Match (PPM). Disse metoder er belbeskrevne og det er det er ideerne fra disse, som vores metode baserer sig på. Vi har i afsnit 2.4 en beskrivelse af de fire metoder. 1.4 Konklusion Vi har i denne opgave designet, implementeret og evalueret en metode XCompact til komprimeret serialisering af XML-dokumenter. Vores kompression er ikke nær så god som XMill s, men 2-3 gange dårligere. I modsætning til XMill er vores serialiserede format derimod navigerbart. Metoden er implementeret som en backend til XML Store kaldet CompactStore. Hastigheden af navigation i CompactStore afviger både positivt og negativt fra LocalXMLStore afhængig af navigationsmønsteret og datasættet ydere evaluering og profilering er nødvendig for at karakterisere og begrunde forskellene. Først ordens Markov-modellen fra XMill har for vores metode givet dårligere resultater, end ved at komprimere alt karakterdata samlet. Dette kan skyldes, den anvendte kompressionsmetode. Side 8 af 169

9 2 BAGGRUNDSMATERIALE 2 Baggrundsmateriale I det følgende introduceres de koncepter, som vores metode bygger på. Vi giver ikke en tilbundsgående behandling af de pågældende emner, men fokuserer på de aspekter, der er relevante for vores metode. 2.1 XML Siden de første computere kom på markedet, er der blevet opfundet et utal af specialiserede filformater til opbevaring af data i det faste lager. Mange af disse formater er kun blevet brugt til ganske få projekter, hvorved al programmeringsarbejdet til at opnå læse- og skriveadgang har måttet gentages for hvert program. Ud over det åbenlyse problem at udviklingen tager længere tid, er der andre hensyn, der taler imod denne udviklingsmodel eksempelvis at eventuelle fejl, kun skulle rettes én gang, hvis programmerne kunne dele koden, der tilgår datafilerne, Ud fra et ønske om at løse dette problem, har et antal formater med varierende grad af standardisering bag sig opnået stor udbredelse. Et af disse er XML, der kan bruges til at beskrive semi-struktureret data. I XML (extensible Markup Language) søger man at gøre ethvert dokument læsbart for mennesker ved at bruge sigende navne i alle notationer, og mindske mængden af data der ikke kan fortolkes uden hjælpeprogrammer. Denne begrænsning er et ønskværdigt mål mere end en teknisk begrænsning, da det så absolut er muligt at konstruere XMLdokumenter, der er aldeles uigennemskuelige for mennesker. Dette gøres nemmest ved at ignorere mulighederne for at angive strukturen af de data der arbejdes med, som det ses i figur 1. 1 <data > c2e8975aed96f735700b84fa </ data > Figur 1: Eksempel på ulæselig XML Grundlæggende er en XML-fil en tekstuel repræsentation af et datatræ, og der er således én rodknude, der indeholder hele dokumentet. Hver knude kan have et ubegrænset antal attributter og børn i form af tekstdata og yderligere knuder. Et eksempel på velstruktureret XML ses i figur 2. Knuder har navngivne markeringer, tags, der har formen <tagname>contents</tagname>, med mindre knuderne ingen børn har, i hvilket fald de kan, men ikke skal, have formen <tagname/>. Attributdata har formen name="value", og skrives inden i tagget, som det ses på figuren. Det er ikke tilladt at bruge samme attributnavn flere gange i samme tag. 1 < rootnode > 2 <child name =" value ">Character data </ child > 3 <child name =" other ">More data </ child > 4 </ rootnode > Figur 2: Eksempel på velstruktureret XML Side 9 af 169

10 2 BAGGRUNDSMATERIALE Indlæsning Der findes flere metoder til at tilgå XML-filer, hvoraf Simple API for XML [21] og Document Object Model [10] er de to mest udbredte. SAX er en hændelsesbaseret API, der giver en række signaler til brugerprogrammet når man når til en ny knude, støder på tegndata, afslutter en knude, etc. I figur 3 ses et eksempel på SAX-hændelser. 1 start knude : rootnode 2 start knude : child ( attributer : name =" value ") 3 tegndata : " Character data " 4 slut knude : child 5 start knude : child ( attributer : name =" other ") 6 tegndata : " More data " 7 slut knude : child 8 slut knude : rootnode Figur 3: SAX-hændelser til XML i figur 2 Der er flere fordele ved SAX frem for andre API er til læsning af XML. En SAXparser leverer løbende events med data fra dokumentet, mens dokumentet parses. Forbruget af arbejdshukommelse kan derfor holdes lavt, da parseren leverer data direkte videre til applikationen det er så applikationen der er ansvarlig for at tolke eventen og vælge om data skal bevares i hukommelsen. DOM er baseret på en objektorienteret model af dataindholdet i XML-filen. Dokumentet præsenteres som rodknuden i et træ. Det er via denne knude muligt at få dens attributter og et vilkårligt barn. Fordelen ved DOM er, at klient-applikationen ikke skal hverken parse eller tolke strukturen i dokumentet, men kan operere på dokumentet som en træstruktur. Ulempen er, at det er DOM-implementationen, der afgør, hvilket data, der skal holdes i arbejdshukommelsen hvilket for en del DOM-implementationer betyder at hele dokumentet holdes i arbejdshukommelsen XOP Binær data kan ikke direkte indlejres i et XML-dokument, men skal først kodes som karakterdata eksempelvis i form af base64 kodning [11, 33]. En sådan kodning får data til at fylde mere og er endvidere tidskrævende. XOP (XML-binary Optimized Packaging) er en metode til at serialisere XML med binær data uden brug af base64-kodning [12]. I stedet for at placere det base64-kodede binære data i dokumentet, indsættes i stedet et xop:include-element, der indeholder en reference til det binære data. Dermed separeres det binære data fra XML-dokumentet. Det transformerede XML-dokument og de binære datablokke kan derefter serialiseres som separate dele i et pakke-format. Side 10 af 169

11 2 BAGGRUNDSMATERIALE Når dokumentet skal læses, kan en generisk XML-parser bruges på det transformerede dokument. De binære dele kan derefter læses efter behov af applikationen, uden først at skulle konvertere dem fra base Document Value Model og XML Store XML Store er et applikationskonfigurerbart, distribueret, mobilt persistenslag til opbevaring af semi-strukturerede data (XML-dokumenter i særdelelshed) baseret på en værdiorienteret dokumentmodel og grænseflade. XML Store implementerer DVM (Document Value Model) API et, der er en værdiorienteret DOM-lignende grænseflade. Dette afsnit indeholder en kort gennemgang af værdiorienteret programmering, DVM og XML Store. En komplet gennemgang af DVM og XML Store kan findes i [23] Værdiorienteret programmering I værdiorienteret programmering kan værdier ikke opdateres. Man kan binde en værdi til et navn, men man kan ikke opdatere værdien, som man kan i imperative sprog. I SML-syntaks bindes en værdi f. eks. således: 1 - val x = [5]; 2 val x = [5] : int list Figur 4: Binding i ML Hvis listen x opdateres ved at tilføje et element, vil en ny liste blive oprettet og efterlade den gamle uændret. Referencen til værdien bliver igen bundet til x, og denne binding overskygger den gamle, der altså stadig eksisterer: 1 - val x = 42 :: x; 2 val x = [42,5] : int list Figur 5: Opdatering i ML Det er altså muligt at konstruere nye værdier ud fra andre værdier. Bindinger til navne kan altså også ændres, men værdier kan ikke ændres, som det fremgår af følgende eksempel: 1 - val y = 3 :: x; 2 val y = [3, 42, 5] : int list 3 - val x = [0]; 4 val x = [0] : int list 5 y; 6 val it = [3, 42, 5] : int list Figur 6: Værdier er ikke-muterbare Værdiorienterede modeller er attraktive i netværkssammenhænge som for eksempel XML Store. Da en værdi ikke kan ændres destruktivt, er der ikke behov for en transaktionsprotokol til netværket. Der er altså er ingen overensstemmelsesproblemer ved caching, da opdaterede værdier gemmes som nye værdier og værdier ikke bliver slettet. Side 11 af 169

12 2 BAGGRUNDSMATERIALE DVM DVM er en træorienteret, værdiorienteret grænseflade, specielt designet til XML Store. DVM minder om DOM, men adskiller sig ved at være værdiorienteret og understøtter dermed, i modsætning til DOM, ikke destruktive opdateringer 2. Knuder er de centrale elementer i DVM. Hele dokumentet repræsenteres ved en enkelt knude, rodknuden, og undertræerne (rodens børn) repræsenteres ligeledes som knuder. En knude har et navn, en mængde attributter samt en sæt børn. Navigation i strukturen foregår ved at følge en reference fra en knude til et af dens børn. En blok ustruktureret data repræsenteres i DVM i form af en knude, der hverken har attributter eller børn, men kun en strengværdi. Ustruktureret data er således en atomisk enhed i DVM XML Store XML Store implementerer DVM og håndterer persistens og distribution. Det har en lagdelt arkitektur der består af DVM laget, disklaget, foruden navne-service og referenceservice. Disklaget håndterer indlæsning og skrivning til pladelageret og håndterer også referenceservice, der bruges når der skrives og læses. Referenceservicen er basalt set en hashtabel, der oversætter fra nøgle til data. DVM-laget håndterer navneservices, der bruges til at finde de symbolske navne. XML Store benytter Multiset discrimination (se [5]) til at identificere identiske værdier og erstatter dem med en enkelt, delt instans. F.eks. vil undertræ c kun blive gemt én gang, hvis følende dokumenter gemmes i XML Store: 1 <doc1 > <doc2 > 2 <a>foo </a> <a>bar </a> 3 <c> <c> 4 <b>c1 <b>c1 5 </b> </b> 6 <d>c2 <d>c2 7 </d> </d> 8 </c> </c> 9 </ doc1 > </ doc2 > Figur 7: Dokumenter med fælles undertræ Træstukturen for XML-dokumenterne i figur 7 kan ses i figur Kompression Der findes et utal af metoder til datakompression. Disse metoder kan grundlæggende inddeles i to grupper: tabsfri og ikke-tabsfri. Omend ikke-tabsfri kompression har mange 2 DVM har faktisk mulighed for opdateringer i form af de såkaldte Mutable nodes. Vi udelader dem i vores fremstilling, da vi ikke vil håndtere dem i vores metode. Side 12 af 169

13 2 BAGGRUNDSMATERIALE doc2 doc1 a a c bar foo b d (a) doc2 C1 (b) doc1 C2 Figur 8: Delte undertræer anvendelser især kan nævnes komprimering af billeder og lyd vil vi kun fokusere på de tabsfri metoder. Motiverne for datakompression kan være meget forskellige begrundelserne for at anvende datakompression i XML Store, er følgende: pladelageret udnyttes bedre. mindre data skal overføres fra pladelageret til arbejdshukommelsen. mindre data skal overføres mellem peers i et distribueret XML Store. Omkostningen ved at anvende komprimering, er at centralenheden skal foretage flere beregninger, men ikke så mange at den tidsmæssige fordel ved at skulle flytte mindre datamængder opvejes. Man er derfor ofte villig til at acceptere denne omkostning. I dette afsnit vil vi se på en række kompressionsbegreber og -metoder, som vi vil referere til i beskrivelsen af vores metode. Statisk og adaptiv kompression Ved statisk kompression anvendes en statisk model til at kode alt inddata. Ofte vil man udlede modellen ved at analysere det samlede inddata, men man kan også anvende en model, der er fastlagt på forhånd den pågældende model skal blot være kendt ved dekompression. Det er ofte muligt specielt ved statisk ordbogskompression at dekode vilkårlige delmængder af statisk kodet data. I modsætning hertil er adaptiv kompression, hvor modellen ændrer sig løbende mens data kodes. Dekompression af adaptivt kodet data, kræver at der dekomprimeres fra begyndelsen, da dekoderen skal kunne udlede, hvordan modellen har ændret sig. Ordbogskompression Ordbogskompression er en betegnelse for metoder, hvor en række symboler, et ord, kodes med et enkelt symbol. Datastrukturen, der indeholder ordene og de tilsvarende koder, kaldes en ordbog deraf navnet ordbogskompression. Ordbogskompression findes i både statiske og adaptive udgaver. Vi vil i de følgende to afsnit se på tre af de mest udbredte ordbogskompressionsmetoder. Side 13 af 169

14 2 BAGGRUNDSMATERIALE LZ77 og LZ78 Lempel og Ziv introducerede i slutningen af 70 erne LZ77 og LZ78 algoritmerne, der har været grundstenen i mange efterfølgende algoritmer (f.eks. LZW) og værktøjer (f. eks. gzip) [41, 42]. Begge algoritmer er ordbogsbaserede og adaptive. De benytter sig af at gemme bagudreferencer til strenge der tidligere er set i det originale dokument (enten som indeks eller som offset). I LZ77 gemmes f.eks. et vindue af det data der senest er læst. Når nye karakterer læses, finder kompressoren den længste fælles understreng (eng. substring) i vinduet, og skriver en bagudreference, hvis understrengen er set før. Betragt f.eks. følgende streng: 1 A B C D B C D E Figur 9: Streng med gentagelser Når det andet B læses, finder algoritmen at understrengen B C D findes i vinduet og erstatter den med en bagudreference af formen (-offset, længde): 1 A B C D ( -3,3) E Figur 10: Streng med bagudreference Desuden har LZ77 den vigtige egenskab, at periodiske sekvenser kan komprimeres meget effektivt. F. eks bliver 1 A B C D B C D B C D B C D E komprimeret til 1 A B C D ( -3,9) E Figur 11: Streng med periodisk sekvens Figur 12: Streng periodisk sekvens erstattet af bagudreference Huffman-kodning Huffman-kodning er en anden ordbogskompressionsmetode, der findes i såvel en statisk som en adaptiv variant. Vi vil her beskrive den statiske variant. Huffman-kodning er centralt i vores metode, og vi vil derfor gå i dybden med metoden. I modsætning til LZ77/78 metoderne, kodes hvert enkelt symbol i inddata med én kode ved Huffman-kodning. Kompression opnås ved at anvende korte koder for hyppigt forekommende symboler og længere koder til sjældnere symboler. Huffman konstruerede en grådig algoritme til beregning af disse såkaldte Huffman-koder [14]. Metoden opbygger et binært træ, hvor symbolerne udgør bladene. Sjældne symboler placeres dybt i træet og hyppigere symboler placeres tættere ved roden. Huffman-koden for et givet symbol findes herefter ved at følge kanterne fra roden til symbolet og tilføje et 0 eller 1 til koden hver gang en venstre- henholdsvis højrekant følges (eller omvendt). De vigtige egenskaber ved det opbyggede træ er: Side 14 af 169

15 2 BAGGRUNDSMATERIALE 1. at det resulterer i præfikskoder: ingen kode er et præfiks af en anden. Dette gør dekodning simpel, da man blot kan læse bits fra starten og utvetydigt kan afgøre hvornår en kode er læst. 2. at kodelængderne er optimale i følgende betydning: kodelængderne er optimale, i den forstand, at ingen anden direkte afbildning af inddatasymboler til unikke, binære strenge, kan producere et mindre uddata for et inddatasæt, hvor fordelingen af symbolerne er den samme som den, der blev brugt til konstruktion af træet [14] I det følgende vil vi bruge optimal i denne betydning. Kanoniske Huffman-koder Hvilket symbol, der kodes med hvilken kode er ikke væsentligt for kompressionsratioen, der alene bestemmes af kodelængderne. Vi kan således ombytte blade og knuder der har samme afstand til rodknuden, uden at kodernes præfiksegenskaber og længder ændres. Vi udnytter denne frihed til at konstruere kanoniske koder, der opfylder følgende to regler: 1. en kode H a, der er kortere end anden kode H b, skal have en mindre numerisk værdi: H a < H b. 2. for to symboler, a og b, hvis koder, H a og H b, har samme længde, skal der gælde at det symbol der kommer først i den alfabetiske ordning (her a), skal have en kode med en mindre numerisk værdi: H a < H b. Den alfabetiske ordning kan vælges vilkårligt, så længe dekompressoren kender denne ordning. Disse regler fastlægger entydigt koderne og dermed det binære træ for et givet alfabet og en given fordeling [9]. Det er muligt at fastlægge andre regler, der ligeledes entydigt fastlægger koderne, men de valgte regler har nogle egenskaber, som vi senere vil benytte. Der er i RFC 1951 [9, pp 7] angivet en algoritme, der givet at kodelængderne er kendt i lineær tid og plads i antallet af symboler, kan tildele koder ud fra ovenstående kanon 3 : Vi lader S n betegne sættet af symboler, der skal kodes med længden n. Symbolerne i hvert sæt nummereres fortløbende fra nul i alfabetisk rækkefølge. Vi lader kodelængden være første indeks og det fortløbende nummer være andet indeks det tredje symbol med længden fem betegnes således s 5,2. 3 Algoritmen er i RFC 1951 givet i form af pseudo-kode. Vi har valgt at bruge ovenstående fortolkning for at kunne indføre en kompakt notation. Side 15 af 169

16 2 BAGGRUNDSMATERIALE Det første symbol i hvert sæt tildeles koden H n,0, hvor den numeriske værdi af H n,0 er givet ved rekursionen H 0,0 = 0 og H n+1,0 = ( H n,0 + S n ) 2. De efterfølgende symboler i hvert sæt S n tildeles koder med fortløbende numeriske værdier: H n,i = H n,i for 0 < i < S n. De optimale kodelængder kan findes ved hjælp af Moffat og Katajainens algoritme, der beregner kodelængderne i lineær tid i antallet af symboler n og in-place med et konstant ekstra hukommelsesforbug [18]. Algoritmen forudsætter dog at symbolerne er sorteret efter frekvens. Da sortering mindst har en tidskompleksitet på O(n lg n), vil sorteringen asymptotisk dominere de to andre (lineære) trin og kompleksiteten for konstruktionen af de optimale koder er derfor O(n log n). Hukommelsesforbruget for konstruktionen af koderne er O(n). Genskabelse af kodebogen Ved statisk Huffman-kodning kodes alle symboler i en given besked med den samme kodebog. For at dekode beskeden, skal kodebogen være kendt og den skal derfor enten transmitteres sammen med beskeden eller være kendt på forhånd af modtageren. Sidstnævnte er en fordel, hvis alfabetet er kendt på forhånd og beskederne der udveksles har en kendt fordeling, da man sparer omkostningen ved at transmittere en kodebog med hver besked. Til vores brug er alfabetet dog ikke kendt på forhånd hvorfor vi er nødt til at konstruere og gemme en kodebog til hver besked. Vi vil i det følgende afsnit gennemgå en metode til dette. En af egenskaberne ved kanoniske Huffman-koder er, at det er ikke er nødvendigt at genskabe hver enkelt kode, for at kunne læse en kodet besked. Når man kender symbolerne, deres alfabetiske ordning samt længden af deres koder, kan sættene S n og koderne H n,0 konstrueres ved at bruge ovenstående definitioner. I det følgende vises det at dette er nok til at læse en kodet besked. Hvis hvert sæt S n repræsenteres ved en nul-indekseret tabel, vil positionen for et symbol s n,i S n i tabellen være i. Da symbolerne i S n har fået tildelt koder med numerisk fortløbende værdier, startende med H n,0, gælder endvidere i = H n,i H n,0. Hvis vi således har givet en kode H n,j, kan det tilsvarende symbol findes ved at bruge differensen H n,j H n,0 som indeks i S n. Men hvordan afgøres det hvad længden af det næste symbol er? Vi bemærker følgende egenskab: en kode H a, der er længere end en anden kode H b, vil have en numerisk værdi, der er mere end dobbelt så stor: H a > H b 2. Dette ses af den rekursion, der definerer den numerisk mindste kode for hver længde samt udtrykket for den numeriske værdi af koden for det sidste symbol i S n, H n, Sn 1 = H n,0 + S n 1: H n+1,0 = ( H n,0 + S n ) 2 H n+1,0 > ( H n,0 + S n 1) 2 = H n, Sn 1 2 Vi kan bruge denne egenskab til at finde længden af den næste kode som følger: Side 16 af 169

17 2 BAGGRUNDSMATERIALE 1. betegn de næste n bits, der endnu ikke er tolket, med H n. Initialiser i til den største kodelængde, n max. 2. hvis H i H i,0, så er kodelængden i of vi er færdige. 3. dekrementer i og gentag punkt 2. På grund af kodernes præfiksegenskab, kan sammenligningen i punkt 2, ændres til H n max H i,0 2 nmax i. Vi kan dermed undgå at skulle udregne H i ved hver iteration og værdierne H i,0 2 nmax i skal kun udregnes én gang for hver kodebog. 2.4 XML kompression De XML specifikke kompressorer vi er bekendt med er: XMill [20], XGrind [25], SCM [3] og Multiplexed Hierachical Modelling (MHM) [7], der er baseret på Prediction by Partial Match (PPM) de er alle resultater af forskningsprojekter og er beskrevet i videnskabelige artikler. Af kommercielle produkter er vi bekendt med XML-Xpress (XXP) [38] og dbxml. I dette afsnit introduceres kort de forskellige ikke-kommercielle projekter. XMill projektet er centralt for ideen til denne opgave og får derfor en mere fyldestgørende præsentation. XMill er en XML-specifik kompressor, designet af Liefke og Suciu. XMill kan kan komprimere store XML-dokumenter til under 20 % af deres originale størrelse. Den høje kompressionsratio opnås ved at adskille struktur fra data og behandle dem hver for sig. I strukturen erstattes alle XML-tags med heltal, hvorefter de komprimeres med gzip, der meget effektivt kan komprimere sådanne strukturer. Relateret data grupperes i containere (baseret på deres tag-navn) og så komprimeres hver container for sig, med en kompressor (evt. flere) der kan være specialiseret til den pågældende container. Brugen af specialiserede kompressorer i XMill er ikke automatiseret, men skal angives af brugeren. I de tilfælde hvor brugeren ikke angiver, hvorledes de enkelte containere skal komprimeres, anvender XMill zlib biblioteket, der kombinerer Ziv-Lempel kompression (LZ77) med en variant af Huffmankodning [9]. XMill projektet fokuserer på maksimal kompression af XML-dokumenter, for at minimere båndbredde behovet ved transmission og pladsforbruget på pladelagereret ved arkivering. XMill projektets løsning understøtter ikke navigation af den komprimerede struktur og dermed heller ikke forespørgsler direkte på det komprimerede dokument - for at udføre disse operationer er det nødvendigt at dekomprimere hele dokumentet. XGrind en XML-specifik kompressor, designet af Tolani og Haritsa. XGrind opnår ikke en kompressionsratio, der er er lige så god som XMill, men understøtter i modsætning til XMill visse forespørgsler direkte over det komprimerede dokument. XGrind bevarer strukturen fra det originale dokument, hvilket giver mulighed for at benytte almindelige XML teknologier til at afvikle forespørgsler på det komprimerede dokument. Dette betyder bl.a. at man kan indeksere filen. Tags og attributter kodes effektivt, og Side 17 af 169

18 2 BAGGRUNDSMATERIALE data komprimeres med en ikke-adaptiv Huffman kodning, der muliggør opslag. Strukturen udnyttes ikke som i XMill, til at kode forskellige datatyper sammen. SCM er en XML-specifik kompressor, designet af Adiego, Navarro og Fuente. SCM udnytter på samme måde som XMill strukturen til kode data under identiske tags sammen. I modsætning til XMill introducerer SCM dog en heuristik, der kan kombinere ordbøger for tags der har sammenfaldende fordeling, hvilket reducerer det samlede pladsforbrug væsentligt. SCM bevarer som XGrind strukturen fra det originale dokument. Kompression af både struktur og data sker med ordbaseret Huffman-kodning, hvor tags (incl <, > og />), betragtes som ord. Tags bruges til at afgøre hvilken ordbog der skal benyttes når der komprimeres og dekomprimeres. Da SCM benytter ordbaseret Huffman-kodning, understøttes visse forespørgsler direkte over det komprimerede dokument. SCM opnår en kompression der er bedre en XMill og - for store dokumenter - tilnærmelsesvis så god som MHM [3]. Multiplexed Hierachical Modelling (MHM) er en XML-specifik kompressor designet af Cheney. MHM er en statistisk kompressor, der benytter konteksten, givet af stien fra rodknuden til den aktuelle knude, til at bestemme sandsynligheden for den efterfølgende karakter. MHM er en adaptiv metode, hvorfor det ikke er muligt at foretage opslag i det komprimerede dokument. MHM opnår den bedste komprimering, af de XML-specifikke kompressorer vi har fundet (givet at XMill ikke af brugeren tweakes til det aktuelle dokument). Side 18 af 169

19 3 KOMPRIMERET OG NAVIGERBAR SERIALISERING AF XML 3 Komprimeret og navigerbar serialisering af XML De tidligere omtalte XML-kompressorer, er designet ud fra forskellige målsætninger: XMill er designet med henblik på arkivering og deres vigtigste mål har været at komprimere inddata mest muligt omend de også har et stort fokus på hastigheden af applikationen [20]. XGrind er designet med henblik på effektive forespørgsler (eng. queries) [25]. Vores motivation er en anden, nemlig at designe en komprimeret serialisering af XML, der kan bruges af XMLStore. XMLStore giver adgang til data via ovennævnte DVMgrænseflade, der præsenterer data til klienten som en træstruktur. Dvs. at det serialiserede format skal facilitere navigation i strukturen og helst uden at det forudsætter at hele dokumentet læses. Vi vil i det følgende afsnit konkretisere målsætningerne for metoden og formatet. 3.1 Designmål Vores designmål for det serialiserede format kan kort opsummeres i følgende to delmål: formatet skal være så kompakt som muligt formatet skal kunne navigeres uden forudgående deserialisering Disse målsætninger er desværre ikke altid forenelige. Et eksempel er bzip2, hvor en god kompressionsratio opnås ved at sortere data inden komprimering [24, 6]. Dette medfører dog, at man ikke kan læse en delmængde af data uden at dekomprimere hele den komprimerede blok og invertere sorteringen. Omkostningerne ved sådanne kompromiser kan være svære om ikke umulige at k- vantificere under udviklingen af en metode. Vi vil derfor ikke forsøge at udlede eksakte omkostninger i tid/plads, men derimod overordnet klarlægge naturen af sådanne kompromiser Begrænsninger Der er række relevante designparametre, som vi har måtte se bort fra for at begrænse omfanget af opgaven: Hukommelsesforbrug Vi vil i designet af metoden, ikke undersøge metoder til at sætte en øvre grænse for hukommelsesforbruget f.eks. ved opdeling og behandling af inddata i mindre blokke. Vi forudsætter således, at der er tilstrækkelig arbejdshukommelse til rådighed, til at hele inddata-dokumentet kan behandles samlet med vores metode. Opdateringer En anden begrænsning er, at vi ikke vil undersøge hvordan det serialiserede format kan opdateres og ikke forsøge at facilitere opdateringer i designet af metoden. Dette er en begrænsning ift. understøttelsen af DVM, hvori der er mulighed for at lade nogle knuder være opdaterbare de såkaldte mutable nodes. Side 19 af 169

20 3 KOMPRIMERET OG NAVIGERBAR SERIALISERING AF XML DTD og XMLSchema Et XML-dokument, der er i overensstemmelse med en DTD [11] eller et XML Schema [31], kan opfattes som en instans af den klasse af dokumenter som DTD en eller XML Schema et definerer. Der er en række muligheder for at udnytte dette til at komprimere dokumentet for eksempel udnytter XGrind DTD-information om attributter: hvis en attribut kun har et begrænset antal mulige værdier, nummereres disse og numrene bruges i det komprimerede format i stedet for de faktiske værdier [25]. Hvordan man kompakt kan beskrive en instans af en DTD eller et XML Schema er et interessant emne, men også et emne, der ligger langt ud over denne opgaves rammer. Vi vil således ikke udnytte DTD er og XML Schema er i vores metode Navigation Et af vores designmål er at kunne navigere uden forudgående deserialisering. Navigation er bredt begreb og vi er derfor nødt til at præcisere, i hvilken betydning vi anvender begrebet i denne opgave. DVM-modellen er en træmodel, hvor man, givet en knude, kan følge en vilkårlig kant til et af dens børn. I et serialiseret format kan alle børnene ikke komme lige efter forælderen og der skal derfor være en metode til at finde det pågældende barn. En mulighed er at placere børnene efter hinanden adskilt af markører og så scanne til det pågældende barn. Denne scanning kræver at de børn, der ikke skal bruges, alligevel skal indlæses, hvilket vil kræve forholdsvis langsomme diskoperationer. En anden mulighed er at efterligne træmodellen, ved at gemme kanterne som adresser i det serialiserede format. Dermed kan der søges direkte til det relevante barn. Pladelageret vil stadig skulle søge, men mellemliggende data skal ikke overføres og tolkes, så markører kan detekteres Round-tripping Begrebet round-tripping bruges i XML-litteratur til at beskrive den information, der bevares når et XML-dokument konverteres til et andet format og tilbage igen. Der findes flere round-tripping-niveauer: på højeste niveau bevares hele XML-dokumentet uden ændringer; på lavere niveauer mistes information, som f.eks. rækkefølgen af et elements børn eller kommentarer. Round-tripping-niveauet for vores metode skal mindst være det samme som det XLM- Store tilbyder. Endvidere vil det ikke have mening at have et højere round-tripping niveau, da den ekstra information ikke vil være tilgængelig via XMLStore. XMLStore round-tripping bevarer ikke følgende information 4 : [32] rækkefølgen af attributter kommentarer 4 XMLStore s round-tripping niveau, er undersøgt ved at studere kildekoden til Koala XMLStore Side 20 af 169

Afsnittet er temmelig teoretisk. Er du mere til det praktiske, går du blot til det næste afsnit.

Afsnittet er temmelig teoretisk. Er du mere til det praktiske, går du blot til det næste afsnit. Afsnittet er temmelig teoretisk. Er du mere til det praktiske, går du blot til det næste afsnit. XML (eng. extensible Markup Language) XML er en måde at strukturere data på i tekstform. På samme måde som

Læs mere

Prioritetskøer og hobe. Philip Bille

Prioritetskøer og hobe. Philip Bille Prioritetskøer og hobe Philip Bille Plan Prioritetskøer Træer Hobe Repræsentation Prioritetskøoperationer Konstruktion af hob Hobsortering Prioritetskøer Prioritetskø Vedligehold en dynamisk mængde S af

Læs mere

Håndbog Til CPR services. Bilag 8 GCTP-standard m.m. CPR-kontoret

Håndbog Til CPR services. Bilag 8 GCTP-standard m.m. CPR-kontoret Håndbog Til CPR services Bilag 8 GCTP-standard m.m. CPR-kontoret Datavej 20, Postboks 269, 3460 Birkerød E-post: cpr@cpr.dk. Telefax 45 82 51 10. Hjemmeside: www.cpr.dk Side 2 af 14 Indholdsfortegnelse

Læs mere

Data lagring. 2. iteration (implement backend)

Data lagring. 2. iteration (implement backend) Data lagring 2. iteration (implement backend) Emner Grundlæggende database begreber. Data definitionskommandoer ER-diagrammer og cardinalitet/relationer mellem tabeller Redundant data og Normalisering

Læs mere

HTML-KOMPRESSION. Rasmus Jørgensen AALBORG UNIVERSITET

HTML-KOMPRESSION. Rasmus Jørgensen AALBORG UNIVERSITET HTML-KOMPRESSION P1 Anders Rune Jensen Ester Mungure Ole Laursen Rasmus Jørgensen Jasper Kjersgaard Juhl Michael Knudsen Martin Qvist December 2001 AALBORG UNIVERSITET Det Teknisk-Naturvidenskabelige Fakultet

Læs mere

Software Projekt NoSQL vs RMDB

Software Projekt NoSQL vs RMDB Software Projekt NoSQL vs RMDB Skrevet af Carsten Sørensen, Hans Jørgen Frandsen, Peter Haislund Department of Computer Science, University of Aarhus Aabogade 34, 8200 Arhus N, Denmark 201200089, 19960442,

Læs mere

Om at konvertere PDF - den gode, den dårlige og den forfærdelige metode

Om at konvertere PDF - den gode, den dårlige og den forfærdelige metode Dokumentation Om at konvertere PDF - den gode, den dårlige og den forfærdelige metode Forfatter Leonard Rosenthal PDF Standards Architect, Adobe Inc. Oversættelse Søren Frederiksen / Søren Winsløw DDPFF

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed:

Læs mere

Udgivelsen er beskyttet af Creative Commons license, Navngivning 2.5

Udgivelsen er beskyttet af Creative Commons license, Navngivning 2.5 OIOUBL Guideline OIOUBL UUID UBL 2.0 UUID G32 Version 1.1 Udgivelsen er beskyttet af Creative Commons license, Navngivning 2.5 OIOUBL UUID Version 1.1 Side 1 Kolofon Kontakt: IT- & Telestyrelsen E-mail:

Læs mere

Encoding:...1 Et tegn sæt (character set):...1 UTF-8 og UTF-16 (Unicode):...2

Encoding:...1 Et tegn sæt (character set):...1 UTF-8 og UTF-16 (Unicode):...2 Encoding:...1 Et tegn sæt (character set):...1 UTF-8 og UTF-16 (Unicode):...2 Encoding: Vi har tidligere set på spørgsmålet om et XML dokuments encoding. Det er generelt altid en god ide at gemme et dokument

Læs mere

Kom godt igang med Inventar registrering

Kom godt igang med Inventar registrering Kom godt igang med Inventar registrering (InventoryDB) (Med stregkodesupport) programmet fra PetriSoft Introduktion... 1 Inventar registrering... 2 Værktøjsudleje... 3 Service database til reperationer

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Har en hvis lighed med divide-and-conquer: Begge opbygger løsninger til større problemer

Læs mere

Oversigt. Operativsystemer [5]: Filsystemer. Hvad er en fil? Hvor er en fil? Strukturen af en fil. Beskrivelse af en fil

Oversigt. Operativsystemer [5]: Filsystemer. Hvad er en fil? Hvor er en fil? Strukturen af en fil. Beskrivelse af en fil Oversigt Operativsystemer [5]: Filsystemer Datalogi F Forår 2003 Jørgen Sværke Hansen cyller@diku.dk Grænseflade: Filoperationer Filens struktur Katalogstrukturer Implementering: Lagerallokering Afbildning

Læs mere

Object-Relational Mapping

Object-Relational Mapping Databaser for udviklere () Datamatiker TietgenSkolen Underviser: Allan Helboe 06-06-2010 Problemformulering Denne opgave er et forsøg på at beskrive problemerne der opstår ved anvendelsen af en relationel

Læs mere

SmartFraming Et vindue til nationale sundhedssystemer. Version 3.0

SmartFraming Et vindue til nationale sundhedssystemer. Version 3.0 SmartFraming Et vindue til nationale sundhedssystemer Version 3.0 Infrastruktur i dagens sundheds IT Det sundhedsfaglige personale benytter sig i dag af en række forskellige systemer i forbindelse med

Læs mere

Om binære søgetræer i Java

Om binære søgetræer i Java Om binære søgetræer i Java Mads Rosendahl 7. november 2002 Resumé En fix måde at gemme data på er i en træstruktur. Måden er nyttig hvis man får noget data ind og man gerne vil have at det gemt i en sorteret

Læs mere

Specifikationsdokument for LDAP API

Specifikationsdokument for LDAP API Nets DanID A/S Lautrupbjerg 10 DK 2750 Ballerup T +45 87 42 45 00 F +45 70 20 66 29 info@danid.dk www.nets-danid.dk CVR-nr. 30808460 Specifikationsdokument for LDAP API DanID A/S 5. juni 2014 Side 1-15

Læs mere

PHP Quick Teknisk Ordbog

PHP Quick Teknisk Ordbog PHP Quick Teknisk Ordbog Af Daniel Pedersen PHP Quick Teknisk Ordbog 1 Indhold De mest brugte tekniske udtryk benyttet inden for web udvikling. Du vil kunne slå de enkelte ord op og læse om hvad de betyder,

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet ksamen 06, side af sider anmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. ursusnavn: lgoritmer og datastrukturer ursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer

Læs mere

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database Kursusbeskrivelse Oprettelse af en Access-database Som eksempel på en Access-database oprettes en simpelt system til administration af kurser. Access-databasen skal indeholde: et instruktørkartotek et

Læs mere

Kaminsky DNS exploit

Kaminsky DNS exploit Syddansk Universitet DM829 Kaminsky DNS exploit Jan Christensen - 241189 Anders Knudsen 150885 12. maj 2012 Indhold 1 Indledning 2 2 Introduktion til DNS 2 2.1 Cache............................... 3 2.2

Læs mere

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012 Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012 May 15, 2012 1 CONTENTS 2012 CONTENTS Contents 1 Kompleksitet 3 1.1 Køretid................................................ 3 1.2 Asymptotisk

Læs mere

Guide til Umbraco CMS

Guide til Umbraco CMS web Guide til Umbraco CMS Indhold Indledning 3 Kompatible browsere 3 Log ind i Umbraco 4 Content-delen 5 Indholdstræet 5 Tilføjelse af en side/sektion 7 Sortering af indhold 12 Galleri 14 Mediebibliotek

Læs mere

Dynamisk programmering. Flere eksempler

Dynamisk programmering. Flere eksempler Dynamisk programmering Flere eksempler Eksempel 1: Længste fælles delstreng Alfabet = mængde af tegn: {a,b,c,...,z}, {A,C,G,T}, {,1} Streng = sekvens x 1 x 2 x 3... x n af tegn fra et alfabet: helloworld

Læs mere

Modulationer i trådløs kommunikation

Modulationer i trådløs kommunikation Modulationer i trådløs kommunikation Valg af modulationstype er et af de vigtigste valg, når man vil lave trådløs kommunikation. Den rigtige modulationstype kan afgøre, om du kan fordoble din rækkevidde

Læs mere

Kort og godt om test af arkiveringsversioner

Kort og godt om test af arkiveringsversioner Kort og godt om test af arkiveringsversioner Data og dokumenter fra den offentlige forvaltnings it-systemer, som skal bevares for eftertiden, skal afleveres til arkiv i form af arkiveringsversioner. Arkiveringsversioner

Læs mere

FORSLAG TIL MASSEAFSENDELSE

FORSLAG TIL MASSEAFSENDELSE FORSLAG TIL MASSEAFSENDELSE Digital Post og Fjernprint 2015-03-11 Dagsorden 1. Velkomst 2. Nuværende OIO-rest 3. Udfordringer 4. Afrunding Nuværende OIO-REST løsning Digital post De nuværende Digital Post

Læs mere

Vejledning til Teknisk opsætning

Vejledning til Teknisk opsætning Vejledning til Teknisk opsætning v. 1.0 Adm4you, 2010. Indhold Kort om denne vejledning... 3 Generelt om easyourtime... 3 Installation af databasen... 3 Sikkerhed og rettigheder... 4 SQL Login... 4 Rettigheder

Læs mere

Database "opbygning"

Database opbygning Database "opbygning" Dette områder falder mest under en DBA's ansvarsområde. Det kan sagtens tænkes at en database udvikler i nogle situationer vil blive nød til at oprette produktions og test) databaser,

Læs mere

Computerstøttet beregning

Computerstøttet beregning CSB 2009 p. 1/16 Computerstøttet beregning Lektion 1. Introduktion Martin Qvist qvist@math.aau.dk Det Ingeniør-, Natur-, og Sundhedsvidenskabelige Basisår, Aalborg Universitet, 3. februar 2009 people.math.aau.dk/

Læs mere

Sådan afleverer du forskningsdata til arkivering

Sådan afleverer du forskningsdata til arkivering Sådan afleverer du forskningsdata til arkivering For at kunne arkivere data på en meningsfuld måde skal Rigsarkivet bede om: 1. Et udfyldt afleveringsskema 2. Projektbeskrivelse i både en dansk og engelsk

Læs mere

Rejsekort A/S idekonkurence Glemt check ud

Rejsekort A/S idekonkurence Glemt check ud Rejsekort A/S idekonkurence Glemt check ud 9. marts 2015 1 Indhold 1 Introduktion 4 1.1 Problembeskrivelse........................ 4 1.2 Rapportens opbygning...................... 4 2 Ordliste 5 3 Løsning

Læs mere

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter.

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter. Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter Philip Bille Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening

Læs mere

Anvendelse af dobbelthistorik i GD2

Anvendelse af dobbelthistorik i GD2 Grunddataprogrammet under den Fællesoffentlige Digitaliseringsstrategi GD2 - Adresseprogrammet Anvendelse af dobbelthistorik i GD2 Implementerings regler og eksempler på dobbelthistorik MBBL- REF: Version:

Læs mere

Digital post Snitflader Bilag A2 - REST Register Version 6.3

Digital post Snitflader Bilag A2 - REST Register Version 6.3 Digital post Snitflader Bilag A2 - REST Register Version 6.3 1 Indholdsfortegnelse A2.1 INTRODUKTION 4 A2.1.1 HENVISNINGER 4 A2.2 OVERSIGT OVER FUNKTIONSOMRÅDE 5 A2.2.1 OPRET / HENT OPLYSNINGER OM SLUTBRUGER

Læs mere

Programmering, algoritmik og matematik en nødvendig sammenblanding?

Programmering, algoritmik og matematik en nødvendig sammenblanding? Programmering, algoritmik og matematik en nødvendig sammenblanding? Oplæg til IDA møde, 29. november 2004 Martin Zachariasen DIKU 1 Egen baggrund B.Sc. i datalogi 1989; Kandidat i datalogi 1995; Ph.D.

Læs mere

Løsningen garanterer at finde alle de cookies, som et nationalt tilsyn kan finde. Løsningen er valideret af Audit Bureau of Circulation i England.

Løsningen garanterer at finde alle de cookies, som et nationalt tilsyn kan finde. Løsningen er valideret af Audit Bureau of Circulation i England. Cookievejledningens Tekniske Guide Den tekniske guide beskriver fem skridt til overholdelse af cookiereglerne: 1. Fastlæggelse af webejendom 2. Undersøgelse af om der sættes cookies på hjemmesiden 3. Afgivelse

Læs mere

STINA-vejledning Automatiseret indberetning

STINA-vejledning Automatiseret indberetning DANMARKS NATIONALBANK Statistisk Afdeling Version 2.2 December 2010 STINA-vejledning Automatiseret indberetning 1. Indledning Vejledningen henvender sig til teknikere i virksomheder, der vil automatisere

Læs mere

Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s. 388-393.

Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s. 388-393. Broer, skak og netværk Side 1 af 6 Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s. 388-393. Eksempler på praktiske anvendelser af matematik og nogle uløste problemer Indledning Figur

Læs mere

Effektiv søgning på web-steder

Effektiv søgning på web-steder Effektiv søgning på web-steder 7. maj 1998 Udarbejdet af DialogDesign ved Rolf Molich, Skovkrogen 3, 3660 Stenløse Indhold 1. Indledning 3 1.1. Model for søgning 3 2. Forskellige former for søgning 4 2.1.

Læs mere

Digitale Videnssystemer: Notater

Digitale Videnssystemer: Notater Digitale Videnssystemer: Notater Sigfred Hyveled Nielsen IVA / Københavns Universitet 3. Semester Denne tekst er skrevet af Sigfred Nielsen, og stillet til rådighed under Creative Commons Navngivelse-IkkeKommerciel-DelPåSammeVilkår

Læs mere

Indlæsning af tilskud fra UVM

Indlæsning af tilskud fra UVM Indlæsning af tilskud fra UVM Brugervejledning version 1.0 Side 1 Indholdsfortegnelse Indledning... 3 Download bogføringskladde fra brevportalen... 3 Gem regneark på din arbejdsplads... 3 Bearbejdning

Læs mere

Induktive og rekursive definitioner

Induktive og rekursive definitioner Induktive og rekursive definitioner Denne note omhandler matematiske objekter, som formelt er opbygget fra et antal basale byggesten, kaldet basistilfælde eller blot basis, ved gentagen brug af et antal

Læs mere

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Finn Nordbjerg 1/9 Indledning I det følgende introduceres et par abstrakte

Læs mere

Administration af subsites BRUGERVEJLEDNING FOR ADMINISTRATOREN

Administration af subsites BRUGERVEJLEDNING FOR ADMINISTRATOREN Administration af subsites BRUGERVEJLEDNING FOR ADMINISTRATOREN Indholdsfortegnelse Introduktion... 2 Definitioner... 2 Generelt... 3 Oprettelse af en skabelon... 4 Sidetypeskabeloner... 5 Globale displaymoduler...

Læs mere

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit.

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit. Kapitel 20: Talsystemer 20 Resumé af talsystemer... 344 Indtastning og omregning af talsystemer... 345 Udførelse af matematiske beregninger med hexadecimale og binære tal... 346 Sammenligning eller manipulation

Læs mere

Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5

Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5 Databaser og SQL Introduktion til SQL Kap 1-5 1 Dagens gang Databaser Database begreber Mapning af klasser til relationel model Normalisering Opgaver til næste gang 2 Databasebegreber A database is a:

Læs mere

Axapta 3.0 Konverteringsvejledning

Axapta 3.0 Konverteringsvejledning Axapta 3.0 Konverteringsvejledning ectrl Dokumentversion 3.0 Juli 2008 - Datakonvertering 2008 Side 1 af 14 Indholdsfortegnelse DATAKONVERTERINGSVÆRKTØJET:...3 KARTOTEK INFORMATIONSOVERSIGT - FANEBLAD...5

Læs mere

ectrl Skabelonkonvertering

ectrl Skabelonkonvertering ectrl Skabelonkonvertering Indholdsfortegnelse 1. Indledning 3 2. Import ved hjælp af standardskabeloner 4 Kolonneopsætning og feltdefinition 6 3. Opsætning af konverteringsdefinitioner 8 4. Udvidede muligheder

Læs mere

Object-Relational Mapping

Object-Relational Mapping Object-Relational Mapping Skriftligt arbejde i forbindelse med eksamen i Databaser for udviklere Studerende: Henrik Rossen Jakobsen Vejleder: Allan Helboe 07-06-2010 Indhold Indledning... 2 Problemformulering...

Læs mere

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo Philip Bille Nærmeste naboer. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle key[] og satellitdata data[]. operationer. PREDECESSOR(k): returner element med største nøgle k.

Læs mere

PS102: Den menneskelige faktor og patientsikkerhed

PS102: Den menneskelige faktor og patientsikkerhed IHI Open School www.ihi.org/patientsikkerhed PS102: Den menneskelige faktor og patientsikkerhed (1 time) Dette modul er en introduktion til emnet "menneskelige faktorer": Hvordan indarbejdes viden om menneskelig

Læs mere

OIOUBL Guideline. OIOUBL Guideline

OIOUBL Guideline. OIOUBL Guideline OIOUBL Guideline OIOUBL Guideline OIOUBL Datatyper UBL 2.0 Datatypes G29 Version 1.3 Udgivelsen er beskyttet af Creative Commons license, Navngivning 2.5 Kolofon Kontakt: Digitaliseringsstyrelsen E-mail:

Læs mere

Indhold. 1 Indledning... 3. 1.1 Kompatible browsere... 3. 2 Log ind i Umbraco... 3. 3 Content-delen... 4. 3.1 Indholdstræet... 4

Indhold. 1 Indledning... 3. 1.1 Kompatible browsere... 3. 2 Log ind i Umbraco... 3. 3 Content-delen... 4. 3.1 Indholdstræet... 4 Indhold 1 Indledning... 3 1.1 Kompatible browsere... 3 2 Log ind i Umbraco... 3 3 Content-delen... 4 3.1 Indholdstræet... 4 3.2 Ændring af indhold... 5 3.3 Tilføjelse af en side/sektion... 6 3.4. At arbejde

Læs mere

24-03-2009. Problemstilling ved DBK integration i BIM Software Hvad skal der til. Nicolai Karved, Betech Data A/S

24-03-2009. Problemstilling ved DBK integration i BIM Software Hvad skal der til. Nicolai Karved, Betech Data A/S 24-03-2009 Problemstilling ved DBK integration i BIM Software Hvad skal der til. Nicolai Karved, Betech Data A/S Problemstilling ved DBK integration i BIM Software Domæner og aspekter Det domæne, der primært

Læs mere

Kom i gang med... Kapitel 11 Math: Formelredigering med OpenOffice.org. OpenOffice.org

Kom i gang med... Kapitel 11 Math: Formelredigering med OpenOffice.org. OpenOffice.org Kom i gang med... Kapitel 11 Math: Formelredigering med OpenOffice.org OpenOffice.org Rettigheder Dette dokument er beskyttet af Copyright 2005 til bidragsyderne som er oplistet i afsnittet Forfattere.

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM526 Rolf Fagerberg, 2009 Bitmønstre 01101011 0001100101011011... Bitmønstre skal fortolkes for at have en betydning: Tal (heltal, kommatal) Bogstaver Computerinstruktion (program)

Læs mere

Document Capture til Microsoft Dynamics NAV. Quick Guide til RTC version 3.50

Document Capture til Microsoft Dynamics NAV. Quick Guide til RTC version 3.50 Document Capture til Microsoft Dynamics NAV Quick Guide til RTC version 3.50 INDHOLDSFORTEGNELSE Introduktion... 3 Basisopsætning... 4 Indlæsning af standard opsætning... 4 Opdatering af standard opsætning...

Læs mere

Håndbog Til CPR services. Bilag 10 Opsætning af CPR klienten til understøttelse af forskellige installationstyper

Håndbog Til CPR services. Bilag 10 Opsætning af CPR klienten til understøttelse af forskellige installationstyper Håndbog Til CPR services Bilag 10 Opsætning af CPR klienten til understøttelse af forskellige installationstyper CPR-kontoret Datavej 20, Postboks 269, 3460 Birkerød E-post: cpr@cpr.dk. Telefax 45 82 51

Læs mere

GUIDE TIL OPRETTELSE AF SIDER OG INDHOLD I UMBRACO ONLINE BETJENING

GUIDE TIL OPRETTELSE AF SIDER OG INDHOLD I UMBRACO ONLINE BETJENING GUIDE TIL OPRETTELSE AF SIDER OG INDHOLD I UMBRACO ONLINE BETJENING DANSKE BEDEMÆND august 2014 v1.4 1 P a g e INDHOLDSFORTEGNELSE Adgang... 3 Overordnet om Umbraco... 4 Højreklik muligheder i oversigten...

Læs mere

Kort om CoinDB (Mønt- og seddelsamling):

Kort om CoinDB (Mønt- og seddelsamling): Kom godt i gang med CoinDB programmet fra PetriSoft (Holder styr på din Mønt- seddel- eller frimærkesamling) Kort om CoinDB (Mønt- og seddelsamling): CoinDB er et Windows program, der anvendes af mønt-

Læs mere

Studenterportalen. Registrering og upload af bacheloropgaver og andre afgangsprojekter. Professionshøjskolen Metropol, marts 2011

Studenterportalen. Registrering og upload af bacheloropgaver og andre afgangsprojekter. Professionshøjskolen Metropol, marts 2011 Studenterportalen Registrering og upload af bacheloropgaver og andre afgangsprojekter Professionshøjskolen Metropol, marts 2011 Forord Dette materiale har til formål at beskrive hvordan du registrerer

Læs mere

Afhentning af ansøgninger til de videregående. Brugervejledning Optagelse.dk

Afhentning af ansøgninger til de videregående. Brugervejledning Optagelse.dk Afhentning af ansøgninger til de videregående uddannelser Brugervejledning Optagelse.dk Afhentning af ansøgninger til de videregående uddannelser Brugervejledning Optagelse.dk Forfatter: Tine Kanne Sørensen

Læs mere

Version Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet.

Version Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet. MOX og APOS2 Forord Dette dokument er en del af APOS version 2 manualerne. APOS version 2 (APOS2 herefter) er et organisation, klassifikation og personale system baseret på Sag & Dokument standarderne.

Læs mere

FS2: Dynamic Data Replication in Free Disk Space for Improving Disk Performance and Energy Consumption

FS2: Dynamic Data Replication in Free Disk Space for Improving Disk Performance and Energy Consumption FS2: Dynamic Data Replication in Free Disk Space for Improving Disk Performance and Energy Consumption DIKU, Datalogisk Institut, Københavns Universitet 07/12/2005 Præsentation af Lauge Wulff Problem:

Læs mere

Introduktion til ActionScript, fortsat

Introduktion til ActionScript, fortsat Introduktion til ActionScript, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, kaspar@interactivespaces.net 1 Dagens program Opsamling

Læs mere

Skriftlig Eksamen Diskret Matematik (DM528)

Skriftlig Eksamen Diskret Matematik (DM528) Skriftlig Eksamen Diskret Matematik (DM528) Institut for Matematik & Datalogi Syddansk Universitet Tirsdag den 20 Januar 2009, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger, notater etc.) samt brug

Læs mere

Computeren repræsenterer en teknologi, som er tæt knyttet til den naturvidenskabelige tilgang.

Computeren repræsenterer en teknologi, som er tæt knyttet til den naturvidenskabelige tilgang. Den tekniske platform Af redaktionen Computeren repræsenterer en teknologi, som er tæt knyttet til den naturvidenskabelige tilgang. Teknologisk udvikling går således hånd i hånd med videnskabelig udvikling.

Læs mere

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Computere er uvurderlige redskaber for personer der ønsker at arbejde med matematiske modeller

Læs mere

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Programmering Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Oversigt Undervisningen Hvad er programmering Hvordan er et program organiseret? Programmering og fysik Nobelprisen

Læs mere

Daglig brug af JitBesked 2.0

Daglig brug af JitBesked 2.0 Daglig brug af JitBesked 2.0 Indholdsfortegnelse Oprettelse af personer (modtagere)...3 Afsendelse af besked...4 Valg af flere modtagere...5 Valg af flere personer der ligger i rækkefølge...5 Valg af flere

Læs mere

BAAN IVc. Brugervejledning til BAAN Data Navigator

BAAN IVc. Brugervejledning til BAAN Data Navigator BAAN IVc Brugervejledning til BAAN Data Navigator En udgivelse af: Baan Development B.V. P.O.Box 143 3770 AC Barneveld Holland Trykt i Holland Baan Development B.V. 1997. Alle rettigheder forbeholdes.

Læs mere

Professionel Udvælgelse i byggeriet Skabeloner

Professionel Udvælgelse i byggeriet Skabeloner Professionel Udvælgelse i byggeriet Skabeloner Vejledning i anvendelsen af skabeloner til brug for udvælgelse, herunder prækvalifikation i byggeriet Marts 2013 Byggeriets Evaluerings Center SOLIDARISK

Læs mere

DATALOGI 1F. Skriftlig eksamen tirsdag den 10. juni 2003 1 25 % 2 10 % 3 25 % 4 10 % 5 30 %

DATALOGI 1F. Skriftlig eksamen tirsdag den 10. juni 2003 1 25 % 2 10 % 3 25 % 4 10 % 5 30 % Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1F Skriftlig eksamen tirsdag den 10. juni 2003 Opgave Vægtning 1 25 % 2 10 % 3 25 % 4 10 % 5 30 % Alle de sædvanlige hjælpemidler må benyttes,

Læs mere

Email Archiving. SaaS Email Archiving. Brugervejledning Udgave D

Email Archiving. SaaS Email Archiving. Brugervejledning Udgave D Brugervejledning Udgave D SaaS Email Archiving Email Archiving Email Archiving er en skybaseret tjeneste, der automatisk arkiverer din mail på et sikkert centralt sted. Desuden giver Email Archiving dig

Læs mere

Introduktion til SPSS

Introduktion til SPSS Introduktion til SPSS Øvelserne på dette statistikkursus skal gennemføres ved hjælp af det såkaldte SPSS program. Det er erfaringsmæssigt sådan, at man i forbindelse af øvelserne på statistikkurser bruger

Læs mere

VEJLEDNING. Hastigheden for afspilning kan ændres og det er muligt at lave hurtig spring frem og tilbage

VEJLEDNING. Hastigheden for afspilning kan ændres og det er muligt at lave hurtig spring frem og tilbage VEJLEDNING DANDAS-TV Viewer er lavet til håndtering af TV-inspektion. (Skærm billeder og funktionalitet kan afvige fra den seneste version af programmet. DB adgang er ikke inkluderet) Programmet kan Indlæse

Læs mere

Rapport dannet den: 5. oktober 2010 1 Spil kontrol

Rapport dannet den: 5. oktober 2010 1 Spil kontrol 1 Spil kontrol kan vindes af 1 Jackpot - Identifikation - Gevinst - TotalGevinst - DatoTid - KommissionRake Spil - Identifikation - KøbDatoTid - Salgskanal - ForventetSlutDatoTid - FaktiskSlutDatoTid -

Læs mere

Tilslutning til ecomone Basis (OIO Faktura)

Tilslutning til ecomone Basis (OIO Faktura) Tilslutning til ecomone Basis (OIO Faktura) 1. november 2009, Version 1.1 1. POST DANMARKS ECOMONE BASIS (OIO FAKTURA)... 3 1.1 BEGREBER... 3 2 KANALER... 3 3 MODEL FOR DATAUDVEKSLING... 4 4 KOMMUNIKATION...

Læs mere

ER-modellen. Databaser, efterår 2002. Troels Andreasen. Efterår 2002

ER-modellen. Databaser, efterår 2002. Troels Andreasen. Efterår 2002 Databaser, efterår 2002 ER-modellen Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

Efficient Position Updating

Efficient Position Updating Efficient Position Updating Pervasive Positioning, Q3 2010 Lasse H. Rasmussen, 20097778 Christian Jensen, 20097781 12-03-2010 1 Introduktion Denne rapport har til formål at beskrive implementeringen og

Læs mere

Guideline. EAN-systemet

Guideline. EAN-systemet Guideline Hammershusgade 17 DK-2100 København Ø Tel: 39 27 85 27 Fax: 39 27 85 10 www.ean.dk for anvendelsen af EAN-systemet til entydig identifikation af målepunkter i EL-forsyningssektoren samt EAN-13

Læs mere

Easy Guide i GallupPC

Easy Guide i GallupPC Easy Guide i GallupPC Version. 6.00.00 Gallup A/S Masnedøgade 22-26 DK 2100 København Ø Telefon 39 27 27 27 Fax 39 27 50 80 Indhold SÅDAN KOMMER DU I GANG MED AT ANVENDE GALLUPPC... 2 TILFØJELSE AF UNDERSØGELSER

Læs mere

Revision af tekniske standarder i OIO-kataloget 2007

Revision af tekniske standarder i OIO-kataloget 2007 Revision af tekniske standarder i OIO-kataloget 2007 høringssvar Jens Mikael Jensen Document: Høringssvar vedr- revision af tekniske standarder I OIO-kataloget 2007 Page 1 of 5 1. Resumé IT & Telestyrelsen

Læs mere

Udstilling af forvaltningsdata til Min Lederside, Målvinduer

Udstilling af forvaltningsdata til Min Lederside, Målvinduer Udstilling af forvaltningsdata til Min Lederside, Målvinduer Erfaringspapir for krav og anbefalinger til udstilling af forvaltningsdata i målvinduerne Faglig kvalitet og oplevet kvalitet Om Målvinduer

Læs mere

Iteration af et endomorft kryptosystem. Substitutions-permutations-net (SPN) og inversion. Eksklusiv disjunktion og dens egenskaber

Iteration af et endomorft kryptosystem. Substitutions-permutations-net (SPN) og inversion. Eksklusiv disjunktion og dens egenskaber Produktsystemer, substitutions-permutations-net samt lineær og differentiel kryptoanalyse Kryptologi, fredag den 10. februar 2006 Nils Andersen (Stinson 3., afsnit 2.7 3.4 samt side 95) Produkt af kryptosystemer

Læs mere

Data Warehouse Knowledge is Power - Sir Francis Bacon -

Data Warehouse Knowledge is Power - Sir Francis Bacon - Data Warehouse 4. sem. datamatiker uddannelse Tietgen Skolen Odense Skrevet af Troels Markvard Andersen (DM08228) Knowledge is Power - Sir Francis Bacon - Troels Markvard Andersen Side 1 af 8 Forord /

Læs mere

Introduktion til billeddatabasen

Introduktion til billeddatabasen Introduktion til billeddatabasen Colourbox.dk Colourbox.dk er den billeddatabase som Odense Kommune har købt licens til. Det er vigtigt at bemærke, at der ikke er ubegrænset download af billeder. I materialet

Læs mere

Projekt i Programmering C Menu til hjemmeside.

Projekt i Programmering C Menu til hjemmeside. Projekt i Programmering C Menu til hjemmeside. 10-12-2004 Holstebro HTX Bent Arnoldsen Synopsis. Projektet her er en menu til hjemmesider, som er lavet så den er let at tilrette, når man tilføjer eller

Læs mere

Hvor mange Fi6670i og Fi6140Z har Silkeborg Kommune i dag? (Ajourføring af parameteropsætning (Versioner & Releases))

Hvor mange Fi6670i og Fi6140Z har Silkeborg Kommune i dag? (Ajourføring af parameteropsætning (Versioner & Releases)) Nr Reference Spørgsmål Svar 1 Bilag D, Afsnit B (Separatorark) Tværgående, Tekniske Krav Er det muligt at modtage eksempler på alle varianter af separatorark der benyttes i dag? I dag anvendes separatorark

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Figur: Terminologi: n = V, m = E (eller V og E (mis)bruges som V og E ).

Læs mere

poedit og oversættelse af sprogfiler

poedit og oversættelse af sprogfiler poedit og oversættelse af sprogfiler af Georg S. Adamsen WordPress.Blogos.dk 2009 http://kortlink.dk/wordpressblogosdk/6g38 1 af 11 14-04-2009 14:55 Jeg får af og til spørgsmål om, hvordan man bruger poedit,

Læs mere

Google Apps. Lær at oprette, organisere, dele og slette dokumenter. Udarbejdet af PLC, version 2013!!!!!!! Side 1 af 9

Google Apps. Lær at oprette, organisere, dele og slette dokumenter. Udarbejdet af PLC, version 2013!!!!!!! Side 1 af 9 Lær at oprette, organisere, dele og slette dokumenter. Udarbejdet af PLC, version 2013!!!!!!! Side 1 af 9 Arbejde i faner Google Apps arbejder i faner, derfor er det vigtigt, du er bekendt med det. Mappen

Læs mere

Web sider. Introduktion: Har du nogensinde spekuleret over, hvordan det verdesomspændende internet virker og hvordan man snakker med det?

Web sider. Introduktion: Har du nogensinde spekuleret over, hvordan det verdesomspændende internet virker og hvordan man snakker med det? Introduktion: Har du nogensinde spekuleret over, hvordan det verdesomspændende internet virker og hvordan man snakker med det? I dag skal du lære at lave hjemmesider, så du også kan bidrage til at opbygge

Læs mere

Høring over analyse af alternative anvendelser af det digitale frekvensspektrum i Danmark.

Høring over analyse af alternative anvendelser af det digitale frekvensspektrum i Danmark. IT- og Telestyrelsen Holsteinsgade 63 2100 København Ø Att: Thomas Woldiderich digitalt-tv@itst.dk København, d. 23. oktober 2006 J.nr. cc/nkp/672 Høring over analyse af alternative anvendelser af det

Læs mere

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) Efterår 2009 1 Simpel aritmetik på maskinniveau I SCO, appendix A, er det beskrevet, hvordan man adderer ikke-negative heltal

Læs mere

Appendiks 6: Universet som en matematisk struktur

Appendiks 6: Universet som en matematisk struktur Appendiks 6: Universet som en matematisk struktur En matematisk struktur er et meget abstrakt dyr, der kan defineres på følgende måde: En mængde, S, af elementer {s 1, s 2,,s n }, mellem hvilke der findes

Læs mere

Guide til integration med NemLog-in / Brugeradministration

Guide til integration med NemLog-in / Brugeradministration Guide til integration med NemLog-in / Brugeradministration Side 1 af 9 21. januar 2013 TG Denne guide indeholder en kort beskrivelse af, hvorledes man som itsystemudbyder (myndighed eller it-leverandør)

Læs mere

SAX Simple API for XML.

SAX Simple API for XML. SAX Simple API for XML. En API (Application Programming Interface) et bibliotek eller et sæt af funktioner eller metoder. SAX er et sådant bibliotek af abstrakte metoder som f. eks. startdocument() eller

Læs mere

Lederens ressourceoptimering

Lederens ressourceoptimering Lederens ressourceoptimering 44568 5S Sortere Sætte i orden Skure Standardisere Selvdisciplin 1 Derfor skal der indføres 5S Eksempler på forventede resultater ved succesfuld 5S implementering: Reducerede

Læs mere