DASL Requirements
February 10, 1998
Saveen Reddy
The Problem
- PROPFIND & GET = client-side searching
- “enough” for some common operations
A Common Scenario
- Locate “All the Documents Authored by Me modified within the last week”
- PROPFIND - recurse to get lastmod property
- Every lastmod value transmitted on the wire
- Server cannot be smart about searching
- Content queries require GET: very expensive
- Client is complex
Server-Side Searching
- Client-Side Searching: Client complex, server unchanged. Inefficient, can’t make use of server intelligence, content queries very expensive.
- Server-Side Search: Complex Server, more efficient on wire, dependence on underlying storage
Terms
- Result Set - Set of Result Records
- Result Records - identifies a resource and gives values for selected properties
- Search Criteria - defines what gets included in the result set. An expression like “size > 10k”
- Scope - collections being searched
- Information about Scope: schema, stats of collection, searches supported
Search Criteria
- Need AND, OR, NOT, and grouping of Search Terms
- Need <, <=, =>, > operators for ordered types values (content-length); ==, != for all types
- Content Searches: Does the content contain the word “foo”, proximity, etc.
- Searching over nested XML
- Variants & Versions: limit searches to a specific variant or a specific version
Criteria
- Regular Expression matching -- like GREP
- NEAR operator - if “Saveen” is near “handsome”
- scoping within document
- idenitfy search criteria format
- resource usage: billing, usage
- relevance feedback
- stemming, phonetics; truncation;thesaurus expansion
- case-sensitive (internationalization)
Results
- Result Record Definition - client gets to decide what properties come back in the result set
- Standardized Result Format - clients can always handle result sets
- Pages Table Results - must be possible
- result life cycle
- work with proxies
Search Qualifiers
- Scope - identify multiple collections to search
- Depth - recursive or “1”, like PROPFIND
- References - Tell client where to issue a search for a collection (nuked)
- discovery: scopes, reference property
Query Syntax
- Simple Query Syntax - a very simple grammar for interoperability
- Extensibility - grammar should be extensible
- Alternate Grammars - legacy support, expose server-specific features
Miscellaneous
- Authentication - must state how DASL works with authentication
- Access Control - must state how DASL works with Access Control
- Internationalization - must state how DASL works on internationalized content (iso-2022jp text files, for example)