WO2002080062A1 - Method and system for information retrieval - Google Patents

Method and system for information retrieval Download PDF

Info

Publication number
WO2002080062A1
WO2002080062A1 PCT/IT2001/000159 IT0100159W WO02080062A1 WO 2002080062 A1 WO2002080062 A1 WO 2002080062A1 IT 0100159 W IT0100159 W IT 0100159W WO 02080062 A1 WO02080062 A1 WO 02080062A1
Authority
WO
WIPO (PCT)
Prior art keywords
agent
user
value
match
module
Prior art date
Application number
PCT/IT2001/000159
Other languages
French (fr)
Inventor
Guido Braccini
Salvatore Manzi
Original Assignee
Hi-Flier S.P.A.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hi-Flier S.P.A. filed Critical Hi-Flier S.P.A.
Priority to PCT/IT2001/000159 priority Critical patent/WO2002080062A1/en
Priority to EP01919771A priority patent/EP1346297A1/en
Publication of WO2002080062A1 publication Critical patent/WO2002080062A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions

Definitions

  • the present invention refers to a method of stored information retrieval through a single computer or distributed between more computers connected to a telecommunication network. In particular, this refers to meeting or "matching" services between the users that employ intelligent agents.
  • the term user means either a physical person or an informative system that operates in the environment of a matching service.
  • an intelligent agent or, more concise, an agent is a software entity, that is a computer program, which has the ability to move freely within a particular environment and the ability to make decisions simulating human behaviour in order to achieve the user's goal.
  • the agents to which the present invention refers operate with structured data, that is data that, unlike unstructured data, present a value and a label that explain the significance of the data.
  • agents have the following characteristics :
  • - Reactivity that is the characteristic to react to changes in the environment in which they operate
  • - Proactivity that is the characteristic to take initiative while interacting with the external environment
  • intelligent agents make them appear particularly interesting instruments to face problems regarding information retrieval and processing and, in particular, distributed information.
  • intelligent agents find favourable applications while retrieving and processing information on the INTERNET network, where the selection of information is more difficult because of the continuous increase in the quantity of information that is available on said network.
  • search engines employ (for example, available "on-line” on the INTERNET) or methods using "databases" or local storage systems.
  • Conventional search engines can operate with both unstructured data and structured data, while databases contain information stored in a structured way.
  • a user can insert key words corresponding with the appropriate web pages and the search engine, by means of a program named "spider", returns the user a list of links to web pages corresponding to the inserted key words.
  • a user can fill in suitable search forms selecting preferences and launch programs, for example, CGI (Common Gateway Interface) programs, which carry out queries in the database and return the searched information to the user.
  • CGI Common Gateway Interface
  • databases and on-line search engines produce an excessive number of results (for example, an excessive number of links) that only partly facilitates the operation of information retrieval;
  • the consumer and the provider are provided with a respective intelligent agent.
  • the intelligent agent associated with the consumer can create decision- making agents that go shopping and assist the consumer in buying products.
  • the intelligent agent associated with the provider can create agent-requests that quantify the request and the goal of a specific consumer.
  • the possibility to use several intelligent agents associated with one single provider and with one single consumer facilitates the retrieval and the exchange of market information and represents a support for electronic commerce.
  • Conventional methods do not allow the creation of services that enable users satisfaction for users that have requirements typical for a requesting user and requirements typical for an offering user at the same time.
  • a particular example of such services is that of meeting between people. In this case the first user looks for a second user that meets some requirements yet, at the same time, the meeting can only be considered concluded if that first user also meet the second user's requirements. Therefore, conventional methods show a lack of generality in the type of services to which they refer.
  • the object of the present invention is to propose a method for information retrieval employing intelligent agents that surpasses the limits of application described above with regard to the known techniques.
  • a part of the present invention is a computer program directly loadable into the central memory of a processing system and a system for the retrieval of information available from at least one computer.
  • FIG. 1 schematically shows a particular embodiment of a computer system for carrying out matches in accordance with the present invention
  • FIG. 2 schematically shows an example of hardware/software system architecture for information retrieval in accordance with the present invention and that can be implemented in the system in figure 1;
  • - figure 3 shows in more detail some modules contained in the system of figure 2;
  • - figure 4 shows some steps of an embodiment of a method according to the invention by means of a flow chart ;
  • - figure 5 schematically indicates the types of data managed by the system in figure 2;
  • FIG. 6 illustrates a particular structure of data of an agent in accordance with the present invention
  • - figure 7 represents the agent type datum
  • - figure 8 illustrates the data structure of a matching item
  • - figure 9 schematically illustrates an example structure of one of the features of a matching item in figure 8;
  • - figure 10 shows an example dialog box that can be used by an administrative user (henceforth called “system administrator” or simply “adminstrator” ) in order to carry out implicit coding in accordance with this invention;
  • - figure 11 shows a further dialog box that can be used by an administrator;
  • FIG. 12 illustrates the structure of a matching category data
  • - figure 13 shows a dialog box that represents the tree structure of the categories;
  • - figure 14 illustrates the structure of a comparison function that can be used according to the invention;
  • - figure 15 shows the data structure of a comparison rule
  • - figure 16 schematically shows a diagram representing an example of an agent's life cycle in accordance with this invention
  • - figure 17 shows a dialog box that can be used by the administrator to configure an agent's timing
  • - figure 18 schematically shows a flow chart related to the method in accordance with this invention
  • - figure 19 shows a dialog box that can be used by an administrator in order to carry out explicit coding.
  • the method in accordance with this invention allows the retrieval of an information in order to provide it to a first user, so as to satisfy a predetermined goal.
  • This information is selected from information stored in at least one computer and associated with one or more users .
  • information retrieval according to the goal can be defined as search for a meeting or "match" between the first user and a second user the information is associated with.
  • matching services to which the method of this invention apply are: financial services, wireless services, electronic commerce services, job search services, people meeting services, news services, booking services, resource allocation and search engine services.
  • a financial service can be defined as matching financial products with investors' profiles.
  • a wireless service can be defined as the search for services distributed by a wireless device (for example a mobile telephone) in accordance with the profile of user owning it.
  • Electronic commerce takes place in a "market" that is the environment in which sellers that offer products want to meet buyers that request products.
  • the requested match is that between companies that are looking for personnel and possible candidates, while in people meeting services both sides look for people's specific profiles.
  • news services interesting news are to be retrieved for the user and then made available to the user.
  • Booking services may concern hotels, shows etc. while resource allocation services allow the distribution, for example, of human resources to companies .
  • Search engine services aim at carrying out a match between key words and a structured representation of a digital document .
  • matching services to which we refer allow the matching between available information in at least one computer, that is stored in a database of a single computer and/or distributed into a telecommunications network.
  • matching system 100 that can be employed in this invention.
  • Matching system 100 comprises a telecommunication network 101 such as, for example, an INTERNET (INTERnational NETwork) network.
  • a telecommunication network 101 such as, for example, an INTERNET (INTERnational NETwork) network.
  • INTERNET INTERnational NETwork
  • INTERNET is a global network of computer systems with a decentralised structure.
  • INTERNET computer systems use a client/server architecture, in which a remote computer system (server) supplies a local computer system (client) with information and services.
  • server remote computer system
  • client local computer system
  • INTERNET considers various access protocols; in particular, the World Wide Web
  • WWW HyperText Markup Language
  • HTML HyperText Markup Language
  • telecommunications network 101 can also comprise "wireless" systems such as, for example those systems employing WAP technologies (Wireless Application Protocol), UMTS (Universal Mobile Telecommunication System) or any other technology that allows access to the INTERNET network, also by means of mobile telephones, handheld computers, or PDA (Personal Digital Assistant) , which hereafter will be synthetically referred to as “wireless technologies” .
  • WAP technologies Wireless Application Protocol
  • UMTS Universal Mobile Telecommunication System
  • PDA Personal Digital Assistant
  • matching system 100 comprises, in conjunction with the telecommunication network 101, a server computer system SI, a remote server computer system S2 and a plurality of client computer systems comprising two client computer systems CI and C2.
  • Server computer system SI can comprise various server computers intended for particular functions .
  • Matching system 100 can be used by a plurality of users Ui to which a first user Ul and a second user U2 belong .
  • first user Ul and second user U2 are respectively associated with client computer systems CI and C2, hereafter for conciseness named client systems CI and C2.
  • the other users of the plurality of users Ui can use the respective client systems or they can connect to network 101 by means of a wireless interface, for example, by means of a mobile telephone.
  • server computer system With reference to figure 1, server computer system
  • a processing unit PU controls the functioning of a computer server SI
  • a central memory 215, typically a DRAM (Dynamic Random Access Memory) is directly used by processing unit PU
  • a read only memory (ROM) 220 contains a base program for the bootstrap of the same computer system.
  • Client computer systems CI and C2 like personal computers, also comprise various peripheral units (not shown) .
  • peripheral units not shown
  • they comprise a mass memory consisting of a hard disk, a drive for optical discs
  • CD-ROM compact disc-read only memory
  • client computers CI and C2 comprise (not shown) a respective input unit consisting of a keyboard and a mouse, a respective output unit consisting of a monitor and a printer, and a MODEM ( "MOdulator DEModulator” ) for the connection to telecommunication network 101.
  • a respective input unit consisting of a keyboard and a mouse
  • a respective output unit consisting of a monitor and a printer
  • a MODEM "MOdulator DEModulator”
  • the method in accordance with this invention plans to associate an intelligent agent AGi, more concisely an agent AGi, with every user Ui.
  • the goal of each agent is to carry out a match with another agent in accordance with a predetermined goal .
  • an agent besides the characteristics previously defined (autonomy, reactivity, proactivity and social abilities) can, optionally, be created in such a way that it presents the following optional characteristics:
  • each server system SI and S2 represents a platform for intelligent agents, that is an environment in which intelligent agents can operate.
  • the intelligent agents are of a mobile type, they can move from one environment to another, and therefore the server systems SI and S2 connected through network 101 represent a peer-to-peer network for the agents. It is worth noting that in such a case, the software related to an intelligent agent is implemented with a code that is not intended to operate or run only in one computer (for example, one of the servers) , but it is able to move from one server system to another and operate also when the server system of departure is disconnected. However, the findings of this invention are applicable both to mobile intelligent agents and to intelligent agents that do not have this characteristic.
  • Agent AGi during its "life cycle", can change state, taking on from time to time one of the defined states.
  • FIG 2 an embodiment of a system 200 for information retrieval in accordance with the present invention is shown.
  • system 200 is suitable for being implemented in matching system 100 as described above.
  • This system 200 operates by means of the search of matches between intelligent agents. That is, it provides a matching service between users Ui by looking for a match between agents AGi associated with these users .
  • System 200 is represented in figure 2 by means of functional blocks that can be interpreted at the same time as the hardware components of one or more processing systems or as their software modules.
  • the software corresponding to system 200 can be loaded into central memory 215 of server computer system SI described with reference to figure 1.
  • System 200 comprises a main unit made up of a matching engine module ME (henceforth engine module ME) and a plurality of subsystems and sub-modules to which it is connected.
  • the plurality of sub-modules is subdivided into a plurality of server sub-modules, a plurality of client sub-modules and a plurality of peer sub-modules according to the type of relation existing between it and engine module ME.
  • the plurality of client sub-modules comprises a management module EMM of engine module ME and an optional affiliation tool TM that allows the insertion of intelligent agents from an external database.
  • the plurality of server sub-modules comprises a database or local storage system LDB, an optional external database EDB (connected to the engine module ME by means of a connection module EDBC) , a notification manager module NM in its turn connected to a plurality of server communication modules, intended for communicating the matching results of their respective agents to the users by means of any channel of communication.
  • this plurality of communication modules comprises a module MM for the management of electronic mail, a module SMSM for the management of SMS messages (Short Message Service) , a module VMM for the management of voice mail .
  • the notification manager module NM is also connected to logging module LM.
  • the plurality of peer sub-modules can comprise one or more remote engine modules RMEs, analogous to engine module ME and a user interface module IUM connected to a graphical interface module GIM for web systems and a wireless system interface module IWM.
  • connection lines 201 that present a single arrow set on an end indicate that between the two connected modules there is a “client to server” relationship, corresponding to which the arrow is placed in the end near the server module.
  • those lines 201 having arrows at both ends indicate that the two connected modules constitute two peer units, a "peer to peer” relation.
  • the engine module ME and the remote engine module RME communicate with each other, forming a peer connection. This allows the engine module ME to extend the environment in which agents operate also with remote engine modules RME, creating in this way the same functionality of agents which have the optional characteristic of mobility defined above.
  • Engine module ME principally has the function to manage the life of intelligent agents AGi, receiving commands that it redistributes to these agents .
  • This engine module ME from a hardware point of view, can be implemented with processing means, that is processing unit PU of server system SI in figure 1.
  • engine module ME manages messages transmitted or received to/from other modules to which it is connected and searches for a match between one agent and another.
  • this engine module ME can be implemented as a C++ object.
  • engine module ME can take on both a server or a client mode according to the other modules to which it is connected, or it can have a peer to peer relation with them.
  • all the commands received in the server mode and sent in the client mode and all the replies received in the server mode and sent in the client mode are XML messages (extensible Markup
  • Management module EMM is an administration tool of system 200 and allows the administrator to configure system 200 before the end-users use it and it allows the examination and monitoring of system 200 while it is running. In particular, management module EMM allows the configuration of an agent structure.
  • affiliation tool module TM allows to create agents in a systematic way on the basis of appropriate tables containing information concerning the agents and stored in an external database.
  • the agents created in this way can be launched in batch mode in order to carry out a match.
  • Local database LDB is an example of storage means in which, among other things, all data related to the users using matching system 200 and all data that allow the definition of intelligent agents associated with these users can be stored.
  • External databases EDB can store data related to users, however structured in a different way from the local database LDB for which engine module ME is configured.
  • Connection module EDBC created, for example, with a commercially available data mapping module allows to carry out the mapping of data by converting their structure into a structure which is compatible with engine module ME.
  • User interface module IUM is a module that can carry out both the server and the client mode and serves to interface engine module ME with a user, understood either as a person (customisation function) or as a data source of a information system (integration function) .
  • this module IUM can send commands to engine module ME calling functions belonging to an appropriate API (Application Programming Interface) library.
  • API Application Programming Interface
  • User interface module IUM also shows a server behaviour, making specific functions available for other modules. The most important functions are the ones destined by engine module ME to synchronise (i.e. update) agents' structured data, which are present both in module IUM and in module ME and that are updated first in module ME and subsequently in module IUM.
  • user interface module IUM provides an interface with users who use web-based systems and/or wireless systems.
  • the user has an interface program at his/her disposal, both in the browser of the computer and in the microbrowser of a wireless device, with which he/she carries out the operation of agent browsing and insertion, and the visualisation of the matching results of his/her agent.
  • HTML pages or WML pages (Wireless Markup Language) - or other forms of graphical interfaces - visible to the user can dynamically be generated in all or in part from information taken from engine module ME with or without the help of API library functions.
  • FIG 3 shows the place of the API and the proprietary tags in the architecture.
  • engine module ME connected to local database LDB, communicates with module API, containing the API functions, by means of XML messages.
  • Module API can be replicated in management module EMM and in affiliation tool module TM in order to allow their communication with engine module ME.
  • Management module EMM is equipped with graphical interface module GUI-A for the administrator.
  • IUM user interface model
  • ISM interface module
  • User interface module IUM communicates with graphical interface module GIM (for web systems and an interface module with wireless systems IWM.
  • User interface module ISM with an information system type user, also communicates with a platform SPP, which represents the information system to which the functionalities of this invention are added.
  • This module ISM is, for example, implemented in Java.
  • tag library LTG which, as mentioned above, allows the construction of user interface module IUM by means of the definition of propriety tags.
  • notification manager module NM is a server that allows the sending of notification messages of match occurrances to a user. Such messages can be sent through what ever communication channel preferred (for example, by means of electronic mail, SMS messages or voice mail) . Therefore notification manager module NM collaborates with the corresponding server module of the specific communication channel used; for example, module MM for the management of electronic mail, module SMSM for the management of SMS messages or module VMM for the management of voice mail.
  • Logging module LM allows to log information concerning all actions undertaken by engine module ME and by notification manager module NM in a local database . By means of engine module ME management module EMM can access the logging module with the aim of monitoring the history of actions and other state parameters of module ME.
  • Remote engine module REM can be, for example, implemented in remote server system S2 of figure 1 while the other modules of figure 2 can be implemented in server system SI. Users Ui can connect to server system SI by means of client systems CI and C2 or by means of wireless devices.
  • the method in accordance with this invention associates an agent AGi with each user Ui .
  • agent AGi For example, let us consider the case in which user Ul is associated with agent AGl and user U2 is associated with agent AG2.
  • the required match is to achieve a predefined goal that takes the needs of the first user, Ul, and of the second user, U2, into account.
  • the method contains a data inserting step INSER-DATA according to which a first value R-1 requested by user Ul and a first value 0-1 offered by user Ul are associated with agent AGl.
  • a second value R-2 requested by user U2 and a second value 0-2 offered by user U2 are associated with at least agent AG2. This kind of association can be carried out for a part of or for all agents AGi that have been taken into consideration.
  • match searching step ELAB-MATCH comprising the processing of the values associated with first agent AGl and second agent AG2.
  • This match searching step ELAB- MATCH can be repeated for each agent AGi .
  • Such processing provides an affinity indicator between first agent AGl and second agent AG2, corresponding to the goal of matching.
  • processing comprised in step ELAB-MATCH provides a real number relating to the satisfaction of both users Ul and U2 and resulting from the match between agents AGl and AG2.
  • the method comprises a notification step
  • NOTFYCATION according to which one of the users Ul, U2 or both of them are notified of the match and are provided with the searched information.
  • the method finishes with final step ENDM.
  • system 200 can be seen as an environment containing a set of categories S-C, of agent types S-AGT, of matching items S-MI, of features S-F, of data types S-DT, of comparison functions S-CF, of comparison rules S-CR and of agents S-AG.
  • agent AGi can be seen as a plurality of feature/value (s) pairs that form an unordered list.
  • the structure of an agent AGi can be subdivided into system features SYF and matching item features MIF.
  • a set of features MIF and a set of agent types AGT is meant with the term matching item MI.
  • matching feature MI can be a product, for example, a chair, and two possible matching item features MIF could be the colour and the price of the chair.
  • agent types AGT are a Seller agent and a Buyer agent .
  • agent type AGT is a representation of name NME of the agent type, for example Seller, Intermediary, Buyer, Person.
  • the administrator can choose which pair of agent types, in the set of agent types S-AGT, is to be enabled for matching a specific matching item MI. For example, in the case of electronic commerce, it is possible to decide that a Buyer agent and an Intermediary agent can be authorised to make a match on a product, while it can also be decided that such a match will not be allowed for a Seller agent and a Buyer agent.
  • FIG 8 illustrates the data structure of a matching item MI comprising a name MI-N, a set of matching item features S-MIF and the set of agent types S-AGT.
  • a flag FLGji whose value indicates the possibility or the impossibility (enabling/disabling) of carrying out a match between agent types AGTj and AGTi. For example, when the flag is set to 1, the matching is allowed while when the flag is set to 0, matching is not allowed.
  • system features SYF are shared by every agent AGi and are: start date SD; end date ED; agent type reference AGT-R; user reference U-R, matching item reference MI-R.
  • Start date SD represents the date of birth of agent AGi, that is to say that this agent is enabled for matching only after this date.
  • agent AGi is "locked" (locked state) .
  • End date ED represents the date beginning from which agent AGi is considered to be in a "dead state" , that is, after that date agent AGi can not carry out a match anymore.
  • Agent type reference AGT-R will have a value that can be selected from a list of agent types associated with matching item MI.
  • the features concerning a product can be associated with a Buyer agent or a Seller agent, or when the matching service concerns people meeting, the corresponding agents are Person agents.
  • User reference U-R is a datum that points to user Ui with which agent AGi is associated and it points to the user's personal data.
  • Matching item reference MI-R is a datum that points to matching item features MIF.
  • Matching item features MIF can vary from agent to agent .
  • a set of agents is typically sectioned in such a way that agents of the same section point to the same matching item.
  • Matching features MF unlike those of an auxiliary type AF, are directly involved in processing carried out for matching search.
  • requested values R are used in the processing related to the matching search.
  • Generic requested value Rj is a value that can be interpreted from a logical point of view as a search request of a complementary offer.
  • the generic offered value Oj is a value that can be interpreted as an offer for which a complementary request is searched. In the case in which the matching feature is interpreted as both a request and as an offer or as neither of them, the value of offered value Oj is equal to the requested value Rj and this value is defined as "neutral" .
  • User preference UPj is a number, for example an integer within the interval [0,100] that the user can associate with requested value Rj of a matching feature MFj .
  • User preference UPj represents the level of dissatisfaction of user Ul associated with agent AGl when the distance between requested value Rl and offered value 02 of agent AG2 increases. In particular, it can decided that the greater is user preference Upj the higher is the user's level of dissatisfaction.
  • each auxiliary feature AFj and each matching feature MFj comprise a plurality of components.
  • the components of a matching feature MFj are: name N, data type DT, indicator of auxiliary flag AF.
  • different components are defined: request visibility VIS-R and offer visibility VIS-O, neutral visibility VIS-N, mandatory request MA-R and mandatory offer MA-O, neutral obligatoriness MA-N, a priori preference APP and can- state preference CAP.
  • figure 9 refers to to a number equal to "s" of pairs MI-R and AGT-R.
  • Name N is a component that allows to point to features; for example, an offered feature could have a name like colour, age, sex etc.
  • Visibility is a component that can take on a Boolean value (0 o 1). For example, when the visibility is set to 1, it means that the corresponding feature is visible for the user by means of an appropriate interface, when the user creates his/her agent him/herself, while in the case of a visibility set to 0, the feature is not visible.
  • Request visibility VIS-R allows the user to insert
  • the interface that allows the user to insert the feature value consists of a graphical control, for example, a text box.
  • Neutral visibility VIS-N indicates that a unique graphical control must be visible to allow to insert a value, which is logically interpretable both as an offer and as a request.
  • feature "age” can alternatively be:
  • this interface will be different according to these two data structures. For example, in the case of electronic commerce, we will have two different graphical interfaces for two different products (a product is a matching item) and, having the same product , a different interface for the launch of Buyer agents and Seller Agents .
  • the obligatoriness component (MA-R, MA-O, MA-N) can take on a Boolean value (0 or 1) and when it is set to value 1, it means that the feature, made visible in the way described above, must be filled by the user, while when it is set to 0, the corresponding feature is not mandatory for the user.
  • a priori preference APP is a component expressed by means of a number, for example, an integer within an interval [0,100] that the system administrator can associate with request value R of a matching feature MF.
  • a priori preference APP has a meaning which is analogous to that of user preference UP above defined, yet it is not predetermined by the user, but it is inserted by the administrator.
  • a priori preference APP is combined with user preference UP above described according to the modes that are described further on.
  • Can-have preference CAP can take on a Boolean value (0 or 1) and, when it is set to 1, it means that the user can set user preference feature UP when he or she creates agent AGi, while this feature UP can not be set if can-have preference CAP equals 0.
  • Auxiliary feature flag (AF) can take on Boolean values 0 or 1. When it is set to value 1, components APP and CAP lose significance, while visibility and obligatoriness are not expressed in components VIS-R, VIS-O, VIS-N e MA-R, MA-O, MA-N anymore, but they respectively consist only of a component that indicates visibility and the obligatoriness of the auxiliary features. For example, in figure 9 the meaning of the individual flags can respectively be taken on by VIS-O and MA-O. If the component AF is equal to 0, the feature MFj is a matching feature in the sense described above.
  • Data type DT is a component of matching feature MFj that associates with a matching item feature MIF a domain or a number of values that matching item feature MIF can take on both in request and in offer. Data type DT differs because of the type of inserted values related to that feature.
  • the user can insert only one value or a list of k values
  • the value can be chosen in a set of predefined values F or in an infinite set I;
  • the value can be a number N or a string S .
  • possible DT data types which are determined according to the three cases described above, are defined and listed.
  • the data type is a Set of Predefined Strings.
  • the set of Predefined Strings "C” , "C++” is an example of this data type.
  • An example of a Set of Predefined Numbers is the datum: 39,40,42.
  • An example of Single Predefined String is the string "foo" .
  • the other data types of Table 1 are clear because of their name and corresponding definitions.
  • vectors of real numbers can be associated with the same number of values of data types Single Predefined String and Set of Predefined Strings through a coding operation.
  • Each vector component is associated with a numerical sub-feature.
  • the data type Single Predefined String and Set of Strings are further divided into Coded and Uncoded.
  • coded the calculation of the semantic distance is traced back to a vector distance.
  • Predefined Uncoded String or from a Set of Predefined Uncoded Strings associates a Single Predefined Coded String or a Set of Predefined Coded Strings respectively, can occur according to an explicit or an implicit method.
  • Table 2 shows an example of explicit coding for a feature "sport", where a vector with sub-features, that can assume the value 0 or 1 depending on the sub- feature, is associated with each string representing a sport .
  • the administrator can open a window in which the string values are represented as icons displayed on the window area.
  • the system administrator can drag these icons, placing them at a relative distance which represents the semantic distance of these values.
  • the two-dimensional coordinates of these points are the values of the sub- features composing the vector.
  • Figure 10 shows an example of COD-WINDW dialog box which can be used by the administrator to carry out the implicit coding in the aforementioned case.
  • Figure 10 four squares concerning the four job positions CEO, COO, CTO, CIO are illustrated and a cursor 300 is shown, using which it is possible to drag each square to a position considered representative of the semantic distance separating a job position from the others.
  • Implicit coding is especially useful when an explicit coding is difficult to carry out. Moreover it enables the integration with natural language processing systems which have two-dimensional maps of words as output.
  • the window of figure 10 comprises also an OK button to confirm, a Cane button to delete, and a conventional button 400 to close the window itself.
  • Another data type which can be used to process strings is the one in which the administrator directly provides a measure of the distance for every string pair filling a square matrix whose rows and columns correspond to the strings. It is a valid method for the distances among towns, for example, and for the integration with natural language processing systems, which have the distance among string pairs as output.
  • This data type will be named "Single Predefined Related String” and "Set of Predefined Related Strings” .
  • Figure 11 shows a window available to the administrator to create this data type on a display, such as a monitor (not shown) of a computer used by the administrator.
  • the window of figure 11 shows a square matrix on whose rows and columns the following strings, indicating different company departments, are shown: Wireless Infrastructure, "Wirelss-Infrastrcut” ; Hardware and Software, “HW and SW” ; consulting, “Consultng” ; Application Service Provider, “Appl-Servce-Provd” ; Wireless Telecommunications "Wirelss-Telcommn” .
  • the value of the semantic distance between the compared departments is shown by the intersecting matrix cells.
  • the matching items (made up of an unordered list containing the matching item features MIF) are advantageously grouped in categories and sub- categories according to the sector the matching refers to.
  • the category CATRY can be seen as comprising a name of CAT-N category, a set of references to sub-categories or other categories S-C and the set of references to the matching items S-MI.
  • the grouping into categories and sub- categories presents a tree structure.
  • this tree structure is analogous to that used in the representation of icons of folders (directories) in the GUI of operating systems such as Windows.
  • figure 13 illustrates a structure management window STRUCT-MNG visible to the administrator.
  • This window shows a meeting category MEET and a category "e-commerce” .
  • the e-commerce category does not contain any sub-categories but contains the matching items Computer, "CDs", “Book”.
  • the Book matching item contains the features "Price”, “Language”, “Title” , "Author” .
  • the window of figure 13 presents a CREAT-CATRY button for the creation of categories, a CREAT-MI button for the creation of matching items, an ADD-FEAT button for the addition of features. The selection of these buttons allows the administrator to create a category, a matching item or a feature respectively.
  • the window of figure 13 comprises conventional buttons 400.
  • the processing step ELAB-MATC comprises the processing of the values associated with the agents Agi according to comparison functions CF, described below.
  • a comparison function CF has a name CF-N and operates on two arguments which are of two equal or different data types.
  • the comparison function operates on an offered value O of a first agent together with a requested value R of a second agent and gives a real number as result.
  • This result shows how much the offered value O complies with the request R. For example it can be said that the user's satisfaction associated with the agent is greater if the real number resulting from the comparison function CF is lower.
  • the matching will occur in relation to an agent for which the comparison function result is null.
  • Comparison functions are subdivided into comparison functions with homogeneous features and comparison functions with heterogeneous features according to whether they operate on requested values R and offered values O belonging to equal features of the same matching item (homogeneous features) or different features of two different matching items (heterogeneous features) .
  • the comparison functions with homogeneous features can be of different types according to the data type they apply to. Some examples of comparison functions which can be selected for some data types are given below. In the case of Single Predefined Numbers or of Single Numbers, the comparison functions can be:
  • f (R,0) abs (R-O) /max(R,0) ;
  • f (R,0) l-number of common characters between R e O /max (number of common characters of R, number of characters of O)
  • f (R,0) number of elements common to R and 0 can be used.
  • the heterogeneous features are used to compare two different features of the same matching item or of two different matching items. An example could be where the requested value R is of a feature of type "Single Number" and the offered value O is a value of a feature with "Single Predefined Coded string" data type.
  • comparison rule CR presents a data structure shown by way of example in figure 15. According to this comparison rule CR the agents referring to the agent type Agtl and the matching item Mil are enabled for matching with the agents of the type AGT2 and of the matching item MI2, using the comparison function CF* to compare the matching item features of the matching items MF1 and MF2.
  • comparison function CF is homogeneous, that is the values of the two arguments refer to the same feature of the same matching item.
  • the information associated with a user Ui can be sent to the local database LDB by the user through the user interface IUM.
  • the data structure configuration described above can be carried out by means of the management module EMM.
  • EMM management module
  • a bank manager will define the most suitable data structure for the specific context.
  • management module EMM allows the following operation.
  • agent types for example Buyer, Seller
  • the ME engine module When the ME engine module operates in the client mode, it sends commands to the appropriate sub-modules.
  • the sent commands are: logging commands through which information is sent to the logging module LM and a Notification Command of an Up-to-date Configuration through which an up-to-date configuration is sent to the user interface module IUM.
  • the engine module ME waits for multiple commands when it operates in server mode.
  • these multiple commands comprise: - Agent commands, which refer to an agent life cycle and comprise the following commands: insert, INS-AG/ update, UPD-AG/ delete, KIL-AG / "execute matching", MACH / lock, LCK-AG/ unlock, ULCK-AG.
  • Agent commands refer to an agent life cycle and comprise the following commands: insert, INS-AG/ update, UPD-AG/ delete, KIL-AG / "execute matching", MACH / lock, LCK-AG/ unlock, ULCK-AG.
  • Agent commands which refer to an agent life cycle and comprise the following commands: insert, INS-AG/ update, UPD-AG/ delete, KIL-AG / "execute matching", MACH / lock, LCK-AG/ unlock, ULCK-AG.
  • - Feedback Command which notifies the engine module ME of the preference of a user as regards the occurrence and notification of a match.
  • - Structure Commands which refer to operations to perform on categories, sub-categories, matching items and features and they are: insert/update/delete; - Track Commands, through these commands some values of system parameters are queried, for example, the number of the agents present in the engine ME at that moment ;
  • Synchronization Commands through these commands the engine module ME is asked for the category structure, matching items, features etc.
  • the management module EMM can send this command to ask for the structure and modify it .
  • Figure 16 shows a diagram representing an example of the life cycle of an agent AGi managed by the engine module ME.
  • the life cycle shown in figure 16 includes the four states defined above, that is sleeping SLP, active ACT, locked LCK and dead state, DED.
  • the agent AGi is inserted by means of the "insert agent” command INS-AG which moves the agent to the sleeping state SLE.
  • the command "execute the matching" MACH the agent passes to the active state
  • the matching mode is defined synchronous, whereas the mode is defined asynchronous if this command MACH is given after a certain time interval from the command INS-AG.
  • the asynchronous mode incorporates a further configuration of the timing with which the command to execute the matching must be launched and of the modes with which the notification must occur.
  • NOTFYCATION step occurs refer to which of the two users of the two agents the notification of the occurred meeting must be sent to, where the closeness of the agents triggers the notification, the maximum number of matches that can be notified etc.
  • FIG 17 showing a window AG-TIMNG-CONF visible to the administrator to configure the timing of two types of agents AGT, made up of a buyer agent BUYR and a seller agent SELLR.
  • This window contains a check-box of each of the two names of the agents BUYR and SELLR which establishes that the agent must operate in synchronous or asynchronous mode. This check-box allows to establish if the respective agent must operate in a synchronous or asynchronous mode.
  • the asynchronous mode allows, through a text-box representing the length of the timer TMR, to fix an interval and when this time is up the matching is repeated.
  • the agent SELLR will operate in an asynchronous mode and it will execute the matching every hour.
  • a combo-box POLCY allows to determine the policy of the respective agent. For example, three types of agent policy can be determined. In the first case, “notify best” , the end of the agent life cycle is waited for and afterwards the notification of the best matches occurs. In the second case, “notify first”, only the best matches are notified and afterwards the agent passes to the dead state. In the third case, "notify all", every executed match is notified from time to time.
  • a combo-box NOTFYN it is decided how the match will be notified.
  • a text-box RNK the rank or minimum acceptable rank for a match, that is the minimum value of the rank under which the corresponding match is not notified.
  • the rank is a number that represents a satisfaction indicator resulting from the match.
  • a text-box MTCH and a text-box NTFY the maximum number of the matches which can be carried out for each matching request and the maximum number of matches that can be notified altogether are respectively fixed.
  • the window of figure 17 presents a finish button FINSH and a deletion button CANC.
  • the passage from the sleeping state SLE to the active state ACT can also be caused by an awakening command AWK arising from a matching search carried out by another agent. If a match has occurred, the agent Agi is moved back to the sleeping state SLE after the engine module ME has received a feedback command ENDMACH signalling that the match has occurred.
  • the agent AGi can pass to locked state LCK and from this to sleeping state SLP or to the dead one DED by means of locking commands LCK-AG, unlocking ULCK- AG, and agent "killing" KIL-AG.
  • Dead state DED can be reached starting from locked state LCK, from the active one ACT and from the sleeping one SLE, and also through killing command KIL-AG, beside by means of an expiry command EXP that is activated when the current date of the agent AGi equals the end date ED associated with the agent, described before with reference to figure 6.
  • an "external" state may be considered. This represents an agent implemented on a remote engine module, that is the module RME of figure 2. However, this agent which is not enabled for the match at observation time T is seen by the engine module ME as though it were in the sleeping state SLE or in the locked state LCK.
  • step INSER-DATA of figure 4 A situation, in which the configuration of the agents AGi has already been carried out according to procedures analogous to those described above (step INSER-DATA of figure 4) , will be taken into consideration.
  • one or more matching features MF are associated with each agent and these features contain a requested value R and an offered value O, as shown in figured 6.
  • Figure 18 shows the steps of the matching search in the form of a flow chart.
  • the method includes an INSER- AG step where all the agent AGi data are inserted.
  • the agent AGi is set to state SLP.
  • This step also comprises the sending of the command "insert agent" INS-AG to engine module ME.
  • the insertion of the agent AGi can be carried out by a user, a physical person, or by a program taking information from a source and inserting them in system 200 automatically.
  • the method continues with a step INV-MACH in which the execute matching command MACH is sent to the engine module ME of the system 200.
  • this command MACH is sent by the user interface module IUM which has converted a message coming from the user Ul who has requested, through his/her client system, the beginning of a matching search for the agent AGl associated with him/her.
  • the command MACH besides referring to the agent AGl, contains a field indicating the maximum number of matches K which are requested. It means that inside a number of agents, at most K agents are sought, so that they can "match" the agent AGl .
  • Step INV-MACH is followed by a selection step SELCT according to which those agents AGel eligible for the match with AGl are selected.
  • agents AGel are the agents for which the match with AGl does not correspond to a complete dissatisfaction neither of the user associated with AGl nor of any users associated with the corresponding Agel. After this selection the matching search continues only with reference to the selected eligible agents.
  • AG2 indicates a generically eligible agent associated with a generic user U2.
  • the engine module ME After selection step SELCT, the engine module ME carries out the first processing ELAB1.
  • the result Yj ⁇ ,j 2 of each of these comparison functions CF j! , j2 represents a first partial indication of the complementarity or affinity existing between the agent AGl and the agent AG2.
  • Each result Yj 2 ,ji of each comparison function CFj 2 ,ji represents a second partial indication of the complementarity or affinity existing between the agent AGl and the agent AG2.
  • the engine module ME executes a final processing ENDELAB on these results Yji,j 2 and Yj 2 ,ji, applying the function F(Yj l ⁇ j 2 #Yj2.ji) .
  • this final processing ENDELAB gives as a result a rank RK which represents a final indication of the affinity between agent AGl and the specific agent AG2.
  • the rank RK is calculated on the basis of the results Yji,j 2 and Yj 2 ,ji, taking other parameters into account also, that is a priori preference APP and/or user preference Upj associated with each matching feature MFi and MF j2 of AGl and AG2.
  • the rank RK can be a number between 0 and 1 inclusive, where 1 stands for a perfect affinity, that is a perfect match.
  • the first K that is the K agents AG2 having a higher rank, will be chosen during a choice step CHOS-AG.
  • a feedback step FED-BAK may occur in a step following the notification step NOTFY-US.
  • the user Ul sends to system 200 information representing the level of satisfaction of the user Ul resulting from the notified matches.
  • This message may contain the reasons why a specific match has been considered such as to satisfy the user and/or the reason why it has been considered more or less satisfying than another match.
  • the semantic blocks "very similar”, “similar”, “far”, “very far” are associated respectively with the value intervals of a comparison function CF 0.00 - 0.25; 0.25 - 0.50; 0.50 - 0.75 and 0.75 - 1.00.
  • the message which has to be notified can be produced automatically by scanning the values resulting from the comparison functions CF and by sending the user the semantic block in natural language associated with the specific interval.
  • the scan can occur in decreasing order according to the user preference Upj , where the user preferences Upj are associated with the requested values R the comparison functions are applied to.
  • the method ends with a final step ENDF. It is worth noting that thanks to the fact that both a requested value and an offered value are associated with each agent it is possible to apply a comparison function in a "crossed" way, for example, as described with reference to the steps ELAB1 and ELAB2, so that the level of satisfaction of both the agents involved in the match can be estimated.
  • the first agent Aga is defined according to the table 4.
  • the second agent Agb is defined as it is showed in table 5.
  • Figure 19 shows a window of EXPL-COD the administrator can use to carry out the explicit coding.
  • the vector values for each interest are reported: Show (SPECT), Legal (LEGL), Tourism (TURSM), Computer Science (INFOMT) , Commerce (COMM) , Economics (ECNOMY) , Politics (POLIT) , Music (MUSC) , Sport (SPRT) , Art (AR) , Travels (TRAV) for each sub-feature: Physical Effort (PH-EF) , "Sociality” (SOC) , "Cost” (CST) , "Culture” (CULTR) , "Playfulness” (GAM) .
  • the window EXPL-COD shows the OK button to confirm and the Cane button to delete.
  • the configuration of the matching items, the feature coding and the choice of the comparison functions are carried out by an administrator through management module EMM on the basis of an a priori knowledge in the field of human psychology and in that of psychology of interpersonal relations .
  • rank RK As described above with reference to final processing ENDELAB, according to the values of the calculated distances shown in table 7 rank RK can be calculated.
  • the rank RK is obtained subtracting the sum S of 8 addends divided by 8 from the number 1.
  • Each addend is obtained multiplying each calculated distance by the user preference UP and the a priori preference APP, set for each feature.
  • the rank value is of significance if compared with another rank. For example, let us take another agent Age associated with the user Alberto into consideration. Suppose Alberto has the same profile as Roberto except for the fact that he lives in Arezzo instead of Prato.
  • this information can be sent as feedback to the system (for example in the form of a scalar number between 0 and 1 inclusive where 1 stands for the maximum satisfaction and 0 for the maximum dissatisfaction) in order to be used by the algorithms of the particular embodiment .
  • the way in which the user's satisfaction is collected changes according to the implementation. For instance it can be collected in an implicit way, giving a score 0 if Daniela deletes Roberto's notification message, a score 0.7 if Daniela adds Roberto in her address book, 1.0 if Daniela sends Roberto a message.

Abstract

Method for the retrieval of available information by means of at least one computer and emplying a step of searching a matching according to a predefined goal and by means of an electronic processing between a first agent (AG1) associated with a first user (U1) and a second agent (AG2) associated with a second user (U2), said method comprises steps of: associating (INSER-DATA) through storage in storage means, a first requested value requested (R-1) by the first user (U1) and a second offered value offered (o-2) by the second user with the first agent (AG1) and the second agent (AG2) respectively, characterized by the fact that in addition it comprises the step of: -associating (INSER-DATA), through storage in said storage means, a first offered value offered (o-1) by the first user (U1) and a second requested value requested (R-2) by the second user respectively with the first agent (AG1) and the second agent (AG2).

Description

DESCRIPTION "Method and system for information retrieval"
The present invention refers to a method of stored information retrieval through a single computer or distributed between more computers connected to a telecommunication network. In particular, this refers to meeting or "matching" services between the users that employ intelligent agents.
The term user means either a physical person or an informative system that operates in the environment of a matching service.
It is known that an intelligent agent or, more concise, an agent, is a software entity, that is a computer program, which has the ability to move freely within a particular environment and the ability to make decisions simulating human behaviour in order to achieve the user's goal.
The agents to which the present invention refers operate with structured data, that is data that, unlike unstructured data, present a value and a label that explain the significance of the data.
Moreover, agents have the following characteristics :
- Autonomy: that is the characteristic to pursue a specific goal without direct interaction with the user;
- Reactivity: that is the characteristic to react to changes in the environment in which they operate ; - Proactivity: that is the characteristic to take initiative while interacting with the external environment;
- Social abilities: that is the characteristic to interact with other agents present in the environment .
It is worth noting that the potentials offered by intelligent agents make them appear particularly interesting instruments to face problems regarding information retrieval and processing and, in particular, distributed information. In particular, intelligent agents find favourable applications while retrieving and processing information on the INTERNET network, where the selection of information is more difficult because of the continuous increase in the quantity of information that is available on said network. It is known that in the field of information retrieval intelligent agents achieve results of better quality than the retrieval methods that search engines employ (for example, available "on-line" on the INTERNET) or methods using "databases" or local storage systems. Conventional search engines can operate with both unstructured data and structured data, while databases contain information stored in a structured way.
Using search engines that operate on-line, a user can insert key words corresponding with the appropriate web pages and the search engine, by means of a program named "spider", returns the user a list of links to web pages corresponding to the inserted key words.
To retrieve information from a database, a user can fill in suitable search forms selecting preferences and launch programs, for example, CGI (Common Gateway Interface) programs, which carry out queries in the database and return the searched information to the user. The disadvantages presented by methods based on search engines and those employing databases can be summarised as follows:
- as a consequence of a limited number of preferences or key words selected or inserted by the user, databases and on-line search engines produce an excessive number of results (for example, an excessive number of links) that only partly facilitates the operation of information retrieval;
- as a consequence of a large number of preferences or key words selected or inserted by the user, the number of results produced by databases or by on-line search engines abruptly falls to zero.
These disadvantages can be overcome thanks to the high flexibility and "intelligent logic" that lies on the basis of intelligent agents.
In the field of the methods employing intelligent agents, applications have been proposed with regard to intelligent agents in the field of the INTERNET and, in particular, with regard to electronic commerce. With such an intention, the request for patent WO/9726612 describes a network of computers that use intelligent agents in order to carry out electronic commerce .
In this document the problem of placing an anonymous consumer in communication with a provider of such products is confronted. According to patent WO/9726612 the consumer and the provider are provided with a respective intelligent agent. The intelligent agent associated with the consumer can create decision- making agents that go shopping and assist the consumer in buying products. The intelligent agent associated with the provider can create agent-requests that quantify the request and the goal of a specific consumer. According to this document the possibility to use several intelligent agents associated with one single provider and with one single consumer facilitates the retrieval and the exchange of market information and represents a support for electronic commerce.
Known methods of employment of intelligent agents and in particular, the method described in the mentioned patent petition, even if presenting differences in implementation, are related by the limit of the ability to carry out only one restricted type of service.
In particular, the services that can be implemented according to the known technique in which a first user is located that exclusively has the role of a requesting user, for example a purchaser of a product and a second user that exclusively has the role of an offering user, for example a supplier of a product. Conventional methods do not allow the creation of services that enable users satisfaction for users that have requirements typical for a requesting user and requirements typical for an offering user at the same time. A particular example of such services is that of meeting between people. In this case the first user looks for a second user that meets some requirements yet, at the same time, the meeting can only be considered concluded if that first user also meet the second user's requirements. Therefore, conventional methods show a lack of generality in the type of services to which they refer.
The object of the present invention is to propose a method for information retrieval employing intelligent agents that surpasses the limits of application described above with regard to the known techniques.
The object of the present invention is achieved by means of an information retrieval method in accordance with what is defined in claim 1.
Also a part of the present invention is a computer program directly loadable into the central memory of a processing system and a system for the retrieval of information available from at least one computer.
The features and advantages of the present invention prove to be evident from reading the following detailed description of its preferred embodiment, by means of an example not limiting and made with the aid of the attached drawings, in which:
- figure 1 schematically shows a particular embodiment of a computer system for carrying out matches in accordance with the present invention;
- figure 2 schematically shows an example of hardware/software system architecture for information retrieval in accordance with the present invention and that can be implemented in the system in figure 1; - figure 3 shows in more detail some modules contained in the system of figure 2;
- figure 4 shows some steps of an embodiment of a method according to the invention by means of a flow chart ; - figure 5 schematically indicates the types of data managed by the system in figure 2;
- figure 6 illustrates a particular structure of data of an agent in accordance with the present invention;
- figure 7 represents the agent type datum; - figure 8 illustrates the data structure of a matching item;
- figure 9 schematically illustrates an example structure of one of the features of a matching item in figure 8; - figure 10 shows an example dialog box that can be used by an administrative user (henceforth called "system administrator" or simply "adminstrator" ) in order to carry out implicit coding in accordance with this invention; - figure 11 shows a further dialog box that can be used by an administrator;
- figure 12 illustrates the structure of a matching category data;
- figure 13 shows a dialog box that represents the tree structure of the categories; - figure 14 illustrates the structure of a comparison function that can be used according to the invention;
- figure 15 shows the data structure of a comparison rule; - figure 16 schematically shows a diagram representing an example of an agent's life cycle in accordance with this invention;
- figure 17 shows a dialog box that can be used by the administrator to configure an agent's timing; - figure 18 schematically shows a flow chart related to the method in accordance with this invention;
- figure 19 shows a dialog box that can be used by an administrator in order to carry out explicit coding.
The method in accordance with this invention allows the retrieval of an information in order to provide it to a first user, so as to satisfy a predetermined goal. This information is selected from information stored in at least one computer and associated with one or more users . In accordance with this invention, information retrieval according to the goal can be defined as search for a meeting or "match" between the first user and a second user the information is associated with.
Some examples of matching services to which the method of this invention apply are: financial services, wireless services, electronic commerce services, job search services, people meeting services, news services, booking services, resource allocation and search engine services. A financial service can be defined as matching financial products with investors' profiles. A wireless service can be defined as the search for services distributed by a wireless device (for example a mobile telephone) in accordance with the profile of user owning it.
Electronic commerce (e-commerce) takes place in a "market" that is the environment in which sellers that offer products want to meet buyers that request products. In services related to job searches, the requested match is that between companies that are looking for personnel and possible candidates, while in people meeting services both sides look for people's specific profiles. In news services interesting news are to be retrieved for the user and then made available to the user. Booking services may concern hotels, shows etc. while resource allocation services allow the distribution, for example, of human resources to companies . Search engine services aim at carrying out a match between key words and a structured representation of a digital document . In particular, matching services to which we refer, allow the matching between available information in at least one computer, that is stored in a database of a single computer and/or distributed into a telecommunications network.
With reference to this in figure 1 a particular embodiment of an electronic processing system to carry out matching 100, hereafter matching system 100, that can be employed in this invention, is schematically shown.
Matching system 100 comprises a telecommunication network 101 such as, for example, an INTERNET (INTERnational NETwork) network.
As is known, INTERNET is a global network of computer systems with a decentralised structure. In general, INTERNET computer systems use a client/server architecture, in which a remote computer system (server) supplies a local computer system (client) with information and services. INTERNET considers various access protocols; in particular, the World Wide Web
(WWW) enables access to a subset of servers (known as web sites) that support the management of hypertext documents, named web pages. Each web page consists of a file in HTML format (HyperText Markup Language) that allows links to other documents. The invention disregards protocols employed for the communication between the distributed systems, even if it receives benefits from their standardisation and diffusion. An advantage is that telecommunications network 101 can also comprise "wireless" systems such as, for example those systems employing WAP technologies (Wireless Application Protocol), UMTS (Universal Mobile Telecommunication System) or any other technology that allows access to the INTERNET network, also by means of mobile telephones, handheld computers, or PDA (Personal Digital Assistant) , which hereafter will be synthetically referred to as "wireless technologies" .
In the example shown in figure 1, matching system 100 comprises, in conjunction with the telecommunication network 101, a server computer system SI, a remote server computer system S2 and a plurality of client computer systems comprising two client computer systems CI and C2. Server computer system SI can comprise various server computers intended for particular functions .
Matching system 100 can be used by a plurality of users Ui to which a first user Ul and a second user U2 belong . For example, first user Ul and second user U2 are respectively associated with client computer systems CI and C2, hereafter for conciseness named client systems CI and C2. The other users of the plurality of users Ui can use the respective client systems or they can connect to network 101 by means of a wireless interface, for example, by means of a mobile telephone.
With reference to figure 1, server computer system
51 comprises various units that are connected in parallel to a communication bus 205. In particular, a processing unit PU controls the functioning of a computer server SI, a central memory 215, typically a DRAM (Dynamic Random Access Memory) , is directly used by processing unit PU, and a read only memory (ROM) 220 contains a base program for the bootstrap of the same computer system.
Analogous components are comprised in server system
52 and in client systems CI and C2.
Client computer systems CI and C2, like personal computers, also comprise various peripheral units (not shown) . In particular, they comprise a mass memory consisting of a hard disk, a drive for optical discs
(CD-ROM) , and a drive for reading/writing floppy disk.
Moreover, client computers CI and C2 comprise (not shown) a respective input unit consisting of a keyboard and a mouse, a respective output unit consisting of a monitor and a printer, and a MODEM ( "MOdulator DEModulator" ) for the connection to telecommunication network 101.
The method in accordance with this invention plans to associate an intelligent agent AGi, more concisely an agent AGi, with every user Ui.
A definition of an agent according to the goals of this invention has been provided before .
Thanks to this association between agents AGi and users Ui, a search for a match between users Ui corresponds with a search for a match between agents AGi.
Therefore, the goal of each agent is to carry out a match with another agent in accordance with a predetermined goal .
Note that an agent, besides the characteristics previously defined (autonomy, reactivity, proactivity and social abilities) can, optionally, be created in such a way that it presents the following optional characteristics:
- adaptivity, that is the characteristic to evolve with the evolvement of the environment ;
- mobility, that is the characteristic to move from one environment to another. The expert in this field will notice that the methods for the implementation of agents that have the characteristics listed above are known in this sector and therefore a thorough description of them is not required. Referring again to the matching system 100, each server system SI and S2 represents a platform for intelligent agents, that is an environment in which intelligent agents can operate.
If the intelligent agents are of a mobile type, they can move from one environment to another, and therefore the server systems SI and S2 connected through network 101 represent a peer-to-peer network for the agents. It is worth noting that in such a case, the software related to an intelligent agent is implemented with a code that is not intended to operate or run only in one computer (for example, one of the servers) , but it is able to move from one server system to another and operate also when the server system of departure is disconnected. However, the findings of this invention are applicable both to mobile intelligent agents and to intelligent agents that do not have this characteristic.
From the evaluation of the step in which the search for a match between agents in a given observation time T takes place, it is possible to define the state in which each agent is. For example, for the definition of this state we can use the following three criteria:
- evaluate if the agent AGi is enabled for matching at time T; - evaluate if the agent AGi is in a matching step at time T;
- evaluate if agent AGi is enabled for the matching in the future, that is for a time t>T. This last criterion is independent of the fact that at time T the agent is or is not enabled for matching.
According to the previous three criteria, the following four possible states in which an agent AGi can be at the time of observation T are:
1. a "sleeping" state, corresponding to the step in which agent AGi is enabled for matching, yet at the time of observation T, it is not in a step in which it searches for matches;
2. an "active" state, corresponding to the step in which data associated with the agent AGi are processed with the aim of obtaining a match;
3. a "dead" state, corresponding to the situation in which agent AGi cannot carry out matches, neither at the time of observation T nor in the future;
4. a "locked" state, corresponding to the step in which agent AGi is not in a "dead" state, but at the time of observation T is not enabled for matching.
Agent AGi, during its "life cycle", can change state, taking on from time to time one of the defined states. In figure 2 an embodiment of a system 200 for information retrieval in accordance with the present invention is shown.
For example, system 200 is suitable for being implemented in matching system 100 as described above. This system 200 operates by means of the search of matches between intelligent agents. That is, it provides a matching service between users Ui by looking for a match between agents AGi associated with these users .
System 200 is represented in figure 2 by means of functional blocks that can be interpreted at the same time as the hardware components of one or more processing systems or as their software modules. For example, the software corresponding to system 200 can be loaded into central memory 215 of server computer system SI described with reference to figure 1.
System 200 comprises a main unit made up of a matching engine module ME (henceforth engine module ME) and a plurality of subsystems and sub-modules to which it is connected. The plurality of sub-modules is subdivided into a plurality of server sub-modules, a plurality of client sub-modules and a plurality of peer sub-modules according to the type of relation existing between it and engine module ME. The plurality of client sub-modules comprises a management module EMM of engine module ME and an optional affiliation tool TM that allows the insertion of intelligent agents from an external database.
The plurality of server sub-modules comprises a database or local storage system LDB, an optional external database EDB (connected to the engine module ME by means of a connection module EDBC) , a notification manager module NM in its turn connected to a plurality of server communication modules, intended for communicating the matching results of their respective agents to the users by means of any channel of communication. For example, this plurality of communication modules comprises a module MM for the management of electronic mail, a module SMSM for the management of SMS messages (Short Message Service) , a module VMM for the management of voice mail . Advantageously, the notification manager module NM is also connected to logging module LM.
The plurality of peer sub-modules can comprise one or more remote engine modules RMEs, analogous to engine module ME and a user interface module IUM connected to a graphical interface module GIM for web systems and a wireless system interface module IWM.
In figure 2 the described modules are connected by conventional lines 201 for data transfer.
In particular, connection lines 201 that present a single arrow set on an end indicate that between the two connected modules there is a "client to server" relationship, corresponding to which the arrow is placed in the end near the server module. On the contrary, those lines 201 having arrows at both ends, indicate that the two connected modules constitute two peer units, a "peer to peer" relation.
Referring to this we can observe that the engine module ME and the remote engine module RME communicate with each other, forming a peer connection. This allows the engine module ME to extend the environment in which agents operate also with remote engine modules RME, creating in this way the same functionality of agents which have the optional characteristic of mobility defined above.
Engine module ME principally has the function to manage the life of intelligent agents AGi, receiving commands that it redistributes to these agents . This engine module ME, from a hardware point of view, can be implemented with processing means, that is processing unit PU of server system SI in figure 1.
Moreover, as will later become more apparent, engine module ME manages messages transmitted or received to/from other modules to which it is connected and searches for a match between one agent and another.
For example, this engine module ME can be implemented as a C++ object.
Moreover, observe that engine module ME can take on both a server or a client mode according to the other modules to which it is connected, or it can have a peer to peer relation with them.
Preferably, for engine module ME all the commands received in the server mode and sent in the client mode and all the replies received in the server mode and sent in the client mode are XML messages (extensible Markup
Language) . This allows an optimisation in the integration of system 200 with telecommunication networks such as the INTERNET. Management module EMM is an administration tool of system 200 and allows the administrator to configure system 200 before the end-users use it and it allows the examination and monitoring of system 200 while it is running. In particular, management module EMM allows the configuration of an agent structure.
Advantageously, affiliation tool module TM allows to create agents in a systematic way on the basis of appropriate tables containing information concerning the agents and stored in an external database. The agents created in this way can be launched in batch mode in order to carry out a match.
Local database LDB is an example of storage means in which, among other things, all data related to the users using matching system 200 and all data that allow the definition of intelligent agents associated with these users can be stored.
External databases EDB can store data related to users, however structured in a different way from the local database LDB for which engine module ME is configured. Connection module EDBC created, for example, with a commercially available data mapping module allows to carry out the mapping of data by converting their structure into a structure which is compatible with engine module ME.
User interface module IUM is a module that can carry out both the server and the client mode and serves to interface engine module ME with a user, understood either as a person (customisation function) or as a data source of a information system (integration function) . In order to facilitate the development step of user interface module IUM and, in particular, the communication with engine module ME, this module IUM can send commands to engine module ME calling functions belonging to an appropriate API (Application Programming Interface) library.
These functions launch XML messages to engine module ME and "analyse" the answers of engine module ME, that is carrying out the parsing of the answers, concealing in this way the syntax concerning XML languages from the administrator that develops module IUM.
It does not mean that the access to engine module ME cannot occur also directly through XML messages. User interface module IUM also shows a server behaviour, making specific functions available for other modules. The most important functions are the ones destined by engine module ME to synchronise (i.e. update) agents' structured data, which are present both in module IUM and in module ME and that are updated first in module ME and subsequently in module IUM.
In particular, user interface module IUM provides an interface with users who use web-based systems and/or wireless systems. In both cases, the user has an interface program at his/her disposal, both in the browser of the computer and in the microbrowser of a wireless device, with which he/she carries out the operation of agent browsing and insertion, and the visualisation of the matching results of his/her agent. Moreover, observe that HTML pages or WML pages (Wireless Markup Language) - or other forms of graphical interfaces - visible to the user, can dynamically be generated in all or in part from information taken from engine module ME with or without the help of API library functions.
It is worth noting that, advantageously, using technologies of dynamic generation of HTML pages (such as Java Server Pages) that allow the definition of proprietary tags, it is possible to construct a web interface through a set of proprietary tags that encapsulate the calls to the API, further accelerating the development time of interface module IUM.
In this connection figure 3 shows the place of the API and the proprietary tags in the architecture. In figure 3 engine module ME, connected to local database LDB, communicates with module API, containing the API functions, by means of XML messages. Module API can be replicated in management module EMM and in affiliation tool module TM in order to allow their communication with engine module ME. Management module EMM is equipped with graphical interface module GUI-A for the administrator.
Besides user interface model IUM, which provides an interface with a physical user, there is also an interface module ISM, which is intended to interface with information system type user and is shown in figure
3.
User interface module IUM communicates with graphical interface module GIM (for web systems and an interface module with wireless systems IWM.
User interface module ISM, with an information system type user, also communicates with a platform SPP, which represents the information system to which the functionalities of this invention are added. This module ISM is, for example, implemented in Java.
Inside platform SPP both an external database EDB and a corresponding connection module EDBC have been represented.
Optionally, there is a tag library LTG which, as mentioned above, allows the construction of user interface module IUM by means of the definition of propriety tags.
Now turning back to figure 2, notification manager module NM is a server that allows the sending of notification messages of match occurrances to a user. Such messages can be sent through what ever communication channel preferred (for example, by means of electronic mail, SMS messages or voice mail) . Therefore notification manager module NM collaborates with the corresponding server module of the specific communication channel used; for example, module MM for the management of electronic mail, module SMSM for the management of SMS messages or module VMM for the management of voice mail. Logging module LM allows to log information concerning all actions undertaken by engine module ME and by notification manager module NM in a local database . By means of engine module ME management module EMM can access the logging module with the aim of monitoring the history of actions and other state parameters of module ME.
Remote engine module REM can be, for example, implemented in remote server system S2 of figure 1 while the other modules of figure 2 can be implemented in server system SI. Users Ui can connect to server system SI by means of client systems CI and C2 or by means of wireless devices.
As said previously, the method in accordance with this invention associates an agent AGi with each user Ui . For example, let us consider the case in which user Ul is associated with agent AGl and user U2 is associated with agent AG2.
The required match is to achieve a predefined goal that takes the needs of the first user, Ul, and of the second user, U2, into account.
Referring to figure 4, some of the method's steps according to the invention are represented by means of a flow chart.
After starting step SRT, the method contains a data inserting step INSER-DATA according to which a first value R-1 requested by user Ul and a first value 0-1 offered by user Ul are associated with agent AGl.
Moreover, in this data inserting step INSER-DATA, a second value R-2 requested by user U2 and a second value 0-2 offered by user U2 are associated with at least agent AG2. This kind of association can be carried out for a part of or for all agents AGi that have been taken into consideration.
Subsequently, the method in figure 4 continues with match searching step ELAB-MATCH, comprising the processing of the values associated with first agent AGl and second agent AG2. This match searching step ELAB- MATCH can be repeated for each agent AGi .
Such processing provides an affinity indicator between first agent AGl and second agent AG2, corresponding to the goal of matching. For example, processing comprised in step ELAB-MATCH provides a real number relating to the satisfaction of both users Ul and U2 and resulting from the match between agents AGl and AG2.
Moreover, the method comprises a notification step
NOTFYCATION according to which one of the users Ul, U2 or both of them are notified of the match and are provided with the searched information. The method finishes with final step ENDM.
The step of association between user Ui and agent AGi and the data inserting step INSER-DATA will become clearer from the description of the data structures that describe the matching system and of the data structures of agents AGi. As mentioned previously, the intelligent agents to which we are referring, operate on structured data which have a value and a label that explains the meaning of the value.
Referring to figure 5, system 200 can be seen as an environment containing a set of categories S-C, of agent types S-AGT, of matching items S-MI, of features S-F, of data types S-DT, of comparison functions S-CF, of comparison rules S-CR and of agents S-AG.
We will start with the analysis of agent structure referring to figure 6. Each agent AGi can be seen as a plurality of feature/value (s) pairs that form an unordered list.
In more detail, according to a particular embodiment of the invention, the structure of an agent AGi can be subdivided into system features SYF and matching item features MIF.
A set of features MIF and a set of agent types AGT is meant with the term matching item MI. For example, in the case of matching in an e-commerce service, matching feature MI can be a product, for example, a chair, and two possible matching item features MIF could be the colour and the price of the chair. In this example, agent types AGT are a Seller agent and a Buyer agent .
As schematically represented in figure 7, agent type AGT is a representation of name NME of the agent type, for example Seller, Intermediary, Buyer, Person.
The administrator can choose which pair of agent types, in the set of agent types S-AGT, is to be enabled for matching a specific matching item MI. For example, in the case of electronic commerce, it is possible to decide that a Buyer agent and an Intermediary agent can be authorised to make a match on a product, while it can also be decided that such a match will not be allowed for a Seller agent and a Buyer agent. With reference to this figure 8 illustrates the data structure of a matching item MI comprising a name MI-N, a set of matching item features S-MIF and the set of agent types S-AGT.
Moreover, for each pair of agent types AGTj and AGTi of set S-AGT there is a flag FLGji whose value indicates the possibility or the impossibility (enabling/disabling) of carrying out a match between agent types AGTj and AGTi. For example, when the flag is set to 1, the matching is allowed while when the flag is set to 0, matching is not allowed.
The administrator has a graphical interface provided with graphical controls at his/her disposal. These graphical controls allow him/her to insert the value he/she wants for each flag. Referring again to figure 6, system features SYF are shared by every agent AGi and are: start date SD; end date ED; agent type reference AGT-R; user reference U-R, matching item reference MI-R.
Start date SD represents the date of birth of agent AGi, that is to say that this agent is enabled for matching only after this date. Before start date SD agent AGi is "locked" (locked state) .
End date ED represents the date beginning from which agent AGi is considered to be in a "dead state" , that is, after that date agent AGi can not carry out a match anymore.
Agent type reference AGT-R will have a value that can be selected from a list of agent types associated with matching item MI. For example, as it has been explained above, the features concerning a product can be associated with a Buyer agent or a Seller agent, or when the matching service concerns people meeting, the corresponding agents are Person agents.
User reference U-R is a datum that points to user Ui with which agent AGi is associated and it points to the user's personal data.
Matching item reference MI-R is a datum that points to matching item features MIF.
Matching item features MIF can vary from agent to agent . A set of agents is typically sectioned in such a way that agents of the same section point to the same matching item.
Matching item features MIF comprise one or more auxiliary features AF= (AF1,..., AFn) with their respective values AFV1 , ..., AFVn and one or more matching features MF= (MF1 , ..., MFj , . MFm) .
Matching features MF, unlike those of an auxiliary type AF, are directly involved in processing carried out for matching search. Each matching feature MF comprises a respective requested value R= (Rl,...,Rj ,...Rm) , a respective offered value 0= (01,...,Oj ,...Om) and a respective user preference UP= (UP1 , ..., UPj , ...UPm) .
Note that values AFV1,..., AFVn of auxiliary features AF do not have importance for the matching.
On the contrary, requested values R, offered values O and user preferences UP are used in the processing related to the matching search.
Generic requested value Rj is a value that can be interpreted from a logical point of view as a search request of a complementary offer.
The generic offered value Oj is a value that can be interpreted as an offer for which a complementary request is searched. In the case in which the matching feature is interpreted as both a request and as an offer or as neither of them, the value of offered value Oj is equal to the requested value Rj and this value is defined as "neutral" . User preference UPj is a number, for example an integer within the interval [0,100] that the user can associate with requested value Rj of a matching feature MFj .
To understand the meaning of the user preference UPj , the case of matching between agent AGl and agent AG2 is to be considered. User preference UPj represents the level of dissatisfaction of user Ul associated with agent AGl when the distance between requested value Rl and offered value 02 of agent AG2 increases. In particular, it can decided that the greater is user preference Upj the higher is the user's level of dissatisfaction.
Preferably, each auxiliary feature AFj and each matching feature MFj comprise a plurality of components. Referring to figure 9, the components of a matching feature MFj are: name N, data type DT, indicator of auxiliary flag AF. Moreover, for each pair formed by matching item reference MI-R associated with the agent and agent type reference AGT-R, different components are defined: request visibility VIS-R and offer visibility VIS-O, neutral visibility VIS-N, mandatory request MA-R and mandatory offer MA-O, neutral obligatoriness MA-N, a priori preference APP and can- state preference CAP. As an example, figure 9 refers to to a number equal to "s" of pairs MI-R and AGT-R.
Name N is a component that allows to point to features; for example, an offered feature could have a name like colour, age, sex etc.
Visibility (VIS-R, VIR-O, VIS-N) is a component that can take on a Boolean value (0 o 1). For example, when the visibility is set to 1, it means that the corresponding feature is visible for the user by means of an appropriate interface, when the user creates his/her agent him/herself, while in the case of a visibility set to 0, the feature is not visible.
Request visibility VIS-R allows the user to insert
(and/or modify) a logically interpretable value as a request, while offer visibility VIS-O as an offered value. The interface that allows the user to insert the feature value consists of a graphical control, for example, a text box.
Neutral visibility VIS-N indicates that a unique graphical control must be visible to allow to insert a value, which is logically interpretable both as an offer and as a request. For example, in case of a people meeting service, feature "age" can alternatively be:
- request, that is a person that is looking for another person of a certain age;
- an offer, that is a person that states his or her age;
- a request and an offer, that is a person that states his or her age and that is looking for another person of a certain age;
- neutral, that is a person that states his or her age and is looking for a person of similar age relying (which will become clear later) upon the criterion that the system administrator has inserted.
As visibility depends on agent type AGT and on the matching item, if the interface between the user and system 200 is graphical, this interface will be different according to these two data structures. For example, in the case of electronic commerce, we will have two different graphical interfaces for two different products (a product is a matching item) and, having the same product , a different interface for the launch of Buyer agents and Seller Agents .
The obligatoriness component (MA-R, MA-O, MA-N) can take on a Boolean value (0 or 1) and when it is set to value 1, it means that the feature, made visible in the way described above, must be filled by the user, while when it is set to 0, the corresponding feature is not mandatory for the user.
A priori preference APP is a component expressed by means of a number, for example, an integer within an interval [0,100] that the system administrator can associate with request value R of a matching feature MF. A priori preference APP has a meaning which is analogous to that of user preference UP above defined, yet it is not predetermined by the user, but it is inserted by the administrator. In this invention, in the matching a priori preference APP is combined with user preference UP above described according to the modes that are described further on. Can-have preference CAP can take on a Boolean value (0 or 1) and, when it is set to 1, it means that the user can set user preference feature UP when he or she creates agent AGi, while this feature UP can not be set if can-have preference CAP equals 0. Auxiliary feature flag (AF) can take on Boolean values 0 or 1. When it is set to value 1, components APP and CAP lose significance, while visibility and obligatoriness are not expressed in components VIS-R, VIS-O, VIS-N e MA-R, MA-O, MA-N anymore, but they respectively consist only of a component that indicates visibility and the obligatoriness of the auxiliary features. For example, in figure 9 the meaning of the individual flags can respectively be taken on by VIS-O and MA-O. If the component AF is equal to 0, the feature MFj is a matching feature in the sense described above.
Data type DT is a component of matching feature MFj that associates with a matching item feature MIF a domain or a number of values that matching item feature MIF can take on both in request and in offer. Data type DT differs because of the type of inserted values related to that feature.
In more detail and with reference to a particular embodiment of the invention, a rule based on the following three possible situations can be enforced, in order to define DT data type:
1. the user can insert only one value or a list of k values;
2. the value can be chosen in a set of predefined values F or in an infinite set I;
3. the value can be a number N or a string S . In the following table possible DT data types, which are determined according to the three cases described above, are defined and listed.
Figure imgf000037_0001
Other possible data types, which can not be organized in table 1, though, are the date, binary data (images, sounds, etc.) and ranges which can be combined in different ways.
For example, with reference to the sixth row of table 1, if the feature has a number of chosen values which equal k, if these values are chosen in a finite set F and they are strings, the data type is a Set of Predefined Strings. The set of Predefined Strings "C" , "C++" is an example of this data type. An example of a Set of Predefined Numbers is the datum: 39,40,42. An example of Single Predefined String is the string "foo" . The other data types of Table 1 are clear because of their name and corresponding definitions.
Moreover, according to the method in agreement with this invention, vectors of real numbers can be associated with the same number of values of data types Single Predefined String and Set of Predefined Strings through a coding operation. Each vector component is associated with a numerical sub-feature.
The data type Single Predefined String and Set of Strings are further divided into Coded and Uncoded. In the coded case the calculation of the semantic distance is traced back to a vector distance.
The coding operation, which from a Single
Predefined Uncoded String or from a Set of Predefined Uncoded Strings, associates a Single Predefined Coded String or a Set of Predefined Coded Strings respectively, can occur according to an explicit or an implicit method.
Table 2 shows an example of explicit coding for a feature "sport", where a vector with sub-features, that can assume the value 0 or 1 depending on the sub- feature, is associated with each string representing a sport .
Figure imgf000039_0001
Therefore the vector: 0,0,1 is associated with the Predefined String Football.
For a further example, in Table 3 the explicit coding related to the feature Colour is shown.
Each string of the Set of Strings "red", "green",
"blue" , "yellow" , "orange" is coded by means of vectors made up of three components representing the three colours R (red) , G (green) , B (blue) , and whose values represent the intensity of these three colours .
In order to carry out an implicit coding, the administrator can open a window in which the string values are represented as icons displayed on the window area.
The system administrator can drag these icons, placing them at a relative distance which represents the semantic distance of these values. The two-dimensional coordinates of these points are the values of the sub- features composing the vector.
Figure imgf000040_0001
For example, supposing that the features are strings representing different profiles concerning four job positions: "CEO" (Chief Executive Officer); "COO"
(Chief Operations Officer) ; "CTO" (Chief Technology
Officer) ; "CIO" (Chief Information Officer) .
For instance, to carry out an explicit coding as described above, four sub-features can be associated with each of the four job positions mentioned above.
These sub-features refer to the age of the person, to his/her salary, to the years of experience, to the technical and organizational knowledge.
Alternatively implicit coding can be used. Figure 10 shows an example of COD-WINDW dialog box which can be used by the administrator to carry out the implicit coding in the aforementioned case. In figure 10 four squares concerning the four job positions CEO, COO, CTO, CIO are illustrated and a cursor 300 is shown, using which it is possible to drag each square to a position considered representative of the semantic distance separating a job position from the others. Implicit coding is especially useful when an explicit coding is difficult to carry out. Moreover it enables the integration with natural language processing systems which have two-dimensional maps of words as output. The window of figure 10 comprises also an OK button to confirm, a Cane button to delete, and a conventional button 400 to close the window itself.
Another data type which can be used to process strings is the one in which the administrator directly provides a measure of the distance for every string pair filling a square matrix whose rows and columns correspond to the strings. It is a valid method for the distances among towns, for example, and for the integration with natural language processing systems, which have the distance among string pairs as output. This data type will be named "Single Predefined Related String" and "Set of Predefined Related Strings" .
Figure 11 shows a window available to the administrator to create this data type on a display, such as a monitor (not shown) of a computer used by the administrator. The window of figure 11 shows a square matrix on whose rows and columns the following strings, indicating different company departments, are shown: Wireless Infrastructure, "Wirelss-Infrastrcut" ; Hardware and Software, "HW and SW" ; Consulting, "Consultng" ; Application Service Provider, "Appl-Servce-Provd" ; Wireless Telecommunications "Wirelss-Telcommn" . The value of the semantic distance between the compared departments is shown by the intersecting matrix cells. For example, between the string, Wireless Infrastructure, "Wirelss-Infrastrcut" , and the string wireless Telecommunication, "Wirelss-Telcommn" there is a distance equal to 0,9; while between the string Wireless Infrastructure, "Wirelss-Infrastrcut" and the string Hardware and Software, "HW and SW" , there is a shorter distance, equal to 0,4.
It is worth pointing out that all the components of figure 9, except for a priori preference APP, have not only a role in the matching search, but they also represent some interface information which can be used by the tag library LTG or by analogous modules to create the user interface automatically, for example a web interface.
Moreover, the matching items (made up of an unordered list containing the matching item features MIF) are advantageously grouped in categories and sub- categories according to the sector the matching refers to.
As it is schematically shown in figure 12, the category CATRY can be seen as comprising a name of CAT-N category, a set of references to sub-categories or other categories S-C and the set of references to the matching items S-MI.
Advantageously, in a graphical user interface visible to the administrator working with the management module EMM, the grouping into categories and sub- categories presents a tree structure. In a graphical interface this tree structure is analogous to that used in the representation of icons of folders (directories) in the GUI of operating systems such as Windows.
For example figure 13 illustrates a structure management window STRUCT-MNG visible to the administrator. This window shows a meeting category MEET and a category "e-commerce" . The e-commerce category does not contain any sub-categories but contains the matching items Computer, "CDs", "Book". The Book matching item contains the features "Price", "Language", "Title" , "Author" . Moreover the window of figure 13 presents a CREAT-CATRY button for the creation of categories, a CREAT-MI button for the creation of matching items, an ADD-FEAT button for the addition of features. The selection of these buttons allows the administrator to create a category, a matching item or a feature respectively. Moreover the window of figure 13 comprises conventional buttons 400.
Referring to figure 4 again, the processing step ELAB-MATC comprises the processing of the values associated with the agents Agi according to comparison functions CF, described below. As it is schematically shown in figure 14, a comparison function CF has a name CF-N and operates on two arguments which are of two equal or different data types.
In more detail the comparison function operates on an offered value O of a first agent together with a requested value R of a second agent and gives a real number as result.
This result shows how much the offered value O complies with the request R. For example it can be said that the user's satisfaction associated with the agent is greater if the real number resulting from the comparison function CF is lower.
In particular, when the a priori preference APP or the user preference UP is maximum, the matching will occur in relation to an agent for which the comparison function result is null.
A comparison function is called "distance" when it satisfies the following criteria: l. f(χ,y) = f(y,χ) 2. f(x,x)=0
3. f (x,y)+f (y,z)<=f (x,z)
Comparison functions are subdivided into comparison functions with homogeneous features and comparison functions with heterogeneous features according to whether they operate on requested values R and offered values O belonging to equal features of the same matching item (homogeneous features) or different features of two different matching items (heterogeneous features) . The comparison functions with homogeneous features can be of different types according to the data type they apply to. Some examples of comparison functions which can be selected for some data types are given below. In the case of Single Predefined Numbers or of Single Numbers, the comparison functions can be:
- normalized distance, f (R,0) =abs (R-O) /max(R,0) ;
- of the type "greater than", f(R,0)=0 if R>0 otherwise f(R,0)=l, - inverse relationship: f(R,0)= 1- abs(R-0)/max(R,0) With reference to values of the type Predefined uncoded Single String, a homogeneous comparison function CF is the function of type equality: f(R,O)=0 if O and R are equal otherwise f(R,0)=l.
With reference to values of the type Single Predefined Coded String, a homogeneous comparison function CF is the function of the normalized Euclidean distance type: f(R,0)= | | coded vector of R - coded vector of O | | /max( | | coded vector of R||,|| coded vector of R| |)
As it is known from the linear algebra, the symbol I I x I I stands for " the norm of x" .
For values of the type Single String the following comparison functions can be defined:
- sub-string, for which f(R,O)=0 if R is a substring of O otherwise f (R,0)=1;
- hamming distance, f (R,0) =l-number of common characters between R e O /max (number of common characters of R, number of characters of O) For values of the type Set of Uncoded strings a comparison function CF of the type distance between sets can be used: f (R,0) =number of elements common to R and 0 can be used. The heterogeneous features are used to compare two different features of the same matching item or of two different matching items. An example could be where the requested value R is of a feature of type "Single Number" and the offered value O is a value of a feature with "Single Predefined Coded string" data type.
If it is said 0= (O1...0n) , an example of comparison function is: CF (R,0) =abs (R-03) /max(R,03) , deriving from an a priori relation between the first feature R and the third sub-feature 03 of the second feature O. Subsequently, a comparison rule CR presents a data structure shown by way of example in figure 15. According to this comparison rule CR the agents referring to the agent type Agtl and the matching item Mil are enabled for matching with the agents of the type AGT2 and of the matching item MI2, using the comparison function CF* to compare the matching item features of the matching items MF1 and MF2.
A particular but very frequent case is when the comparison function CF is homogeneous, that is the values of the two arguments refer to the same feature of the same matching item.
In system 200 described with reference to figure 2, the information associated with a user Ui can be sent to the local database LDB by the user through the user interface IUM.
The data structure configuration described above, defined according to an a priori knowledge in a particular application context, can be carried out by means of the management module EMM. For instance, in a matching service between investors' profiles and financial products, a bank manager will define the most suitable data structure for the specific context.
In particular the management module EMM allows the following operation.
- add/move/remove/rename categories and sub- categories;
- add/move/remove/rename matching items;
- add/move/remove/rename/configure features of the matching item MIF;
- associate the agent types (for example Buyer, Seller) with the matching items;
- associate the comparison functions with pairs of matching items. - in general all the operations in order to configure the data structures.
It is worth noting that the data structure described above is particularly favourable because it is so general that it can be adapted to very different contexts (that is to matching services) simply through a configuration of the particular implementation and not through completely new implementations of it.
Now the operation modes of ME engine module of system 200 of figure 2 will be described in detail. When the ME engine module operates in the client mode, it sends commands to the appropriate sub-modules. In particular the sent commands are: logging commands through which information is sent to the logging module LM and a Notification Command of an Up-to-date Configuration through which an up-to-date configuration is sent to the user interface module IUM.
The engine module ME waits for multiple commands when it operates in server mode. Particularly these multiple commands comprise: - Agent commands, which refer to an agent life cycle and comprise the following commands: insert, INS-AG/ update, UPD-AG/ delete, KIL-AG / "execute matching", MACH / lock, LCK-AG/ unlock, ULCK-AG. The meaning of these Agent Commands is clear from the definition of the states of an agent given before; - Feedback Command, which notifies the engine module ME of the preference of a user as regards the occurrence and notification of a match.
- User Commands, which refer to operations related to a user and they are: insert/update/delete/authenticate;
- Structure Commands, which refer to operations to perform on categories, sub-categories, matching items and features and they are: insert/update/delete; - Track Commands, through these commands some values of system parameters are queried, for example, the number of the agents present in the engine ME at that moment ;
Synchronization Commands, through these commands the engine module ME is asked for the category structure, matching items, features etc. For example the management module EMM can send this command to ask for the structure and modify it .
- Subsystem Registration Commands, through which a subsystem notifies its presence to the engine module
ME,
Activation Commands, which activate ports and functionalities, to configure and activate possible algorithm options dependent on the implementation. Figure 16 shows a diagram representing an example of the life cycle of an agent AGi managed by the engine module ME.
The life cycle shown in figure 16 includes the four states defined above, that is sleeping SLP, active ACT, locked LCK and dead state, DED.
In figure 16, near each branch of the life cycle diagram the command causing the passage of the agent AGi from one state to another one is shown.
For example, the agent AGi is inserted by means of the "insert agent" command INS-AG which moves the agent to the sleeping state SLE. Through the command "execute the matching" MACH, the agent passes to the active state
ACT. In particular, if the command "execute the matching" MACH is given immediately after the command "insert agent" INS-AG, the matching mode is defined synchronous, whereas the mode is defined asynchronous if this command MACH is given after a certain time interval from the command INS-AG. The asynchronous mode incorporates a further configuration of the timing with which the command to execute the matching must be launched and of the modes with which the notification must occur.
For instance, the modes in which notification
(NOTFYCATION step) occurs refer to which of the two users of the two agents the notification of the occurred meeting must be sent to, where the closeness of the agents triggers the notification, the maximum number of matches that can be notified etc.
Referring to figure 17 showing a window AG-TIMNG-CONF visible to the administrator to configure the timing of two types of agents AGT, made up of a buyer agent BUYR and a seller agent SELLR.
This window contains a check-box of each of the two names of the agents BUYR and SELLR which establishes that the agent must operate in synchronous or asynchronous mode. This check-box allows to establish if the respective agent must operate in a synchronous or asynchronous mode.
The asynchronous mode allows, through a text-box representing the length of the timer TMR, to fix an interval and when this time is up the matching is repeated. In the example of figure 17, the agent SELLR will operate in an asynchronous mode and it will execute the matching every hour. A combo-box POLCY allows to determine the policy of the respective agent. For example, three types of agent policy can be determined. In the first case, "notify best" , the end of the agent life cycle is waited for and afterwards the notification of the best matches occurs. In the second case, "notify first", only the best matches are notified and afterwards the agent passes to the dead state. In the third case, "notify all", every executed match is notified from time to time.
In a combo-box NOTFYN it is decided how the match will be notified. In a text-box RNK the rank or minimum acceptable rank for a match, that is the minimum value of the rank under which the corresponding match is not notified. The rank is a number that represents a satisfaction indicator resulting from the match. By means of a text-box MTCH and a text-box NTFY the maximum number of the matches which can be carried out for each matching request and the maximum number of matches that can be notified altogether are respectively fixed. Moreover, the window of figure 17 presents a finish button FINSH and a deletion button CANC.
It is worth observing that the passage from the sleeping state SLE to the active state ACT can also be caused by an awakening command AWK arising from a matching search carried out by another agent. If a match has occurred, the agent Agi is moved back to the sleeping state SLE after the engine module ME has received a feedback command ENDMACH signalling that the match has occurred.
Moreover, The agent AGi can pass to locked state LCK and from this to sleeping state SLP or to the dead one DED by means of locking commands LCK-AG, unlocking ULCK- AG, and agent "killing" KIL-AG.
Dead state DED can be reached starting from locked state LCK, from the active one ACT and from the sleeping one SLE, and also through killing command KIL-AG, beside by means of an expiry command EXP that is activated when the current date of the agent AGi equals the end date ED associated with the agent, described before with reference to figure 6. Moreover, in addition to the states showed in figure 16 an "external" state may be considered. This represents an agent implemented on a remote engine module, that is the module RME of figure 2. However, this agent which is not enabled for the match at observation time T is seen by the engine module ME as though it were in the sleeping state SLE or in the locked state LCK.
Now there will be the description, more detailed than the one concerning figure 4, of a particular embodiment of the method according to the invention. In particular, the matching search steps ELAB-MATCH and the notification steps NOTFYCATION will be described in more detail .
A situation, in which the configuration of the agents AGi has already been carried out according to procedures analogous to those described above (step INSER-DATA of figure 4) , will be taken into consideration. In particular let us consider the case in which one or more matching features MF are associated with each agent and these features contain a requested value R and an offered value O, as shown in figured 6.
Figure 18 shows the steps of the matching search in the form of a flow chart.
Let us take a first agent AGi into consideration. After a start step SRT, the method includes an INSER- AG step where all the agent AGi data are inserted. The agent AGi is set to state SLP.
This step also comprises the sending of the command "insert agent" INS-AG to engine module ME. One can see that, in agreement with the definition of user given before, the insertion of the agent AGi can be carried out by a user, a physical person, or by a program taking information from a source and inserting them in system 200 automatically. The method continues with a step INV-MACH in which the execute matching command MACH is sent to the engine module ME of the system 200.
For example, this command MACH is sent by the user interface module IUM which has converted a message coming from the user Ul who has requested, through his/her client system, the beginning of a matching search for the agent AGl associated with him/her.
In particular, the command MACH, besides referring to the agent AGl, contains a field indicating the maximum number of matches K which are requested. It means that inside a number of agents, at most K agents are sought, so that they can "match" the agent AGl .
Step INV-MACH is followed by a selection step SELCT according to which those agents AGel eligible for the match with AGl are selected. In other words, agents AGel are the agents for which the match with AGl does not correspond to a complete dissatisfaction neither of the user associated with AGl nor of any users associated with the corresponding Agel. After this selection the matching search continues only with reference to the selected eligible agents.
AG2 indicates a generically eligible agent associated with a generic user U2.
After selection step SELCT, the engine module ME carries out the first processing ELAB1.
According to this first processing ELAB1, for each pair of matching features MFji MFj2 the engine module ME applies an appropriate comparison function CFji,j2 to the requested value Rji of the first agent AGl and to the offered value Oj2 of each eligible agent AG2 : Yji, j2=CFj1# j2 (Rji , Oj2 ) •
The result Yjι,j2 of each of these comparison functions CFj!,j2 represents a first partial indication of the complementarity or affinity existing between the agent AGl and the agent AG2.
In a second processing ELAB2, for each pair of matching features MFji MFj2 the engine module ME applies a suitable comparison function CFj2,ji to the offered value Oji of the first agent AGl and to the requested value Rj2 of the agent AG2 : Yj2,jι=CFj2,jι(Rj2,Ojl) .
Each result Yj2,ji of each comparison function CFj2,ji represents a second partial indication of the complementarity or affinity existing between the agent AGl and the agent AG2. Afterwards, the engine module ME executes a final processing ENDELAB on these results Yji,j2 and Yj2,ji, applying the function F(Yjj2#Yj2.ji) .
For every agent AG2 of the plurality of eligible agents, this final processing ENDELAB gives as a result a rank RK which represents a final indication of the affinity between agent AGl and the specific agent AG2.
The rank RK, rather, is calculated on the basis of the results Yji,j2 and Yj2,ji, taking other parameters into account also, that is a priori preference APP and/or user preference Upj associated with each matching feature MFi and MFj2 of AGl and AG2.
All the eligible agents AG2 this processing has been applied to are ordered according to the rank RK.
For example, the rank RK can be a number between 0 and 1 inclusive, where 1 stands for a perfect affinity, that is a perfect match.
Among the agents AG2, on which processing has been carried out, the first K, that is the K agents AG2 having a higher rank, will be chosen during a choice step CHOS-AG.
Finally, in a notification step NOTFY-US, a list of these agents AG2 is sent to the user Ul who has sent the matching command MACH.
Advantageously, in a step following the notification step NOTFY-US a feedback step FED-BAK may occur. In this feedback step FED-BAK the user Ul sends to system 200 information representing the level of satisfaction of the user Ul resulting from the notified matches. Later two exemplifying ways in which this step FED-BAK can be carried out will be described.
Besides the sending of the list of K agents AG2 which have been chosen, also a message providing an explanation in natural language about the reasons leading to that choice may be sent to the user. This message may contain the reasons why a specific match has been considered such as to satisfy the user and/or the reason why it has been considered more or less satisfying than another match.
That can be obtained by subdividing the domain of the values resulting from comparison functions CF in more intervals and by associating a semantic block in natural language with each interval .
For example, the semantic blocks "very similar", "similar", "far", "very far" are associated respectively with the value intervals of a comparison function CF 0.00 - 0.25; 0.25 - 0.50; 0.50 - 0.75 and 0.75 - 1.00.
The message which has to be notified can be produced automatically by scanning the values resulting from the comparison functions CF and by sending the user the semantic block in natural language associated with the specific interval.
In particular, the scan can occur in decreasing order according to the user preference Upj , where the user preferences Upj are associated with the requested values R the comparison functions are applied to.
In that way the user will be explained how much the requests concerning the most important features for him/her were satisfied.
The method ends with a final step ENDF. It is worth noting that thanks to the fact that both a requested value and an offered value are associated with each agent it is possible to apply a comparison function in a "crossed" way, for example, as described with reference to the steps ELAB1 and ELAB2, so that the level of satisfaction of both the agents involved in the match can be estimated.
Therefore that allows the use of the intelligent agents, with all the advantages they offer, in kinds of matching services which were usually excluded from the known techniques . Example
An example of a meeting between people according to a method analogous to that described with reference to figure 18 will be reported below, in order to give a more complete description.
Supposing there are a user Daniela, a first agent AGa is associated with and a second user Roberto, a second agent AGb is associated with.
In agreement with the data structure described before, the first agent Aga is defined according to the table 4.
Figure imgf000061_0001
From the offered values O we can deduce that Daniela is a 25-year-old girl living in Florence and her main interests are Art and Music. She would like to meet men, who are about 30 years old, living in Florence or, alternatively, near Florence (Actually the stated user preference UP=90 has a high value) and having interests similar to hers, if possible (in this case the user preference UP=10 is very low) .
The second agent Agb is defined as it is showed in table 5.
Whereas Roberto is a 31-year-old man, living in Prato and his main interests are computer science and drama. He would like to meet younger women, if possible (the user Preference UP=70 is not very high) , living in Prato or quite near Prato (the stated user preference UP=90 has a high value) , and who have interests similar to his, if possible (also in this case the user preference UP=10 is very low) .
Figure imgf000062_0001
The matching features MF used and the comparison functions associated with the corresponding features are shown in table 6.
As far as the feature Residency is concerned, it is worth noting that in local database LDB of system 200 the distances among the different Italian towns can be stored.
For the feature Interests an explicit coding has been used according to which a real vector of four components is associated with each stated value. The components are the sub-features "Physical Effort", "Sociality", "Cost", "Culture", "Playfulness".
Figure imgf000063_0001
Figure 19 shows a window of EXPL-COD the administrator can use to carry out the explicit coding. In the window the vector values for each interest are reported: Show (SPECT), Legal (LEGL), Tourism (TURSM), Computer Science (INFOMT) , Commerce (COMM) , Economics (ECNOMY) , Politics (POLIT) , Music (MUSC) , Sport (SPRT) , Art (AR) , Travels (TRAV) for each sub-feature: Physical Effort (PH-EF) , "Sociality" (SOC) , "Cost" (CST) , "Culture" (CULTR) , "Playfulness" (GAM) . In addition the window EXPL-COD shows the OK button to confirm and the Cane button to delete.
It is worth noting that use of coding is particularly favourable because it allows the matching execution with a better performance. Actually this coding operation allows to differentiate the feature values with a higher resolution than that which could be obtained simply by comparing uncoded values, such as two strings . In this case, thanks to the executed coding it is possible to represent the Art and Music vectors in such a way as to be more similar to each other than the Sport and Politics vectors are. Simply comparing the corresponding strings the four values would result equidistant.
The configuration of the matching items, the feature coding and the choice of the comparison functions are carried out by an administrator through management module EMM on the basis of an a priori knowledge in the field of human psychology and in that of psychology of interpersonal relations .
The processing steps ELAB1 and ELAB2 described in figure 18 are executed according to the information shown in Table 5 and Table 6 and with reference only to the agents AGl and AG2.
In table 7 the values V of the comparison function CF results are shown for each name feature N in the last column.
Moreover, in the other columns of table 7 requested values R, requiring user U-RI, user preference UP for every requiring user U-RI, offered values 0 and offering user U-OF are listed.
Figure imgf000065_0001
As described above with reference to final processing ENDELAB, according to the values of the calculated distances shown in table 7 rank RK can be calculated.
For example, the rank RK is obtained subtracting the sum S of 8 addends divided by 8 from the number 1. Each addend is obtained multiplying each calculated distance by the user preference UP and the a priori preference APP, set for each feature.
In this example the a priori preference APP has not been considered for simplicity's sake. Moreover, in the evaluation of the sum S the user preference UP shown in table 7 is divided by 100 in order to normalize it between 0 and 1, the same as the values of the comparison functions. S = 0,0320*0,95 + 0*0,7 + 0*1 + 0*1 + 0,02-0,9 + 0,02*0,9 + 0,2*0,1 + 0,2*0,1 = 0,11 RK = 1 - S/8 = 0,98 The agents Aga and Agb have similar requested/offered values for the first three features
(Age, Sex, Residency) . Whereas the distance for the last feature concerning the Interests is higher, but anyway the resulting addend is low since the corresponding user preference UP is low.
The rank value is of significance if compared with another rank. For example, let us take another agent Age associated with the user Alberto into consideration. Suppose Alberto has the same profile as Roberto except for the fact that he lives in Arezzo instead of Prato.
Since Arezzo is farther from Florence than Prato is, the matching rank between Aga and Age is less than the rank between Aga and Age and so the user Daniela is notified of user Roberto's profile instead of Alberto's one.
If after the notification the user Daniela likes or does not like user Robert's profile, this information can be sent as feedback to the system (for example in the form of a scalar number between 0 and 1 inclusive where 1 stands for the maximum satisfaction and 0 for the maximum dissatisfaction) in order to be used by the algorithms of the particular embodiment .
The way in which the user's satisfaction is collected changes according to the implementation. For instance it can be collected in an implicit way, giving a score 0 if Daniela deletes Roberto's notification message, a score 0.7 if Daniela adds Roberto in her address book, 1.0 if Daniela sends Roberto a message.

Claims

1. Method for the retrieval of information accessible by means of at least a computer and employing a step of searching a match according to a predefined goal and by means of electronic processing between a first agent (AGl) associated with a first user (Ul) and a second agent (AG2) associated with a second user (U2) , said method comprises the following steps : - associating (INSER-DATA; INSER-AG) , through storage in storage means, a first requested value requested (R- l;Rjl) by the first user (Ul) and a second offered value offered (0-2;Oj2) by the second user (U2) with the first agent (AGl) and the second agent (AG2) respectively, characterized in that it comprises also the step of: - associating (INSER-DATA; INSER-AG) , through storage in said storage means, a first offered value offered (O- l;Ojl) by the first user (Ul) and a second requested value requested (0-1;Oji) by the second user (U2) with the first agent (AGl) and the second agent (AG2) respectively.
2. Method according to claim 1, comprising a step of processing (ELAB-MATC) said first and second offered and requested values in a processing system (200) in order to obtain an indication of affinity (RK) between said first and second agent, which corresponds to the achievement of the goal .
3. Method according to claim 1, comprising a step of sending (NOTFYCATION) a notification of an occurred match to at least the first user (Ul) according to said goal together with said information to retrieve.
4. Method according to claim 1, in which at least one value between said first and second requested value and said first and second offered value is defined by means of a step of coding said at least one value with a vector containing a number of components .
5. Method in agreement with claim 2, in which said processing step (ELAB-MATC) comprises the following steps:
- carrying out a first electronic processing (ELAB1) of comparison of said first requested value (Rji) with said second offered value (Oj2) ,
- carrying out a second electronic processing (ELAB2) of comparison between said first offered value (Oji) and said second requested value (Rj2) , said first and second electronic processing providing respectively a first (Yjι,j2) and a second (Yj2 ji) partial indication of affinity between said first (AGl) and second (AG2) agent .
6. Method according to claim 5, comprising also a step of carrying out a third electronic processing (ENDELAB) starting from said first (Yji,j2) and second (γj2,ji) partial indication of affinity in order to obtain said indication of affinity (RK) .
7. Method according to claim 1, comprising a step of selecting (SELCT) among a plurality of available agents (AGi) and on the basis of said goal a plurality of eligible agents (AGel) for the search of the match, said second agent (AG2) belonging to said plurality of eligible agents.
8. Method according to claim 7, comprising a step of processing (ELAB-MATC) a plurality of values associated with each eligible agent (AGel) together with said values associated with the first agent (AGl) in order to obtain a corresponding indication of affinity with said first agent (AGl) for each eligible agent.
9. Method according to claim 8, comprising the steps of ordering (CHOS-AG) said eligible agents (AGel) on the basis of the corresponding indication of affinity and of sending (NOTFY-US) at least to the first user (Ul) a plurality of notifications of matches between said first agent (AGl) and at least a group of said eligible agents (AGel) , each of said eligible agents of the group having a corresponding indication of affinity which is such as to achieve said goal.
10. Method according to claim 3, in which said step of sending (NOTFYCATION) comprises a feedback step (FED-BAK) in which said first user (Ul) sends to said processing system (200) a signal representing the level of satisfaction resulting from the notified match.
11. Method according to claim 2, comprising a step of sending (INV-MACH) in which the first user (Ul) sends to said computer system a signal requiring the search for the match (MACH) .
12. Method according to claim 11, in which said step of sending the match search request (INV-MACH) occurs right after said steps of association (INSER- DATA; INS-AG) .
13. Method according to claim 11, in which said step of sending (INV-MACH) the match search request (MACH) occurs after a predefined time interval from said steps of associating (INSER-DATA; INS-AG) .
14. Method according to claim 4 , in which said components are real numbers.
15. Method according to claim 4, in which said coding step comprises the following steps:
- visualization through display means a dialog box (COD- WINDW) which can be used by an administrator, said dialog box defining a region,
- associating a first position on said region with said at least one value (CEO) and a second position on said region with at least a further value (CTO) , - associating a distance between the positions in this region with said value and said further value, said distance representing the semantic distance between said value and said further value.
16. Method according to claim 1, in which a first datum (MI-R) concerning the matching item, a second data concerning a matching item feature (MF) and a preference-data (UPj ;APP) representing the dissatisfaction of said first user, as the distance between the first requested value (Rji) and the second offered value (Oj2) grows, are associated with said first agent .
17. Method according to claims 2 and 16, in which in said processing step (ELAB-MATCH) the first and the second offered and requested values are processed together with said preference-data (UPj,APP).
18. Method according to claim 3, in which said sending step (NOTFYCATION) comprises a step of communicating to the first user (Ul) an explanation in natural language regarding the result of the goal subsequent to the notified match.
19. Method according to claim 1, comprising a step of defining a first agent type (AGTj) and a second agent type (AGTi) , on the basis of the role taken in the match search and of associating with the first and the second agent type a datum (FLGji) having a value representing an enabling/disabling to carry out a match between an agent of the first type and another agent of the second type.
20. Method according to claim 16, comprising a step of displaying through display means associated with first user (Ul) a graphical interface which allows said first user to insert/modify values of said second datum (MF) and/or of said preference-datum (UPj).
21. Method according to claims 16 and 19, in which said first agent (AGl) belongs to the first agent type (AGTj), the method comprising a step, which can be carried out by the administrator, of association with the first agent type of at least a visibility-datum (VIS-R;VIS-O) to represent an enabling/disabling to display on the first user's part of a graphical interface of insertion/modification of values of said second datum (MF) and /or of said preference-datum (UPj ) .
22. Method according to claim 1, in which said searched match is related to at least a matching service belonging to the group comprising: financial service, wireless service, e-commerce service, job searching service, people meeting service, news service, booking service, resource allocation and search engine service.
23. Program for processing system (200) directly loadable into a central memory (215) of a computer system (SI) in order to carry out the method steps according to any of the previous claims .
24. System (200) for the retrieval of information available in at least one computer, said system comprising:
- storage means (LDB) for storing a first plurality of data concerning a first agent (AGl) associated with a first user (Ul) and a second plurality of data concerning a second agent (AG2) associated with a second user (U2) , said first plurality of data comprising a first requested value requested (Rji) by the first user and said second plurality of data comprising a second offered valued offered (0j2) by the second user,
- processing means (ME, RME) of said first and second plurality of data for searching a match between the first agent (AGl) and the second agent (AG2) according to a predefined goal; characterized by the fact that said storage means (LDB) allows the storing, in connection with said first plurality of data, of a first offered value offered (Oji) by the first user (Ul) , and, in connection with said second plurality of data, of a second requested value requested (Rj2) by the second user (U2) .
25. System according to claim 24 in which said processing means (ME) is such as to process said first and second offered and requested values in order to obtain an indication of affinity (RK) between said first and second agent corresponding to the achievement of the goal.
26. System according to claim 25, comprising a management module (EMM) suitable to cooperate with the processing means (ME) and the storage means (LDB) to let an administrator configure a data structure of said first agent (AGl) and second agent (AG2) .
27. System according to claim 24, comprising also a user interface module (IUM) connected to the processing means (ME) in order to interface the processing means (ME) with at least said first user (Ul) .
28. System according to claim 27, comprising a graphical interface module (GIM) and wireless system interface module (IWM) to connect the first user (Ul) to the user interface module (IUM) .
29. System according to claim 27, comprising a notification manager module (NM) which allows the sending of messages notifying the occurrence of a match to at least the first user (Ul) and through the user interface module (IUM), achieving said goal.
30. System according to claim 29, in which said notification manager module (MN) is operatively associated with at least a module of the group comprising: a module (MM) for the management of e-mail, a module (SMSM) for the management of SMS messages (Short Message Service) , a module VMM for the management of voice mail .
31. System according to claim 25, comprising a server processing system (SI) with which the processing means (ME;PU) is associated, said server processings system (SI) being connected through a telecommunication network (101) to a first (CI) and a second (C2) client processing system with which the first user (Ul) and the second user (U2) are respectively associated.
32. System according to claim 31, in which said telecommunication network comprises an INTERNET network.
33. System according to claim 31, in which said first user (Ul) is interfaced with said telecommunication network by means of wireless technologies .
34. System according to claim 24, in which said processing means comprises a local engine module (ME) and a remote engine module (RME) communicating as to form an peer-to-peer network.
35. System according to claim 27, in which said processing means (ME) communicates with said user interface module (IUM) through XML messages (eXstensible Markup Language) .
36. System according to claim 35, comprising an API (Application Programming Interface) library in communication with said processing means (ME) and in which said user interface module (IUM) sends commands to the processing means (ME) to call functions belonging to the API (Application Programming Interface) library as to facilitate the development of user interface module (IUM) for the use of an administrator.
37. System according to claim 27, in which the user interface module (IUM) allows to create a graphical interface which can be visualized by said first user (Ul) to insert and/or update the data concerning said first agent (AGl) .
38. System according to claim 36, comprising also a tag library (LTG) for the definition of such proprietary tags as to encapsulate the commands to call the functions of the API library.
39. System according to claim 37, in which processing information, which can be employed by said processing means (ME) to search said match, is stored in said storage means (LDB) , said processing information comprising interface information (N;AF;DT;MI;AGT; -R,VIS- R;VIS-0;VIS-N;MA-R;MAO;MA-N; CAP) which can be employed for the creation of said graphical interface.
PCT/IT2001/000159 2001-03-29 2001-03-29 Method and system for information retrieval WO2002080062A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/IT2001/000159 WO2002080062A1 (en) 2001-03-29 2001-03-29 Method and system for information retrieval
EP01919771A EP1346297A1 (en) 2001-03-29 2001-03-29 Method and system for information retrieval

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IT2001/000159 WO2002080062A1 (en) 2001-03-29 2001-03-29 Method and system for information retrieval

Publications (1)

Publication Number Publication Date
WO2002080062A1 true WO2002080062A1 (en) 2002-10-10

Family

ID=11133644

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IT2001/000159 WO2002080062A1 (en) 2001-03-29 2001-03-29 Method and system for information retrieval

Country Status (2)

Country Link
EP (1) EP1346297A1 (en)
WO (1) WO2002080062A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997026612A1 (en) * 1996-01-17 1997-07-24 Personal Agents, Inc. Intelligent agents for electronic commerce
US5794210A (en) * 1995-12-11 1998-08-11 Cybergold, Inc. Attention brokerage
WO2000042545A2 (en) * 1999-01-14 2000-07-20 Autobytel.Com, Inc. System and method for selectively retrieving information items

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5794210A (en) * 1995-12-11 1998-08-11 Cybergold, Inc. Attention brokerage
WO1997026612A1 (en) * 1996-01-17 1997-07-24 Personal Agents, Inc. Intelligent agents for electronic commerce
WO2000042545A2 (en) * 1999-01-14 2000-07-20 Autobytel.Com, Inc. System and method for selectively retrieving information items

Also Published As

Publication number Publication date
EP1346297A1 (en) 2003-09-24

Similar Documents

Publication Publication Date Title
US20030137536A1 (en) Method and apparatus for communicating changes from and to a shared associative database using one-way communications techniques
Cohen et al. Personalized electronic services in the Cornell University Library
US20030227487A1 (en) Method and apparatus for creating and accessing associative data structures under a shared model of categories, rules, triggers and data relationship permissions
US7076504B1 (en) Sharing a centralized profile
US6195651B1 (en) System, method and article of manufacture for a tuned user application experience
US7076736B2 (en) Method and apparatus for sharing many thought databases among many clients
US8121891B2 (en) Personalized product report
US8108418B2 (en) System, method and article of manufacture for advanced information gathering for targetted activities
US6446076B1 (en) Voice interactive web-based agent system responsive to a user location for prioritizing and formatting information
EP1143356B1 (en) Meta-document and method of managing meta-documents
US20020103818A1 (en) Information repository system and method for an internet portal system
US20100318558A1 (en) Visual method and system for rdf creation, manipulation, aggregation, application and search
WO2000051042A2 (en) A system, method and article of manufacture for retrieving information from a network related to targetted activities
JP2001056810A (en) Database access system
WO2000028455A1 (en) A system, method and article of manufacture for advanced mobile bargain shopping
US7325010B1 (en) Information modeling method and database searching method using the information modeling method
WO2000031656A2 (en) A system, method and article of manufacture for effectively interacting with a network user
EP1346297A1 (en) Method and system for information retrieval
Sarkar et al. Developing an intranet-based knowledge management framework in a consulting firm: a conceptual model and its implementation
Kostkova et al. Distributed search in national electronic library for health
Finin et al. Software agents for information retrieval
KR20030060202A (en) The integrated operation system which integrates the multiple electronic document management system and the multiple knowledge management system which uses the tree elder brother classification system
Fierz Structured content and connectivity of medical information-the Medical Data Web
Detlor et al. Intelligent Agents and Knowledge Portals
Xu Cooperative data mining using rough sets

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2001919771

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2001919771

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

NENP Non-entry into the national phase

Ref country code: JP