FR2944119A1 - Queried structure data base interrogating method, involves constructing tree of expression of request in manner to obtain developed tree that is translated for forming specific tree of interrogated heterogeneous database - Google Patents
Queried structure data base interrogating method, involves constructing tree of expression of request in manner to obtain developed tree that is translated for forming specific tree of interrogated heterogeneous database Download PDFInfo
- Publication number
- FR2944119A1 FR2944119A1 FR0901703A FR0901703A FR2944119A1 FR 2944119 A1 FR2944119 A1 FR 2944119A1 FR 0901703 A FR0901703 A FR 0901703A FR 0901703 A FR0901703 A FR 0901703A FR 2944119 A1 FR2944119 A1 FR 2944119A1
- Authority
- FR
- France
- Prior art keywords
- query
- request
- tree
- user
- specific
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
- G06F16/24526—Internal representations for queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
PROCEDE D'INTERROGATION DE BASES DE DONNEES STRUCTUREES METHOD OF INTERROGATION OF STRUCTURED DATABASES
La présente invention concerne un procédé d'interrogation d'une pluralité de bases de données structurées interrogeables, dans un réseau informatique, au travers d'interfaces d'interrogation hétérogènes. Elle concerne plus particulièrement un tel procédé pour l'interrogation de bases hétérogènes de données structurées de propriété industrielle, par exemple de données structurées se rapportant à des brevets d'invention. Le développement des réseaux informatiques et, notamment, l'Internet, a rendu possible la mise à disposition de données de tous types. Pour identifier aisément la plupart de ces données, l'utilisation des moteurs de recherche, voire des méta-moteurs de recherche, est indispensable. Une technique courante utilisée par les moteurs de recherche consiste à parcourir les liens hypertextes identifiés dans les sites de l'Internet, qui référencent eux-mêmes d'autres sites comprenant de même des liens hypertextes dans leurs pages, en vue constituer une grande base de données indexée interrogeable en utilisant une combinaison logique de mots-clés. Etant donné que chaque moteur de recherche utilise son propre algorithme pour collecter les données et pour les indexer, les résultats d'une même recherche sont différents d'un moteur de recherche à un autre, et des données sont susceptibles d'être trouvées à partir d'un moteur de recherche mais pas à partir d'un autre. Pour pallier à cet inconvénient, les méta-moteurs de recherche proposent aux utilisateurs une unique interface de recherche, qui est généralement réduite à une zone de texte, pour saisir une combinaison logique de mots-clés. Cette interface offre aussi parfois la possibilité de sélectionner, parmi une liste de moteurs de recherche, ceux à utiliser pour effectuer la recherche. Les résultats fournis par chaque moteur de recherche sont alors consolidés, c'est-à-dire regroupés, pour être ensuite présentés à l'utilisateur. Malgré tout, un certain nombre de données ne sont accessibles, ni aux moteurs, ni aux méta-moteurs de recherche. Ce sont les données structurées des bases de données. En effet, ces données structurées sont accessibles au travers de formulaires d'interface complexes. Les sites ou services d'un réseau informatique, par exemple l'Internet, qui offrent une interface d'accès à leur base de données structurées, sont appelés des fournisseurs ou fournisseurs de données. Il existe principalement deux types d'interfaces . les interfaces proposant des champs liés ou pas entre eux par des opérateurs booléens, et les interfaces proposant une zone de texte libre utilisant une liste d'identifiants de champs utilisables avec une syntaxe propre à chaque fournisseur. L'utilisation de multiples interfaces pose de nombreux problèmes. Au niveau technique, chaque interface impose des contraintes spécifiques, comme, par exemple, la limitation des opérateurs, des termes utilisables par champ ou des formats de date différents, et elles n'offrent pas fréquemment la possibilité de rechercher dans le texte intégral des documents contenus dans les bases. Au niveau sémantique, un même document peut être référencé de manières différentes auprès de chaque fournisseur et l'utilisateur doit connaître la correspondance entre les types de références. Dans un exemple, les données structurées disponibles auprès de fournisseurs sont les données liées à la propriété industrielle. Dans ce cas, les fournisseurs sont en général des offices nationaux, régionaux ou internationaux de propriété industrielle. Dans le cas où les données structurées sont des données de brevets d'invention, une personne, qui souhaite effectuer une recherche de qualité relativement à une technologie donnée, peut avoir à utiliser plusieurs dizaines d'interfaces, chaque fournisseur proposant sa propre interface. Il doit alors jongler longuement et difficilement de l'une à l'autre en tenant compte des différentes syntaxes, codes et formats propres à chaque interface en vue de tenter d'obtenir les données qu'il recherche. Un autre point que l'utilisateur ne peut pas gérer, s'il doit consulter séparément les fournisseurs, est le regroupement d'informations par famille. Une famille est, au sens large, une liste d'informations ou de documents ayant la même source. Dans la plupart des cas, l'utilisateur a besoin de connaître l'existence des membres de la famille ne serait-ce que pour avoir une version dans sa langue de l'information ou du document, si cette version existe. De plus, un regroupement par famille réduit la quantité de données à lire ou à traiter. Compte tenu de ce qui précède, un problème que se propose de résoudre l'invention est de réaliser un procédé d'interrogation d'une pluralité de bases de données structurées interrogeables, dans un réseau informatique, au travers d'interfaces d'interrogation The present invention relates to a method of interrogating a plurality of searchable structured databases, in a computer network, through heterogeneous interrogation interfaces. It relates more particularly to such a method for interrogating heterogeneous bases of structured data of industrial property, for example structured data relating to patents of invention. The development of computer networks and, in particular, the Internet has made it possible to make data of all types available. To easily identify most of these data, the use of search engines, or even meta-search engines, is essential. A common technique used by search engines is to browse the hypertext links identified in the Internet sites, which themselves refer to other sites including the same hypertext links in their pages, in order to constitute a large database. Searchable indexed data using a logical combination of keywords. Since each search engine uses its own algorithm to collect the data and to index it, the results of the same search are different from one search engine to another, and data is likely to be found from search engine but not from another. To overcome this disadvantage, search meta-engines provide users with a single search interface, which is usually reduced to a text box, to capture a logical combination of keywords. This interface also sometimes offers the possibility of selecting, from a list of search engines, those to use to perform the search. The results provided by each search engine are then consolidated, that is to say grouped, to be presented to the user. Nevertheless, a certain amount of data is not accessible to search engines or meta-search engines. These are the structured data of the databases. Indeed, these structured data are accessible through complex interface forms. The sites or services of a computer network, for example the Internet, that provide an interface to access their structured database, are called data providers or providers. There are mainly two types of interfaces. interfaces offering fields linked or not between them by Boolean operators, and interfaces offering a free text box using a list of field identifiers usable with a syntax specific to each provider. The use of multiple interfaces poses many problems. At the technical level, each interface imposes specific constraints, such as, for example, limitation of operators, usable terms per field or different date formats, and they do not frequently offer the possibility to search in the full text of documents. contained in the bases. At the semantic level, the same document can be referenced in different ways with each provider and the user must know the correspondence between the types of references. In one example, the structured data available from vendors is the proprietary data. In this case, the suppliers are generally national, regional or international industrial property offices. In the case where the structured data is patent data, a person who wishes to perform a quality search for a given technology may have to use several dozens of interfaces, each provider offering its own interface. He must juggle length and difficulty from one to the other taking into account the different syntax, codes and formats specific to each interface in order to try to obtain the data he is looking for. Another point that the user can not manage, if he has to consult the suppliers separately, is the grouping of information by family. A family is, in a broad sense, a list of information or documents having the same source. In most cases, the user needs to know the existence of family members if only to have a version in their language of the information or document, if this version exists. In addition, grouping by family reduces the amount of data to read or process. In view of the foregoing, a problem to be solved by the invention is to provide a method of interrogating a plurality of searchable structured databases in a computer network through interrogation interfaces.
hétérogènes, qui simplifie nettement le travail de l'utilisateur. La solution au problème ci-dessus proposée par l'invention a pour objet un procédé d'interrogation d'une pluralité de bases de données structurées interrogeables, au sein d'un réseau informatique, au travers d'interfaces d'interrogation hétérogènes, caractérisé en ce qu'il comporte les phases suivantes selon lesquelles : un utilisateur élabore une requête d'interrogation au travers d'une interface d'interrogation générique ; la requête d'interrogation est transformée en une pluralité de requêtes d'interrogation spécifiques des bases de données hétérogènes interrogées ; et la pluralité de requêtes d'interrogation spécifiques 15 est exécutée en vue d'obtenir des résultats en réponse à la requête d'interrogation de l'utilisateur, et en ce que la phase de transformation de la requête d'interrogation comprend une étape selon laquelle un arbre de l'expression de la requête est construit puis 20 développé de manière à obtenir un arbre développé, qui est traduit, pour former des arbres spécifiques de chacune des bases de données hétérogènes interrogées. De manière avantageuse, - pour l'élaboration de la requête d'interrogation, l'utilisateur utilise un 25 formulaire comportant un ou plusieurs champs liés entre eux par des opérateurs booléens et les données saisies dans ledit formulaire sont vérifiées dynamiquement avec un serveur, lors de l'élaboration de la requête ; - pour l'élaboration de la requête d'interrogation, 30 l'utilisateur utilise une zone de texte générique ; - la validation de la requête élaborée par l'utilisateur est assurée par un composant de traitement, qui comprend un analyseur syntaxique et un analyseur grammatical ; - pour heterogeneous, which greatly simplifies the work of the user. The solution to the above problem proposed by the invention relates to a method of interrogating a plurality of searchable structured databases, within a computer network, through heterogeneous interrogation interfaces, characterized in that it comprises the following phases according to which: a user formulates an interrogation request through a generic interrogation interface; the query request is transformed into a plurality of specific query requests of the interrogated heterogeneous databases; and the plurality of specific query requests is executed to obtain results in response to the user's query, and in that the transformation phase of the query query includes a step of which tree of the query expression is constructed and then expanded to obtain a expanded tree, which is translated, to form specific trees of each of the heterogeneous databases queried. Advantageously, for the elaboration of the interrogation request, the user uses a form comprising one or more fields linked together by Boolean operators and the data entered in said form are dynamically checked with a server, when the drawing up of the request; for generating the query request, the user uses a generic text box; - the validation of the query developed by the user is provided by a processing component, which includes a parser and a grammar parser; - for
former une requête spécifique d'une base de données, on crée des formulaires de manière itérative de sorte que, à chaque limitation rencontrée pour l'interrogation de ladite base de données, un nouveau formulaire est créé puis rattaché à l'arbre développé traduit ; - les formulaires créés sont optimisés en augmentant le nombre de termes de recherche par champ de la requête spécifique ; - pour l'exécution de la pluralité de requêtes d'interrogation spécifiques, on obtient, pour chaque requête spécifique, des identifiants des résultats de ladite requête, on synthétise lesdits résultats de manière à obtenir une liste d'identifiants des résultats de la requête d'interrogation de l'utilisateur, et on télécharge les données correspondant auxdits identifiants de ladite liste. L'invention sera mieux comprise à la lecture de la description non limitative qui suit, rédigée au regard des dessins annexés, dans lesquels : la figure 1 illustre les différentes phases du 20 procédé selon l'invention ; la figure 2 illustre un système pour la mise en œuvre du procédé selon l'invention, et détaille les différentes phases de ce procédé ; la figure 3 illustre plus particulièrement la phase 25 de transformation d'une requête d'interrogation selon l'invention ; et la figure 4 illustre plus particulièrement la construction itérative des conteneurs structurés selon le procédé de l'invention. 30 Le procédé selon l'invention est un procédé d'interrogation simultanée d'une pluralité de bases de données structurées, par exemple une dizaine de telles bases. Ces bases de données structurées sont, en form a specific query of a database, it forms forms iteratively so that, at each limitation encountered for the query of said database, a new form is created and attached to the translated developed tree; - created forms are optimized by increasing the number of search terms per field of the specific query; for executing the plurality of specific query requests, for each specific request, the identifiers of the results of said request are obtained, the results are synthesized so as to obtain a list of identifiers of the results of the query of interrogation of the user, and the data corresponding to said identifiers of said list are downloaded. The invention will be better understood on reading the nonlimiting description which follows, written with reference to the appended drawings, in which: FIG. 1 illustrates the different phases of the method according to the invention; FIG. 2 illustrates a system for implementing the method according to the invention, and details the different phases of this method; FIG. 3 more particularly illustrates the transformation phase 25 of an interrogation request according to the invention; and FIG. 4 more particularly illustrates the iterative construction of the structured containers according to the method of the invention. The method according to the invention is a method of simultaneous interrogation of a plurality of structured databases, for example a dozen such databases. These structured databases are, in
particulier, des bases de données de propriété industrielle. Il s'agit notamment de bases de données brevets d'invention ou de marques ou de dessins ou modèles. De telles bases de données de propriété industrielles sont fournies par des offices de propriété industrielle, en général. On citera, par exemple, la base de données brevets Esp@cenetTM fournie par l'Office Européen des Brevets. On citera, dans un autre exemple, la base de données brevets PatentScopeTM produite par l'Office Mondial de la Propriété Intellectuelle. Le procédé d'interrogation des bases de données structurées selon l'invention est mis en œuvre dans un réseau informatique. Un tel réseau est par exemple le réseau Internet, un réseau du type Intranet ou un réseau mixte Internet/Intranet. L'interrogation des bases de données structurées, telle qu'elle est proposée par les fournisseurs desdites bases, est effectuée uniquement au travers d'interfaces d'interrogation. C'est la raison pour laquelle les moteurs et/ou les méta-moteurs de recherche n'ont pas accès auxdites données. Les interfaces d'interrogation des bases de données structurées sont hétérogènes. Les formats des interfaces sont différents. Il en va de même, en général, des syntaxes d'interrogation et des codes utilisés. Ainsi que cela est illustré à la figure 1, le procédé selon l'invention comporte différentes phases. Dans une première phase, un utilisateur élabore une requête d'interrogation au travers d'une interface d'interrogation générique. Dans une seconde phase, la requête d'interrogation élaborée par l'utilisateur est validée. Dans une troisième phase, la requête d'interrogation élaborée par l'utilisateur, puis validée, particular, proprietary databases. These include databases of invention patents or trademarks or designs. Such industrial property databases are provided by industrial property offices, in general. For example, the Esp @ cenetTM patent database provided by the European Patent Office. Another example is the PatentScopeTM patent database produced by the World Intellectual Property Office. The method for interrogating the structured databases according to the invention is implemented in a computer network. Such a network is for example the Internet network, a network of the Intranet type or a mixed network Internet / Intranet. The interrogation of the structured databases, as proposed by the providers of said databases, is performed solely through interrogation interfaces. This is the reason why search engines and / or meta-search engines do not have access to these data. The query interfaces of structured databases are heterogeneous. The formats of the interfaces are different. The same is true in general of the query syntaxes and codes used. As is illustrated in Figure 1, the method according to the invention comprises different phases. In a first phase, a user constructs a query query through a generic query interface. In a second phase, the query request developed by the user is validated. In a third phase, the query request elaborated by the user, then validated,
est transformée en une pluralité de requêtes d'interrogation spécifiques des bases de données hétérogènes interrogées. Dans une quatrième phase, la pluralité de requêtes d'interrogation spécifiques, qui résultent de l'étape de transformation précitée, est exécutée en vue d'obtenir des résultats en réponse à la requête d'interrogation de l'utilisateur. Ainsi que cela est montré à la figure 2, pour la mise en oeuvre de l'invention, un utilisateur accède à un réseau informatique Intranet et/ou Internet 1 au moyen d'un navigateur 2. Il s'agit, par exemple, de l'un des navigateurs suivants : Mozilla FirefoxTM, OpéraTM, Internet ExplorerTM. L'utilisateur se connecte alors à un serveur 3 apte à exécuter une application, pour la mise en oeuvre du procédé selon l'invention dans le réseau informatique. L'utilisateur peut être authentifié. L'authentification permet notamment récupérer et d'utiliser les préférences comme la langue de l'utilisateur et/ou un environnement de travail personnalisé. La phase d'élaboration de la requête d'interrogation au travers d'une interface générique comprend des étapes de sélection 4 d'une requête existante et de modification de cette requête, ou de création complète d'une requête, puis de rédaction de son contenu au travers d'une interface de saisie. En effet, si des requêtes ont déjà été créées, l'utilisateur peut en choisir une parmi celles-ci et la modifier pour élaborer une nouvelle requête. Pour créer une nouvelle requête, l'utilisateur commence par choisir un des modèles de formulaires disponibles. Il s'agit de formulaires dit par champs pouvant contenir un ou plusieurs champs liés entre eux is transformed into a plurality of specific query requests of the interrogated heterogeneous databases. In a fourth phase, the plurality of specific query requests, which result from the aforesaid transformation step, are executed to obtain results in response to the user's query request. As shown in FIG. 2, for the implementation of the invention, a user accesses an Intranet and / or Internet computer network 1 by means of a browser 2. This is, for example, one of the following browsers: Mozilla FirefoxTM, OperaTM, Internet ExplorerTM. The user then connects to a server 3 capable of executing an application, for the implementation of the method according to the invention in the computer network. The user can be authenticated. Authentication allows including retrieve and use preferences such as the user's language and / or a custom work environment. The phase of elaboration of the interrogation request through a generic interface comprises steps of selection 4 of an existing request and of modification of this request, or of complete creation of a request, then writing of its content through an input interface. Indeed, if requests have already been created, the user can choose one of these and modify it to develop a new request. To create a new query, the user begins by choosing one of the available form templates. These are so-called field forms that may contain one or more linked fields
par des opérateurs booléens ou d'un formulaire contenant une zone de texte. L'interface de saisie de la requête propose à l'utilisateur de choisir les fournisseurs 5 qui seront interrogés lors de la phase d'exécution. Les dictionnaires de traductions et les dictionnaires de synonymes 6 correspondants sont proposés en fonction des capacités des fournisseurs 5 choisis. L'utilisateur peut restreindre le choix des langues. by Boolean operators or a form containing a text box. The query input interface provides the user with the choice of the providers 5 that will be queried during the execution phase. The translation dictionaries and the corresponding synonym dictionaries are available according to the capabilities of the chosen suppliers. The user can restrict the choice of languages.
Les formulaires par champs dispensent de spécifier des noms de champ, contrairement à la zone de texte dans laquelle le nom des champs doit être spécifié. Le formulaire par champs est composé d'une série de champs qui peut être étendue dynamiquement. Les champs utilisables dans les formulaires représentent l'union des champs proposés par l'ensemble des fournisseurs accessibles par le système. Le système servant de support au procédé propose un nom unique par champ pour une langue donnée même si ce même champ peut être nommé de différentes façons suivant les fournisseurs et les langues disponibles sur les interfaces des fournisseurs. Pour chaque nom de champ, il existe un nom abrégé. Par exemple, le champ ayant dans l'interface française pour nom titre en français et dans l'interface anglaise French title a une référence unique abrégée TTL FR utilisable dans la zone de texte. Le procédé selon l'invention réalise la conversion entre les noms des champs fournis par l'interface et les noms des champs correspondants pour chaque fournisseur de données interrogé lors des étapes ultérieures de validation et de transformation. Pour chaque champ, l'utilisateur donne une ou plusieurs valeurs séparées par des opérateurs d'interrogation. Chaque champ est lié aux autres par des opérateurs booléens, et plusieurs champs peuvent être regroupés logiquement par des parenthèses. Le nombre de valeurs et d'opérateurs pour un champ n'est pas limité par l'interface. Field forms dispense with specifying field names, as opposed to the text field in which the field names must be specified. The field form consists of a series of fields that can be expanded dynamically. The fields used in the forms represent the union of the fields proposed by all the suppliers accessible by the system. The process support system provides a unique field name for a given language even though the same field may be named in different ways depending on the providers and languages available on the provider interfaces. For each field name, there is a short name. For example, the field having in the French interface for title name in French and in the english interface French title has a unique abbreviated reference TTL FR usable in the text box. The method according to the invention converts between the names of the fields provided by the interface and the names of the corresponding fields for each data provider interrogated during the subsequent validation and transformation steps. For each field, the user gives one or more values separated by query operators. Each field is linked to the others by Boolean operators, and several fields can be grouped logically by parentheses. The number of values and operators for a field is not limited by the interface.
Au fur et à mesure de l'écriture de la requête, une première validation est faite au niveau du navigateur 2. A cet effet, les formats spécifiques à certains champs comme les dates ou les codes de classifications sont vérifiés. As and when writing the request, a first validation is made at the level of the browser 2. For this purpose, the formats specific to certain fields such as dates or classification codes are checked.
Le contenu de la requête est transmis au serveur 3 au fur et à mesure. Un ensemble d'aides interactives peut alors retourner des suggestions 7 à l'utilisateur, ces aides étant sélectivement activables par l'utilisateur, soit interactivement, soit au travers de ses préférences. The content of the request is transmitted to the server 3 as and when. A set of interactive aids can then return suggestions 7 to the user, these aids being selectively activatable by the user, either interactively or through his preferences.
Par exemple, si elle est sélectionnée, la préférence auto-complétion 8 génère des suggestions qui sont retournées par le serveur 3 à l'interface utilisateur qui les affiche pour être sélectionnables par l'utilisateur. Il peut s'agir, par exemple, de suggestions de codes de classification ou équivalents retournées par le serveur 3 en fonction des mots-clés entrés par l'utilisateur dans sa requête et en fonction des fournisseurs choisis par l'utilisateur, et/ou en fonction du début de code rentré par l'utilisateur. Ces codes avec leur description sont retournés au navigateur 2 pour être affichés comme suggestions. Dans un autre exemple, si les synonymes 9 sont sélectionnés, des termes équivalents sont retournés par le serveur 3 à l'interface qui les affiche pour aider l'utilisateur à étendre ou au contraire affiner sa requête. Ces synonymes sont dépendants des langues associées aux fournisseurs choisis par l'utilisateur. La validation syntaxique est réalisée interactivement par l'analyseur syntaxique, qui retourne les erreurs à For example, if selected, the autocomplete preference 8 generates suggestions that are returned by the server 3 to the user interface that displays them for selection by the user. It may be, for example, suggestions of classification codes or equivalent returned by the server 3 according to the keywords entered by the user in his request and according to the suppliers chosen by the user, and / or depending on the start of code entered by the user. These codes with their description are returned to browser 2 to be displayed as suggestions. In another example, if the synonyms 9 are selected, equivalent terms are returned by the server 3 to the interface that displays them to help the user to expand or refine the query. These synonyms are dependent on the languages associated with the suppliers chosen by the user. Syntax validation is performed interactively by the parser, which returns errors to
l'interface. Le procédé selon l'invention prévoit que des procédures supplémentaires 10 de suggestion soient ajoutées au système de suggestion et activable selon les choix de l'utilisateur. D'un autre côté, en fonction des champs choisis par l'utilisateur, des icones, textes ou autres formes d'information sont utilisés par le procédé selon l'invention pour afficher sur l'interface utilisateur les fournisseurs qui proposent ces champs et qui devraient donc être interrogés. Les différentes suggestions citées ci-avant sont configurables au niveau des préférences utilisateur, et modifiables pour chaque édition de requêtes. Par exemple, le choix des dictionnaires 6 de synonymes à utiliser. Ces validations et suggestions sont asynchrones, de façon à ne pas gêner l'utilisateur dans sa frappe. Elles peuvent aussi être complètement désactivées. Par ailleurs, l'interface de saisie propose de sélectionner les types d'information qui seront retournés par les fournisseurs 5. Par exemple, les revendications dans le cas d'un brevet ou l'indication du produit dans le cas d'un dessin ou modèle. Pendant l'édition de la requête par l'utilisateur ou à sa demande, la requête est vérifiée au niveau de la syntaxe de l'interface unique puis, au niveau de la syntaxe et des limitations propres à chaque fournisseur, des suggestions et des messages d'erreurs étant éventuellement affichés sur l'interface. Il s'agit de la phase de validation 11 de la requête utilisateur selon le procédé selon l'invention. the interface. The method according to the invention provides for additional suggestion procedures to be added to the suggestion system and activatable according to the user's choice. On the other hand, depending on the fields chosen by the user, icons, texts or other forms of information are used by the method according to the invention to display on the user interface the providers who propose these fields and who should therefore be questioned. The various suggestions mentioned above are configurable at the level of the user preferences, and modifiable for each edition of requests. For example, the choice of synonyms dictionaries 6 to use. These validations and suggestions are asynchronous, so as not to hinder the user in his typing. They can also be completely disabled. Furthermore, the input interface proposes to select the types of information that will be returned by the suppliers 5. For example, the claims in the case of a patent or the indication of the product in the case of a drawing or model. During query editing by the user or at his request, the query is checked for the syntax of the unique interface and, at the level of the syntax and limitations of each provider, suggestions and messages errors may be displayed on the interface. This is the validation phase 11 of the user request according to the method according to the invention.
Cette validation peut se faire dynamiquement si l'option est activée par l'utilisateur, ou uniquement lorsque l'exécution de la requête est demandée par l'utilisateur. This validation can be done dynamically if the option is activated by the user, or only when the execution of the request is requested by the user.
La validation comprend donc en premier lieu la vérification que l'expression donnée par l'utilisateur est correcte par rapport à la syntaxe de l'interface liée au procédé selon l'invention. La syntaxe de l'interface unique n'est pas décrite dans la présente description. Il s'agit d'une syntaxe classique pour un système d'interrogation. Cette phase de validation est activée à la demande de l'utilisateur lorsqu'il a terminé de composer sa requête ou dynamiquement s'il veut une vérification et des suggestions dynamiques. Cette phase comprend une vérification au niveau du navigateur 2, avec messages d'erreur et suggestions ; une vérification indépendante du fournisseur, au niveau du serveur, avec messages d'erreur et suggestions (validation syntaxique) ; et, pour chaque fournisseur, une validation de la traductibilité, avec messages d'erreur et suggestions, et une traduction en fonction de la langue, avec insertion des synonymes. Validation therefore firstly includes verifying that the expression given by the user is correct with respect to the syntax of the interface related to the method according to the invention. The syntax of the unique interface is not described in the present description. This is a classic syntax for an interrogation system. This validation phase is activated at the request of the user when he has finished composing his request or dynamically if he wants verification and dynamic suggestions. This phase includes a check at browser level 2, with error messages and suggestions; Provider-independent server-level verification with error messages and suggestions (parsing) and, for each vendor, a validation of the translatability, with error messages and suggestions, and a translation according to the language, with insertion of the synonyms.
Le procédé selon l'invention utilise une description des caractéristiques 12 de chaque fournisseur. Cette description est enregistrée sur le système et est accessible au procédé. Cette description comprend au moins le type d'interface : a) champ de texte, b) nombre fixe de champs avec opérateurs logiques inter-champs modifiables, c) nombre fixe de champs avec opérateurs logiques inter-champs fixés, d) nombre variable de champs avec opérateurs logiques inter-champs modifiables, e) nombre variable de champs avec opérateurs logiques inter- champs fixés ; les noms ou identifiants de chaque champ et leurs équivalents pour l'interface utilisateur liée au procédé (utilisé pour la transformation) ; les formats utilisables pour chaque champ les opérateurs 12 The method according to the invention uses a description of the characteristics 12 of each supplier. This description is recorded on the system and is accessible to the process. This description includes at least the type of interface: a) text field, b) fixed number of fields with modifiable inter-field logical operators, c) fixed number of fields with fixed inter-field logical operators, d) variable number of fields. fields with modifiable inter-field logical operators, e) variable number of fields with fixed inter-field logical operators; the names or identifiers of each field and their equivalents for the process-related user interface (used for the transformation); the formats usable for each field operators 12
utilisables entre les champs ; les opérateurs utilisables dans et pour chaque champ ; les délimiteurs utilisables ; les langues utilisables ; les options disponibles ; les limitations en nombre de caractères pour chaque champ et pour l'ensemble du formulaire ; les limitations en nombre de mots-clés pour chaque champ et pour l'ensemble du formulaire ; et les limitations en nombre d'opérateurs pour chaque champ et pour l'ensemble du formulaire. Si la validation a été réalisée suite à la demande d'exécution de la requête, le procédé selon l'invention transfère ensuite les informations validées globalement au composant qui s'occupe de la transformation 13. Ces informations se représentent sous forme d'un arbre logique d'expression qui est enregistré en mémoire. usable between fields; the operators that can be used in and for each field; usable delimiters; usable languages; the available options; limitations in the number of characters for each field and for the entire form; limitations in the number of keywords for each field and for the entire form; and limitations in the number of operators for each field and for the entire form. If the validation was carried out following the request to execute the request, the method according to the invention then transfers the globally validated information to the component that deals with the transformation 13. This information is in the form of a tree. Expression logic that is stored in memory.
Au niveau du navigateur 2, la validation correspond à une vérification des syntaxes utilisées pour les champs date, codes disponibles auprès des fournisseurs, par exemple les codes de classification, qui permet d'afficher les formats attendus dans les champs correspondants ; et à une vérification de la logique des délimiteurs de champs, comme l'ouverture ou la fermeture de parenthèses, de guillemets, lorsque l'utilisateur demande l'exécution de la requête. Au niveau du serveur 3, et pour la validation, la requête est analysée par le composant de traitement qui comprend un analyseur syntaxique et un analyseur grammatical. L'analyseur syntaxique vérifie le contenu des champs qui ont des contraintes syntaxiques. Par exemple, le contenu d'un champ de références de documents est validé s'il est conforme à au moins une des syntaxes supportées par un des fournisseurs. 13 At the level of the browser 2, the validation corresponds to a verification of the syntaxes used for the date fields, codes available from the suppliers, for example the classification codes, which makes it possible to display the expected formats in the corresponding fields; and checking the logic of field delimiters, such as opening or closing parentheses, quotation marks, when the user requests the execution of the query. At the server 3, and for validation, the request is analyzed by the processing component which includes a parser and a grammar parser. The parser checks the contents of fields that have syntactic constraints. For example, the content of a document reference field is validated if it conforms to at least one of the syntaxes supported by one of the providers. 13
Pour chaque fournisseur, une procédure de validation pour les champs ayant des contraintes syntaxiques est déclarée dans les caractéristiques 12 du fournisseur et est appelé par le composant de traitement qui les utilise au travers de l'analyseur syntaxique. L'analyseur grammatical vérifie que l'expression est valide du point de vue grammatical et retourne si nécessaire des suggestions, comme les ouvertures ou fermetures de parenthèses, la position des opérateurs, ou les noms de champs. Ensuite, pour chaque champ, le composant de traitement fait appel au composant de suggestion qui a pour charge d'appeler les procédures de suggestions disponibles pour chacun de ces champs. Des exemples de ces suggestions sont : l'auto-complétion des mots en fonction des dictionnaires disponibles et choisis par l'utilisateur ; l'auto-complétion de codes, notamment ceux qui ont une structure hiérarchique ; la proposition de synonymes en fonctions des dictionnaires de synonymes disponibles et choisis par l'utilisateur ; et des suggestions de traduction de termes propres aux langues correspondantes à chaque fournisseur sélectionné. Pour la mise oeuvre de la phase de transformation selon l'invention, l'arbre d'expression de la requête est développé puis, en fonction des possibilités de chaque fournisseur, un traitement est réalisé. L'arbre est ensuite reconstruit pour créer des formes dont le contenu est directement traduit en un ensemble de formulaires de requêtes, qui sont des conteneurs structurés contenant des champs de données, des opérateurs et des délimiteurs. Chaque formulaire correspond à un ensemble d'informations ou requêtes fournisseurs, attendues par les interfaces spécifiques de chaque fournisseur. 14 La première étape de la transformation consiste à construire l'arbre de l'expression, et à effectuer un développement de cet arbre, qui a pour effet de faire remonter les opérateurs OU ( OR ) et de faire descendre les opérateurs NON ( NOT ), puis les opérateurs ET ( AND ). Par exemple : A ET (B OU C) est développé en (A ET B) OU (A ET C) A ET (B NON C) est développé en (A ET B) NON (A ET C) A NON (B OR C) (A NOT B) AND (A NOT C) Par la suite, le procédé selon l'invention utilise, pour chaque fournisseur, la description des caractéristiques de son interface ainsi que les procédés (ou règles si l'implémentation utilise un moteur de règles pour la transformation) permettant les traitements suivants : traitement des champs ; utilisation des champs de substitution ; optimisations complémentaires ; traitement des opérateurs inexistants ; recherche des restrictions (ex. : utilisation de codes de classification spécifiques à un fournisseur) qui imposent que les réponses ne peuvent être fournies que par un nombre restreint de fournisseurs, les branches liées à ce terme ou à cet identifiant réducteur n'étant pas prises en compte pour les autres fournisseurs ; découpage de l'arbre de requêtes fournisseurs en une liste de requêtes fournisseurs utilisables ; optimisation (statique) des requêtes par distribution des réducteurs (termes liés par des opérateurs ET) En fin de processus, une liste de requêtes par fournisseur est obtenue, dont les résultats sont réunis en une seule liste de résultats. 15 For each provider, a validation procedure for the fields having syntactical constraints is declared in the characteristics 12 of the provider and is called by the processing component that uses them through the parser. The grammar parser verifies that the expression is grammatically valid and returns suggestions, such as opening or closing parentheses, operator position, or field names if necessary. Then, for each field, the processing component uses the suggestion component which is responsible for calling the available suggestion procedures for each of these fields. Examples of these suggestions are: auto-completion of words based on the dictionaries available and chosen by the user; self-completion of codes, especially those with a hierarchical structure; the proposition of synonyms based on the synonym dictionaries available and chosen by the user; and suggestions for translating language-specific terms for each selected vendor. For the implementation of the transformation phase according to the invention, the expression tree of the request is developed and, depending on the possibilities of each provider, a processing is performed. The tree is then rebuilt to create forms whose content is directly translated into a set of query forms, which are structured containers containing data fields, operators, and delimiters. Each form corresponds to a set of information or supplier requests, expected by the specific interfaces of each provider. 14 The first step of the transformation is to build the tree of the expression, and to carry out a development of this tree, which has the effect of raising the operators OR (OR) and to lower the operators NOT (NOT) , then the AND operators. For example: A AND (B OR C) is developed in (A AND B) OR (A AND C) A AND (B NOT C) is developed in (A AND B) NO (A AND C) A NO (B OR Next, the method according to the invention uses, for each provider, the description of the characteristics of its interface as well as the methods (or rules if the implementation uses an engine). of rules for the transformation) allowing the following treatments: treatment of the fields; use of substitution fields; complementary optimizations; treatment of non-existent operators; looking for restrictions (eg use of vendor-specific classification codes) which require that responses can only be provided by a limited number of vendors, as branches related to that term or reducer ID are not taken account for other suppliers; splitting the provider request tree into a list of usable provider requests; (static) optimization of queries by distribution of gearboxes (terms linked by AND operators) At the end of the process, a list of queries per supplier is obtained, the results of which are combined into a single list of results. 15
Pour le traitement des champs, on effectue une validation de contenu, une traduction du contenu, et une identification du contenu. Pour la validation du contenu, on détermine si chaque fournisseur peut avoir des formats particuliers pour certains champs, comme le champ date , qui nécessite ou pas une traduction. Pour sa traduction, le contenu est traduit du format originel au format attendu par le fournisseur par les fonctions spécifiques à chaque champ stocké dans la base de caractéristiques des fournisseurs. Dans un exemple, pour l'identification du contenu, le champ numéro de publication peut contenir un préfixe qui est le code pays ou le type de brevet désigné (ex : USR). Si le contenu du champ ne correspond pas à un contenu valide pour le fournisseur, il y a une recherche pour valider que le contenu du champ est valide pour au moins un des fournisseurs (étape de validation) utilisables par le procédé selon l'invention. Il est dans ce cas identifié comme appartenant aux fournisseurs correspondants et ne sera utilisé que pour les fournisseurs en question. Lorsque l'utilisateur interroge les fournisseurs sur des champs non disponibles auprès d'un fournisseur, le procédé selon l'invention les remplace, lorsque cela est possible et lorsque cela est spécifié dans les préférences de l'utilisateur, par d'autres champs appelés champs de substitution . Ces champs sont modifiables et évoluent en même temps que les capacités des fournisseurs. Par exemple, si le champ full text ( texte complet ) n'existe pas auprès d'un fournisseur, les champs d'interrogation titre , titre ou 16 For field processing, content validation, content translation, and content identification are performed. For the validation of the content, it is determined if each provider can have particular formats for certain fields, such as the date field, which requires or not a translation. For its translation, the content is translated from the original format to the format expected by the provider by the functions specific to each field stored in the supplier's characteristics database. In one example, for content identification, the publication number field may contain a prefix that is the country code or the designated patent type (eg, USR). If the content of the field does not correspond to a valid content for the provider, there is a search to validate that the content of the field is valid for at least one of the suppliers (validation step) that can be used by the method according to the invention. It is in this case identified as belonging to the corresponding suppliers and will only be used for the suppliers in question. When the user interrogates the suppliers on unavailable fields from a supplier, the method according to the invention replaces them, where possible and when this is specified in the user's preferences, by other fields called substitution fields. These fields are modifiable and evolve at the same time as the capacities of the suppliers. For example, if the full text field does not exist with a provider, the title, title, or 16 query fields do not exist.
résumé , description vont être utilisés à la place du champ full text . Il existe deux types de champs de substitution. Il s'agit d'une part, de ceux qui réduisent le nombre de réponses. C'est le cas, par exemple, des champs titre ou description , qui sont utilisés à la place d'un champ full text , car ils produisent un nombre de réponses à priori inférieur à celui que fournirait le champ full text . Il s'agit, d'autre part, de ceux qui augmentent le nombre de réponses. C'est le cas, par exemple, des champs numéro de publication et numéro de demande lorsqu'ils sont utilisés pour remplacer le code de classification US, utilisés avec un terme réducteur de réponses en l'occurrence US . summary, description will be used instead of the full text field. There are two types of substitution fields. On the one hand, those who reduce the number of responses. This is the case, for example, of title or description fields, which are used instead of a full text field, because they produce a number of answers that are a priori lower than what the full text field would provide. On the other hand, these are the ones that increase the number of responses. This is the case, for example, with the publication number and application number fields when they are used to replace the US classification code, used with a reducing response term in this case US.
L'utilisateur est informé que les réponses sont optimisées par rapport aux capacités du fournisseur. Dans certains cas, il peut être impossible de traduire ou de substituer un champ ou son contenu, il est alors abandonné pour le fournisseur en question et l'erreur est enregistrée pour être délivrée à l'utilisateur. Tous les fournisseurs ne proposent pas les mêmes opérateurs. Par exemple l'opérateur de complétion caractère de remplacement placé à la fin d'un mot ou d'une valeur n'est pas toujours disponible. Pour limiter la dégradation des résultats d'une requête, le procédé prévoit que, lorsque l'arbre comprend des opérateurs non reconnus par un fournisseur, un traitement particulier de l'arbre, déclaré dans les caractéristiques du fournisseur, soit appelé pour compenser ces manques. Les fournisseurs faisant évoluer régulièrement leurs interfaces d'interrogation, le procédé prévoit que les The user is informed that the responses are optimized with respect to the capabilities of the provider. In some cases, it may be impossible to translate or substitute a field or its contents, it is then abandoned for the provider in question and the error is recorded to be delivered to the user. Not all providers offer the same operators. For example, the character completion operator at the end of a word or value is not always available. To limit the degradation of the results of a request, the method provides that, when the tree comprises operators not recognized by a supplier, a particular treatment of the tree, declared in the characteristics of the supplier, is called to compensate for these shortcomings. . Providers regularly evolve their interrogation interfaces, the process provides that the
procédures de compensation soient mises à jour régulièrement avec les caractéristiques des fournisseurs. Des exemples de compensations utilisées sont les suivants : PROCHE ( NEAR ) est remplacé par un ET NON dans un champ est remplacé par un NON et un nouveau formulaire. Par exemple, FORM [X/(A NON B)] est remplacé par FORM [X/A] NON FORM [X/B] . Dans le cas où il serait impossible de compenser un opérateur, la branche de l'arbre sous cet opérateur serait supprimée, et l'utilisateur est informé par un message. Pour la construction itérative des formulaires, l'arbre de requêtes est complètement décomposé pour chaque fournisseur. Cette décomposition est présentée à la figure 3. Elle génère un arbre qui comprend un opérateur OU avec des ensembles de branches regroupées par des opérateurs ET. Chaque opérateur ET est l'équivalent d'un méga formulaire. Il n'est pas tenu compte des limitations imposées par le fournisseur. Un arbre est composé des éléments suivants : opérateurs et valeurs. Les opérateurs utilisés sont au minimum: OU, ET, NON, CHAMP, FORM. L'opérateur CHAMP comprend une expression et une valeur qui désigne le champ. clearing procedures are updated regularly with the characteristics of the suppliers. Examples of compensation used are as follows: NEAR (NEAR) is replaced by an AND NOT in a field is replaced by a NO and a new form. For example, FORM [X / (A NO B)] is replaced by FORM [X / A] NOT FORM [X / B]. In the case where it would be impossible to compensate an operator, the branch of the tree under this operator would be deleted, and the user is informed by a message. For the iterative construction of forms, the query tree is completely decomposed for each provider. This decomposition is shown in Figure 3. It generates a tree that includes an OR operator with sets of branches grouped by AND operators. Each AND operator is the equivalent of a mega form. The limitations imposed by the supplier are not taken into account. A tree is composed of the following elements: operators and values. The operators used are at least: OR, AND, NO, FIELD, FORM. The CHAMP operator has an expression and a value that designates the field.
Pour chaque fournisseur, la reconstruction de l'arbre se passe en deux étapes : une première étape de création itérative des formulaires et une seconde étape d'optimisation des formulaires. L'algorithme utilisé pour créer les formulaires à 30 partir de chaque méga formulaire est décrit par le diagramme à la figure 4. Cet algorithme tient compte de la possibilité qu'ont les fournisseurs de mettre des limitations : sur le nombre de caractères pour chaque champ et pour l'ensemble du formulaire, sur le nombre de mots-clés pour chaque champ et pour l'ensemble du formulaire, et sur le nombre d'opérateurs pour chaque champ et pour l'ensemble du formulaire. A chaque limitation rencontrée, un nouveau formulaire est créé. Il est rattaché à l'arbre par l'opérateur ET à la place du formulaire ayant atteint la limitation. Ce formulaire et celui créé étant les fils du ET. Ceci permet l'exécution complète de la requête voulue par l'utilisateur. Une phase d'optimisation est ensuite exécutée pour compléter les formulaires, dont l'algorithme basique d'optimisation consiste à compléter chaque champ d'un formulaire avec des valeurs du méga formulaire pour les champs qui ne sont pas déjà présents dans le formulaire, jusqu'à concurrence des limitations des champs et des formulaires. For each supplier, the rebuilding of the tree takes place in two stages: a first step of iterative creation of the forms and a second stage of optimization of the forms. The algorithm used to create the forms from each mega form is described by the diagram in FIG. 4. This algorithm takes into account the possibility for the providers to set limitations on the number of characters for each field. and for the entire form, the number of keywords for each field and for the entire form, and the number of operators for each field and for the entire form. For each limitation encountered, a new form is created. It is attached to the tree by the AND operator instead of the form that has reached the limitation. This form and the one created being the sons of ET. This allows the complete execution of the request desired by the user. An optimization phase is then executed to complete the forms, whose basic optimization algorithm consists in completing each field of a form with values of the mega form for the fields that are not already present in the form, until 'up to the limitations of fields and forms.
Des algorithmes plus pertinents peuvent être utilisés, comme l'utilisation de longueur de date ou de rareté d'un terme. L'optimisation décrite ci-dessous permet de limiter le nombre de réponses par requête. Le procédé 25 d'optimisation par défaut est le suivant : pour deux formulaires FORM B et FORM C, si un champ du formulaire FORM B a un nombre de valeurs inférieur au nombre de valeurs du même champ de l'autre formulaire FORM C, et que toutes les valeurs de ces champs sont 30 reliées entre elles par des opérateurs ET, ce qui correspond à l'essentiel des cas, les valeurs du champ C sont ajoutées aux valeurs du champ B jusqu'à épuisement des valeurs ou jusqu'aux limites autorisées du formulaire More relevant algorithms can be used, such as the use of date length or rarity of a term. The optimization described below limits the number of responses per request. The default optimization method is as follows: for two forms FORM B and FORM C, if a field of the form FORM B has a number of values lower than the number of values of the same field of the other form FORM C, and that all the values of these fields are interconnected by AND operators, which corresponds to most cases, the values of the field C are added to the values of the field B until the values are exhausted or the limits Authorized form
FORM B (exemple nombre de caractères, nombre de valeurs). Le résultat est une optimisation de la requête par augmentation du nombre de termes par champ ce qui diminue le nombre de réponses potentielles. Autrement dit, le nombre de réponses est considérablement réduit grâce aux transformations précitées. Les différents choix de combinaisons ces valeurs de réduction forcée établissent une liste de formulaires équivalentes appelé liste de formulaires de substitution. FORM B (example number of characters, number of values). The result is an optimization of the query by increasing the number of terms per field which decreases the number of potential responses. In other words, the number of responses is considerably reduced by the aforementioned transformations. The different choices of combinations these forced reduction values establish a list of equivalent forms called list of substitution forms.
L'invention exploite les listes de formulaires de substitution lorsque le nombre de réponses à un formulaire est supérieur à un seuil fixé dans les préférences du système ou dans les préférences de l'utilisateur ou aux capacités du fournisseur. Cette exploitation est décrite dans la partie exécution et consiste à utiliser les autres formulaires pour obtenir une requête avec un nombre de réponses inférieur au seuil fixé ou pour trouver le nombre minimum de réponses. D'autres procédures d'optimisations dynamiques demandées par la procédure d'exécution peuvent être utilisées comme par exemple la décomposition d'une date dans un formulaire qui donne trop de réponses pour le fournisseur qui ne voudra donc pas renvoyer toutes les réponses. En effet, en fonction des fournisseurs, on peut par exemple remplacer un formulaire qui contient la date 2004 par une série de formulaires avec des dates plus précises comme 2004/01, puis 2004/02, jusqu'à 2004/12. Contrairement aux listes de formulaires de substitution, ces formulaires générés sont substitués dans l'arbre de requêtes au formulaire d'origine et liés entre eux par des opérateurs ET. 20 The invention exploits the substitution form lists when the number of responses to a form is greater than a threshold set in the system preferences or in the user preferences or provider capabilities. This exploitation is described in the execution part and consists of using the other forms to obtain a request with a number of answers lower than the set threshold or to find the minimum number of answers. Other dynamic optimizations procedures requested by the execution procedure can be used, such as the decomposition of a date in a form that gives too many answers for the provider who will not want to return all the answers. Depending on the supplier, for example, a form containing the 2004 date may be replaced by a series of forms with more specific dates such as 2004/01 and 2004/02 until 2004/12. Unlike substitution form lists, these generated forms are substituted in the original form query tree and linked together by AND operators. 20
L'arbre est considéré comme optimisé lorsque l'on obtient un nombre minimum de formulaires générés, pour un nombre minimum de réponses. Pour la mise en œuvre de l'étape d'exécution, les formulaires de requêtes fournisseurs sont exécutés. Des tâches requêtes fournisseurs sont créées, ainsi que des tâches de traitement de données (indexation, analyse, etc). Ces différentes tâches sont exécutées en parallèle, de manière asynchrone, éventuellement sur plusieurs serveurs. L'utilisateur peut consulter, arrêter, relancer, mettre en différé ou interrompre définitivement l'exécution de ces tâches. Si une requête fournit trop de réponses et que la transformation a indiqué qu'il existe des alternatives à la requête en question, un service de transformation est appelé pour donner les requêtes équivalentes jusqu'à épuisement des requêtes alternatives, ou jusqu'à ce que l'exécution d'une requête satisfasse les conditions d'acceptabilité. L'étape de synthèse des résultats comprend des étapes consistant à, - récupérer tous les identifiants (ou références) d'information, - évaluer leurs correspondances par rapport à chaque fournisseur (syntaxes différentes pour référencer le même document ou la même information) et - réaliser les opérations logiques liées à l'arbre de la requête utilisateur pour éliminer les doublons et supprimer les indésirables (ex: liés à l'opérateur NON) pour construire des listes de références par fournisseur. Une fois que les listes des références ont été traitées, étape de récupération des données demandées par l'utilisateur, et stockage de ces données pour être ensuite présentées à l'utilisateur. 21 Pendant la phase d'exécution, les formulaires sont soumis aux fournisseurs, les résultats téléchargés et analysés. Cette phase est à la charge d'un contrôleur d'exécution 14 qui fait appel à un système de traitement tâches, par exemple le système de traitement de tâches 15 par lots Job SchedulerTM. On suppose que ce système 15 possède les fonctionnalités classiques suivantes : il permet de définir des groupes de tâches dont l'utilisateur ou le procédé peut surveiller la progression, et qu'il peut interrompre, suspendre, et relancer ; l'ensemble des tâches d'un groupe de tâches est modifiable. On peut ajouter des tâches à un job pendant 15 l'exécution ; plusieurs tâches peuvent être exécutées en parallèle ; la décision d'exécuter une tâche peut dépendre du fait que d'autres tâches ont été exécutées ; 20 il rend disponible les informations de progression des jobs et des tâches. La phase d'exécution est donc mise en oeuvre au moyen du contrôleur d'exécution 14. Ce contrôleur d'exécution contrôle le système de traitement par lots. En 25 particulier, il crée les groupes de tâches, ajoute des tâches auxdits groupes. Il gère les arbres d'expressions logiques. En particulier, il ajoute, supprime ou remplace des branches desdits arbres. Il optimise les exécutions, réalise une synthèse des résultats et effectue le 30 téléchargement 16 des données associées. Cette phase d'exécution comporte trois étapes principales. Il s'agit d'une première étape de détermination des identifiants pour chaque formulaire ; The tree is considered optimized when a minimum number of generated forms is obtained, for a minimum number of responses. For implementation of the execution stage, the supplier request forms are executed. Supplier request tasks are created, as well as data processing tasks (indexing, analysis, etc.). These different tasks are executed in parallel, asynchronously, possibly on several servers. The user can consult, stop, restart, postpone or permanently interrupt the execution of these tasks. If a request provides too many responses and the transformation has indicated that there are alternatives to the query, a transformation service is called to give the equivalent queries until the alternative queries are exhausted, or until the execution of a request satisfies the conditions of acceptability. The step of summarizing the results comprises the steps of, - recovering all the identifiers (or references) of information, - evaluating their correspondences with respect to each provider (different syntaxes for referencing the same document or the same information) and - perform the logical operations related to the tree of the user request to eliminate duplicates and remove unwanted (eg linked to the operator NOT) to build reference lists by provider. Once the reference lists have been processed, step of retrieval of the data requested by the user, and storage of this data to then be presented to the user. During the execution phase, the forms are submitted to the suppliers, the results downloaded and analyzed. This phase is the responsibility of an execution controller 14 which uses a task processing system, for example the Job SchedulerTM batch job processing system. It is assumed that this system 15 has the following standard functionalities: it makes it possible to define task groups whose user or process can monitor progress, and that it can interrupt, suspend, and restart; all the tasks in a task group can be modified. Tasks can be added to a job during execution; several tasks can be executed in parallel; the decision to perform a task may depend on whether other tasks have been performed; 20 it makes available the progress information of jobs and tasks. The execution phase is thus implemented by means of the execution controller 14. This execution controller controls the batch system. In particular, it creates task groups, adds tasks to said groups. It manages logical expression trees. In particular, it adds, removes or replaces branches of said trees. It optimizes the executions, synthesizes the results and uploads the associated data. This execution phase has three main steps. This is a first step in determining the identifiers for each form;
d'une seconde étape de synthèse des identifiants de résultats ; et d'une troisième étape de téléchargement des données associées. Pour la détermination des identifiants, les requêtes permettant d'obtenir les identifiants des résultats sont envoyées aux fournisseurs. Il s'agit par exemple d'un numéro de publication dans le cas d'un brevet, quitte à avoir des redondances (causées par la décomposition) ou des résultats finalement inutiles (par exemple résultant d'opérateurs NON FORM). Pour cela, lorsque le transformateur fournit au contrôleur d'exécution l'arbre d'expression contenant un ensemble de formulaires, le contrôleur d'exécution crée un groupe de tâches et ajoute un ensemble de tâches dites d'interrogation à ce groupe de tâches, en pratique, une tâche par formulaire. Les tâches d'interrogation sont définies comme étant formées d'une suite logique d'opérations. Ces opérations sont les suivantes : - une opération d'interrogation d'un fournisseur via le service d'accès aux fournisseurs ; - une analyse et traitement des résultats en sortie du service ; - un stockage des informations analysées Lorsque le système de traitement des tâches exécute une tâche d'interrogation, le formulaire est envoyé au service d'accès aux fournisseurs 17 qui a en charge la gestion des échanges avec les fournisseurs. La communication proprement dite du service d'accès aux fournisseurs avec chaque fournisseur concerne par exemple la gestion du protocole, les différents échanges qu'il peut y avoir notamment dans les cas de redirection ou de gestion de cookies. a second step of synthesis of the identifiers of results; and a third step of downloading the associated data. For the determination of the identifiers, the requests making it possible to obtain the identifiers of the results are sent to the suppliers. This is for example a publication number in the case of a patent, even if it has redundancies (caused by the decomposition) or ultimately useless results (for example resulting from NON FORM operators). For this purpose, when the transformer supplies the execution controller with the expression tree containing a set of forms, the execution controller creates a task group and adds a set of so-called interrogation tasks to this task group. in practice, one task per form. The polling tasks are defined as being formed of a logical sequence of operations. These operations are as follows: - a query operation of a supplier via the service of access to suppliers; - an analysis and treatment of the results at the end of the service; - Storage of the analyzed information When the task processing system executes a query task, the form is sent to the provider access service 17 which is in charge of management of exchanges with suppliers. The actual communication of the service of access to suppliers with each supplier concerns for example the management of the protocol, the various exchanges that may be in particular in the case of redirection or management of cookies.
Lors de l'exécution d'une tâche, lorsque l'interrogation d'un fournisseur est terminée, la tâche analyse et traite les données renvoyées par le fournisseur, les stocke et informe le contrôleur d'exécution pour qu'il décide de la suite des opérations. Si la requête au fournisseur a échoué, le contrôleur d'exécution décide de reformuler la requête, en remplaçant cette tâche par une ou plusieurs requêtes alternatives, s'il reste des formulaires de substitution disponibles auprès du transformateur ou contenus dans l'arbre de formulaires fourni par le transformateur. Par exemple, si une requête donne trop de réponses et dépasse les limites du fournisseur, elle peut être remplacée par un ensemble de formulaires de requêtes plus restrictives qui, réunies, seront équivalentes à la requête initiale. Le contrôleur d'exécution ajoute alors au job les tâches correspondantes à ces nouvelles requêtes. Si la requête au fournisseur a réussi, le contrôleur d'exécution stocke dans la base de données la liste des identifiants des résultats associés au formulaire. Le contrôleur d'exécution peut aussi optimiser l'ensemble des tâches à effectuer. Par exemple, si, dans l'arbre de requêtes, deux formulaires sont liés par un opérateur ET, et qu'un formulaire ne donne pas de résultat, la tâche correspondante à l'autre formulaire lié par le ET sera supprimée du lot, sans avoir été lancée. Il est effectivement dans ce cas inutile d'effectuer les requêtes de l'autre branche, le résultat de l'opération logique ET ne renverra logiquement, de toute façon, aucun résultat. Lorsque toutes les tâches d'interrogation ont été effectuées, le contrôleur d'exécution effectue une synthèse des résultats, qui donne la liste des When performing a task, when the query of a provider is complete, the task analyzes and processes the data returned by the provider, stores them and informs the execution controller to decide what to do next. operations. If the request to the provider has failed, the execution controller decides to reformulate the request, replacing this task with one or more alternative requests, if there are substitution forms available from the processor or contained in the forms tree. supplied by the transformer. For example, if a request gives too many answers and exceeds the provider's limits, it can be replaced by a set of more restrictive query forms that together will be equivalent to the original request. The execution controller then adds the tasks corresponding to these new requests to the job. If the request to the provider has succeeded, the execution controller stores in the database the list of the identifiers of the results associated with the form. The execution controller can also optimize the set of tasks to be performed. For example, if, in the query tree, two forms are linked by an AND operator, and one form does not give a result, the corresponding task to the other form linked by the ET will be removed from the batch, without have been launched. It is indeed in this case useless to perform the requests of the other branch, the result of the logical operation AND will logically return, anyway, no result. When all the polling tasks have been performed, the execution controller summarizes the results, which gives the list of
identifiants des résultats de la requête initiale de l'utilisateur. Elle effectue pour cela un parcours en profondeur de l'arbre d'expression et détermine alors la liste des identifiants des résultats correspondants à chaque nœud selon une opération dépendante du type de nœud. Si le nœud est un formulaire, sa liste de résultats a été fournie par l'analyse du résultat de la tâche d'interrogation correspondante. Si le nœud est un opérateur ET, sa liste de résultats est l'intersection des listes de résultats de ses fils. Si le nœud est un opérateur OU, sa liste de résultats est l'union des listes de résultats de ses fils. Si le nœud est un opérateur NON, sa liste de résultats est la différence des listes de résultats de ses fils. L'arbre et ses données sont stockées, la liste complète des identifiants des résultats de la requête initiale est alors la liste associée à la racine de l'arbre. Le procédé ne se limite pas à la détermination des identifiants ou références des résultats. Il permet en outre le téléchargement d'un certain nombre d'informations demandées par l'utilisateur sur ces résultats. A cet effet, le contrôleur appelle le composant de transformation en lui communiquant la liste des résultats. Il obtient en retour la liste (arbre avec uniquement des OU) des formulaires correspondants. Pour chaque fournisseur proposant l'accès direct aux informations à partir d'un ou plusieurs identifiants, l'algorithme de création de ces formulaires est simplement une boucle qui ajoute les identifiants des résultats jusqu'à concurrence de ce qu'autorise chaque fournisseur pour ce type d'interrogation. Cette dernière étape de génération de formulaires permet de minimiser le nombre de nouvelles requêtes à envoyer aux fournisseurs 25 identifiers of the results of the user's initial request. To do this, it carries out a depth run of the expression tree and then determines the list of identifiers of the results corresponding to each node according to a node type dependent operation. If the node is a form, its list of results was provided by analyzing the result of the corresponding query task. If the node is an AND operator, its result list is the intersection of the result lists of its children. If the node is an OR operator, its result list is the union of the result lists of its children. If the node is a NOT operator, its result list is the difference of the result lists of its threads. The tree and its data are stored, the complete list of the identifiers of the results of the initial query is then the list associated with the root of the tree. The method is not limited to determining the identifiers or references of the results. It also allows the downloading of a certain amount of information requested by the user on these results. For this purpose, the controller calls the transformation component by communicating the list of results. It gets back the list (tree with only ORs) of the corresponding forms. For each provider offering direct access to information from one or more identifiers, the algorithm for creating these forms is simply a loop that adds the identifiers of the results up to what each provider authorizes for that purpose. type of query. This last stage of forms generation makes it possible to minimize the number of new requests to send to suppliers 25
et donc d'optimiser le temps de récupération des informations. Pour chacun de ces formulaires, le contrôleur d'exécution crée une tâche dite de récupération pour le téléchargement des données demandées par l'utilisateur et l'ajoute au groupe de tâches. Lorsque le système de traitement par lots exécute une tâche de récupération, le formulaire correspondant est envoyé au service d'accès aux fournisseurs qui a en charge la gestion des échanges avec les fournisseurs. La tâche de récupération est caractérisée par le fait qu'elle contient la description des données à télécharger, description qui sera utilisée par le service d'accès aux fournisseurs qui connait le procédé pour récupérer lesdites données. Par le même mécanisme décrit pour les tâches d'interrogation, le système de traitement par lots procède alors au téléchargement des données. On notera que les données sont téléchargées dans un dernier temps de la mise en œuvre du procédé selon l'invention, soit après les étapes de récupération et de traitement des identifiants des données. Lorsque l'une de ces tâches reçoit le résultat de la récupération, elle analyse les résultats et les données téléchargées, puis elle informe le contrôleur d'exécution. Le contrôleur stocke les données téléchargées dans la base de données, puis télécharge les informations auprès d'autres fournisseurs si le transformateur a indiqué qu'il y a des alternatives de fournisseurs et si les données téléchargées ne contiennent pas les informations requises. Il crée alors d'autres tâches de téléchargement et les ajoute au groupe de tâches. Lorsque le téléchargement des données associées est terminé, le groupe de tâches est exécuté. La phase d'exécution est terminée. and therefore optimize the information retrieval time. For each of these forms, the execution controller creates a recovery task for downloading the data requested by the user and adds it to the task group. When the batch system executes a recovery task, the corresponding form is sent to the Supplier Access Service who is responsible for managing the exchanges with the suppliers. The recovery task is characterized in that it contains the description of the data to be downloaded, which description will be used by the provider access service which knows the process for recovering said data. By the same mechanism described for the interrogation tasks, the batch system then proceeds to download the data. Note that the data are downloaded in a final stage of the implementation of the method according to the invention, or after the steps of recovery and processing of the identifiers of the data. When one of these tasks receives the result of the recovery, it analyzes the results and downloaded data, and then informs the execution controller. The controller stores the downloaded data in the database and then downloads the information from other providers if the processor has indicated that there are provider alternatives and if the downloaded data does not contain the required information. It then creates other download tasks and adds them to the task group. When the associated data download is complete, the task group is executed. The execution phase is complete.
On notera que la mise en œuvre du procédé selon l'invention est rapide, car la récupération des identifiants ne nécessite pas un transfert important de données, contrairement au téléchargement des données elles-mêmes. Note that the implementation of the method according to the invention is fast because the recovery of identifiers does not require a large transfer of data, unlike the download of the data themselves.
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0901703A FR2944119A1 (en) | 2009-04-07 | 2009-04-07 | Queried structure data base interrogating method, involves constructing tree of expression of request in manner to obtain developed tree that is translated for forming specific tree of interrogated heterogeneous database |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0901703A FR2944119A1 (en) | 2009-04-07 | 2009-04-07 | Queried structure data base interrogating method, involves constructing tree of expression of request in manner to obtain developed tree that is translated for forming specific tree of interrogated heterogeneous database |
Publications (1)
Publication Number | Publication Date |
---|---|
FR2944119A1 true FR2944119A1 (en) | 2010-10-08 |
Family
ID=40910029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0901703A Withdrawn FR2944119A1 (en) | 2009-04-07 | 2009-04-07 | Queried structure data base interrogating method, involves constructing tree of expression of request in manner to obtain developed tree that is translated for forming specific tree of interrogated heterogeneous database |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2944119A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6496833B1 (en) * | 1999-11-01 | 2002-12-17 | Sun Microsystems, Inc. | System and method for generating code for query object interfacing |
US20040015487A1 (en) * | 2002-07-20 | 2004-01-22 | Lin Chen-Mi | Translation of object queries involving inheritence |
US20060195420A1 (en) * | 2005-02-25 | 2006-08-31 | International Business Machines Corporation | System and method of joining data obtained from horizontally and vertically partitioned heterogeneous data stores using string-based location transparent search expressions |
-
2009
- 2009-04-07 FR FR0901703A patent/FR2944119A1/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6496833B1 (en) * | 1999-11-01 | 2002-12-17 | Sun Microsystems, Inc. | System and method for generating code for query object interfacing |
US20040015487A1 (en) * | 2002-07-20 | 2004-01-22 | Lin Chen-Mi | Translation of object queries involving inheritence |
US20060195420A1 (en) * | 2005-02-25 | 2006-08-31 | International Business Machines Corporation | System and method of joining data obtained from horizontally and vertically partitioned heterogeneous data stores using string-based location transparent search expressions |
Non-Patent Citations (4)
Title |
---|
JAKOBSON G ET AL: "CALIDA: A SYSTEM FOR INTEGRATED RETRIEVAL FROM MULTIPLE HETEROGENEOUS DATABASES", THIRD INT. CONF. DATA KNOWLEDGE BASES: IMPROVING USABILITY, XX, XX, 28 June 1988 (1988-06-28), pages 3 - 18, XP000537042 * |
OWRANG M ET AL: "TRANSLATION OF QUERIES TO ACCOUNT FOR DIRECT COMMUNICATION BETWEEN DIFFERENT DBMSS", PROCEEDINGS OF THE NATIONAL COMPUTER CONFERENCE. CHICAGO, JUNE 15 - 18, 1987; [AFIPS CONFERENCE PROCEEDINGS], RESTON, AFIPS PRESS, US, vol. VOL. 56, no. 1987, 15 June 1987 (1987-06-15), pages 637,639 - 643, XP000011451 * |
PAPAKONSTANTINOU Y ET AL: "A query translation scheme for rapid implementation of wrappers", DEDUCTIVE AND OBJECT-ORIENTED DATABASES. PROCEEDINGS OF THEINTERNATIONAL CONFERENCE, XX, XX, 4 December 1995 (1995-12-04), pages 161 - 186, XP002179364 * |
TEMPLETON M ET AL: "MERMAID - A FRONT-END TO DISTRIBUTED HETEROGENEOUS DATABASES", PROCEEDINGS OF THE IEEE, IEEE. NEW YORK, US, vol. 75, no. 5, 1 May 1987 (1987-05-01), pages 695 - 708, XP000003694, ISSN: 0018-9219 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7027975B1 (en) | Guided natural language interface system and method | |
US8577914B2 (en) | APIS discovery service | |
EP1880325B1 (en) | Dynamic method for generating xml documents from a database | |
FR2832236A1 (en) | GRAPHIC INTERFACE OF SEMANTIC WEB PORTAL | |
WO2003057648A2 (en) | Methods and systems for searching and associating information resources such as web pages | |
JP2006139763A (en) | Application programming interface for text mining and searching | |
FR2809509A1 (en) | Method for internationalization of hypertext documents in which the hypertext tags are localized or translated using a localization tool together with a translation file to make conversion of Web pages between languages easier | |
FR2909198A1 (en) | Electronic document's element i.e. node, filtering method for e.g. microcomputer, involves evaluating expression on document data base according to evaluation mode identification information of expression | |
FR2824160A1 (en) | DYNAMICALLY CONFIGURABLE GENERIC CONTAINER | |
EP1290578A1 (en) | Automatic and secure data search method using a data transmission network | |
FR3004828A1 (en) | METHOD AND DEVICE FOR THE AUTOMATIC EXTRACTION OF THEMES FROM AT LEAST ONE DOCUMENT CONTAINING TEXT | |
Smirnova et al. | MySQL Cookbook | |
FR2931272A1 (en) | Export import method for e.g. software and system engineering formal data, involves transferring data exchange file towards computer to export data, and suppressing data in database and links and removing data in database to import data | |
EP1828941B1 (en) | Device for processing formally defined data | |
FR2944119A1 (en) | Queried structure data base interrogating method, involves constructing tree of expression of request in manner to obtain developed tree that is translated for forming specific tree of interrogated heterogeneous database | |
Stadler et al. | Schema-agnostic SPARQL-driven faceted search benchmark generation | |
FR2925721A1 (en) | Expressions i.e. XML path language expressions, compiling method for e.g. microcomputer, involves constructing representation such that complied representation of relative expression has link to complied representation of context expression | |
Watson | An introduction to the FIRE engine: A C++ toolkit for FInite automata and Regular Expressions | |
Sorice | Design and implementation of tools for automatic detection of web page rendering problems | |
WO2001095146A2 (en) | System for semi-automatic import of fragments of information resources | |
Indamutsa et al. | Advanced discovery mechanisms in model repositories | |
Nair et al. | Mastering Apache Solr 7. x: An expert guide to advancing, optimizing, and scaling your enterprise search | |
FR2884946A1 (en) | Call center agent request optimizing system, has search module, interface to input digital data by agent, and linguistic tools to refine and reformulate client requirement based on request, where relevant responses to request are selected | |
Cao | Web application development with third-party components | |
FR2914758A1 (en) | Expression e.g. XML path type expression, modifying method for e.g. microcomputer, involves modifying sub-expression when incoherence exists between type of parameter and type associated to evaluation result |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20101230 |