WO2002103559A2 - Method and system for providing information services to subscribed users of a cellular network using an interface device - Google Patents

Method and system for providing information services to subscribed users of a cellular network using an interface device Download PDF

Info

Publication number
WO2002103559A2
WO2002103559A2 PCT/IL2002/000483 IL0200483W WO02103559A2 WO 2002103559 A2 WO2002103559 A2 WO 2002103559A2 IL 0200483 W IL0200483 W IL 0200483W WO 02103559 A2 WO02103559 A2 WO 02103559A2
Authority
WO
WIPO (PCT)
Prior art keywords
subscriber
information
cellular network
text
user
Prior art date
Application number
PCT/IL2002/000483
Other languages
French (fr)
Other versions
WO2002103559A3 (en
Inventor
Nahi Nehemia Nachmani
Sarid Emanuel Smadar
Original Assignee
Cellesense Technologies Ltd.
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
Priority claimed from IL14389501A external-priority patent/IL143895A0/en
Priority claimed from IL14849102A external-priority patent/IL148491A0/en
Application filed by Cellesense Technologies Ltd. filed Critical Cellesense Technologies Ltd.
Priority to GB0401099A priority Critical patent/GB2394098A/en
Publication of WO2002103559A2 publication Critical patent/WO2002103559A2/en
Publication of WO2002103559A3 publication Critical patent/WO2002103559A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24526Internal representations for queries

Definitions

  • the present invention relates to the field of cellular phone services. More particularly, the invention relates to a method and system for delivering content to an interface device (e.g., cellular phone) user, through the usage of natural language.
  • an interface device e.g., cellular phone
  • VAS Value Added Services
  • WAP Wireless Application Protocol
  • SMS Short Message Service
  • WAP allows users to access information via handheld wireless devices such as mobile phones, pagers, smart phones, and communicators.
  • SMS Short Message Service
  • not every cellular terminal supports all the different interfaces (e.g., SMS, WAP, Video, etc).
  • the outcome is that not all users can receive and take advantage of their operator's valuable options.
  • Content providers are constantly facing the challenge of how to deliver content to the maximal number of subscribers.
  • an interface device is a portable/wireless device such as mobile phones, cellular phone, pagers, smart phones, Personal Digital Assistant (PDA) device and communicators, and it also can be in form of cellular modems and fixed pagers.
  • PDA Personal Digital Assistant
  • SMS is a service for sending character-based messages to mobile phones, providing the ability to send and receive text messages to and from mobile telephones.
  • the text can comprise words or numbers or an alphanumeric combination.
  • SMS messages do not require an interface device, such as a mobile phone, to be active and within range and the text might be held for a number of days until the mobile phone is active and within range. They can also be sent to digital phones from a Web-site equipped, for example, with PC Link, or from one digital phone to another.
  • WAP World Wide Web
  • any document format used on the Internet e.g., HTML
  • a packet-based information service for mobile phones i.e., I-Mode
  • voice browsing when available, etc.
  • Subscribing to an SMS-based service that provides, usually, predetermined requested information (i.e., push and/or pull base), such as a reminder for a TV show.
  • SMS interface As for a subscribed user of an SMS-based service, getting information using SMS interface requires the user to send a specific predefined code or keywords in specific format to a content source, which in turn sends back the requested information. The user is required to memorize and key-in the exact codes, which makes it difficult to use and to remember.
  • Subscribers generally, want to receive on-line relevant pieces of information, such as the arrival time of a specific flight, the address of the nearest after-hours pharmacy, etc.
  • Cellular operators have invested considerably in providing suitable content to their subscribers using inform ation/applications .
  • Neural network is a type of artificial intelligence that attempts to imitate the way a human brain works. Rather than using a digital model, in which all computations manipulate zeros and ones, a neural network operates by creating connections between processing elements in the computer equivalent of neurons. Those neurons are trained by applying inputs and the corresponding, expected outputs. Therefore, neural network may be used as an additional technology for obtaining information utilizing natural language over cellular networks.
  • neural network is not deterministic and it is relatively difficult to anticipate the behavior of such system; neural network requires training by a qualified person, with expertise in this field; utilizing neural network as a natural language processing method requires that all relevant vocabulary will be 'learned' by the neural network, which means that every vocabulary change requires additional training.
  • the present invention is directed to a method for providing information to a subscriber over a cellular network, in response to a request, that comprises: receiving a request from the subscriber, in essentially natural language, and converting the request into a text according to a predetermined textual format; obtaining the meaning of the content of the text by parsing/analyzing the text; searching for an information, according to the meaning of the text and retrieving the information from a defined database, wherein the information is stored in a local or remote database; converting the retrieved information into a format that can be supported by an interface device employed by the subscriber to communicate with the cellular network; and delivering the information to the subscriber over the cellular network using that format.
  • the textual format may be a combination of characters, which is used to represent the request from the subscriber.
  • the format may be a communication protocol supported by the cellular network and by an interface device used by the subscriber to communicate with the cellular network.
  • the communication protocol may. be selected from the group consisting of SMS, EMS, MMS, WAP, HTML, speech to text, hand writing recognition, etc.
  • the interface device is selected from a mobile phone, a cellular phone or a portable/wireless device that can be supported by a communication protocol.
  • it may further comprises initiating interaction with the subscriber for collecting information from the subscriber, representing his fields of interest and personal details, thereby providing the subscriber promotional information and/or additional information related to his field of interest.
  • the meaning of the content of the text is obtained by performing the following steps: determining expression patterns, each containing a combination of characters reflecting a meaningful word and having a predetermined weight value expected to represent the probability that the meaningful word reflects that meaning; associating each of the expression patterns with an executable operation that manipulates the text whenever the meaningful word of a pattern is not directly associated with the meaning, or otherwise, executing a predetermined operation that is directly associated with that meaning; seeking suitable expression patterns, wherein said suitable expression patterns are a specific expression patterns containing a combination of characters that relates to the content of the text; executing the operation associated with the suitable expression pattern, in an order determined by each weight value; and whenever a suitable expression pattern having a meaningful word directly associated with the meaning is not obtained, continuing seeking a suitable expression pattern and executing the operation associated with the suitable expression pattern, while inputting each time the last manipulated text, until a suitable expression pattern is found.
  • it may further comprising allowing the cellular network operator to control, manage, update and manipulate at least a portion of the databases.
  • the subscriber may inputs personalized expressions for representing textual inputs, wherein the personalized expressions may be shortcuts.
  • the present invention may further comprising handling spelling mistakes, grammar errors and usage of special cellular language.
  • the special cellular language may be selected from the group consisting of shortcuts, terms and words, each of which is unique to a specific subscriber.
  • a managing mechanism being a tool for adding and/or modifying content.
  • the managing mechanism may comprise debugging tools and perform maintenance operations. Content addition and/or modification are performed by determining one or more rules.
  • the managing mechanism may be operated via a graphical user interface (GUI) and may display exceptions inputs from the user on the GUI, and suggest a possible rule to map the exceptions inputs to an application.
  • GUI graphical user interface
  • content addition and/or modification are performed by determining the business logic that specifies a requested application and selecting basic forms of queries that represent the different inputs in natural language.
  • a set of rules for mapping the inputs to the basic forms is generated and the requested application is then carried out using the set of rules.
  • applicable commands are provided at nodes of the rule programming toolbar of the GUI, while the toolbar shows only the possible commands for each node.
  • a popup window is shown, with a description of the command.
  • a new command is automatically added to the corresponding rule and values for the new command are set by clicking on a node associated with the new command, and whenever an additional window appears, inputting one or more predetermined values for the new command in the additional window.
  • the present invention is also directed to a system for providing information to a subscriber over a cellular network, in response to a request from the subscriber that comprises: an interface for receiving a request from the subscriber, in essentially natural language, and means for converting the request into a text according to a predetermined textual format; processing means for parsing/analyzing the text for obtaining the meaning of the content of the text; means for searching the information over a database, and for retrieving the information from the database; means for converting the retrieved information into a format that can be supported by an interface device employed by the subscriber to communicate with the cellular network; and an interface for delivering the information to the subscriber over the cellular network using the format that can be supported by the interface device employed by the subscriber.
  • the information may be stored in a local or remote database.
  • the textual format may be a combination of characters used to represent the request from the subscriber.
  • the format may be a communication protocol supported by the cellular network and by an interface device used by the subscriber to communicate with the cellular network.
  • the communication protocol is selected from SMS, EMS, MMS, WAP, HTML, speech to text, hand writing recognition etc.
  • the interface device may be selected from a mobile phone, a cellular phone or a portable/wireless device that can be supported by a communication protocol.
  • the system may further comprise means for initiating interaction with the subscriber for collecting information representing his fields of interest and personal details, and means for providing the subscriber promotional information.
  • the system may further comprise means for allowing the cellular network operator to control, manage, update and manipulate at least a portion of the databases.
  • the present invention may further comprise means for handling spelling mistakes, grammar errors and usage of special cellular language.
  • the special cellular language may be selected from the group consisting of shortcuts, terms and words, each of which is unique to a specific subscriber.
  • the system may further include a managing mechanism operated via a graphical user interface (GUI), that may comprise means for debugging and performing maintenance operations, for adding and/or modifying content and means for handling exceptions inputs from the user.
  • GUI graphical user interface
  • Fig. 1 schematically illustrates a system for processing and managing queries directed by a subscribed user of a cellular network to a content source over the cellular network, according to a preferred embodiment of the invention
  • Fig. 2 schematically illustrates a cellular network, according to the prior art
  • Fig. 3 schematically illustrates a cellular network with a system for processing and managing queries directed by a subscribed user of the cellular network to a content source, according to a preferred embodiment of the invention
  • Fig. 4 is a flow chart that illustrates a seeking method for finding a suitable expression pattern for the query of a subscribed user and its related resources in a system for processing and managing queries directed by that user to a content source, according to one embodiment of the invention
  • Fig. 5 schematically illustrates different options for determining a suitable expression pattern for a subscribed user query in a system for processing and managing queries directed by that user to a content source;
  • Fig. 6 is a flow chart that illustrates weight calculation of patterns for decision on suitable expression patterns to a query directed by a subscribed user to a content source;
  • Fig. 7 schematically illustrates the managing mechanism operation with the system of Fig. 1;
  • Fig. 8 schematically illustrates the GUI for the managing mechanism of Fig. 7.
  • a subscriber of a cellular network wishes to obtain information using an interface device, he usually prefers obtaining it in the most rapid and least complicated manner.
  • a subscriber does not wish to memorize extensive SMS codes or to waste precious time and money on a relatively slow WAP browsing process involving innumerable clicks.
  • cellular network operators want to provide all of their market deployed interface devices with attractive content sources to their subscribers.
  • the present invention provides both the subscribed user and the cellular network operator a system that overcomes the disadvantages as described hereinabove. It allows the subscriber of a cellular network to introduce queries in natural language by using an interface device, and receive in return the requested information. The subscriber need not undertake further action to receive the requested answer to his query over the interface device.
  • the answer to a query may include any available information to such a system. For example, the weather in London, a cartoon image, the address of a specific Italian restaurant, etc.
  • the answer to such a query is not a link to the answer or a menu of possibilities to choose from, but the requested answer itself (i.e., a pinpointed answer).
  • the requested answer itself (i.e., a pinpointed answer).
  • Fig. 2 schematically illustrates a cellular network 24, according to the prior art.
  • Subscriber 11 communicates with cellular network 24 via one or more cells 30, which are spread out where it is required.
  • Switch 31 switches user 11 to the cellular network 24, the latter comprising a Home Location Register (HLR) 32 which is a database in cellular network 24 that contains all the subscribed users within the provider home service area.
  • HLR Home Location Register
  • VLR Visitor Location Register
  • VLR 33 is a database in cellular network 24 that contains all the subscribers currently within this service area.
  • Cellular network 24 may support the following services: Voice mail 34, SMS Center (SMSC) 35, WAP gateway 36, Customer Care (CC) & billing 37 and Gateway Mobile Location Center (GMLC) 38.
  • SMS Center SMS Center
  • WAP gateway WAP gateway
  • CC Customer Care
  • GMLC Gateway Mobile Location Center
  • SMS center 35 is a cellular network equipment that provides the SMS service by routing the short messages from/to interface devices. It also provides a Transmission Control Protocol/Internet Protocol (TCP/IP) interface through which external systems can send/receive short messages from/to interface devices.
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • GMLC 38 is a cellular network equipment that provides and controls the information about the physical location of an interface device. GLMC 38 retrieves the information directly or interrogates other cellular network equipment. SMS center 35, WAP gateway 36 and GMLC 38 are connected to the Local and/or Wide Area Network (LAN WAN) 39 of cellular network 24 using known communication protocols such as TCP IP. LAN/WAN 39 is also connected to the Internet 12 and to content sources 16 (content sources may reside in the cellular network 24 or outside of it).
  • LAN WAN 39 is also connected to the Internet 12 and to content sources 16 (content sources may reside in the cellular network 24 or outside of it).
  • Fig. 3 schematically illustrates the cellular network 24 to which system 10 is connected, according to a preferred embodiment of the invention.
  • System 10 may comprise a weight-based rules engine, which is used for building natural language interactive dialog.
  • System 10 converts different sentences to fixed strict controlled syntax meta-language.
  • the metalanguage is then easily translated to content interfaces such as extensible Markup Language (XML - An open standard for defining data elements on a Web page or documents. XML defines what HTML elements contain.)
  • XML extensible Markup Language
  • a subscribed user 11 of system 10 can use natural language in order to obtain information from content sources (such as content source 16) over cellular network 24.
  • System 10 may be connected to cellular network 24 through WAP gateway 36, SMSC 35, and or any other additional protocol that can be supported by cellular network 24.
  • a request from user 11 is received at system 10 via one or more communication protocols (i.e., SMSC 35, WAP gateway 36) that depend on the interface device of user 11.
  • system 10 acquires the relevant information from the appropriate database (e.g., content source 16), whether it is a local or internal content source, remote or external content source, or from Web sites over the Internet 12.
  • Fig. 1 schematically illustrates system 10, which processes and manages queries introduced by a subscriber 11 over cellular network 24, according to one embodiment of the invention.
  • System 10 receives input sentences from a user 11 and returns a pinpointed answer based on available sources, such as internal database 22, external databases 14 to 16, Web sites 13, etc.
  • System 10 is used for analyzing a natural language text in order to obtain the meaning of the content of the text that was received from user 11, for generating the requested pinpointed answer.
  • system 10 carries out a number of actions (i.e., executable operations) in order to provide the answer to the input sentence of user 11.
  • the course of action may include one or more of the following:
  • Running scripts i.e., commands in programming languages, such as Java
  • Updating information on user 11 i.e., building or updating a profile on user 11
  • the profile of user 11 may include individual variables from user 11, such as fields of interest and personal details and its history of interaction with system 10.
  • system 10 can handle input sentences from user 11, which may contain errors in syntax, grammar and spelling and even special cellular language that is used by a specific subscriber (i.e., unique shortcuts, terms or words that are used by a specific subscriber).
  • a special cellular language that is used by a specific subscriber may be, for example, an input sentence comprising the unique shortcut "time NY” which may refer to "what is the time in New York?" and etc.
  • system 10 comprises a Language Processor (LP) 20 that performs the processing method of analyzing a natural language text and executing the action derived from the text (i.e., obtaining the request of user 11).
  • LP Language Processor
  • LP 20 receives input sentences in natural language from user 11, and converts the natural language into a specific request. This request is transferred to a content source, such as internal database 22, Web sites 13, etc., which returns data to LP 20 that embodies the information into a suitable answer to be sent to user 11.
  • a content source such as internal database 22, Web sites 13, etc.
  • LP 20 may comprise:
  • Rules engine and rules for text analyzing as described hereinabove are described hereinabove; Profiles of the users such as user 11 as described hereinabove; Lexicon, to be described hereinafter; and/or Any suitable natural language processing tools.
  • a lexicon may be used in order to obtain the meaning of the input sentence (i.e., "understand” the combination of characters, which usually represent words in natural language, of the input sentences).
  • a lexicon may include a list of words (e.g. nouns, verbs, adverbs, etc.), a sense for each word (i.e., a brief sentence explaining the phrase), the frequency of usage and relations to other words.
  • a lexicon allows parsing when specifying related words (e.g., similar - synonym, opposite - antonym, etc). This allows system 10 to "understand" a wide span of words.
  • the structure of a lexicon may allow specifying the general form of a sentence without specifying all the possible options. For example, assuming that a predefined rule (i.e., pattern) has a word representing a type of horse: in this case, in a specific section in a database, we can specify that the word should be a hyponym of "Horse", thus including “Pony", “Pinto”, “Roan”, “Mare”, and other variations.
  • LP 20 navigates the request from user 11 to any available content source (i.e., Internet 12, external databases 14 to 16, etc.) through an External Content Access Gateway (ECAG) 21, which is connected to such external content sources.
  • ECAG 21 allows system 10 to access content sources utilizing different interfaces, such as:
  • General database access library e.g. Open Data Base Connectivity - ODBC
  • Web mining library getting a specific piece of information from a specific page on a Web site or utilizing Web services
  • a custom interface of a specific information source i.e., Application Programming Interface - API
  • UDDI Universal Description, Discovery and Integration
  • connection between user 11 and system 10 is made via a cellular network 24, through any possible communication protocol, such as WAP 17, SMS 18, Speech to Text 19, or any other available protocols allowing system 10 to receive a textual form of the request.
  • System 10 is connected to cellular network 24 in such a way that it can support any protocol supported by such a cellular network 24.
  • System 10 converts information received from each of said protocols into its required format and vice versa to user 11.
  • LP 20 performs the conversion of the received information from the user 11 or the information for transmission to user 11.
  • system 10 is a weight-based rules engine, which is used for building interactive dialog in natural language.
  • System 10 is based on a process of recursive rules that allows user 11 to interact with databases such as content source 14 to 16 and Web-sites 13 over the Internet/intranet 12 using natural language.
  • the rules engine is used for morphing and parsing a natural language text and interacting with content sources over cellular network 24.
  • LP 20 is the rule engine of system 10 and the language used by system 10 is rule-based, i.e., there is no special order for commands, but rather a collection of rules that system 10 obtains their meaning (i.e., "understands") and uses to process input from user 11.
  • pattern The basic unit of the language in terms of system 10 is called pattern.
  • a pattern is a specific rule defined in system 10, having the structure of a condition part (i.e., expression pattern) and its corresponding action part (i.e., executable operations), which are executed if the condition is met (i.e., the form of pattern is equal to "IF ... THEN.").
  • the executable operations manipulate the text of the input sentence whenever the meaningful word of a pattern is not directly associated with the meaning of the sentence, or otherwise, executing an operation that is directly associated with the meaning of the input sentence.
  • the patterns comprises two parts:
  • LHS Left Hand Side
  • RHS Right Hand Side
  • the LHS may include one or more of the following components: A Mask filter, which is a combination of characters that reflects a meaningful word. The mask filter checks whether the input sentence contains that specific combination of characters. For example, the mask filter can be a combination of characters that represent a word, such as "weather";
  • Conditions which are a set of tests that check environment parameters and data from the stored profile of user 11 or any relevant and available content source. For example, system 10 checks if user 11 has already provided his name (if not, system 10 may ask user 11 to provide his name). Conditions are used to differentiate between patterns that accept the same input (e.g. has the same Mask and Parse);
  • Parse which is a set of conditions on the input text, is intended to check if the input sentence from user 11 fits a specific syntactical structure. For example, by using parse, system 10 checks whether the input from user 11 is a sentence containing a noun which is a name of a currency, followed by a noun which is a synonym of the word index. Parse is used to syntactically parse the input and determine if it matches or relates a specific structure;
  • Weight is a numeric value specifying the statistical probability of the pattern intended to fit the intention of user 11 (weight is usually predetermined by the operator of system 10).
  • the RHS may include one or more of the following components:
  • a command to execute a program on an external system is a command to execute a program on an external system.
  • LHS is usually built from Mask filter + Parse + Conditions + History
  • RHS is usually built from execution instructions/commands
  • Rules are grouped into collections, wherein a collection contains a subject that can be referred from the history element in the LHS part of the rule;
  • Goals are a type of rules with no input filter but only the conditions and history;
  • Goals are reasoned (that is, system 10 peruses all the goals and locate the one whose LHS is true and has the highest weight);
  • the output from the goals is appended to the output from the patterns.
  • system 10 performs two main tasks, the first, to generate an output from the input of user 11 by using the patterns, and the second, to generate additional text by using the goals.
  • an input sentence from user 11 may fit many patterns, but system 10 will select the pattern with the highest weight and then execute its associated actions (i.e., the RHS part of the pattern).
  • An output from the associated actions may be a reply to user 11 or a recursive request, which means that system 10 will use it as if it were a new request from user 11.
  • System 10 is also capable of a rollback after the execution of an action, which allows it to try a pattern and rollback the results if the output is not suitable (i.e., the RHS part failed to fully execute).
  • a rollback mechanism allows system 10 to try several paths of patterns and later select the highest weight path.
  • System 10 selects the appropriate pattern not only based on the weight of the pattern itself but also on the subject the pattern is associated with. Since such a structure may easily lock into a recursive loop, system 10 is using a horizontal search (known as bridth) in order to avoid endless loops, as will be described in accordance with Figs. 5 and 6 hereinafter.
  • bridth a horizontal search
  • the language of system 10 includes, at least, the following commands: Pattern - basic rule as described hereinabove; Parse - used to parse user input;
  • Condition - used to check whether a required condition is met; and Goal - defines a purpose for system 10 to be achieved.
  • the Patterns are organized in collections (i.e., groups), wherein each collection has its own subject and weight.
  • Each pattern has two optional stages of analyzing (i.e., filtering) the input from user 11: the first is the Mask filter - which is a quick but limited filter, intended to filter out patterns not relevant to the meaning of the input sentence. the second is called Parse - it is a definite syntax parser, which can perform relatively complex analyses of sentences. It is a collection of sections wherein each comprises a set of criteria and may instruct system 10 to store the corresponding input word(s) for later use.
  • the sections includes one or more type of criteria such as the following: correspond to a piece of text; correspond to one of the phrases; correspond to a phrase from a list in a file or in a database (i.e., content source); correspond to a character which represents any number of words, such as "*"; correspond to a portion of speech from an internal lexicon; and correspond to a word that has a specific relation (such as synonym, metonym, etc.) to a specific word.
  • a type of criteria such as the following: correspond to a piece of text; correspond to one of the phrases; correspond to a phrase from a list in a file or in a database (i.e., content source); correspond to a character which represents any number of words, such as "*"; correspond to a portion of speech from an internal lexicon; and correspond to a word that has a specific relation (such as synonym, metonym, etc.) to a specific word.
  • system 10 will always try the Mask filter at first, which rapidly filters irrelevant patterns, and only patterns passing the mask filter are then processed with the parse.
  • Mask filter may contain a combination of characters that provide wild characters/words, i.e., uses partial/shortened words, shortcuts and/or usage of special cellular language and still, system 10 will be able to "understand” its meaning. For example, a user can write in shortcut "where r u?” instead of "where are you?" or "shop*", wherein the "*" character means any number of words, i.e., shopping, shopper etc. Furthermore, spelling mistakes and grammar errors can be easily handle in system 10, due to the usage of such wildcards.
  • suitable expression pattern refers to a specific expression patterns containing a combination of characters that relates to the content of the text of an input sentence from user 11.
  • suitable expression pattern refers to a specific expression patterns containing a combination of characters that relates to the content of the text of an input sentence from user 11.
  • the following is an example of common usage of wildcard characters, characters list or characters ranges, in any combination, while seeking for a pattern that is suitable to input sentences from user 11 that is being represented by a combination of characters: .
  • a question mark (?) placed at in a word is refer to any possible single character for system 10 to check;
  • an asterisk (*) placed at the end of a word of user 11 sentence refers to zero or more possible characters for system 10 to check;
  • a group of one or more characters i.e., charlist
  • brackets [ ]
  • An exclamation point (!) at the beginning of a group of one or more characters (i.e., charlist) enclosed in brackets ([ ]) means that a match is made if any character except those in charlist is found in string. When used outside brackets, the exclamation point matches itself.
  • System 10 performs a search until a suitable pattern is related to the input sentence, and since the context is finite, system 10 assumes that the first suitable pattern that was found is the right one. According to other embodiments of the present invention, it is possible to instruct system 10 to perform different search processes.
  • Fig. 4 is a flow chart that illustrates a method for finding a suitable expression pattern to an input sentence and its related resources in system 10, in order to provide the requested information (i.e., pinpointed answer) for the input sentence, according to one embodiment of the present invention.
  • the first step of the flow chart starts at block 41, which is the input sentence from user 11.
  • System 10 receives the input from user 11 in any possible form, such as SMS, WAP, HTML, Speech to Text translation (e.g., Voice recognition), handwriting recognition, or in any other way that is supported by cellular network 24 that can provide a natural language text.
  • system 10 is processing the text form, which represents by character string, to fit into a required formula to work with through the rest of the process, this formulated step including operations such as:
  • the original input text may also be sent to a statistics module 60 for off-line processing. Throughout the different stages, statistics and logs are collected for an offline process that is intended to allow the administrator of system 10 to find about exceptions and for system 10 to optimize the weights and processing order.
  • a pattern is selected, wherein the selected pattern is that with the greatest weight from the valid options of patterns. After the pattern has been selected, it is examined to determine whether the mask part of the pattern is valid, as well.
  • system 10 is performing a search for finding the best available pattern according to the input sentence. In block 43, system 10 find the best next pattern to test (as a function of weight, history and mask), tries to guess the best pattern and then further tests the pattern to check whether it is valid.
  • system 10 executes a 'deeper' parse for the selected pattern than in the previous step.
  • System 10 eliminates options by using the 'mask' filter and then checks the 'parse'; when all the possible patterns have been checked and parsed, a specific pattern is selected. For example, a word may be tested if it is a synonym for another word or if it is a verb, a noun and so on. (It is important to note that because the system uses weight for the selection, there will arise cases in which there is no point in actually parsing some patterns, since even if they match the 'mask' and 'parse', the weight will rule them out).
  • the result of the parse may stores values in a temporary variable storage, such as internal database 22, which can be later committed or rolled back. If the parse fails, then the whole pattern fails and system 10 returns to select the next best pattern. If the pattern is still valid, at the next step (block 45), a set of conditions may be tested, only if the selected pattern includes required elements for such tests (e.g., there might exist patterns valid only during the morning hours, or seasonally). Conditions test for additional variables, such as the value of a variable in the user profile, etc. Arbitrary conditions may be set for a pattern, for example, a condition that checks the time (e.g., morning, noon, night), or placing variables from the profile of the currently active user in accordance with the age of the active user.
  • a temporary variable storage such as internal database 22, which can be later committed or rolled back.
  • the next step, block 46 is a condition block that allows the continuance of block 47 only if all the high weight patterns were tested, or else it returns to block 43 to find more patterns of high weight.
  • Block 46 ensures that system 10 actually screened all the optional patterns, and finally selected the best one for the next stage.
  • Block 52 is an optional mechanism of time limit, a safety mechanism to guard against endless loops in system 10.
  • system 10 executes the actions defined in the action part of the pattern, such actions writing the reply to user 11, but also optionally used to run scripts, update variables and the profile of user 11.
  • the next step (after block 47), block 48, is another condition block in which system 10 checks (in related internal/external databases, such as database 61, content source 58 etc.) whether an additional information and/or request may be added to the reply to user 11.
  • the additional information and/or request may be based on the type of reply, such as question or statement and its size, or on a specific user preference which taken from the stored user profile 56 in a related database 61.
  • the next step, block 49 is using the rules engine again (i.e., the steps of blocks 41 to 47) build a reply to a virtual question posed by the software of system 10 itself.
  • the result of this step, block 49 is a reply to the user 11, which is called goal, in terms of the present invention.
  • Goals 57 which is a database of patterns used to generate goals.
  • system 10 includes several databases 61 to store the patterns, goal, user profiles, lexicon etc. as described in Fig. 1 by internal database 22 and LP repository 23.
  • databases 61 can be external databases, as well.
  • Lexicon 55 is a database of vocabulary comprising verbs, nouns, adverbs and an adjective, as well as a wide range of relationships between words (e.g. synonyms, antonyms, hyponyms etc). Lexicon 55 refers to the lexical database described in Fig. 1 hereinabove.
  • next step pack the reply and goal (if applicable) to the format of the interface device of user 11, for example WAP, SMS, HTML, etc.
  • block 53 sends the output to the device via the appropriate channel through cellular network 24.
  • the process of the present invention is recursive and non-deterministic.
  • Fig. 5 schematically illustrates the different options that system 10 has when it .determines a suitable pattern for the input sentence.
  • System 10 checks the user input and the patterns, for example, patterns 62, 63 and 64 in level 0, from which are found a number of suitable possibilities, some of which may be recursive, i.e., after executing them, system 10 will check another selection of patterns such as patterns 64 and 65 in level 1 and so on, until all suitable possibilities are exhausted.
  • the hierarchy of the patterns is as follows:
  • Patterns 62 to 64 are placed at level 0;
  • Patterns 65 to 67 are placed at level 1;
  • Patterns 68 to 70 are placed at level 2;
  • Patterns 71 to 72 are placed at level N.
  • the term A[level,X] indicates the weight of each pattern, for example A[0,1] is the weight of pattern 62, wherein '0' indicates the level of that pattern and ' 1' indicates the numbering of a specific pattern (pattern number 1 at level 0, in this case).
  • Fig. 6 is a flow chart that illustrates the weight calculation of patterns for decision on suitable expression patterns to an input sentence, according to one embodiment of the invention.
  • the first step of this flow chart starts at block 71, which activates the searching process for finding patterns that are suitable to the input sentence at level 0 (as shown in Fig. 5).
  • system 10 calculates the weight of all patterns at level 0 (i.e., patterns 62 to 63 as shown in Fig. 5).
  • system 10 performs checks to the patterns with a previous interaction of system 10 with user 11. This step is an optional section in the pattern that is used to test the history of the dialog. The history section is used to follow a conversation subject (e.g., user 11 answers "Yes", so to understand the meaning needed to check what was sent to him before he answered "Yes”).
  • system 10 marks all the patterns that may be valid for the current level of the recursion.
  • system 10 executes specific patterns of all the marked recursive patterns.
  • Block 76 is a condition block that repeats for the specific patterns (from block 76 to block 72) while the executing order is horizontal until either there are no more patterns to check or the level of recursion is larger then a predetermined threshold.
  • block 78 increases the current level by 1, therefore each step of block 72 to 75 is repeated each time at a higher level than the previous level.
  • Block 77 is an optional mechanism of time limit, a safety mechanism that may be used to guard against endless loops in system 10 during the search for suitable pattern.
  • Block 79 indicates that the search for suitable patterns was completed.
  • the weight scale may be a number from 1 to 5, wherein 1 may indicates a relatively low match having many words/characters without obtaining a match, and 5 may indicates a match to all the words in the sentence. Weights of the patterns actually define the way the rules engine of system 10 "understands" the user input, helping system 10 prefer one pattern to the other.
  • protocols such as SMS, EMS, MMS and WAP will be able to increase their traffic mobility.
  • system 10 receives an input sentence from user 11, wherein according to this example, the received sentence is: "what is the US dollar rate please”;
  • system 10 seeks (i.e., search) for suitable patterns, wherein their combination of characters in the condition part
  • expression pattern part are matching one or more words and/or any other combination of characters in the input sentence;
  • the first pattern comprising in the RHS part (i.e., the executable operation), the executable operation that refers to a recursive operation that takes the stored manipulated text and delivers it to the input of system 10, as if it were a new sentence from user 11.
  • the executable operation that refers to a recursive operation that takes the stored manipulated text and delivers it to the input of system 10, as if it were a new sentence from user 11.
  • the LHS part i.e., condition part
  • LHS part i.e., condition part
  • weight 5
  • the third pattern comprising the RHS part refers to a set of operations that provides user 11 the currency rate of the US dollar.
  • system 10 will execute the third pattern because it has a higher weight value than the second pattern, and it will provide user 11 with the following answer: "the rate of the USD is 4.2".
  • a managing mechanism 71 (illustrated in Fig. 7) is added to system 10.
  • the managing mechanism 71 allows the composition of additional content to system 10 and/or the modification of existing content in system 10.
  • a system administrator associated with system 10 is the person in charge of operating the managing mechanism 71.
  • the additional and modified content can be any applicable service in any field, e.g., information about the stock market, snow forecast in ski resorts etc.
  • the content is performed by determining a set of rules, goals etc.
  • the managing mechanism 71 is provided with an interactive interface 80 (illustrated in Fig. 8), which simplifies the task of adding/modifying content by automatically suggesting possible rules and offering a predictive editor.
  • an automatic suggested possible rule can be: "when a user asks if he needs an umbrella, provide the weather”.
  • the interactive interface 80 is a graphic environment, i.e., a graphical user interface (GUI), that simplifies the tasks of adding/removing content, modifying content and/or handling exceptions (i.e., inputs from the user that the system 10 does not recognize).
  • GUI graphical user interface
  • the managing mechanism 71 allows the system administrator to perform tasks, such as define and change connections to content sources, add and edit parsing rules, manipulate the internal lexicon, compile the rules, open and manipulate the users' profiles, open and manipulate the profile of the system's personality (e.g. name, age, answers to questions from the users about the system itself) etc. Furthermore, the system administrator can use the managing mechanism 71 to debug and to trace the process of "understanding" the input received from a user. According to another preferred embodiment of the invention, managing mechanism 71 provides a compiler that converts the code (i.e., rules, database connection etc.) into binary files that are later run by the rules engine of system 10.
  • the managing mechanism 71 uses XML as the storage format of program files and manages the XML files through a project file that is XML based as well.
  • the managing mechanism 71 allows a visual view of a program file by transforming the XML structure into a visual editable tree-view or a keyword colored textual view subject to user preference (e.g., each command in the programming language is linked to an icon, such as the icons related with commands 91 and 92 shown in Fig. 8).
  • the managing mechanism 71 automatically displays the appropriate keywords that can be used in the visual tree by using XML format, thus allowing the user to select the programming instructions rather than type them.
  • the managing mechanism 71 allows the programmer to set only syntactically valid values and names within specific commands.
  • the managing mechanism 71 also allows editing rules directly as code in XML format, whenever desired.
  • the managing mechanism 71 provides a developing environment for natural language applications that allows the performance of tasks, such as:
  • the managing mechanism 71 allows a programmer, unskilled in natural language, or logic programming, who usually acts as a web/WAP developer for the operator web/WAP sites, to easily create content for a new service or to modify existing natural language services. In order to add a new service, the following process is performed by the managing mechanism 71:
  • Business logic refers to the actual logic performed in an application, the actual essence of the application that is not the user interface or any other parts.
  • the term business logic refers to "What to do after the user request is understood or what to do from the basic form (e.g. go to database X and get the weather from Table Y using parameter P as filter). 2) Selecting basic forms - in this stage the programmer needs to decide on the basic forms of the queries that are representing the different inputs in natural language.
  • mapping rules - in this stage the programmer using the managing mechanism 71 is writing the set of rules that map the different inputs to the basic forms.
  • the content provider needs no special training or skills, wherein its content manager (i.e., the system administrator) has to write a document that specifies how he wants the weather application to operate. For example, when answering questions about weather when a user can ask for the weather in a specific place or/and specific date, and if the location is not specified by the user, the address from user profile can be used.
  • the user questions could be:
  • the basic forms are a strict simple syntax that represent possible natural language inputs for example in the weather application as shown in window 87 of Fig. 8 (the content of node 83), the basic forms are: _Weather [City] [Country] [Date]
  • the next stage is writing rules.
  • the programmer is setting rules that convert the different natural language inputs to the basic forms.
  • the programmer is using the managing mechanism 71, which allows the programmer to write rules by graphically providing a tree like GUI 80 (Fig. 8), in which the programmer is automatically limited to the allowed commands in each node in the tree, such as nodes 83 to 86.
  • Each sub-node of a node represents a single rule, such as sub-nodes 91 and 92.
  • the programmer writes the business logic by writing a set of instructions that retrieve/generate the data required for sending back to the user. For example, regarding aforementioned weather example, the last stage might be performed as follows:
  • Defining a database connection such as database type (e.g. Oracle, SQL Server etc.), database version and drivers etc.
  • Generating query for the data being the output to the user (e.g., going to the weather table and retrieve the information about the weather in the location requested by the user).
  • Fig. 8 shows an example diagram for a tree like GUI 80 of the managing mechanism 71, according to a preferred embodiment of the invention.
  • the GUI 80 provides the applicable commands at any point in the rule programming on the toolbar 81.
  • the toolbar 81 automatically shows only the possible commands for a node, such as nodes 83 to 86, whenever the mouse pointer is placed on a command icon, such as icon 82, (e.g., by showing a "tool tip" which is a popup window with a description of the command).
  • a command icon such as icon 82
  • the command is automatically being added to the rule m the correct place and m the correct order thus the only task left to the programmer is to set values for the new command (the rules are shown on window 87).
  • the user To set the value for a new command the user only needs to click on a node.
  • the popup window will also limit the programmer from inputting the wrong type of data.
  • the programmer will be allowed to type in only values of the proper type (e.g. Number, date, time, text etc.).
  • the managing mechanism 71 provides the same mechanism as described hereinabove but also allows the programmer to write in a known programming language such as Java Script or Visual Basic (VB) script.
  • the managing mechanism 71 further comprises additional visual tools to debug and to perform maintenance operations, such as access user and system profiles whenever required to view and modify the profiles of both users and system etc.
  • the mechanism used to debug and to perform maintenance operations is the same GUI 80 as described hereinabove, thus the content manager needs no training nor special skills in order to view or modify the profiles.
  • the managing mechanism 71 also displays exception inputs from the users that are not handled or mishandled by the system 10.
  • the GUI 80 displays a table of all exceptions. Once the content administrator/programmer right clicks on a user input, the managing mechanism 71 will suggest a possible rule to map the unhandled input to one of the applications.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Method and system for providing information to a subscriber over a cellular network, in response to a request from the subscriber. A request is received from the subscriber, in essentially natural language, and the request is converted into a text according to a predetermined textual format. The meaning of the content of the text is obtained by parsing/analyzing the text. The information is searched according to the meaning over a database, from which the information is retrieved. The retrieved information is converted into a format that can be supported by an interface device employed by the subscriber to communicate with the cellular network, and delivered to the subscriber over the cellular network using this format.

Description

METHOD AND SYSTEM FOR PROVIDING INFORMATION
SERVICES TO SUBSCRIBED USERS OF A CELLULAR NETWORK
USING AN INTERFACE DEVICE
Field of the Invention
The present invention relates to the field of cellular phone services. More particularly, the invention relates to a method and system for delivering content to an interface device (e.g., cellular phone) user, through the usage of natural language.
Background of the Invention
In the face of increasing competition and declining voice revenues per subscriber, cellular network operators are pinning their hopes on Value Added Services (VAS) to increase usage and customer loyalty, attract new market segments, and differentiate their service options. Operators are seeking new attractive applications that combine low cost integration process and quick market adaptation.
The constant need to be connected to information and content sources is well recognized. Wireless Application Protocol (WAP), mobile Internet, and Short Message Service (SMS) and its further development forms, are the core offerings of cellular network operators to meet this need for their subscribers. WAP, for example, allows users to access information via handheld wireless devices such as mobile phones, pagers, smart phones, and communicators. However, not every cellular terminal supports all the different interfaces (e.g., SMS, WAP, Video, etc). The outcome is that not all users can receive and take advantage of their operator's valuable options. Content providers are constantly facing the challenge of how to deliver content to the maximal number of subscribers. By the term 'interface device' it is meant to include any device that can be supported by one or more communication protocols of a given cellular network. Usually, an interface device is a portable/wireless device such as mobile phones, cellular phone, pagers, smart phones, Personal Digital Assistant (PDA) device and communicators, and it also can be in form of cellular modems and fixed pagers.
By the term 'natural language' is meant any type of partial/complete expression of word and/or characters that may be pronounced and understood by an individual while providing the perception of normal spoken language. For example, "what is the address of the nearest pizzeria?"
SMS is a service for sending character-based messages to mobile phones, providing the ability to send and receive text messages to and from mobile telephones. The text can comprise words or numbers or an alphanumeric combination. However, SMS messages do not require an interface device, such as a mobile phone, to be active and within range and the text might be held for a number of days until the mobile phone is active and within range. They can also be sent to digital phones from a Web-site equipped, for example, with PC Link, or from one digital phone to another.
When a subscriber wants to receive on-line information via an interface device, he may obtain such information in the following ways:
Searching (i.e., surfing or browsing) the World Wide Web (i.e., Internet) using an interface device that supports one or more of the following format and/or protocols: WAP technology; any document format used on the Internet (e.g., HTML); a packet-based information service for mobile phones (i.e., I-Mode); voice browsing (when available), etc.; Subscribing to an SMS-based service that provides, usually, predetermined requested information (i.e., push and/or pull base), such as a reminder for a TV show.
However, in the current technologies, it is relatively hard to "surf the Web and to receive information by using predefined codes in order to access information. Furthermore, it is relatively not commutable to use the comparatively small display of mobile phones, and whenever specific information is requested, it may take a long time obtaining the requested information. WAP channel requires considerable waiting time for each connection and many clicks on the interface device, in order to display relevant information. Moreover, there are many interface device users having no Internet experience, or lacking the will or time to learn how to fully utilize their interface device handsets.
As for a subscribed user of an SMS-based service, getting information using SMS interface requires the user to send a specific predefined code or keywords in specific format to a content source, which in turn sends back the requested information. The user is required to memorize and key-in the exact codes, which makes it difficult to use and to remember.
Subscribers, generally, want to receive on-line relevant pieces of information, such as the arrival time of a specific flight, the address of the nearest after-hours pharmacy, etc. Cellular operators have invested considerably in providing suitable content to their subscribers using inform ation/applications .
While cellular operators, wireless portals and application providers are engaged in tremendous effort and expense to provide their subscribers with enhanced added value content and applications, not every cellular terminal can support all the different interfaces, such as SMS, Electronic Message System (EMS), Multimedia Message Service (MMS), WAP, I- mode, Video etc. The outcome is that not all users can receive and enjoy all that their operator has to offer.
Neural network is a type of artificial intelligence that attempts to imitate the way a human brain works. Rather than using a digital model, in which all computations manipulate zeros and ones, a neural network operates by creating connections between processing elements in the computer equivalent of neurons. Those neurons are trained by applying inputs and the corresponding, expected outputs. Therefore, neural network may be used as an additional technology for obtaining information utilizing natural language over cellular networks. However, such technology is limited due to several reasons, such as the following: neural network is not deterministic and it is relatively difficult to anticipate the behavior of such system; neural network requires training by a qualified person, with expertise in this field; utilizing neural network as a natural language processing method requires that all relevant vocabulary will be 'learned' by the neural network, which means that every vocabulary change requires additional training.
All the methods described above have not yet provided satisfactory solutions to the problem of requesting for information in natural language over a cellular network.
It is an object of the present invention to provide a management/development tool that allows a programmer with basic programming capabilities to create a Natural Language services and applications based on its own desired content by utilizing said tool in a relatively simplicity manner.
It is an object of the present invention to provide a method and system for a service able to receive a request from a subscribed user in natural language over a mobile phone network, and return a relatively prompt and pinpointed answer.
It is a further object of the present invention to provide a method and system for providing a subscribed user with promotional information in addition to the pinpointed answer.
It is a further object of the present invention to provide a method and system for collecting information in addition to the pinpointed answer.
It is a further object of the present invention to provide a method and system for delivering content to all subscribed users with no registration or special billing integration.
It is another object of the present invention to provide a method and system for delivering content to a subscribed user by any available communication protocol supported by any cellular network and any interface device.
It is another object of the present invention to provide a method and system for delivering content to a subscribed user with a relatively high probability of obtaining the required information. It is a further object of the present invention to provide a method and system for easily extending and/or editing the capabilities to handle further content sources.
It is a further object of the present invention to provide a method and system for providing the user with the experience of interacting with a real person.
It is a still further object of the present invention to provide a method and system for handling spelling mistakes, grammar errors, and usage of special cellular language.
It is a still further object of the present invention to provide a mechanism for modifying, adding and removing services.
Other objects and advantages of the invention will become apparent as the description proceeds.
Summary of the Invention
The present invention is directed to a method for providing information to a subscriber over a cellular network, in response to a request, that comprises: receiving a request from the subscriber, in essentially natural language, and converting the request into a text according to a predetermined textual format; obtaining the meaning of the content of the text by parsing/analyzing the text; searching for an information, according to the meaning of the text and retrieving the information from a defined database, wherein the information is stored in a local or remote database; converting the retrieved information into a format that can be supported by an interface device employed by the subscriber to communicate with the cellular network; and delivering the information to the subscriber over the cellular network using that format.
The textual format may be a combination of characters, which is used to represent the request from the subscriber. The format may be a communication protocol supported by the cellular network and by an interface device used by the subscriber to communicate with the cellular network. The communication protocol may. be selected from the group consisting of SMS, EMS, MMS, WAP, HTML, speech to text, hand writing recognition, etc. The interface device is selected from a mobile phone, a cellular phone or a portable/wireless device that can be supported by a communication protocol.
According to one embodiment of the present invention, it may further comprises initiating interaction with the subscriber for collecting information from the subscriber, representing his fields of interest and personal details, thereby providing the subscriber promotional information and/or additional information related to his field of interest.
The meaning of the content of the text is obtained by performing the following steps: determining expression patterns, each containing a combination of characters reflecting a meaningful word and having a predetermined weight value expected to represent the probability that the meaningful word reflects that meaning; associating each of the expression patterns with an executable operation that manipulates the text whenever the meaningful word of a pattern is not directly associated with the meaning, or otherwise, executing a predetermined operation that is directly associated with that meaning; seeking suitable expression patterns, wherein said suitable expression patterns are a specific expression patterns containing a combination of characters that relates to the content of the text; executing the operation associated with the suitable expression pattern, in an order determined by each weight value; and whenever a suitable expression pattern having a meaningful word directly associated with the meaning is not obtained, continuing seeking a suitable expression pattern and executing the operation associated with the suitable expression pattern, while inputting each time the last manipulated text, until a suitable expression pattern is found.
According to another embodiment of the present invention, it may further comprising allowing the cellular network operator to control, manage, update and manipulate at least a portion of the databases.
The subscriber may inputs personalized expressions for representing textual inputs, wherein the personalized expressions may be shortcuts.
According to another embodiment of the present invention, it may further comprising handling spelling mistakes, grammar errors and usage of special cellular language. The special cellular language may be selected from the group consisting of shortcuts, terms and words, each of which is unique to a specific subscriber.
In one aspect, a managing mechanism, being a tool for adding and/or modifying content is further provided. The managing mechanism may comprise debugging tools and perform maintenance operations. Content addition and/or modification are performed by determining one or more rules. The managing mechanism may be operated via a graphical user interface (GUI) and may display exceptions inputs from the user on the GUI, and suggest a possible rule to map the exceptions inputs to an application.
Preferably, content addition and/or modification are performed by determining the business logic that specifies a requested application and selecting basic forms of queries that represent the different inputs in natural language. A set of rules for mapping the inputs to the basic forms is generated and the requested application is then carried out using the set of rules.
In one aspect, applicable commands are provided at nodes of the rule programming toolbar of the GUI, while the toolbar shows only the possible commands for each node. Whenever the mouse pointer is placed on a command icon, a popup window is shown, with a description of the command. Upon clicking on an icon, a new command is automatically added to the corresponding rule and values for the new command are set by clicking on a node associated with the new command, and whenever an additional window appears, inputting one or more predetermined values for the new command in the additional window.
The present invention is also directed to a system for providing information to a subscriber over a cellular network, in response to a request from the subscriber that comprises: an interface for receiving a request from the subscriber, in essentially natural language, and means for converting the request into a text according to a predetermined textual format; processing means for parsing/analyzing the text for obtaining the meaning of the content of the text; means for searching the information over a database, and for retrieving the information from the database; means for converting the retrieved information into a format that can be supported by an interface device employed by the subscriber to communicate with the cellular network; and an interface for delivering the information to the subscriber over the cellular network using the format that can be supported by the interface device employed by the subscriber.
The information may be stored in a local or remote database. The textual format may be a combination of characters used to represent the request from the subscriber. The format may be a communication protocol supported by the cellular network and by an interface device used by the subscriber to communicate with the cellular network. The communication protocol is selected from SMS, EMS, MMS, WAP, HTML, speech to text, hand writing recognition etc. The interface device may be selected from a mobile phone, a cellular phone or a portable/wireless device that can be supported by a communication protocol.
According to one embodiment of the present invention, the system may further comprise means for initiating interaction with the subscriber for collecting information representing his fields of interest and personal details, and means for providing the subscriber promotional information.
According to another embodiment of the present invention, the system may further comprise means for allowing the cellular network operator to control, manage, update and manipulate at least a portion of the databases.
According to another embodiment of the present invention, it may further comprise means for handling spelling mistakes, grammar errors and usage of special cellular language. The special cellular language may be selected from the group consisting of shortcuts, terms and words, each of which is unique to a specific subscriber.
The system may further include a managing mechanism operated via a graphical user interface (GUI), that may comprise means for debugging and performing maintenance operations, for adding and/or modifying content and means for handling exceptions inputs from the user.
Brief Description of the Drawings
The above and other characteristics and advantages of the invention will be better understood through the following illustrative and non-limitative detailed description of preferred embodiments thereof, with reference to the appended drawings, wherein:
Fig. 1 schematically illustrates a system for processing and managing queries directed by a subscribed user of a cellular network to a content source over the cellular network, according to a preferred embodiment of the invention;
Fig. 2 schematically illustrates a cellular network, according to the prior art;
Fig. 3 schematically illustrates a cellular network with a system for processing and managing queries directed by a subscribed user of the cellular network to a content source, according to a preferred embodiment of the invention;
Fig. 4 is a flow chart that illustrates a seeking method for finding a suitable expression pattern for the query of a subscribed user and its related resources in a system for processing and managing queries directed by that user to a content source, according to one embodiment of the invention; Fig. 5 schematically illustrates different options for determining a suitable expression pattern for a subscribed user query in a system for processing and managing queries directed by that user to a content source;
Fig. 6 is a flow chart that illustrates weight calculation of patterns for decision on suitable expression patterns to a query directed by a subscribed user to a content source;
Fig. 7 schematically illustrates the managing mechanism operation with the system of Fig. 1; and
Fig. 8 schematically illustrates the GUI for the managing mechanism of Fig. 7.
Detailed Description of Preferred Embodiments
When a subscriber of a cellular network wishes to obtain information using an interface device, he usually prefers obtaining it in the most rapid and least complicated manner. A subscriber does not wish to memorize extensive SMS codes or to waste precious time and money on a relatively slow WAP browsing process involving innumerable clicks. On the other hand, cellular network operators want to provide all of their market deployed interface devices with attractive content sources to their subscribers. The present invention provides both the subscribed user and the cellular network operator a system that overcomes the disadvantages as described hereinabove. It allows the subscriber of a cellular network to introduce queries in natural language by using an interface device, and receive in return the requested information. The subscriber need not undertake further action to receive the requested answer to his query over the interface device. The answer to a query may include any available information to such a system. For example, the weather in London, a cartoon image, the address of a specific Italian restaurant, etc. The answer to such a query is not a link to the answer or a menu of possibilities to choose from, but the requested answer itself (i.e., a pinpointed answer). As all subscribers can send and receive messages, there is no need for registration or special billing integration to the cellular network.
Fig. 2 schematically illustrates a cellular network 24, according to the prior art. Subscriber 11 communicates with cellular network 24 via one or more cells 30, which are spread out where it is required. Switch 31 switches user 11 to the cellular network 24, the latter comprising a Home Location Register (HLR) 32 which is a database in cellular network 24 that contains all the subscribed users within the provider home service area. When subscriber 11 reaches a new service area, the data in HLR 32 is requested and transferred to Visitor Location Register (VLR) 33 in the new area. VLR 33 is a database in cellular network 24 that contains all the subscribers currently within this service area.
Cellular network 24 may support the following services: Voice mail 34, SMS Center (SMSC) 35, WAP gateway 36, Customer Care (CC) & billing 37 and Gateway Mobile Location Center (GMLC) 38.
SMS center 35 is a cellular network equipment that provides the SMS service by routing the short messages from/to interface devices. It also provides a Transmission Control Protocol/Internet Protocol (TCP/IP) interface through which external systems can send/receive short messages from/to interface devices.
GMLC 38 is a cellular network equipment that provides and controls the information about the physical location of an interface device. GLMC 38 retrieves the information directly or interrogates other cellular network equipment. SMS center 35, WAP gateway 36 and GMLC 38 are connected to the Local and/or Wide Area Network (LAN WAN) 39 of cellular network 24 using known communication protocols such as TCP IP. LAN/WAN 39 is also connected to the Internet 12 and to content sources 16 (content sources may reside in the cellular network 24 or outside of it).
Fig. 3 schematically illustrates the cellular network 24 to which system 10 is connected, according to a preferred embodiment of the invention. System 10 may comprise a weight-based rules engine, which is used for building natural language interactive dialog. System 10 converts different sentences to fixed strict controlled syntax meta-language. The metalanguage is then easily translated to content interfaces such as extensible Markup Language (XML - An open standard for defining data elements on a Web page or documents. XML defines what HTML elements contain.) A subscribed user 11 of system 10 can use natural language in order to obtain information from content sources (such as content source 16) over cellular network 24.
System 10 may be connected to cellular network 24 through WAP gateway 36, SMSC 35, and or any other additional protocol that can be supported by cellular network 24. A request from user 11 is received at system 10 via one or more communication protocols (i.e., SMSC 35, WAP gateway 36) that depend on the interface device of user 11. After receiving the request, system 10 acquires the relevant information from the appropriate database (e.g., content source 16), whether it is a local or internal content source, remote or external content source, or from Web sites over the Internet 12. Fig. 1 schematically illustrates system 10, which processes and manages queries introduced by a subscriber 11 over cellular network 24, according to one embodiment of the invention.
System 10 receives input sentences from a user 11 and returns a pinpointed answer based on available sources, such as internal database 22, external databases 14 to 16, Web sites 13, etc. System 10 is used for analyzing a natural language text in order to obtain the meaning of the content of the text that was received from user 11, for generating the requested pinpointed answer. In order to generate a requested pinpointed answer, system 10 carries out a number of actions (i.e., executable operations) in order to provide the answer to the input sentence of user 11. The course of action may include one or more of the following:
Data retrieval from internal database 22 of system 10;
Running scripts (i.e., commands in programming languages, such as Java);
Retrieving information from Web sites 13; and/or
Updating information on user 11 (i.e., building or updating a profile on user 11), which might be useful for future use of system 10. The profile of user 11 may include individual variables from user 11, such as fields of interest and personal details and its history of interaction with system 10.
In addition to sentences in natural language, system 10 can handle input sentences from user 11, which may contain errors in syntax, grammar and spelling and even special cellular language that is used by a specific subscriber (i.e., unique shortcuts, terms or words that are used by a specific subscriber). A special cellular language that is used by a specific subscriber may be, for example, an input sentence comprising the unique shortcut "time NY" which may refer to "what is the time in New York?" and etc. According to a preferred embodiment of the invention, system 10 comprises a Language Processor (LP) 20 that performs the processing method of analyzing a natural language text and executing the action derived from the text (i.e., obtaining the request of user 11). LP 20 receives input sentences in natural language from user 11, and converts the natural language into a specific request. This request is transferred to a content source, such as internal database 22, Web sites 13, etc., which returns data to LP 20 that embodies the information into a suitable answer to be sent to user 11.
LP 20 may comprise:
Rules engine and rules for text analyzing as described hereinabove; Profiles of the users such as user 11 as described hereinabove; Lexicon, to be described hereinafter; and/or Any suitable natural language processing tools.
As part of the processing method, a lexicon may be used in order to obtain the meaning of the input sentence (i.e., "understand" the combination of characters, which usually represent words in natural language, of the input sentences). A lexicon may include a list of words (e.g. nouns, verbs, adverbs, etc.), a sense for each word (i.e., a brief sentence explaining the phrase), the frequency of usage and relations to other words.
The usage of such lexicon allows parsing when specifying related words (e.g., similar - synonym, opposite - antonym, etc). This allows system 10 to "understand" a wide span of words. The structure of a lexicon may allow specifying the general form of a sentence without specifying all the possible options. For example, assuming that a predefined rule (i.e., pattern) has a word representing a type of horse: in this case, in a specific section in a database, we can specify that the word should be a hyponym of "Horse", thus including "Pony", "Pinto", "Roan", "Mare", and other variations.
LP 20 navigates the request from user 11 to any available content source (i.e., Internet 12, external databases 14 to 16, etc.) through an External Content Access Gateway (ECAG) 21, which is connected to such external content sources. ECAG 21 allows system 10 to access content sources utilizing different interfaces, such as:
General database access library (e.g. Open Data Base Connectivity - ODBC)
Web mining library - getting a specific piece of information from a specific page on a Web site or utilizing Web services
A custom interface of a specific information source (i.e., Application Programming Interface - API)
Additional protocols such as Universal Description, Discovery and Integration (UDDI) standard.
The connection between user 11 and system 10 is made via a cellular network 24, through any possible communication protocol, such as WAP 17, SMS 18, Speech to Text 19, or any other available protocols allowing system 10 to receive a textual form of the request. System 10 is connected to cellular network 24 in such a way that it can support any protocol supported by such a cellular network 24. System 10 converts information received from each of said protocols into its required format and vice versa to user 11. LP 20 performs the conversion of the received information from the user 11 or the information for transmission to user 11.
According to a preferred embodiment of the present invention, system 10 is a weight-based rules engine, which is used for building interactive dialog in natural language. System 10 is based on a process of recursive rules that allows user 11 to interact with databases such as content source 14 to 16 and Web-sites 13 over the Internet/intranet 12 using natural language.
The rules engine is used for morphing and parsing a natural language text and interacting with content sources over cellular network 24. According to one embodiment of the present invention, LP 20 is the rule engine of system 10 and the language used by system 10 is rule-based, i.e., there is no special order for commands, but rather a collection of rules that system 10 obtains their meaning (i.e., "understands") and uses to process input from user 11.
The basic unit of the language in terms of system 10 is called pattern. A pattern is a specific rule defined in system 10, having the structure of a condition part (i.e., expression pattern) and its corresponding action part (i.e., executable operations), which are executed if the condition is met (i.e., the form of pattern is equal to "IF ... THEN..."). The executable operations manipulate the text of the input sentence whenever the meaningful word of a pattern is not directly associated with the meaning of the sentence, or otherwise, executing an operation that is directly associated with the meaning of the input sentence. The patterns comprises two parts:
The first part, called Left Hand Side (LHS), is the part of the pattern that includes the conditions for executing a rule (i.e., condition part);
The second part, called Right Hand Side (RHS), is the part of the pattern that specifies the activities to perform if the condition in the LHS is met (i.e., executable part).
The LHS may include one or more of the following components: A Mask filter, which is a combination of characters that reflects a meaningful word. The mask filter checks whether the input sentence contains that specific combination of characters. For example, the mask filter can be a combination of characters that represent a word, such as "weather";
A History which defines previous interaction of user 11 with system 10. Specifying a history makes a pattern dependent on past inputs from user 11 and/or outputs from system 10;
Conditions, which are a set of tests that check environment parameters and data from the stored profile of user 11 or any relevant and available content source. For example, system 10 checks if user 11 has already provided his name (if not, system 10 may ask user 11 to provide his name). Conditions are used to differentiate between patterns that accept the same input (e.g. has the same Mask and Parse);
Parse, which is a set of conditions on the input text, is intended to check if the input sentence from user 11 fits a specific syntactical structure. For example, by using parse, system 10 checks whether the input from user 11 is a sentence containing a noun which is a name of a currency, followed by a noun which is a synonym of the word index. Parse is used to syntactically parse the input and determine if it matches or relates a specific structure;
Weight is a numeric value specifying the statistical probability of the pattern intended to fit the intention of user 11 (weight is usually predetermined by the operator of system 10).
The RHS may include one or more of the following components:
A command to generate an output string by appending a specific text to the generated output;
A command to get a value from an external or internal content source such as database 22 or web-site 13; A command to update the profile of user 11 by updating, adding or deleting a value (e.g., adding a new value called 'name' and setting its value to 'Joe');
A command to execute a program on an external system.
The following list of terms is defined in order to better understand the paragraphs that will be described hereinafter, in terms of system 10:
Rule in terms of system 10 is a pattern that comprises LHS and RHS parts (i.e., Rule = LHS + RHS); wherein
LHS is usually built from Mask filter + Parse + Conditions + History;
RHS is usually built from execution instructions/commands;
Rules are grouped into collections, wherein a collection contains a subject that can be referred from the history element in the LHS part of the rule;
Goals are a type of rules with no input filter but only the conditions and history;
Goals are reasoned (that is, system 10 peruses all the goals and locate the one whose LHS is true and has the highest weight);
The output from the goals is appended to the output from the patterns.
According to one embodiment of the present invention, system 10 performs two main tasks, the first, to generate an output from the input of user 11 by using the patterns, and the second, to generate additional text by using the goals.
According to a preferred embodiment of the invention, an input sentence from user 11 may fit many patterns, but system 10 will select the pattern with the highest weight and then execute its associated actions (i.e., the RHS part of the pattern). An output from the associated actions may be a reply to user 11 or a recursive request, which means that system 10 will use it as if it were a new request from user 11. System 10 is also capable of a rollback after the execution of an action, which allows it to try a pattern and rollback the results if the output is not suitable (i.e., the RHS part failed to fully execute). A rollback mechanism allows system 10 to try several paths of patterns and later select the highest weight path. System 10 selects the appropriate pattern not only based on the weight of the pattern itself but also on the subject the pattern is associated with. Since such a structure may easily lock into a recursive loop, system 10 is using a horizontal search (known as bridth) in order to avoid endless loops, as will be described in accordance with Figs. 5 and 6 hereinafter.
The language of system 10 includes, at least, the following commands: Pattern - basic rule as described hereinabove; Parse - used to parse user input;
Condition - used to check whether a required condition is met; and Goal - defines a purpose for system 10 to be achieved.
The Patterns are organized in collections (i.e., groups), wherein each collection has its own subject and weight. Each pattern has two optional stages of analyzing (i.e., filtering) the input from user 11: the first is the Mask filter - which is a quick but limited filter, intended to filter out patterns not relevant to the meaning of the input sentence. the second is called Parse - it is a definite syntax parser, which can perform relatively complex analyses of sentences. It is a collection of sections wherein each comprises a set of criteria and may instruct system 10 to store the corresponding input word(s) for later use. The sections includes one or more type of criteria such as the following: correspond to a piece of text; correspond to one of the phrases; correspond to a phrase from a list in a file or in a database (i.e., content source); correspond to a character which represents any number of words, such as "*"; correspond to a portion of speech from an internal lexicon; and correspond to a word that has a specific relation (such as synonym, metonym, etc.) to a specific word.
According to a preferred embodiment " of the invention, system 10 will always try the Mask filter at first, which rapidly filters irrelevant patterns, and only patterns passing the mask filter are then processed with the parse.
In order to reduce the time user 11 must spend writing a request on an interface device, or if he is unsure of the correct spelling, user 11 may use characters such as wildcard characters. Therefore, Mask filter may contain a combination of characters that provide wild characters/words, i.e., uses partial/shortened words, shortcuts and/or usage of special cellular language and still, system 10 will be able to "understand" its meaning. For example, a user can write in shortcut "where r u?" instead of "where are you?" or "shop*", wherein the "*" character means any number of words, i.e., shopping, shopper etc. Furthermore, spelling mistakes and grammar errors can be easily handle in system 10, due to the usage of such wildcards.
The terms "suitable expression pattern" or "suitable pattern" refers to a specific expression patterns containing a combination of characters that relates to the content of the text of an input sentence from user 11. The following is an example of common usage of wildcard characters, characters list or characters ranges, in any combination, while seeking for a pattern that is suitable to input sentences from user 11 that is being represented by a combination of characters: . a question mark (?) placed at in a word is refer to any possible single character for system 10 to check; an asterisk (*) placed at the end of a word of user 11 sentence refers to zero or more possible characters for system 10 to check;
A group of one or more characters (i.e., charlist) enclosed in brackets ([ ]) can be used to match any single character in string and can include almost any character code, including digits.
An exclamation point (!) at the beginning of a group of one or more characters (i.e., charlist) enclosed in brackets ([ ]) means that a match is made if any character except those in charlist is found in string. When used outside brackets, the exclamation point matches itself.
Once a pattern has passed both Mask and Parse stages and system 10 decides to pursue the pattern, the successive stages are executed. An action in these stages can be any possible option of executable operations, such as "select a random response from the next options", or "Go to table X in database Z execute query X and user the 3rd word from the user as the first parameter and return the 1st record value from filed J", etc.
It is important to note that all the actions (i.e., executable operations) in the pattern must succeed or else system 10 will retrace and try to execute the next best pattern.
System 10 performs a search until a suitable pattern is related to the input sentence, and since the context is finite, system 10 assumes that the first suitable pattern that was found is the right one. According to other embodiments of the present invention, it is possible to instruct system 10 to perform different search processes.
Fig. 4 is a flow chart that illustrates a method for finding a suitable expression pattern to an input sentence and its related resources in system 10, in order to provide the requested information (i.e., pinpointed answer) for the input sentence, according to one embodiment of the present invention.
The first step of the flow chart starts at block 41, which is the input sentence from user 11. System 10 receives the input from user 11 in any possible form, such as SMS, WAP, HTML, Speech to Text translation (e.g., Voice recognition), handwriting recognition, or in any other way that is supported by cellular network 24 that can provide a natural language text. At the next step, block 42, system 10 is processing the text form, which represents by character string, to fit into a required formula to work with through the rest of the process, this formulated step including operations such as:
Removing access spaces;
Replacing carriage return characters with '.';
Breaking down the input to sub-sentences; and
Changing two or more following space characters into a single-space character.
The original input text (i.e., the text without any formulate changes) may also be sent to a statistics module 60 for off-line processing. Throughout the different stages, statistics and logs are collected for an offline process that is intended to allow the administrator of system 10 to find about exceptions and for system 10 to optimize the weights and processing order. At the next step, block 43, a pattern is selected, wherein the selected pattern is that with the greatest weight from the valid options of patterns. After the pattern has been selected, it is examined to determine whether the mask part of the pattern is valid, as well. In other words, at this step, block 43, system 10 is performing a search for finding the best available pattern according to the input sentence. In block 43, system 10 find the best next pattern to test (as a function of weight, history and mask), tries to guess the best pattern and then further tests the pattern to check whether it is valid.
At the next step, block 44, system 10 executes a 'deeper' parse for the selected pattern than in the previous step. System 10 eliminates options by using the 'mask' filter and then checks the 'parse'; when all the possible patterns have been checked and parsed, a specific pattern is selected. For example, a word may be tested if it is a synonym for another word or if it is a verb, a noun and so on. (It is important to note that because the system uses weight for the selection, there will arise cases in which there is no point in actually parsing some patterns, since even if they match the 'mask' and 'parse', the weight will rule them out).
The result of the parse may stores values in a temporary variable storage, such as internal database 22, which can be later committed or rolled back. If the parse fails, then the whole pattern fails and system 10 returns to select the next best pattern. If the pattern is still valid, at the next step (block 45), a set of conditions may be tested, only if the selected pattern includes required elements for such tests (e.g., there might exist patterns valid only during the morning hours, or seasonally). Conditions test for additional variables, such as the value of a variable in the user profile, etc. Arbitrary conditions may be set for a pattern, for example, a condition that checks the time (e.g., morning, noon, night), or placing variables from the profile of the currently active user in accordance with the age of the active user.
The next step, block 46, is a condition block that allows the continuance of block 47 only if all the high weight patterns were tested, or else it returns to block 43 to find more patterns of high weight. Block 46 ensures that system 10 actually screened all the optional patterns, and finally selected the best one for the next stage. Block 52 is an optional mechanism of time limit, a safety mechanism to guard against endless loops in system 10. At block 47, system 10 executes the actions defined in the action part of the pattern, such actions writing the reply to user 11, but also optionally used to run scripts, update variables and the profile of user 11.
The next step (after block 47), block 48, is another condition block in which system 10 checks (in related internal/external databases, such as database 61, content source 58 etc.) whether an additional information and/or request may be added to the reply to user 11. The additional information and/or request may be based on the type of reply, such as question or statement and its size, or on a specific user preference which taken from the stored user profile 56 in a related database 61. If an additional information is needed, then the next step, block 49, is using the rules engine again (i.e., the steps of blocks 41 to 47) build a reply to a virtual question posed by the software of system 10 itself. The result of this step, block 49, is a reply to the user 11, which is called goal, in terms of the present invention. In order to generate such goals, system 10 uses Goals 57, which is a database of patterns used to generate goals.
It is important to note that system 10 includes several databases 61 to store the patterns, goal, user profiles, lexicon etc. as described in Fig. 1 by internal database 22 and LP repository 23. However, one or more databases 61 can be external databases, as well. Lexicon 55 is a database of vocabulary comprising verbs, nouns, adverbs and an adjective, as well as a wide range of relationships between words (e.g. synonyms, antonyms, hyponyms etc). Lexicon 55 refers to the lexical database described in Fig. 1 hereinabove.
If the goal is obtained or the additional information is not needed, then the next step, block 50, packs the reply and goal (if applicable) to the format of the interface device of user 11, for example WAP, SMS, HTML, etc. At the last step, block 53, sends the output to the device via the appropriate channel through cellular network 24.
According to one embodiment, the process of the present invention is recursive and non-deterministic. Fig. 5 schematically illustrates the different options that system 10 has when it .determines a suitable pattern for the input sentence. System 10 checks the user input and the patterns, for example, patterns 62, 63 and 64 in level 0, from which are found a number of suitable possibilities, some of which may be recursive, i.e., after executing them, system 10 will check another selection of patterns such as patterns 64 and 65 in level 1 and so on, until all suitable possibilities are exhausted. The hierarchy of the patterns is as follows:
Patterns 62 to 64 are placed at level 0;
Patterns 65 to 67 are placed at level 1;
Patterns 68 to 70 are placed at level 2;
Patterns 71 to 72 are placed at level N. The term A[level,X] indicates the weight of each pattern, for example A[0,1] is the weight of pattern 62, wherein '0' indicates the level of that pattern and ' 1' indicates the numbering of a specific pattern (pattern number 1 at level 0, in this case). Fig. 6 is a flow chart that illustrates the weight calculation of patterns for decision on suitable expression patterns to an input sentence, according to one embodiment of the invention. The first step of this flow chart starts at block 71, which activates the searching process for finding patterns that are suitable to the input sentence at level 0 (as shown in Fig. 5). At the next step, block 72, system 10 calculates the weight of all patterns at level 0 (i.e., patterns 62 to 63 as shown in Fig. 5).
At the next step, block 73, system 10 performs checks to the patterns with a previous interaction of system 10 with user 11. This step is an optional section in the pattern that is used to test the history of the dialog. The history section is used to follow a conversation subject (e.g., user 11 answers "Yes", so to understand the meaning needed to check what was sent to him before he answered "Yes"). At the next step, block 74, system 10 marks all the patterns that may be valid for the current level of the recursion. At block 75, system 10 executes specific patterns of all the marked recursive patterns.
Block 76 is a condition block that repeats for the specific patterns (from block 76 to block 72) while the executing order is horizontal until either there are no more patterns to check or the level of recursion is larger then a predetermined threshold. On each repeat from block 76 to block 72, block 78 increases the current level by 1, therefore each step of block 72 to 75 is repeated each time at a higher level than the previous level. Block 77 is an optional mechanism of time limit, a safety mechanism that may be used to guard against endless loops in system 10 during the search for suitable pattern. Block 79 indicates that the search for suitable patterns was completed. According to one embodiment of the present invention, the weight scale may be a number from 1 to 5, wherein 1 may indicates a relatively low match having many words/characters without obtaining a match, and 5 may indicates a match to all the words in the sentence. Weights of the patterns actually define the way the rules engine of system 10 "understands" the user input, helping system 10 prefer one pattern to the other.
As users are free to query any available information, through their own language capabilities, protocols such as SMS, EMS, MMS and WAP will be able to increase their traffic mobility.
The following is an example for an operation of system 10 as a rule-based engine.
At first, system 10 receives an input sentence from user 11, wherein according to this example, the received sentence is: "what is the US dollar rate please";
After receiving the sentence, system 10 seeks (i.e., search) for suitable patterns, wherein their combination of characters in the condition part
(i.e., expression pattern part) are matching one or more words and/or any other combination of characters in the input sentence;
After the search, two suitable patterns have been found: a) the first pattern comprising in the LHS part (i.e., condition part): weight = 4; mask = "* please" (this mask filter is indicate that the input sentence must end with a combination of characters that refer to the word 'please'); parse = masked or filter out from the input sentence the word 'please' (i.e., manipulate the text) and store the filtered text (i.e., manipulated text);
The first pattern comprising in the RHS part (i.e., the executable operation), the executable operation that refers to a recursive operation that takes the stored manipulated text and delivers it to the input of system 10, as if it were a new sentence from user 11. b) the second pattern comprising in the LHS part (i.e., condition part): weight = 3; mask = "what is the" (this mask filter is indicate that the input sentence must start with a combination of characters that refers to the words 'what is'); parse = masked or filter out from the input sentence the words 'what is the' (i.e., manipulate the text) and stores the filtered text (i.e., manipulated text); the second pattern comprising the RHS part (i.e., the executable operation), which refers to a recursive operation that takes the stored manipulated text and delivers it to the input of system 10, as if it were a new sentence from user 11.
Of course, system 10 executes the first pattern, due to the fact that it has a higher weight value than the second pattern (the first pattern weight = 4 and the second pattern weight = 3).
After executing the first pattern, a third pattern is found, in addition to the second pattern: c) the third pattern comprising the LHS part (i.e., condition part): weight = 5; mask = "* rate" (this mask filter indicates that the input sentence must end with a combination of characters referring to the word 'rate'); parse = search in a content source if the name followed by the word 'rate' matches the name of a currency.
The third pattern comprising the RHS part (i.e., the executable operation), refers to a set of operations that provides user 11 the currency rate of the US dollar.
At that stage, system 10 will execute the third pattern because it has a higher weight value than the second pattern, and it will provide user 11 with the following answer: "the rate of the USD is 4.2".
According to another preferred embodiment of the invention, a managing mechanism 71 (illustrated in Fig. 7) is added to system 10. The managing mechanism 71 allows the composition of additional content to system 10 and/or the modification of existing content in system 10. Preferably but not limitatively, a system administrator associated with system 10 is the person in charge of operating the managing mechanism 71. The additional and modified content can be any applicable service in any field, e.g., information about the stock market, snow forecast in ski resorts etc. The content is performed by determining a set of rules, goals etc. Preferably but not limitatively, the managing mechanism 71 is provided with an interactive interface 80 (illustrated in Fig. 8), which simplifies the task of adding/modifying content by automatically suggesting possible rules and offering a predictive editor. For example, an automatic suggested possible rule can be: "when a user asks if he needs an umbrella, provide the weather". The interactive interface 80 is a graphic environment, i.e., a graphical user interface (GUI), that simplifies the tasks of adding/removing content, modifying content and/or handling exceptions (i.e., inputs from the user that the system 10 does not recognize).
The managing mechanism 71 allows the system administrator to perform tasks, such as define and change connections to content sources, add and edit parsing rules, manipulate the internal lexicon, compile the rules, open and manipulate the users' profiles, open and manipulate the profile of the system's personality (e.g. name, age, answers to questions from the users about the system itself) etc. Furthermore, the system administrator can use the managing mechanism 71 to debug and to trace the process of "understanding" the input received from a user. According to another preferred embodiment of the invention, managing mechanism 71 provides a compiler that converts the code (i.e., rules, database connection etc.) into binary files that are later run by the rules engine of system 10.
Preferably but limitatively, the managing mechanism 71 uses XML as the storage format of program files and manages the XML files through a project file that is XML based as well. Of course, other suitable programming languages could be used as well. The managing mechanism 71 allows a visual view of a program file by transforming the XML structure into a visual editable tree-view or a keyword colored textual view subject to user preference (e.g., each command in the programming language is linked to an icon, such as the icons related with commands 91 and 92 shown in Fig. 8). The managing mechanism 71 automatically displays the appropriate keywords that can be used in the visual tree by using XML format, thus allowing the user to select the programming instructions rather than type them. In addition, by using this XML format, the managing mechanism 71 allows the programmer to set only syntactically valid values and names within specific commands. Of course, that the managing mechanism 71 also allows editing rules directly as code in XML format, whenever desired.
The managing mechanism 71 provides a developing environment for natural language applications that allows the performance of tasks, such as:
- Managing a set of program files;
- Loading a program files set;
- Breaking down programs into files so that a file may contain programming instructions of a specific subject or any other division that is required by the programmer;
- Allowing the combining of files from different projects to create a new project.
Each of the above tasks is performed by utilizing commonly functions, which are provided within most of the development tools known in the art.
The managing mechanism 71 allows a programmer, unskilled in natural language, or logic programming, who usually acts as a web/WAP developer for the operator web/WAP sites, to easily create content for a new service or to modify existing natural language services. In order to add a new service, the following process is performed by the managing mechanism 71:
1) Deciding on the business logic - this stage is done by the content administrator of the operator. Business logic refers to the actual logic performed in an application, the actual essence of the application that is not the user interface or any other parts. In accordance with the present invention, the term business logic refers to "What to do after the user request is understood or what to do from the basic form (e.g. go to database X and get the weather from Table Y using parameter P as filter). 2) Selecting basic forms - in this stage the programmer needs to decide on the basic forms of the queries that are representing the different inputs in natural language.
3) Writing mapping rules - in this stage the programmer using the managing mechanism 71 is writing the set of rules that map the different inputs to the basic forms.
4) Writing business logic - in this stage the programmer is implementing the business logic of the requested application as defined by the content manager of the operator.
The following is an example that describes the way of adding new services (e.g., weather application) by using the managing mechanism 71:
In order to define the business logic, the content provider needs no special training or skills, wherein its content manager (i.e., the system administrator) has to write a document that specifies how he wants the weather application to operate. For example, when answering questions about weather when a user can ask for the weather in a specific place or/and specific date, and if the location is not specified by the user, the address from user profile can be used. The user questions could be:
"What is the weather in London UK tomorrow";
"Cork weather"
"Snow in Paris?"
"Wthr London 21/10/2006"
At the next stage, this document is given to the programmer, who in turn needs to select basic forms. The basic forms are a strict simple syntax that represent possible natural language inputs for example in the weather application as shown in window 87 of Fig. 8 (the content of node 83), the basic forms are: _Weather [City] [Country] [Date]
_Weather
_Weather [Date]
The basic forms in this case describe three possible questions that represent a large number of questions in natural language.
The next stage is writing rules. The programmer is setting rules that convert the different natural language inputs to the basic forms. In this stage the programmer is using the managing mechanism 71, which allows the programmer to write rules by graphically providing a tree like GUI 80 (Fig. 8), in which the programmer is automatically limited to the allowed commands in each node in the tree, such as nodes 83 to 86. Each sub-node of a node represents a single rule, such as sub-nodes 91 and 92.
In the last stage the programmer writes the business logic by writing a set of instructions that retrieve/generate the data required for sending back to the user. For example, regarding aforementioned weather example, the last stage might be performed as follows:
Defining a database connection, such as database type (e.g. Oracle, SQL Server etc.), database version and drivers etc.
Generating conditions to get user location, if the user location is not specified.
Generating query for the data, being the output to the user (e.g., going to the weather table and retrieve the information about the weather in the location requested by the user).
Generating a reply format, such as an XML message that contains meta data (e.g., "paragraph" marks), which is then XML formatted to fit the end device (e.g. CellPhone) using XSLT (XML Transformation Style Sheet). Fig. 8 shows an example diagram for a tree like GUI 80 of the managing mechanism 71, according to a preferred embodiment of the invention. The GUI 80 provides the applicable commands at any point in the rule programming on the toolbar 81. The toolbar 81 automatically shows only the possible commands for a node, such as nodes 83 to 86, whenever the mouse pointer is placed on a command icon, such as icon 82, (e.g., by showing a "tool tip" which is a popup window with a description of the command). When the programmer clicks on an icon the command is automatically being added to the rule m the correct place and m the correct order thus the only task left to the programmer is to set values for the new command (the rules are shown on window 87). To set the value for a new command the user only needs to click on a node. At that moment a small window will appear, in which the user required to write the value(s) for the command, the popup window will also limit the programmer from inputting the wrong type of data. The programmer will be allowed to type in only values of the proper type (e.g. Number, date, time, text etc.). Once the programmer has completed editing a rule he can add more rules by clicking again on the right mouse key on the rules view on the left or click on an existing rule and edit it or click on the save button on the mam application toolbar 88.
The last stage is to write the business logic, the programmer needs to write the code which will actually perform the task or retrieve the required information. The managing mechanism 71 provides the same mechanism as described hereinabove but also allows the programmer to write in a known programming language such as Java Script or Visual Basic (VB) script. The managing mechanism 71 further comprises additional visual tools to debug and to perform maintenance operations, such as access user and system profiles whenever required to view and modify the profiles of both users and system etc. The mechanism used to debug and to perform maintenance operations is the same GUI 80 as described hereinabove, thus the content manager needs no training nor special skills in order to view or modify the profiles.
Furthermore, the managing mechanism 71 also displays exception inputs from the users that are not handled or mishandled by the system 10. The GUI 80 displays a table of all exceptions. Once the content administrator/programmer right clicks on a user input, the managing mechanism 71 will suggest a possible rule to map the unhandled input to one of the applications.
The above examples and description have of course been provided only for the purpose of illustration, and are not intended to limit the invention in any way. As will be appreciated by the skilled person, the invention can be carried out in a great variety of ways, employing more than one technique from those described above, all without exceeding the scope of the invention.

