Hvorfor : en XDK mini-FAQ

Hvorfor et nyt format ?

Der er mange grunde til at udskifte DSFL-formatet med et nyt. For det første er DSFL-formatet næsten 20 år gammelt, og da udviklingen har løbet med stormskridt siden, er tiden løbet fra definitionen. For det andet er DSFL-formatet efterhånden behæftet med så mange knopskydninger, at det i dag på mange områder er både rodet og tvetydigt.

Men først og fremmest er det ikke baseret på nogen som helst standard. Hvis en leverandør vil understøtte DSFL-formatet er det ikke muligt at bygge videre eksisterende teknologier. Leverandøren må starte helt forfra hver gang, hvilket øger udviklingsomkostningerne dramatisk.

Forsøget med at definere en begrænset udgave, DSFL basisformat, var et udmærket initiativ, men det var for sent og ikke nok. Den hidtidige erfaring tilsiger, at initiativet har fejlet: kunderne stipulerer ikke levering i DSFL-basisformatet som krav i deres kontrakter, selvom dette ville gavne dem. Og adskillige kortdataleverandører respekterer alligevel ikke at skulle levere i basisformatet. Dette, og det faktum at DSFL-basisformatet lider af de samme definitionsmæssige svagheder som "det fulde format", må føre til konklusionen at DSFL-formatet bør erstattes af et helt nyt format.

DSFL-formatet har været banebrydende i sin tid, og hjulpet hele den danske kortlægningsbranche til et førende stade i dag. Men den internationale teknologi har på mange måder indhentet de egenudviklede løsninger, og DSFL-formatet er ingen undtagelse. Det der før var et fortrin er nu på vej til at blive en ulempe, så det er på høje tide at komme videre.

 

Hvorfor XDK ?

XDK's absolut største fortrin er at det er baseret på XML-teknologi. XML er den verdensomspændende standard og state-of-the-art indenfor informationsudveksling til alle formål, og anvendelsen af XML stiger dag for dag. Dette sikrer at mængden af værktøjer til og anvendelsesmuligheder for XML-baseret teknologi er støt stigende.

Desuden er XDK skabt af folk, der har et årelangt praktisk kendskab til GIS-udveksling og DSFL-formatet. XDK er tillige skabt så dets begrebskompleks minder så meget om DSFL-formatets, at DSFL-kyndige uden større problemer vil kunne mestre og forstå XDK. XDK er skabt med udgangspunkt i det definerede DSFL basisformat, som desværre kom alt for sent, men som definerede nødvendige begrænsninger i det fulde format.

Der findes allerede et XML-baseret format, GML - Geographic Markup Language, der nu foreligger i version 2. Dette format er skabt af OpenGIS Consortium (OGC) og fremsendt til W3C for accept. GML opfylder det samme grundlæggende behov som XDK gør, men er meget mere omfattende og kompliceret. Dette gør at formatet lider under et af de samme problemer som det fulde DSFL-format gør, nemlig uoverskuelighed. I modsætning hertil er XDK kompakt og overskueligt, og da en transformation mellem et XML-format og et andet XML-format kan skabes ved anvendelse af standardmetoder, så er XDK et bedre bud på et nyt dansk GIS-udvekslingsformat.

Navnet XDK er naturligvis valgt ved at sammensætte X'et fra XML og "DK" for Danmark. På denne måde signaliseres både XML-konformitet og national egenart.

 

Hvad er XML ?

XML er et akronym for "eXtensible Markup Language", der undersat til dansk ville blive til "udvidbart angivelsessprog". På mere mundret dansk vil en brugbar definition kunne være: "et sprog til at strukturere angivelser af indhold, med udvidelsesmuligheder". XML er kort og godt et sæt syntaksregler for hvorledes sprog til indholdsstyring skal opbygges.

