Comments on XPTR Framework

In addition to section 3.4, I would suggest the following additions.

3.5 Variable Bindings
Scheme specifications may define ways to augment the set of variable
bindings for the purpose of parameterizing
pointer expressions.  The set of variable bindings before evaluation of the
first pointer part is empty.  The documentation
for any variable binding scheme must specify whether its bindings remain in
effect for later pointer parts.  The
documentation for every scheme must specify whether it uses the variable
binding context.  Pointer parts whose evaluation
results in an error must not add to the variable binding context.

[open issue, how to resolve datatype conflicts in bindings between schemes.
For example, if an XPointer range gets bound
to the variable $foo, and this variable is then accessed in another pointer
part that doesn't understand ranges, it cannot
be evaluated.  This should probably result in some sort of error.  Perhaps
the variable bindings are scoped by scheme?].

3.6 Function Library
Scheme specifications may define ways to augment the library of functions
available to other schemes for the purpose of
extending the capabilities of those schemes.  Pointer parts whose evaluation
results in an error must not add to the
library of available functions.  The initial library of functions available
to each scheme must be defined
in its specification.  The documentation for every scheme must specify
whether it uses the library context.

[open issue, how to resolve datatype and signature conflicts between
schemes.  For example, an XPointer function may return
a range.  However, this is not a function whose evaluation is can
necessarily be evaluated by another scheme.  Perhaps the
function libraries are scoped by scheme?]

This suggests the following two new schemes:
bind("varname", Expr), which creates a variable binding, and load(URI),
which loads an extension library.

	Keith

Received on Monday, 26 August 2002 04:12:12 UTC