Claims

1. A method for providing information to a subscriber over a cellular network, in response to a request, comprising: a) receiving a request from said subscriber, in essentially natural language, and converting said request into a text according to a predetermined textual format; b) obtaining the meaning of the content of said text by parsing/analyzing said text; c) searching said information according to said meaning over a database, and retrieving said information from said database; d) converting said retrieved information into a format that can be supported by an interface device employed by said subscriber to communicate with said cellular network; and e) delivering said information to said subscriber over said cellular network using said format.
2. A method according to claim 1, wherein the information is stored in a local or remote database.
3. A method according to claim 1, wherein the textual format is a combination of characters which is used to represent the request from the subscriber.
4. A method according to claim 1, wherein the format is a communication protocol supported by the cellular network and by an interface device used by the subscriber to communicate with the cellular network.
5. A method according to claim 4, wherein the communication protocol is selected from the group consisting of SMS, EMS, MMS, WAP, HTML, speech to text, hand writing recognition.
6. A method according to claims 4 and 5, wherein the interface device is selected from a mobile phone, a cellular phone or a portable/wireless device that can be supported by a communication protocol.
7. A method according to claim 1, further comprising initiating interaction with the subscriber for collecting information from the subscriber, representing his fields of interest and personal details, thereby providing said subscriber promotional information.
8. A method according to claim 1, further comprising initiating interaction with the subscriber for collecting information from the subscriber representing his fields of interest and personal details, thereby providing said subscriber additional information related to said field of interest.
9. A method according to claim 1, wherein the meaning of the content of the text is obtained by performing the following steps: a) determining expression patterns, each containing a combination of characters reflecting a meaningful word and having a predetermined weight value expected to represent the probability that said meaningful word reflects said meaning; b) associating each of said expression patterns with an executable operation that manipulates the text whenever the meaningful word of a pattern is not directly associated with said meaning, or otherwise, executing a predetermined operation that is directly associated with said meaning; c) seeking suitable expression patterns, wherein said suitable expression patterns are a specific expression patterns containing a combination of characters that relates to the content of the text; d) executing the operation associated with the suitable expression pattern, in an order determined by each weight value; and e) whenever a suitable expression pattern having a meaningful word directly associated with the meaning is not obtained, continuing seeking a suitable expression pattern and executing the operation associated with the suitable expression pattern, while inputting each time the last manipulated text, until a suitable expression pattern is found.
10. A method according to claim 1, further comprising allowing the cellular network operator to control, manage, update and manipulate at least a portion of the databases.
11. A method according to claim 1, wherein the subscriber inputs personalized expressions for representing textual inputs.
12. A method according to claim 1, wherein the personalized expressions are shortcuts.
13. A method according to claim 1, further comprising handling spelling mistakes, grammar errors and usage of special cellular language.
14. A method according to claim 13, wherein the special cellular language is selected from the group consisting of shortcuts, terms and words, each of which is unique to a specific subscriber.
15. A system for providing information to a subscriber over a cellular network, in response to a request from said subscriber, comprising: a) an interface for receiving a request from said subscriber, in essentially natural language, and means for converting said request into a text according to a predetermined textual format; b) processing means for parsing/analyzing said text for obtaining the meaning of the content of said text; c) means for searching said information over a database, and for retrieving said information from said database; d) means for converting said retrieved information into a format that can be supported by an interface device employed by said subscriber to communicate with said cellular network; and e) an interface for delivering said information to said subscriber over said cellular network using said format.
16. A system according to claim 15, in which the information is stored in a local or remote database.
17. A system according to claim 15, in which the textual format is a combination of characters used to represent the request from the subscriber.
18. A system according to claim 15, in which the format is a communication protocol supported by the cellular network and by an interface device used by the subscriber to communicate with the cellular network.
19. A system according to claim 18, in which the communication protocol is selected from SMS, EMS, MMS, WAP, HTML, speech to text, hand writing recognition.
20. A system according to claims 18 and 19, in which the interface device is selected from a mobile phone, a cellular phone or a portable/wireless device that can be supported by a communication protocol.
21. A system according to claim 15, further comprising means for initiating interaction with the subscriber for collecting information representing his fields of interest and personal details, and means for providing said subscriber promotional information.
22. A method according to claim 15, further comprising means for allowing the cellular network operator to control, manage, update and manipulate at least a portion of the databases.
23. A method according to claim 15, further comprising means for handling spelling mistakes, grammar errors and usage of special cellular language.
24. A system according to claim 23, in which the special cellular language is selected from the group consisting of shortcuts, terms and words, each of which is unique to a specific subscriber.
25 A method according to claim 1, further comprising providing a managing mechanism, being a tool for adding and/or modifying content
26. A method according to claim 25, wherein the managing mechanism further comprises debugging and performing maintenance operations.
27. A method according to claim 25, wherein the added and/or modified content is performed by determining one or more rules.
28. A method according to any of claims 25 to 27, wherein the managing mechanism is operated via a graphical user interface (GUI).
29. A method according to claim 28, wherein the managing mechanism further comprises displaying exceptions inputs from the user on the GUI, and suggesting a possible rule to map said exceptions inputs to an application.
30. A system according to claim 15, further comprising a managing mechanism for adding and/or modifying content.
31. A system according to claim 30, in which the managing mechanism further comprises means for debugging and performing maintenance operations.
32. A system according to any of claims 30, in which the addition and/or modification of content is performed by determining one or more rules.
33. A system according to any of claims 30 to 32, in which the managing mechanism is operated via a graphical user interface (GUI).
34. A system according to claims 30 and 33, wherein the managing mechanism further comprises means for handling exceptions inputs from the user.
35. A method according to claim 25, wherein the addition and/or modification of content comprise the following steps: a) Determining the business logic that specifies a requested application; b) selecting basic forms of queries that represent the different inputs in natural language; c) generating a set of rules for mapping said inputs to said basic forms; and d) carrying out said requested application using said set of rules.
6. A method according to claim 28, comprising: a) providing applicable commands at nodes of the rule programming toolbar of the GUI, said toolbar shows only the possible commands for each node; b) whenever the mouse pointer is placed on a command icon, showing a popup window with a description of said command; c) when clicking on an icon, automatically adding a new command to the corresponding rule; and d) setting values for said new command by clicking on a node associated with said new command, and whenever an additional window appears, inputting one or more predetermined values for said new command in said additional window.
PCT/IL2002/000483 2001-06-20 2002-06-19 Method and system for providing information services to subscribed users of a cellular network using an interface device WO2002103559A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB0401099A GB2394098A (en) 2001-06-20 2002-06-19 Method and system for providing information services to subscribed users of a cellular network using an interface device

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
IL143895 2001-06-20
IL14389501A IL143895A0 (en) 2001-06-20 2001-06-20 A method and apparatus for providing information services to subscribed users of a cellular network using an interface device
IL14849102A IL148491A0 (en) 2002-03-04 2002-03-04 Method and system for providing information services to subscribed users of a cellular network using an interface device
IL148491 2002-03-04