XML er altid defineret som Unicode. Unicode er den tegndefinition der omfatter, og dermed er ens for, hele jorden. Alle tegn, vestlige såvel som kinesiske, arabiske og indiske er defineret i Unicode. Unicode erstatter alle de tidligere tegnsætsskabeloner (CodePage's, ISO-tegnsæt osv.) med ét, der indeholder 65536 tegn (16 bit). Unicode eliminerer alle problemer i forhold til tegnsæt, hvorfor definition af dette (specifikt de 3 danske tegn) er irrelevant i XML-sammenhæng. Unicode sikrer også, at enhver på kloden, uanset sprog og tegnsæt på computer, operativsystem (Windows, Mac etc.) m.m. kan læse XML-formatterede datafiler korrekt og uden tegnsætsfejl.

XDK er opbygget efter disse regler og er derfor et ægte XML-sprog, med alle de fordele det indebærer. Derfor vil en XDK-datasæt umiddelbart kunne anvendes af enhver organisation og firma i hele verden.

XML-datasæt, og dermed også XDK, kan med fordel læses af Internet Explorer 5 og senere (IE5+). Den umiddelbare validering kontrollerer at dokumentet indeholder "velformet XML", og at det refererede syntaksdokument, der typisk angivet direkte i alle XML-dokumenter, og altid i XDK-datasæt. Der findes desuden en gratis plugin til IE5+ (link findes her), der muliggør både her-og-nu detaljeret validering op mod det refererede syntaksdokument og her-og-nu transformering vha. en XSLT-specifikation. Dette kan f.eks. anvendes til at generere indholdsdokumentation direkte i browseren.

Fidusen er dermed at alle kan være med, og at værktøjerne er almindeligt kendt og brugt ("alle kan bruge en browser"). Dermed kan f.eks. både afsenderne og modtagerne af et XDK-datasæt validere data og evt. skabe og udføre egne transformationer.

 

Hvorfor XML ?

XML er som nævnt tidligere en internationalt vedtaget standard fra W3C.org, organisationen der styrer og koordinerer udviklingen på Internettet. Standarderne fra W3C bliver (næsten) altid støttet og understøttet af de største og mest betydningsfulde IT-firmaer og -organisationer. Dette er også tilfældet med XML. Det betyder at XML efterhånden indgår i stort set alle softwareprodukter, både til desktop (Windows o.lign.) og til web.

Denne brede understøttelse er en klar styrke. Men hvad der er endnu bedre er, at XML-standarden også omfatter metoder til maskinel validering og manipulation af indholdet i XML-datasæt.

Automatisk validering, eller syntakscheck om man vil, sker vha. en sprogdefinition, der enten kan være en DTD (Document Type Document) eller et XML:schema. XDK er pt. defineret vha. et DTD, men senere vil et XML:schema supplere og på sigt helt erstatte dette. Validering sker ved indlæsning i XML-vieweren (f.eks. IE5+), hvorfor man uden videre kan kontrollere om indholdet er legalt eller ej.

Manipulation af indholdet sker vha. de såkaldte XSLT (eXtensible Style Language Transformation). Dette er en metode til at definere en "transformation" af indholdet fra ét XML-formatteret dokument til et andet XML-formatteret dokument. Dvs. at der kun skal skrives én ekstern specifikation for at realisere en udførsel af den ønskede transformation. Da både XHTML (XML-baseret HTML), WML (til WAP-mobiltelefoner) og f.eks. SVG (Scalable Vector Graphics) er XML-sprog, så vil en transformation fra XDK til disse præsentationsformater kun kræve én XSLT-specifikation hver. Og en XSLT-transformation kan vha. DOM-programmering udføres med få liniers kode, f.eks. på en ASP-side. Men avanceret, traditionel programmering vha. DOM-programmering er naturligvis også mulig.

Da en XSLT-specifikation ydermere indebærer mulighed for at manipulere indholdet meget, så vil denne metode også kunne anvendes til at lave f.eks. rapportgenerering på sine XDK-datasæt.

 

Hvorfor ikke GML ?

Så nævnt tidligere eksisterer der et andet XML-baseret format beregnet til udveksling af geografiske informationer. Dette format, der hedder GML, Geographic Markup Language, er skabt via OpenGIS Consortium (OGC), hvor alle de store spillere på GIS-markedet deltager. Version 2 af GML er indsendt til godkendelse hos W3C her i foråret 2001, og en anbefaling herfra ventes inden længe.

Umiddelbart virker det fornuftigt at adoptere GML som basis for en ny dansk udvekslingsstandard, men hvis man gennemlæser GML-specifikationen nøje så finder man alvorlige mangler og uhensigtsmæssigheder. Dette skyldes primært at der, for at sige det populært, er for mange kokke om grøden. GML skal af politiske årsager skulle tilgodese de fleste ønsker fra de fleste af deltagerne, hvilket efterlader et stort, komplekst og uoverskueligt format. Tilmed et format der er helt nyt ift. danske forhold, så implementering af GML vil reelt betyde at man skal starte helt forfra.

Her er en kort liste over de største forskelle mellem GML og XDK:

  • GML er skabt med udgangspunkt i at geografiske objekter defineres som egentlige meta-features. Dvs. at selve featurekodningen er indgangen til geometrien, ikke an attribut på denne. Dette er i direkte modsætning til den måde som vi med DSFL-formatet har været vant til at anskue data. XDK er ligesom DSFL-formatet geometri-centreret, og opfatter featurekodning som en attribut på geometrien.
  • Denne feature-centererede opbygning er med GML fuldstændig dynamisk. Dvs. at enhver dataleverandør kan skabe og anvende sine egne metafeature-definitioner ved dataskabelse i GML. Dette er igen en mulighed der gør data meget svært tilgængelige, da man for at forstå datastrukturen yderligere typisk skal kunne forstå og overskue en håndfuld seperate sæt syntaksregler. XDK baserer sig på ét eneste sæt syntaksregler, hvor dynamikken opnås gennem attributtilknytning, hvilket sikrer et simpelt og gennemskueligt format.
  • GML indeholder komplekse multi-topologiske objekter. Dette er et træk der øger kompleksisteten og uoverskueligheden meget. Og da det kun er i meget specialiserede at sådanne objekttyper er relevante, så er disse ikke en del af XDK. XDK understøtter derfor kun de 4 hovedtyper: punkter, linier, flader og tekster/ikke-geografiske features.

Et subset af GML kaldet "simple features" (se geometrimodellen i figur 1.2) er foreslået men det har nogle væsentlige mangler, der i praksis gør det helt ubrugeligt:

  • GML indeholder kun mulighed for at definere objekter vha. rette linier. Hverken splines eller cirkler, som vi er vant til at kunne håndtere i DSFL-formatet, er eksplicit understøttet af GML, selv i version 2. Kurveforløb understøttes dog implicit via dynamisk featuredefinition (se nedenfor), men som udvekslingsformat er dette ret fatalt. XDK understøtter alle de tre nævnte linietyper.
  • Det understøtter kun to-dimensionelle koordinater, dvs. at det ikke umiddelbart er muligt at have en Z-værdi på sine punkter.

Og paradoksalt nok, så er det faktum at GML også er XML-baseret faktisk et argument mod at skulle vælge netop GML til udveksling af GIS-data i Danmark. For med den nemme og standardiserede mulighed for at transformere indhold fra et XML-baseret format til et andet diotto, XSLT, så er det ene XML-format ligeså godt som det andet. Det eneste der afgør hvilket der bør vælges er formaternes specifikationer, ikke

 

Så hvorfor XDK ?

GML er ikke et fornuftigt alternativ til DSFL-formatet, selvom det er nok så XML-baseret. Ydermere er det ikke nødvendigvis velegnet til danske forhold. Erfaringen viser nemlig at dansk GIS-anvendelse er langt mere detaljeret og intensiv end i andre lande, specielt ift. Nordamerika. Derfor er danske behov også anderledes.

Der er derfor meget sund fornuft i at anvende et specielt dansk format, sålænge dette er baseret på internationalt anerkendte standarder. Der er derimod ikke så megen sund fornuft i at forsøge at entrere med et stort, ukendt og komplekst system som GML, selvom det er nok så meget "den forkromede løsning", og "godkendt på højeste sted".

I modsætning til GML er XDK skabt til danske forhold, og skabt ved en videreførelse af de kendte termer fra DSFL-formatet. Dette sikrer at DSFL-kyndige uden større problemer vil kunne mestre og forstå XDK, hvilket er vigtigt for at bevare kontinuiteten.

Første version af XDK tager udgangspunkt i at definere de basale syntaksregler for formatet, og i at skabe bred opbakning til brug af dette. I næste version af formatet er det planen at inddrage kodelister i formatspecifikationen, så et umiddelbart syntakscheck af et datasæt også vil kontrollere om de anvendte koder er legale eller ej.

Og som en afsluttende note, blot for at slå det fast. Al den snak om XML skal ikke forlede nogen til at tro, at XDK ikke er kan fungere som et ganske almindeligt udvekslingsformat, ligesom DSFL-formatet. Det kan det, og ganske godt endda, da XDK er et fint struktureret format uden tvetydigheder og mulighed for fortolkninger ("dialekter"). Så selv uden XML, så ville XDK udmærket kunne stå på egne ben.

Se også siden om visionerne bag XDK-initiativet, der bl.a. indeholder anvendelsesmæssige eksempler.

 

© XDK 2001+
10. marts 2002