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:*(+@) The is a URI that uniquely identifies a processing step. Any reserved characters must be escaped. The is an identifier for a named input to the processing step. It is not necessarily unique within the scope of the URI. The 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]