Publications (2)

Publication Number Publication Date
WO2002103559A2 true WO2002103559A2 (en) 2002-12-27
WO2002103559A3 WO2002103559A3 (en) 2004-02-19

Family

ID=26324030

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IL2002/000483 WO2002103559A2 (en) 2001-06-20 2002-06-19 Method and system for providing information services to subscribed users of a cellular network using an interface device

Country Status (2)

Country Link
GB (1) GB2394098A (en)
WO (1) WO2002103559A2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2398136A (en) * 2003-02-07 2004-08-11 First Global Technologies Ltd Communications apparatus and method
WO2007070952A1 (en) 2005-12-23 2007-06-28 Sms Feedback Pty Ltd Method of and system for facilitating telecommunications contact
WO2008116403A2 (en) * 2007-03-28 2008-10-02 Tencent Technology (Shenzhen) Company Limited A method, system and equipment for client service
WO2009127481A1 (en) * 2008-04-16 2009-10-22 International Business Machines Corporation A method, apparatus and software for transforming a natural language request for modifying a set of subscriptions for a publish/subscribe topic string
US8868479B2 (en) 2007-09-28 2014-10-21 Telogis, Inc. Natural language parsers to normalize addresses for geocoding
US8903820B2 (en) 2004-06-23 2014-12-02 Nokia Corporation Method, system and computer program to enable querying of resources in a certain context by definition of SIP even package

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0631244A2 (en) * 1993-06-24 1994-12-28 Xerox Corporation A method and system of information retrieval
US6026388A (en) * 1995-08-16 2000-02-15 Textwise, Llc User interface and other enhancements for natural language information retrieval system and method
WO2001018688A2 (en) * 1999-09-10 2001-03-15 Avantgo, Inc. System, method, and computer program product for interactive interfacing with mobile devices
WO2001020500A2 (en) * 1999-09-17 2001-03-22 Sri International Information retrieval by natural language querying
WO2001035189A2 (en) * 1999-11-12 2001-05-17 Answerlogic Natural language processing system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0631244A2 (en) * 1993-06-24 1994-12-28 Xerox Corporation A method and system of information retrieval
US6026388A (en) * 1995-08-16 2000-02-15 Textwise, Llc User interface and other enhancements for natural language information retrieval system and method
WO2001018688A2 (en) * 1999-09-10 2001-03-15 Avantgo, Inc. System, method, and computer program product for interactive interfacing with mobile devices
WO2001020500A2 (en) * 1999-09-17 2001-03-22 Sri International Information retrieval by natural language querying
WO2001035189A2 (en) * 1999-11-12 2001-05-17 Answerlogic Natural language processing system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
R. BAEZA-YATES, B. RIBEIRO-NETO: "Modern Information Retrieval" 1999 , ADDISON-WESLEY , HARLOW XP002262943 page 24, line 11 -page 25, line 33 * whole document * *
SALTON G ET AL: "TERM-WEIGHTING APPROACHES IN AUTOMATIC TEXT RETRIEVAL" INFORMATION PROCESSING & MANAGEMENT, ELSEVIER, BARKING, GB, vol. 24, no. 5, 1988, pages 513-523, XP002035959 ISSN: 0306-4573 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2398136A (en) * 2003-02-07 2004-08-11 First Global Technologies Ltd Communications apparatus and method
US8903820B2 (en) 2004-06-23 2014-12-02 Nokia Corporation Method, system and computer program to enable querying of resources in a certain context by definition of SIP even package
EP1974535A4 (en) * 2005-12-23 2010-09-08 Sms Feedback Pty Ltd Method of and system for facilitating telecommunications contact
WO2007070952A1 (en) 2005-12-23 2007-06-28 Sms Feedback Pty Ltd Method of and system for facilitating telecommunications contact
EP1974535A1 (en) * 2005-12-23 2008-10-01 Robert Hinds Method of and system for facilitating telecommunications contact
WO2008116403A3 (en) * 2007-03-28 2011-02-10 腾讯科技(深圳)有限公司 A method, system and equipment for client service
WO2008116403A2 (en) * 2007-03-28 2008-10-02 Tencent Technology (Shenzhen) Company Limited A method, system and equipment for client service
US8868479B2 (en) 2007-09-28 2014-10-21 Telogis, Inc. Natural language parsers to normalize addresses for geocoding
US9390084B2 (en) 2007-09-28 2016-07-12 Telogis, Inc. Natural language parsers to normalize addresses for geocoding
WO2009127481A1 (en) * 2008-04-16 2009-10-22 International Business Machines Corporation A method, apparatus and software for transforming a natural language request for modifying a set of subscriptions for a publish/subscribe topic string
JP2011515770A (en) * 2008-04-16 2011-05-19 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, apparatus, and software for translating a natural language request to change a subscription set for a publish / subscribe topic string
US8229736B2 (en) 2008-04-16 2012-07-24 International Business Machines Corporation Transforming a natural language request for modifying a set of subscriptions for a publish/subscribe topic string
CN102007495B (en) * 2008-04-16 2014-04-09 纽昂斯通讯公司 Method, apparatus and software for transforming natural language request for modifying set of subscriptions for publish/subscribe topic string
US8706478B2 (en) 2008-04-16 2014-04-22 Nuance Communications, Inc. Transforming a natural language request for modifying a set of subscriptions for a publish/subscribe topic string

