|
XQuery
in vogelvlucht
Oracle
experimenteert met nieuwe programmeertaal
Oracle
heeft een prototype ontwikkeld waarin een Java Application
Programming Interface (API) voor XQuery is opgenomen
JXQI en een interface voor de invoer van commando's.
Dit prototype is een technische preview van de implementatie
van XQuery, een programmeertaal die momenteel nog 'in de maak'
is bij het World Wide Web Consortium. Java XQuery maakt gebruik
van de kenmerkende Oracle-extensies en richt zich op 'Relational
Data' en 'Experiences and Examplers' (XMP). Als experiment
is een Java API in JDBC-stijl opgenomen. Ook kan XQuery worden
losgelaten op SQL-zoekresultaten door gebruik te maken van
de SQL( )-functie.
Oracle
wil met dit project een zowel op SQL- als op XQuery-gebaseerde
zoeksyntax voor XML-gegevens ontwikkelen, zodat een gemeenschappelijke
onderliggende database-engine ontstaat voor Oracle. Het voert
te ver om alle functies van het prototype in dit artikel te
bespreken. We nodigen u uit het programma zelf eens te proberen.
In het grijze kader vindt u het download adres.
Een korte
zoektocht op internet wijst uit dat er niet veel boeken over
XQuery zijn verschenen. Om precies te zijn één:
'Early Adopter XQuery' van uitgeverij Wrox Press Ltd. Misschien
is het daarom goed eens dieper op de basisbeginselen van deze
nieuwe programmeertaal in te gaan...
Wat
is XQuery?
Steeds meer informatie wordt opgeslagen, uitgewisseld en gepresenteerd
als XML-bestand. Dit heeft tot gevolg dat de vraag naar intelligente
zoeksystemen voor XML-data is toegenomen. Eén van de
sterke kanten van XML is zijn flexibele omgang met verschillende
soorten informatie, afkomstig van diverse bronnen. Om die
flexibiliteit uit te buiten moet een XML-zoeksysteem over
functies beschikken waarmee die informatie van verschillende
bronnen kan worden gevonden en geïnterpreteerd. XQuery
is een taal die ervoor zorgt dat zoekopdrachten begrijpelijker
en gebruiksvriendelijker worden. Het is flexibel genoeg om
een breed spectrum aan XML-informatiebronnen te doorzoeken,
databases en documenten inbegrepen. De Query-werkgroep binnen
het World Wide Web Consortium heeft een aantal eisen opgesteld
waaraan de taal moet voldoen, zodat de zoek-syntax voor mensen
leesbaar is en het ook alle vereisten in zich heeft om doeltreffend
XML-gegevens te doorzoeken. XQuery is ontstaan uit de XML-taal
Quilt, die op zijn beurt weer functies heeft overgenomen van
verschillende andere talen zoals XPath 1.0, XQL, XML-QL, SQL
en OQL.
XQuery versie 1.0 vertoont sterke overeenkomsten met XPath
versie 2.0. Elke valide gegevensinvoer die in beide programma's
succesvol wordt uitgevoerd, zal ook in beide gevallen dezelfde
resultaten opleveren. Omdat deze programmeertalen zo nauw
met elkaar zijn verweven, worden verdere 'grammatica' en taalbeschrijvingen
uit een gezamenlijke bron gegenereerd. Dat levert een hoge
mate van consistentie op, die nog eens wordt versterkt door
het feit dat de ontwerpers nauw met elkaar samenwerken.
Hoe
werkt XQuery?
XQuery is afhankelijk en sterk verweven met
de volgende specificaties:
Het XQuery-gegevensmodel stelt de informatie in een
XML-document vast, maar dat document moet wel beschikbaar
zijn voor de XQuery-processor. Het gegevensmodel wordt gedefinieerd
in de programma's XQuery 1.0 en XPath 2.0 Data Model.
De statische en dynamische betekenis van symbolen (semantiek)
van XQuery worden in beginsel vastgelegd in XQuery 1.0 Formal
Semantics. Dit gebeurt door de volledige XQuery-taal te importeren
in het vooraf gedefinieerde Formal Semantics. Het document
wat hierdoor ontstaan is, komt degene die XQuery in zijn systeem
wil implementeren goed van pas.
XQuery's typesysteem is gebaseerd op XML Schema. Er
wordt op het moment hard aan gewerkt dat de typesystemen van
XQuery, XQuery Core en XML Schema volledig op elkaar zijn
afgestemd.
De bibliotheek waarin functies en operators zijn vastgelegd
die door XQuery worden ondersteund, wordt gemaakt in XQuery
1.0 en XPath 2.0 Functions and Operators.
Basisbeginsels
De XQuery-taal voorziet in een aantal verschillende expressies
die worden samengesteld uit kernwoorden, symbolen en opdrachtelementen
('operands'). Over het algemeen bestaan de opdrachtelementen
van een expressie weer uit andere expressies. XQuery is een
functionele taal waarmee diverse soorten expressies in elkaar
kunnen worden genesteld. Maar het is ook een 'strongly-typed'
programmeertaal waarin opdrachtelementen van verschillende
expressies, operators en functies zich moeten conformeren
aan aangeduide types.
Net als XML is XQuery een taal die gevoelig is voor kapitalen.
Alle kernwoorden in XQuery worden zonder hoofdletters geschreven.
De waarde van een expressie is altijd afhankelijk van de volgorde
waarop het geschreven is. Zo'n 'sequence' bestaat uit een
geordende verzameling van items: 'atomic values' en 'nodes'.
De afronding
van de specificatie van de XQuery-taal nadert zijn einde.
Het World Wide Web Consortium verwacht eind dit jaar de laatste
hand eraan te kunnen leggen. Intussen experimenteert Oracle
druk verder met XQuery en Java in de hoop zo snel mogelijk
een doeltreffend, op SQL- en XQuery-gebaseerd zoeksysteem
te ontwikkelen voor XML-data.

|