A. Butterfield
   Internet Draft                                         1060 Research
   Document: draft-butterfield-active-uri-01.txt               R. Perry
   Expires: December 2004                               Hewlett Packard
                                                              June 2004



                          The "active" URI scheme



Status of this Memo


   By submitting this Internet-Draft, I certify that any applicable
   patent or other IPR claims of which I am aware have been disclosed,
   or will be disclosed, and any of which I become aware will be
   disclosed, in accordance with RFC 3668.


   This document may not be modified, and derivative works of it may
   not be created, except to publish it as an RFC and to translate it
   into languages other than English.


   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.


   Internet-Drafts are draft documents valid for a maximum of six
   months and may be updated, replaced, or obsoleted by other documents
   at any time.  It is inappropriate to use Internet-Drafts as
   reference material or to cite them other than a "work in progress."


   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/1id-abstracts.html


   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html


Abstract


   A new URI scheme, "active", is defined. It allows processing results
   to be referenced uniquely and invariantly by compounding their
   dependencies into a URI.


Conventions used in this document


   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in
   this document are to be interpreted as described in RFC-2119 [1].




Butterfield            Expires - December 2004                [Page 1]


INTERNET DRAFT          The "active URI scheme               June 2004


1. Description


   In a declarative resource processing pipeline it is helpful for all
   resources, whether external or internal intermediate results, to be
   identified by URI. An _active_ URI may uniquely specify the
   resulting resource of a process, such a URI  can embody a processing
   specification and may be used as a request for a generative process.


   This document defines a new URI scheme that allows specification of
   a generative resource process. The URIs are of the form:


               active:<processURI>*(+<inputName>@<inputURI>)


   The <processURI> is a URI that uniquely identifies a processing
   step. Any reserved characters must be escaped.
   The <inputName> is an identifier for a named input to the processing
   step. It is not necessarily unique within the scope of the URI.
   The <inputURI> is a URI that uniquely identifies an input resource
   to the processing step. Any reserved characters must be escaped. The
   URI may be another _active_ URI, making recursion possible.


   Zero or more inputName-inputURI pairs are allowed.


   The "active" URI scheme has no relative URI forms.


2. Syntax


      activeURI   := _active:_ processURI *( input )
      processURI  := absoluteURI | relativeURI
      input       := _+_ inputName _@_ inputURI
      inputName   := *( alphanum )
      inputURI    := absoluteURI | relativeURI


   where "alphanum" is imported from [RFC2396] and "absoluteURI" and
   _relativeURI_ are imported from [RFC2396] represented using URL
   escaped encoding of [RFC2396] as necessary.


   Character encoding of the active URI MUST force nested _inputURI_s
   to escape invalid characters if they are not within the character
   set.


3. Interoperability


   There are no known interoperability issues.








Butterfield            Expires - December 2004                [Page 2]


INTERNET DRAFT          The "active URI scheme               June 2004


4. Comparisions


   Syntactic similarities can be drawn to the generic URIs query
   component syntax.  However the key differences are:
   1) Symantically the inputs are not queries to a resource.
   2) All inputURIs must be URIs, not alphanumeric.
   3) Recursive nesting of URIs must be defined.


5. Examples


   An _active_ URI might define an XSLT transform on an XML document:


              active:xslt+stylesheet@foo.xsl+operand@bar.xml


   or conversion to upper-case of a data[RFC2397] URI:


               active:toUpper+operand@data:text/plain,foobar


6. History


   This idea was originally prototyped in June 2002 within a working
   implementation of a research project within Hewlett Packard Labs.
   The idea was first used as a way of identifying intermediate results
   in XML pipelines.
   1060 Research acquired the intellectual property from this research
   project in July 2003. The idea has since been refined for use in a
   generalized resource processing pipeline where unique and invariant
   references to derived results is key to an efficient caching
   strategy.  _active_ URIs are used as the internal addressing model
   of 1060 NetKernel which is open source and available from:
   http://www.1060.org


7. Security
   The active: URI scheme is currently intended for local processing
   only so there are no exceptional security considerations that are
   particular to this URI. Active URI specified processes are no
   different to any other local mechanism for specifying a process.  By
   formalizing a request for processing into an active URI it is
   possible to programmatically analyse the request in a structured way
   for possible security issues.
   Security related to any nested URIs should be given the
   consideration they would normally have.










Butterfield            Expires - December 2004                [Page 3]


INTERNET DRAFT          The "active URI scheme               June 2004


8. References



   1  Bradner, S., "Key words for use in RFCs to Indicate Requirement
      Levels", BCP 14, RFC 2119, March 1997
   [RFC2396] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
      Resource Identifiers (URI): Generic Syntax", RFC2396, August
      1998.


   [RFC2397] Masinter, L., "The data URL scheme", RFC2397, August 1998


   Copyright (C) The Internet Society (2004).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.


   This document and the information contained herein are provided on
   an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
   REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE
   INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR
   IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Author's Addresses


   Tony Butterfield
   1060 Research Limited
   23 Horse Street
   Chipping Sodbury
   Bristol BS37 6DA
   United Kingdom


   Email: tab@1060.org



















Butterfield            Expires - December 2004                [Page 4]