# Presentation: 125867

## Querying XML Documents

- Paul Cotton
- ZIG
- Washington, Dec 7, 2000

## Organization of Presentation

- XML query history and QL’98
- XML Query WG history, goals and status
- XML Query Requirements
- XML Query Data Model
- XML Query Algebra
- Questions

## XML query history 

- Early 1998: “roll your own query language”
- XSL Working Group
- XSLT needed syntax to select nodes
-  XML Linking Working Group
- XPointer needed syntax to select a location
- February 1999 joint meeting
- Rapprochement on 90% of syntax
- XPath
- W3C recommendation with XSLT

## XML query history - 2

- Early queries facilities for SGML
- Academic research into semi-structured data and its operations
- XQL: See http://metalab.unc.edu/xql
- XML-QL, August, 1998
- http://www.w3.org/TR/NOTE-xml-ql/

## Query Languages Workshop ’98

- W3C sponsored workshop
- Boston (USA), December 2-3, 1998
- 98 participants: W3C members, database vendors, invited experts, etc.
-  66 position papers
- See: http://www.w3.org/TandS/QL/QL98

## W3C XML Query WG - History 

- July 1999 -Working Group proposed as part of XML Activity Phase 3 rechartering
- September 1999 - WG chartered
- More than 30 W3C member companies
- Eight F2F meetings and 40+ telcons so far
- Close working relationship with other W3C Working Groups (Schema, XSL, I18N)

## W3C XML Query WG - Goals

- “The goal of the XML Query WG is to produce a data model for XML documents, a set of query operators on that data model, and a query language based on these query operators.”

## W3C XML Query WG - Status 

- Jan 2000 – Requirements Working Draft
- May 2000 – XML Query Data Model WD
- May 2000 – Feedback on Schema Last Call
- August 2000 – Revised Requirements Working Draft with Use Cases
- Dec 2000 – XML Query Algebra WD
- Future public WDs every three months
- Proposed recommendation(s)

## XML Query Requirements

- Usage Scenarios
- General Requirements
- XML Query Data Model Requirements
- XML Query Functionality
- Use cases for XML queries
- _[http://www.w3.org/TR/xmlquery-req](http://www.w3.org/TR/xmlquery-req)_

## General Requirements

- Non-procedural query language
- XML syntax for query language but also a readable syntax
- Protocol independent
- Standard error conditions
- Future support for updates

## XML Query Data Model

- Built on XML Infoset and PSV
- Namespace aware
- Support for XML Schema data types
- Support for inter- and intra- document references

## XML Query Functionality

- Operators on all data types
- Text operators across element boundaries
- Support for hierarchy and sequence
- Ability to combine data from different locs
- Aggregation and sorting
- Combination of operators including queries as operands

## XML Query Functionality - 2

- Support for NULL values
- Structural preservations
- Identity preservation
- Operations on names
- Operations on “schemas”
- Extensibility
- Closure

## XML Query Data Model WD

- Defines information available to a query processor
- Infoset plus the following:
- Support for XML Schema data types (PSV)
- Support for document collections
- Support for references
- Node-labelled tree constructor model with node identity
- Mapping from Infoset to Query Data Model defined in Annex A
- _[http://www.w3.org/TR/query-datamodel/](http://www.w3.org/TR/query-datamodel/)_

## XML Query Algebra WD

- Defines operations on Query Data Model
- Simple principles, easy to use
- Firm mathematical foundation
- Many issues still open
-  References
-  Unordered data
-  Algebra subset of syntax?
- _[http://www.w3.org/TR/query-datamodel/](http://www.w3.org/TR/query-datamodel/)_

## Questions

- Today
- Later:	 pcotton@microsoft.com
- Feedback email list: 	www-xml-query-comments@w3.org
- Public email list: 	www-ql@w3.org