RE: [ACL] REPORT vs SEARCH

Julian Reschke writes:
> Both REPORT and SEARCH define frameworks for pluggable query grammars /
> reports. I really can't see where the distinction between reports and
> searches you made is reflected in the specs.

Many design considerations never make it into specifications.

> However, the framework for REPORT is already there (almost in RFC
> form)

For the case of DAV:basicsearch, this doesn't count for much.  The
definition of the "SEARCH" method is not the difficult part of DASL. The
core complexity comes from specifying the search grammar, and  correctly
specifying how to do an i18n ordering of search results. These complexities
are these whether you use REPORT or SEARCH.

>, and I think it's technically superior (regarding discovery
> of query grammars / reports).

Huh?

REPORT tells you what reports are available via DAV:supported-report-set.

DASL tells you what search grammars are available via the DASL response
header.

These are equivalent in expressive power.

> So my proposal is to drop the DASL *framework* and  re-use the one
> used in REPORT, and to update / modify DAV:basicsearch to become a report.

This isn't a shift of framework, it's a shift of marshalling mechanism,
REPORT vs. SEARCH, DAV:supported-report-set vs. OPTIONS and the DASL header.

> If you disagree, I'd like to understand why we need the SEARCH framework
> when we already have REPORT.

While I will freely admit that you *could* marshall DAV:basicsearch using
REPORT, here are my reasons for why I think you should have both REPORT and
SEARCH:

- Reports have very specialized and limited query specifications. Search
grammars are expected to be much more complex (DAV:basicsearch, XML query,
Z39.50, etc.)

- Reports have a reasonable expectation of being specified in XML. Queries
submitted using SEARCH may not be.

- Error reporting mechanisms for REPORT may not be appropriate for SEARCH.
In particular, it may not be safe to assume that returning an XML tag in the
body is OK for all search grammars, yet this is the current case for REPORT.

- REPORT is currently limited to using the Depth mechanism for scoping.
While this is also the current case for DASL, I believe that DASL will need
to provide a definition for how to perform a "server"-wide search.
Separating the two will free DASL to develop better scoping rules.

- Some queries grammars using DASL may not even require DAV extensions to be
present. For example, XML query via DASL should reasonably work against both
HTTP+DAV+DASL servers and plain HTTP+DASL servers. REPORT is intimately tied
to the DAV object model (it requires properties).

Basically, these all boil down to a separation of concerns argument. By
separating REPORT and SEARCH, you allow each to more precisely meet their
respective requirements.

- Jim

Received on Friday, 5 October 2001 14:59:24 UTC