throbber
WORLD INTELLECl'UAL_ PROPERTY ORGANIZATION
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket