📄 rfc2016.txt
字号:
RFC 2016 Uniform Resource Agents October 1996
all that is needed in order to subscribe the user -- the subscription
result is identified.
URAs are manipulated through the application of methods. This, in
turn , is governed by the URAgency with which the invoker is
interacting. However, because the virtual structure of URAs is
represented consistently across URA types and URAgencies, a URAgency
can act as one of the targets of a URA. Since methods can be applied
to URAs remotely, URAs can act as invokers of URAs. This can yield a
complex structure of task modules.
For example, a URA designed to carry out a generalized search of
book-selling resources might make use of individual URAs tailored to
each resource. Thus, the top-level URA becomes the orchestrating URA
for access to a number of disparate resources, while being insulated
from the minute details of accessing those resources.
A Prototype Implementation
The experimental work with URAs includes a prototype implementation
of URA objects. These are written in the Tcl scripting language. A
sample prototype Tcl URA can be found in Appendix 3.
The URAgency that was created to handle these URAs is part of the
Silk Desktop Internet Resource Discovery tool. Silk provides a
graphical user interface environment that allows the user to access
and search for Internet information without having to know where to
look or how to look. Silk presents a list of the available URAs to
carry out these activities (e.g., "search for tech reports" or
"hotlist"). For each activity, the user is prompted for the
activation data, and Silk's URAgency executes the URA. The Silk
software also supports the creation and maintenance of URA object
instances. Users can add new URAs by creating new Tcl scripts (per
the guidelines in the "URA Writer's Guide", available with the Silk
software. See [SILK]). The Silk graphical interface hides some of
the mechanics of the underlying URAgency. A more directly-accessible
version of this URAgency will become available.
Conclusions
This work was originally conceived as an extension to the family of
Uniform Resource Identifiers (URIs): Uniform Resource Locators
(URLs), Uniform Resource Characteristics (URCs), and the proposed
Uniform Resource Names (URNs). The approach of formalizing the
characteristics of an information task in a standardized object
structure is seen as a means of identifying a class of resources, and
contributes to the level of abstraction with which users can refer to
Internet resources.
Daigle, et. al. Experimental [Page 8]
RFC 2016 Uniform Resource Agents October 1996
Although still in its experimental stages, this work has already
evoked interest and shown promise in the area of providing mechanisms
for building more advanced tools to interact with the Internet at a
more sophisticated level than just browsing web pages.
One of the major difficulties that has been faced in developing a
collection of URAs is the brittleness induced by interacting with
services that are primarily geared towards human-users. Small
changes in output formats that are easily discernible by the human
eye can be entirely disruptive to a software client that must apply a
parsing and interpretation mechanism based on placement of cues in
the text. This problem is certainly not unique to URAs -- any
software acting upon results from such a service is affected.
Perhaps there is the need for an evolution of "service entrances" to
information servers on the Internet -- mechanisms for getting "just
the facts" from an information server. Of course, one way to provide
such access is for the service provider to develop and distribute a
URA that interacts with the service. When the service's interface
changes, the service provider will be moved to update the URA that
was built to access it reliably.
Work will continue to develop new types of URAs, as well as other
URAgencies. This will necessitate the creation of URAgency
interaction standards -- the "common virtual URA object structure" is
the first step towards defining a lingua franca among URAs of
disparate types and intention.
Daigle, et. al. Experimental [Page 9]
RFC 2016 Uniform Resource Agents October 1996
References
[IIAW95] Leslie L. Daigle, Peter Deutsch, "Agents for Internet
Information Clients", CIKM'95 Intelligent Information Agents
Workshop, December 1995.
Available from
<http://www.bunyip.com/products/silk/silktree/uratree/iiaw95.ps>
[JAVA] "The Java Language: A White Paper" Available from
<http://java.sun.com/1.0alpha2/doc/overview/java/index.html>
[RFC1034] Mockapetris, P., "Domain Names - Concepts and Facilities",
STD 13, RFC 1034, November 1987.
[RFC1035] Mockapetris, P., "Domain Names - Implementation and
Specification", STD 13, RFC 1035, November 1987.
[RFC1738] T. Berners-Lee, L. Masinter, M. McCahill, "Uniform Resource
Locators (URL)", RFC 1738, December 1994.
[SILK] Bunyip's Silk project homepage:
<http://www.bunyip.com/products/silk/>
[SILKURA] Silk URA information:
<http://www.bunyip.com/products/silk/silktree/uraintro.html>
[TACOMA] Johansen, D. van Renesse, R. Schneider, F. B., "An
Introduction to the TACOMA Distributed System", Technical Report
95-23, Department of Computer Science, University of Tromso,
Norway, June 1995.
[TCL] Ousterhout, J. K. "Tcl and the Tk Toolkit", Addison Wesley,
1994.
[TELE] White, J. E., "Telescript Technology: The Foundation for the
Electronic Marketplace", General Magic White Paper, General Magic
Inc., 1994.
Daigle, et. al. Experimental [Page 10]
RFC 2016 Uniform Resource Agents October 1996
Authors' Addresses
Leslie Daigle
Peter Deutsch
Bill Heelan
Chris Alpaugh
Mary Maclachlan
Bunyip Information Systems, Inc.
310 St. Catherine St. West
Suite 300
Montreal, Quebec, CANADA
H2X 2A1
Phone: (514) 875-8611
EMail: ura-bunyip@bunyip.com
Daigle, et. al. Experimental [Page 11]
RFC 2016 Uniform Resource Agents October 1996
Appendix 1 -- Virtual URA Structure
This appendix contains a BNF-style description of the expected
virtual structure of a URA object. This "virtual structure" acts as
the canonical representation of the information encapsulated in a
given URA. It is expected that more information may optionally be
contained in the elements of the components -- the elements listed
here are offered as the "minimum" or "standard" set.
N.B.:
[]-delimited items are optional
%% denotes a comment
\0 represents the empty string
| is "or"
{} are literal characters
This form is used for convenience and clarity of expression --
whitespace and ordering of individual elements are not considered
significant.
<VIRTUAL_URA> := {<virtual-ura-structure>}
<virtual-ura-structure> := { URAHDR <ura-header> }
{ ACTDATA <activation-data> }
{ TARG <targets> }
{ EXPINFO <experience information> }
{ ACTSPEC <activity> }
{ RESPFILT <response filter> }
<ura-header> := { name <ura-name> }
{ author <ura-author> }
{ version <ura-version> }
[ { lang <lang-dependencies> } ]
[ { parent <parent-of-instance> } ]
<activation-data> := <act-data-element><activation-data> | \0
<act-data-element> := {
{ name <data-elt-name> }
{ response <data-elt-value> }
{ prompt <data-elt-prompt> }
[ { required <boolean> } ]
[ { default <data-default-val> } ]
}
<targets> := <target-service><targets> | \0
Daigle, et. al. Experimental [Page 12]
RFC 2016 Uniform Resource Agents October 1996
<target-service> := {
{ name <targ-url> }
{ protocol <url-protocol> }
{ url <url-spec> }
[ { <url-type-specific-data> } ]
}
<url-spec> := <complete-url> | <url-constructor>
<complete-url> := %% a complete, valid URL string
(e.g., http://www.bunyip.com/)
<url-constructor> := {
{ scheme <url-scheme-spec> }
{ host <url-host-spec> }
[ { port <url-port-spec> } ]
{ selector <url-selector-spec> }
}
<url-scheme-spec> := {
{ name <scheme-name> }
{ response <scheme-value> }
{ prompt <scheme-prompt> }
}
<url-host-spec> := {
{ name <host-name> }
{ response <host-value> }
{ prompt <host-prompt> }
}
<url-port-spec> := {
{ name <port-name> }
{ response <port-value> }
{ prompt <port-prompt> }
}
<url-selector-spec> := {
{ name <selector-name> }
{ response <selector-value> }
{ prompt <selector-prompt> }
}
<experience information> := {
{ name <data-elt-name> }
{ response <data-elt-value> }
}
<activity> := <compound-string>
Daigle, et. al. Experimental [Page 13]
RFC 2016 Uniform Resource Agents October 1996
<response filter> := <compound-string>
%% Without requiring more detail...
<compound-string> := <string>\n<compound-string> | \0
<boolean> := 0 | 1
<ura-name> := <string>
<ura-author> := <string>
<ura-version> := <string>
<lang-dependencies> := <string>
<parent-of-instance> := <string>
<data-elt-name> := <string>
<data-elt-value> := <string>
<data-elt-prompt> := <string>
<data-elt-default> := <string>
<data-default-val> := <string>
<targ-url> := <string>
<url-protocol> := http-get | http-post | ...
<url-type-specific-data> := <string>
<scheme-name> := <string>
<scheme-value> := <string>
<scheme-prompt> := <string>
<host-name> := <string>
<host-value> := <string>
<host-prompt> := <string>
<port-name> := <string>
<port-value> := <string>
<port-prompt> := <string>
<url-selector-name> := <string>
<url-selector-value> := <string>
<url-selector-prompt> := <string>
Appendix 2 -- Sample Virtual URA
Representation
A valid virtual representation of a Silk Tcl URA is presented below.
The actual URA from which it was drawn is given in Appendix 3.
{
{URAHDR
{name {DejaNews Search}}
{author {Leslie Daigle}}
{version {1.0}}
}
{ACTDATA
{name {Topic Keywords}}
Daigle, et. al. Experimental [Page 14]
RFC 2016 Uniform Resource Agents October 1996
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -