`International Bureau
`
`
`
`INTERNATIONAL APPLICATION PUBLISHED UNDER THE PATENT COOPERATION TREATY (PCT)
`
`(51) I“te1'“3fi°“31 Patent Classificatmll 6 3
`
`(11) International Publication Number:
`
`WO 96/38795
`
`G06F 17/30, 13/00, H04L 12/54
`
`_
`_
`_
`(43) International Publication Date:
`
`5 December 1996 (05.12.96)
`
`(21) International Application Number:
`
`(22) International Filing Date:
`
`PCT/US96/08017
`
`v
`30 May 1996 (30.05.96)
`
`(81) Designated States: AU, CA, CN, JP, MX, European patent
`(AT, BE, CH, DE, DK, ES, FI, FR, GB, GR, IE, IT, LU,
`MC, NL, PT, SE).
`
`(30) Priority Data:
`08/453,486
`
`—.
`30 May 1995 (3005.95)
`
`Published
`With international search report.
`
`US
`
`(71) Applicant: CORPORATION FOR NATIONAL RESEARCH
`INITIATIVES [US/US]; Suite 100, 1895 Preston White
`Drive, Reston, VA 22091-5434 (US).
`
`(72) Inventors: KAHN, Robert, E.; 909 Lynton Place, McLean,
`VA 22102 (US). CERF, Vinton, G.; 3614 Camelot Drive,
`Annandale, VA 22003 (US). ELY, David, K.; 3015 Miller
`Heights Road, Oakton, VA 22124 (US).
`
`(74) Agent: FEIGENBAUM, David, L.; Fish & Richardson P.C.,
`225 Franklin Street, Boston, MA 02110 (US).
`
`(54) Title: SYSTEM FOR DISTRIBUTED TASK EXECUTION
`
`(57) Abstract
`
`Tasks can be done on a network of mul-
`tiple Knowbot Service Station computers (56a,
`56b). At each of the computers (56a, 56b),
`Knowbot Programs (54a, 54b) may be received
`and transmitted on the communication links, and
`may be stored and created in the Knowbot Ser-
`vice Environment (50). Each Knowbot Program
`(54a, 54b) includes a globally unique identifier,
`navigation information defining a route through
`the network; and information concerning a task
`to be done. Knowbot Programs (54a, 54b) may
`interact with each other and other network re-
`sources through observing Knowbot Emissary
`rules and ossibl
`urchase or contract for oods
`and servicfes by iiigans of Knowbot chargf cur-
`rency. Self-authenticating Knowbot Service Sta-
`tions (56a, 56b, ...), in the Knowbot Framework
`(28), create and authenticate Knowbot Programs
`(54a, 54b), protect data as well as control its ap-
`plication in the network environment according
`to stated terms and conditions.
`
`.
`
`/523
`FUNCTION 52
`FUNCTION
`
`Ash
`PARTICWANT
`
`56eA
`PARHCWANT
`
`KNOWBOT SERVICE
`
`ENVIRONMENT 50
`
`PLAID 1019
`
`
`
`R(‘Kw*3
`
`FOR THE PURPOSES OF INFORMATION ONLY
`
`Codes used to identify States party to" the PC!‘ on the front pages of pamphlets publishing international
`applications under the PCI‘.
`
`AM
`AT
`AU
`BB
`BE
`BF
`BG
`BJ
`BR
`BY
`CA
`CF
`CG
`CH
`CI
`CM
`CN
`CS
`
`Armenia
`Austria
`Australia
`Barbados
`Belgium
`Burkina Faso
`Bulgaria
`Benin
`Brazil
`Belarus
`Canada
`Central African Republic
`Congo
`Switzerland
`Cote d'Ivoire
`Cameroon
`China
`Czechoslovakia
`Czech Republic
`Germany
`Denmark
`Estonia
`Spain
`Finland
`France
`Gabon
`
`United Kingdom
`Georgia
`Guinea
`Greece
`Hungary
`Ireland
`Italy
`Japan
`Kenya
`Kyrgystan
`Democratic People's Republic
`of Korea
`Republic of Korea
`Kazakhstan
`Liechtenstein
`Sri Lanka
`Liberia
`Lithuania
`Luxembourg
`Latvia
`Monaco
`Republic of Moldova
`Madagascar
`Mali
`Mongolia
`Mauritania
`
`Malawi
`Mexico
`Niger
`Netherlands
`Norway
`New Zealand
`Poland
`Portugal
`Romania
`Russian Federation
`Sudan
`Sweden
`Singapore
`Slovenia
`Slovakia
`Senegal
`Swaziland
`Chad
`Togo
`Tajikistan
`Trinidad and Tobago
`Ukraine
`Uganda
`United States of America
`Uzbekistan
`Viet Nam
`
`
`
`WO 96/38795'‘
`
`PCTIUS96/080 17
`
`SYSTEM FOR DISTRIBUTED TASK EXECUTION
`
`,
`
`This invention relates to distributed task
`
`execution.
`
`Glossary of Terms
`
`Below, for convenience, we set forth a short
`
`glossary of terms which supplement explanations of
`
`certain terms used in the main text.
`
`"Network" is set of computers and a communication
`
`1'0
`
`medium which interconnects them.
`
`"Network participant" is an entity that may
`
`require a task to be done and has access to a distributed
`
`network.
`
`15
`
`20
`
`25
`
`30
`
`"Packet" is an elemental container for carrying
`
`data inla distributed system; it typically includes
`
`addressing information used in routing.
`
`"Protocol" is a set of commonly agreed rules which
`
`define the structure, format, procedure and/or function
`
`that must be followed for elements of a distributed
`
`system to communicate with each other.
`
`"Resource" is information or a service accessible
`
`at a location in a distributed system.
`
`"Task" is something capable of being done using
`one or more resources.
`
`"Digital object" generally means sequences of
`
`digits (containing digital representations of virtually
`
`any kind of information)
`
`including an associated unique
`
`identifier, called its "handle."
`
`"Repository" is a resource that stores digital
`
`objects and makes them accessible over the network
`
`according to applicable terms and conditions.
`
`"Database" is an organized body of information
`
`structured so as to analyze queries and furnish replies.
`
`A digital object may itself contain a database or
`
`
`
`WO 96/38795
`
`PCT/US96/08017
`
`elements of a database.
`
`"Rights holder" is a person or entity which has
`
`legally enforceable "rights" in a digital object.
`
`"Distributed system" may include a Knowbot system,
`
`as well as components which are outside the Knowbot
`
`system, such as magnetic diskettes, optical disks, and
`
`other large scale storage media,
`representations of data on paper;
`
`including digital
`‘
`
`"Knowbot program" is an executable computer
`
`10
`
`program, which may be capable of moving from one location
`
`to another.
`
`It includes an "instruction sequence" which
`
`defines a series of steps to perform a task and also
`
`includes other data.
`
`"Courier" is used, on occasion,
`
`to refer to an
`
`15
`
`instance of a Knowbot program which is engaged in moving
`through a distributed system.
`I
`'
`
`"Knowbot system" is a system (including programs)
`
`for creating, storing, and moving Knowbot programs among
`
`computers, executing the programs, and moving to and
`
`20
`
`storing the results as needed at destination computers or
`
`the Network.
`
`"Knowbot service station" is software and/or
`
`hardware operating at a location on a network and capable
`
`of actions such as generating, storing, executing and
`
`25
`
`deleting Knowbot programs.
`
`"Knowbot service environment" is a medium for
`
`handling Knowbot programs and comprises a collection of
`
`Knowbot service stations.
`
`The Knowbot system provides
`
`the service environment.
`
`30
`
`"Knowbot framework" is a conceptual model which
`
`defines a currency (Knowbot programs) for task execution
`and a medium (Knowbot service environment) for handling
`
`the programs.
`
`"Notification authority" is a part of the Knowbot
`
`35
`
`service environment which stores information about
`
`
`
`wo 96/38795
`
`PCT/US96/080 17
`
`-3..
`
`operations performed by Knowbot programs.
`
`"Prospective Knowbot programs" are Knowbot
`
`programs received by a Knowbot service station from a
`
`source outside the Knowbot service environment.
`
`Introduction
`
`In the most basic sense,
`
`the invention concerns
`
`itself with a system (we call it the Knowbot® system) for
`
`creating, storing and moving programs among computers,
`
`executing the programs and moving to and storing the
`
`results as needed at destination computers.
`
`While most
`
`or all of the computers may be "online" and part of a
`
`general computer networking environment,
`
`the concepts
`
`apply also to offline movement of programs via other
`
`._media such as magnetic diskettes, optical disks, and
`
`other large scale storage media,
`
`including digital
`
`representations of data on paper (such as bar coding).
`
`the computers in the system need not be
`pMoreover,
`simultaneously connected in an underlying network at all
`
`times; this connectivity may come and go from time to
`
`time.
`
`The label "system" generally implies some
`
`systematic regularity in the way these programs are
`
`created and managed,
`
`the way they interact with each
`
`other,
`
`the way they interact with stored information, and
`
`the way they interact with external systems,
`
`including
`
`people and programs which are considered to exist outside
`
`the scope of the definition of the programs and computers
`
`which are part of the system.
`
`For purposes of explanation, we sometimes use the
`
`term "Knowbot® system" (Knowbot® is a registered
`
`trademark of the Corporation for National Research
`
`Intiatives) to refer to portions or all of the system.
`
`The Knowbot® system has well-defined boundaries which
`
`make it possible to distinguish the components that are
`
`part of the system from components which are outside of
`
`it and which interact with it only in ways defined by the
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`
`
`WO 96/38795
`
`PCT/US96/080 17
`
`-4-
`
`system. What is inside the Knowbot system and what is
`
`outside may together be called a distributed system.
`
`The
`
`parts which are considered inside the system interact
`
`with other parts only in prescribed ways.
`
`The rules
`
`which define proper behavior are,
`
`in effect,
`
`specifications which determine how a component can be
`
`created and can operate so as to always be considered a
`
`properly functioning component of the system.
`
`The Knowbot® system is largely a software system
`
`whose components are programs which operate in prescribed
`
`ways.
`
`Software operates in a computer-based (hardware)
`
`environment and often in association with software-based
`
`operating systems which are the basic programs that
`
`create, allocate and manage resources on the hardware.
`
`Underlying the basic design of the Knowbot® system is the
`
`assumption that the computers on which the system is
`
`operated have operating systems which provide functions
`
`needed by the Knowbot® system running "on top of" the
`
`operating systems. Any operating system would be
`
`suitable if it supports the embedding of the underlying
`
`computers in a data communications (networking)
`
`environment and is capable of "time-sharing" multiple
`
`programs running concurrently under the overall control
`
`of the operating system.
`
`In addition,
`
`the programs
`
`(called Knowbot programs) which are capable of moving
`
`between computers must contain sufficient information to
`
`allow them to begin or resume execution as intended and
`
`the computers must provide the necessary support
`
`environment such as interpreters, schedulers, and
`
`storage.
`
`The Knowbot® system may be implemented atop a
`
`wide variety of hardware and operating systems.
`
`It is also assumed that the computers that are
`
`part of the Knowbot® system are at least intermittently
`
`connected to a common communication network so that
`
`information can pass from one computer to another from
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`
`
`WO 96/38795
`
`PCTlUS96/080 17
`
`-5-
`
`time to time,
`
`in accordance with the rules of behavior of
`
`the Knowbot® system.
`
`The Knowbot® system links together into a common
`
`operating environment many diverse and distinct systems
`
`and resources and serves as an interconnection system
`
`between them.
`
`Information about one system or its
`
`resources may be communicated to another system via the
`intermediary mechanism,
`the Knowbot® system.
`
`The
`
`Knowbot® system may itself enable tasks to be carried out
`
`distinct from the systems and resources which
`
`participate.
`
`‘The Knowbot® system may also facilitate
`
`these participating systems and resources to carry out a
`
`given task.
`
`Below we discuss concepts which, when taken
`
`together, describe how a collection of software,
`
`hardware, and communication facilities can be organized
`
`to function as a Knowbot® system.
`
`Virtually all of the
`
`concepts are based on software artifacts behaving in
`
`accordance with a set of prescribed rules. These
`
`artifacts include "running programs" and also "digital
`
`objects" that are stored away in "repositories" for later
`
`access.
`
`The concepts of the invention generally are
`
`rooted in the definition and behavior of software
`
`artifacts rather than on the specifics of any particular
`
`hardware, communication network, or operating system.
`However, if desired, portions or all of the software
`
`could be replaced in certain instances with a system of
`
`integrated circuits (e.g., semiconductor chips) if and
`
`when the technology of very large scale integration
`
`10
`
`15
`
`20
`
`25
`
`30
`
`permits.
`
`Knowbot® programs are the basic software elements
`
`that execute in a given machine. An instance of a
`
`Knowbot® program is a Courier,
`
`the form taken by a
`
`Knowbot® program as it moves from one computer to another
`
`35
`
`within the system or when it interfaces with the external
`
`
`
`WO 96/38795
`
`PCTfUS96/080 17
`
`-6-
`
`world. Knowbot® programs can contain (carry)
`
`information
`
`(data) which can be made manifest in a variety of ways.
`
`Provision is made in the Knowbot® system for dealing with
`
`the arrival and departure of Knowbot® programs, for the
`
`exchange of information between Knowbot® programs and
`
`other Knowbot® programs, and for the interaction of
`
`Knowbot® programs with other parts of the Knowbot® system
`
`including information access subsystems called
`
`"repositories" and with external subsystems,
`
`including
`
`people, by means of visible, audible, or other palpable
`
`manifestations.
`
`An important characteristic of Knowbot® programs
`
`is their ability to protect data on behalf of rights
`
`holders, to control its application in accordance with
`
`stated terms and conditions and to interpret data,
`
`rendering it in multiple ways to be visible, audible or
`
`otherwise palpable and in such a way as to permit human
`
`interactions to influence the choice of renderings.
`
`Because the Knowbot® system has a software based
`
`open—architecture interconnection structure, it is useful
`
`to discuss, another highly successful software-based
`
`open-architecture interconnection system known as the
`
`Internet.
`
`The Internet is a rapidly growing, global
`
`"network of networks" which links millions of computers
`
`and tens of thousands of networks together.
`
`The Internet
`
`is realized through a set of minimum requirements for
`
`linking computers to each other by way of a "packet
`
`switching" environment and through observing certain
`
`format and procedural conventions ("protocols") that
`
`govern how and when and in what form information is
`
`exchanged among the computers which are part of the
`
`Internet.
`
`As seen in Fig. 1,
`
`the Internet 10 provides a
`
`communication framework 12 for computer users located
`
`essentially anywhere in the world. Any computer 14a may
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`
`
`WO 96/38795
`
`PCTIUS96/08017
`
`...7_
`
`send digital information to any other user 14b by
`
`observing a commonly understood packet protocol 16 and a
`
`commonly accepted addressing scheme 18.
`
`The packet
`
`protocol sets minimum rules for the structure and
`
`handling of packets which carry the digital information,
`
`including the address of the recipient.
`
`The addressing
`
`scheme sets minimal rules for addressing assignments
`
`including prevention of duplicate addresses.
`
`A computer
`
`that follows the packet protocol and the addressing
`
`scheme may be relatively confident that a packet will
`
`reach its destination and that the recipient will be able
`
`to access the digital information carried in it.
`
`On the
`
`other hand,
`
`the Internet framework makes essentially no
`
`attempt to define the physical hardware/software network
`
`components 20 that are used to format, transmit, receive,
`
`disassemble or assemble packets, and instead leaves those
`
`matters to users, groups of users, and vendors. This has
`
`resulted in an open, distributed market for
`
`implementation schemes and products.
`
`Because the hardware/software requirements of the
`
`packet protocol are minimal, and essentially any digital
`
`information may be carried in them,
`
`they provide a
`
`"currency" 22 for exchange of digital information across
`
`a distributed network, just as paper checks provide a
`
`legal tender for exchange of economic value.
`
`The
`
`_unambiguous addressing scheme and other aspects of the
`
`Internet framework in turn provide a universal medium 24
`
`for exchange of packets, just as the unambiguous transit
`
`codes of the Federal Reserve clearinghouse provide a
`
`universal medium for exchange of checks.
`
`But the
`
`Internet framework places no limits on the physical
`
`manner in which users may create, transmit, receive, and
`
`use packets, just as the clearinghouse system places no
`
`restrictions (provided paper size and other check
`
`protocol requirements are met) on how checks are created,
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`
`
`WO 96/38795
`
`PCTfUS96/08017
`
`-8..
`
`delivered, received, or used.
`
`The notion of disconnecting the medium and
`
`currency for exchange of digital information on a widely
`
`distributed network (i.e., the framework)
`
`from the
`
`physical implementation (suggested by the somewhat
`
`disjointed representations 12 and 20 on figure 1)
`
`is a
`
`powerful one and has led to the great success of the
`
`Internet, for it permits individuals and non—commercial
`
`and commercial enterprises to participate and benefit
`
`from the Internet without requiring central control of
`
`the implementation. At the same time the Internet
`
`community is constantly working to enhance and improve
`
`the principles embodied in the commonly accepted Internet
`
`framework. This is achieved through a decentralized
`
`process in which concepts may be generated from any
`
`source, tested, and if found broadly useful, ultimately
`
`become part of the accepted framework.
`
`In this context
`
`it is largely the quality of the proposed principles that
`
`generally governs whether they become part of the
`
`framework and are widely adopted.
`
`Another powerful feature of the Internet framework
`
`and the physical network on which it is implemented is
`
`its ability to coexist easily with other frameworks of
`
`communication and other physical networks.
`
`The Internet
`
`currently accommodates many different types of networks
`
`and communications media;
`
`in principle almost any network
`
`or communications media can become part of the Internet.
`
`Finally,
`
`the Internet framework is highly scalable
`
`10
`
`I5
`
`20
`
`25
`
`which has yielded a relatively easy expansion of the
`number of users worldwide.
`"'
`
`30
`
`Detailed Description
`
`As seen in Figure 2,
`
`in the invention, a new and
`
`more powerful framework (called a Knowbot framework 28)
`
`is created not merely for communicating digital
`
`35
`
`information (as in the case of the Internet framework),
`
`
`
`WO 96/38795
`
`PCTIUS96/080 17
`
`-9-
`
`but for having tasks done on behalf of network
`
`participants 30a, 30b using resources available on a
`
`distributed system 32 (e.g.,
`
`the Internet, or another
`
`network). Within the phrase "network participants" we~
`
`include any entity that may require a task to be done,
`
`including individuals with standalone personal computers
`
`and organizations, as well as computers and other
`
`hardware and software in the network.
`
`By "task" we mean
`
`anything that is capable of being done by resources on
`
`the network; tasks may have a wide range of complexity,
`
`and typically they involve more than merely a
`
`communication of digital information of the kind effected
`
`by delivery of a simple Internet packet containing the
`
`digital information;
`
`in particular,
`
`tasks often involve a
`
`process step to be taken at a location that is remote
`
`from the location of the entity that requires the task to
`
`be done.
`
`By "resources" we mean whatever is available on
`
`the-network that can contribute to the doing of a task;
`
`10
`
`15
`
`this could include computer software, stored digital
`
`20
`
`objects and a wide variety of services.
`
`The Knowbot framework defines both a "currency"
`
`for having tasks of any arbitrary complexity done, and a
`"medium" for handling the currency as part of getting the
`
`tasks done.
`
`The currency is called Knowbot programs.
`
`A
`
`Knowbot program is a mobile emissary of a network
`
`participant which assists in executing a task to be done
`
`on behalf of the participant. This task may be carried
`
`out locally in the user's system or it may involve
`
`interactions with other systems and resources at other
`
`locations both local and/or remote.
`
`The medium for
`
`handling Knowbot programs is called a distributed Knowbot
`
`service environment or simply the Knowbot service
`
`environment.
`
`The Knowbot service environment is
`
`distributed as a potentially endless number and variety
`
`of what we call Knowbot service stations (software and/or
`
`25
`
`30
`
`35
`
`
`
`WO 96/38795
`
`PCT/US96/08017
`
`-10-
`
`hardware) operating at places on the network.
`
`The
`
`stations may generate, store, execute and delete Knowbot
`
`programs and otherwise perform all allowed operations on
`
`Knowbot programs as determined by the Knowbot program
`
`itself or by users authorized to take or enable such
`actions.
`The Knowbot framework defines a minimal set of
`
`rules 38 for the structure of Knowbot programs (for
`
`example,
`
`the program must include some information
`
`related to the task to be done) and a minimal set of
`
`rules 40 for the functions to be performed within the
`
`Knowbot service environment (for example, that a typical
`
`Knowbot service station be able to create, send, receive,
`
`monitor, and delete Knowbot programs).
`
`Although we describe below some additional
`
`specific principles for Knowbot programs and the service
`
`environment,
`
`in general it is contemplated that
`
`enhancements to the Knowbot framework will be developed
`
`in a similar manner as for the Internet framework, that
`
`is by a combination of free market forces with respect to
`
`hardware and software implementations, and by an open
`
`standards development process within the Knowbot user
`
`community with respect to framework principles.
`
`Like the
`
`Internet framework,
`
`the Knowbot framework is meant to
`
`coexist freely with other techniques for doing tasks
`
`within a network and to be easily expandable.
`
`In general,
`
`in one aspect,
`
`the invention features
`
`enabling tasks to be done on a network of multiple
`
`computers interconnected by communication links.
`
`Some or
`
`all of these computers may also be internal to the
`
`network. We use the term Courier, on occasion, to refer
`
`to a Knowbot program that is being sent from one service
`
`station to another, or is being exported (in some
`
`fashion)
`
`from the environment. At each of the computers,
`
`Knowbot programs may be received and transmitted on the
`
`communication links, and may be stored and created; and
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`
`
`W0 96/38795
`
`PCTIUS96/080 17
`
`execution of the tasks associated with the Knowbot
`
`programs may be advanced.
`
`Each Knowbot program includes
`
`a globally unique identifier; navigation information that
`
`may define a route through the network (when applicable);
`
`and information concerning the task to be done.
`
`Knowbot
`
`programs which are clones of each other will use the same
`
`basic identifier with a version number or some other
`
`delimiter to distinguish among them.
`
`In general,
`
`in another aspect,
`
`the invention
`
`features enabling a computer on a network of multiple
`
`computers interconnected by communication links to
`
`participate in a distributed Knowbot service environment
`
`by the steps recited above.
`
`Implementations of the invention may include one
`
`or more of the following features.
`
`A participant at a computer (e.g., a person or a
`
`process or a Knowbot program running on the computer) may
`
`define the task to be executed.
`
`Information related to
`
`the defined task may be embedded in one of the Knowbot
`
`programs. Task information contained in Knowbot programs
`
`may be interpreted.
`
`The step of advancing the execution
`
`of tasks may include:
`
`creating additional Knowbot
`
`programs,
`
`interacting with other Knowbot programs,
`
`interacting with repositories of digital objects;
`
`querying a database of information; applying stored
`
`expert knowledge; protocol transformation; providing a
`
`directory service identifying other locations which
`
`provide services related to the task; making a security
`
`10
`
`15
`
`20
`
`25
`
`determination; providing a "what's new" service to
`identify newly available information; providing a
`
`30
`
`"clipping" service which extracts information; providing
`
`a version control service for managing versions of the
`
`Knowbot program; responding to actions of a user by
`
`obtaining execution of the task at another location
`
`35
`
`without necessarily indicating to the user that the
`
`
`
`WO 96/38795 “
`
`PCTIUS96/080 17
`
`-12-
`
`execution occurred at the other location; providing a
`
`method for determining the structure of a Knowbot program
`(e.g.,
`to determine if a digital object is contained in
`
`the Knowbot program and to access the element; creating a
`
`derivative work from an existing work; generating a
`Knowbot program that contains another Knowbot program, or
`
`a digital object, or other data; and passing a message.
`
`from a source Knowbot program to a target Knowbot program
`
`at a different location.
`
`The information concerning a task to be done may
`
`include interpretable or executable instructions.
`
`The
`
`Knowbot program may include data in the form of a digital
`
`object or a Knowbot program (a Knowbot program may itself
`
`be a digital object).
`
`The digital object may include
`
`protocol transformation information.
`
`in general,
`
`in another aspect,
`
`the invention
`
`features executing a local query of a remote database (or
`
`a remote knowledge-based system) via a communication
`
`channel of‘a network where the local query complies with
`
`a query protocol and the remote database is responsive to
`
`queries which comply with a database protocol.
`
`A Knowbot
`
`program is locally generated based on the local query and
`
`in compliance with a Knowbot program protocol.
`
`The
`
`10
`
`15
`
`20
`
`Knowbot program is sent to the remote database via the
`
`25
`
`communication channel of the network.
`
`At the remote
`
`database,
`
`the Knowbot program is serviced by querying the
`
`database in accordance with the database protocol.
`
`The
`
`results of the query are returned from the remote
`
`database within a return Knowbot program which complies
`
`30
`
`35
`
`with the Knowbot program protocol.
`
`Implementations of the invention may include one
`
`or more of the following features.
`
`The return Knowbot
`
`program may be received locally and results may be
`
`provided to a user based on the results contained within
`
`the return Knowbot program. Additional Knowbot programs
`
`
`
`WO 96/38795
`
`PCT/US96l08017
`
`may be generated which are based on the local query and
`
`comply with the Knowbot program protocol.
`
`Each of the
`
`additional Knowbot programs may work in parallel on a
`
`given database or repository or may be sent to another
`
`database.
`
`the
`At each of the other databases,
`corresponding Knowbot programs may be serviced by
`
`querying the other database.
`
`‘The results of the query
`
`from each of the other databases may be returned within a
`
`return Knowbot program which complies with the Knowbot
`
`program protocol.
`
`The results contained within the
`
`return Knowbot programs may be processed locally to '
`
`provide a consistent presentation to a user.
`
`The
`
`consistent presentation to the user may be updated as
`
`additional return Knowbot programs are received.
`
`The
`
`processing may include removing redundant information.
`
`The return Knowbot program may be a modified version of
`
`the original Knowbot program. Additional Knowbot programs
`may be generated locally and sent via communication
`
`channels of the network. Knowbot programs may be
`
`generated as well as received locally.
`
`The query protocol may include a displayable or
`
`machine interpretable form, obtained from another program
`
`or completed by a user.
`
`The Knowbot program protocol may
`
`differ from the query protocol and from the database
`
`protocol.
`
`The Knowbot program protocol may include the
`
`identity and syntax of an executable programming
`
`language.
`
`The Knowbot program may include an executable
`
`programming language entry and a navigational entry.
`
`The
`
`Knowbot program may reach the remote database site by
`
`navigating the network, and the navigational portion of
`
`the message may include information related to the
`
`navigating.
`
`The remote database site may send a status
`
`Knowbot program indicating the status of execution of the
`
`query in machine interpretable form and/or in natural
`
`language (e.g., English). At the remote database,
`
`the
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`
`
`WO 96/38795
`
`PCT/US96/080 17
`
`-14-
`
`Knowbot program may be stored during the querying of the
`
`database, and the querying of the database and the
`
`returning of the results may be controlled based on
`
`control information contained in the Knowbot program.
`
`A
`
`Knowbot service station may be used to create, send,
`
`receive, and delete Knowbot programs.
`
`At the remote
`
`database site, a Knowbot service station may be used to
`
`create, send, receive, control, process, and delete
`
`Knowbot programs.
`
`The remote database to which the
`
`10
`
`Knowbot program will be sent is determined locally and
`
`automatically based on the local query.
`
`Sending the
`
`Knowbot program may include conforming the Knowbot
`
`15
`
`20
`
`program to an electronic mail protocol or a file transfer
`
`Wprotocol or other communication method on the network.
`
`The Knowbot program protocol may include transformation
`
`information.
`
`The Knowbot programs may include authentication
`
`information; scheduling information; and terms and
`
`conditions'information.
`
`other advantages and features of the invention
`
`will become apparent from the following description and
`from the claims.
`
`Description
`
`Figure 1 is a block diagram of an Internet
`framework.
`
`25
`
`Figure 2 is a block diagram of a Knowbot
`
`framework.
`
`Figure 3 is a block diagram of a Knowbot service
`
`environment.
`
`Figures 4A and 4B are block diagrams of Knowbot
`
`service stations.
`
`Figure 5 is a block diagram of a transaction
`
`manager.
`
`’
`
`Figure 6 is a block diagram of a gateway.
`
`Figure 7 is a diagram of the contents of a Knowbot
`
`30
`
`35
`
`
`
`WO 96/38795"
`
`PCTIUS96/080 1 7
`
`-15-
`
`program.
`
`Figures 8 and 9 are block diagrams of serial and
`
`parallel search strategies.
`
`Figure 10 is a diagram of a Knowbot program.
`
`Figure 11 is a block diagram of a Knowbot service
`
`environment.
`
`'
`
`Figure 3 depicts the Knowbot service environment
`
`50 which provides an extremely wide variety of functions
`
`52a, 52b,
`
`... for handling Knowbot programs 54a, 54b,
`
`...
`
`10
`
`via an essentially unlimited number and variety of
`
`Knowbot service stations 56a, 56b,
`
`... each in the form
`
`of hardware and software running at a location on a
`
`distributed network. Examples of Knowbot service
`
`stations would include software running on an individual
`
`15
`
`user's PC or laptop (service station 56a) or on a
`
`repository or database server of a participant that is a
`
`supplier of digital objects (service station 56e), or on
`
`a smart card or other personal digital equipment or
`
`artifact, or on a telephone company central office switch
`
`20
`
`(service station 56b).
`
`As seen in Figure 11 some of the most basic
`
`functions to be provided by the Knowbot service
`
`environment include aggregation and presentation services
`
`170 which involve how information is collected and
`
`25
`
`30
`
`organized and presented to end user participants and how
`
`requests for tasks to be performed are elicited from end
`
`user participants 172; searching and consolidation
`
`services 174 which involve how queries are presented to
`
`repository participants 176 and other resources and how
`
`results are consolidated for presentation to these
`
`resources; and assurance/protection services 178 which
`
`validate the authenticity of Knowbot programs and Knowbot
`
`service stations and their performance, and that rights
`
`in digital objects will be effectively protected by these
`
`
`
`WO 96/38795
`
`PCTIUS96/08017
`
`programs and service stations in accordance with stated
`
`terms and conditions. These services are discussed in
`
`' more detail below.
`
`Knowbot Service Stations
`
`The Knowbot service station is analogous to an
`
`operating system but does not allow participants to
`
`create arbitrary programs and files or to run arbitrary
`programs, although it could allow selected users with
`
`special system status great flexibility to manage the
`
`10
`
`service station and to upgrade its performance.
`
`In
`
`general,
`
`the service station creates Knowbot programs in
`
`response to participant specifications and/or its own
`
`internal requirements. Prospective Knowbot programs may
`
`also arrive from external sources such as a user's PC
`
`15
`
`that is not also a service station and can be
`
`authenticated by a service station for use in the Knowbot
`
`environment. Prospective Knowbot programs may also
`
`arrive on external media such as CD-ROM.
`
`The service
`
`station also processes Knowbot programs received from
`
`other service stations, and stores and manages Knowbot
`
`programs within its own environment.
`
`As seen in Figure 4,
`
`the functions performed at
`
`each service station may generally fall into four major
`
`categories:
`
`i. basic administration 60 of Knowbot
`
`programs,
`
`include creating, sending, receiving,
`
`authenticating, executing, storing, monitoring and
`
`deleting them; ii. interaction 62 with a participant 63
`
`to aid the participant in defining tasks to be done and
`to provide the results of doing tasks in forms and at
`
`times that are useful; iii. interaction 64 with a
`
`participant which is serving as a resource 65 in getting
`
`a task