Also Published As

Publication number Publication date
GB0401099D0 (en) 2004-02-18
WO2002103559A3 (en) 2004-02-19
GB2394098A (en) 2004-04-14

Similar Documents

Publication Publication Date Title
US7027975B1 (en) Guided natural language interface system and method
CN100489841C (en) Method and integrated development tool for building a natural language understanding application
US6745161B1 (en) System and method for incorporating concept-based retrieval within boolean search engines
US7548858B2 (en) System and method for selective audible rendering of data to a user based on user input
JP5827380B2 (en) Non-standard position-based text input
US9229927B2 (en) Macro replacement of natural language input
US7720674B2 (en) Systems and methods for processing natural language queries
US9282162B2 (en) Processing user profiles of users in an electronic community
US8392453B2 (en) Nonstandard text entry
US20170337261A1 (en) Decision Making and Planning/Prediction System for Human Intention Resolution
US20050154580A1 (en) Automated grammar generator (AGG)
US20040025115A1 (en) Method, terminal, browser application, and mark-up language for multimodal interaction between a user and a terminal
US7548899B1 (en) Method and system for information retrieval based on menu selections
US20150286943A1 (en) Decision Making and Planning/Prediction System for Human Intention Resolution
US7676519B2 (en) Method and system for responding to requests relating to complex data maintained in a structured form
WO2001071542A2 (en) System and method for the transformation and canonicalization of semantically structured data
CN101297355A (en) Systems and methods for responding to natural language speech utterance
CA2311145A1 (en) System and method for performing automated dynamic dialogue generation
Pargellis et al. An automatic dialogue generation platform for personalized dialogue applications
WO2002103559A2 (en) Method and system for providing information services to subscribed users of a cellular network using an interface device
CN113515616A (en) Task driving system based on natural language
US8321200B2 (en) Solving constraint satisfaction problems for user interface and search engine
CN109891410A (en) Data collection for new session conversational system
Solon et al. Mobile multimodal presentation
CN116050426A (en) Method, system, equipment and storage medium for quickly inquiring menu

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

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 EC 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 OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM 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 GQ GW ML MR NE SN TD TG

ENP Entry into the national phase in:

Ref document number: 0401099

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20020619

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP