WO2008107338A1 - Procedes d'extraction, de combinaison, de synthese et de visualisation de donnees multidimensionnelles provenant de differentes sources - Google Patents
Procedes d'extraction, de combinaison, de synthese et de visualisation de donnees multidimensionnelles provenant de differentes sources Download PDFInfo
- Publication number
- WO2008107338A1 WO2008107338A1 PCT/EP2008/052274 EP2008052274W WO2008107338A1 WO 2008107338 A1 WO2008107338 A1 WO 2008107338A1 EP 2008052274 W EP2008052274 W EP 2008052274W WO 2008107338 A1 WO2008107338 A1 WO 2008107338A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- source
- sources
- column
- values
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
Definitions
- the present invention relates to methods for combining and viewing data from data sources, and in particular new types of retrieval, combining and visualization services capable of combining complementary or competing information available in particular on the Web. or in the enterprise, and to navigate easily in combinations made even when they represent large volumes of data
- the so-called “Mashup” tools allow combining data extracted from websites or other multidimensional data sources. For example, data extracted from a website giving hotel addresses can be combined. with data extracted from a site giving schedules of planes, with data extracted from a meteo site, etc.
- mashup tools can be used to combine information sources which are inherently competing. For example, if we consider extractors providing, from a book sales website, a set of data. multidimensional (typically presented in rows) composed of dimensions (typically columns) such as “Lead Author”, “Title” and “Price”, a join can be performed on the columns “Lead Author” and "Title”, to compare price of books supplied by different sellers on different sites
- SUBSTITUTE SHEET • Take advantage of indicators (keys), if any already associated with the data itself (in the example above only the columns “Lead Author” and “Title” should typically be used as keys and thus be used as join columns , although the user has also matched the "Price” column) to automatically combine the data in the most appropriate way, and this could be determined automatically;
- each offer has necessarily been the most recent one time (at least at the moment of its first appearance), and since it has not been withdrawn since then (it is still valid), it will be displayed .
- the user could display the offers of different sellers at the same time or even put his own books for sale using the same process.
- a difficulty with existing table data visualization tools is that the layout of the tree structure (left-to-right connections) is pre-established and the layout of the columns in this presentation may be different from that of the table. starting data.
- a method of automatic combination of multidimensional data as a function of manipulations in their dimensions in a computer environment comprising computer equipment capable of accessing multidimensional data sources, characterized in that it comprises the following steps:
- the invention proposes a method for automatically combining multidimensional data from a plurality of data sources, characterized in that it comprises a succession of cascaded implementations of the method as defined above, the combined data of a given implementation of said method constituting a data source for a subsequent implementation of said method.
- the arrangement of non-key values added with pre-existing values for the same combined multidimensional data includes the selection of a non-empty value among the values from the different sources.
- the arrangement of non-key values added with pre-existing values for the same combined multidimensional data includes the selection of a value among the values from different sources according to a given decision-making process.
- Each data is associated with a validity period, and the decision-making process includes the selection of a value belonging to a valid data item on a given date.
- Each data is associated with a date of first appearance, and the decision process includes the selection of a value from a data most recently appeared at a given date possibly adjustable.
- the method comprises, for the data of a source to which no date of first appearance is associated, a step of creating a first appearance date equal to the date on which the data was put into play in a combination of data for the first time.
- At least one of the multidimensional data sources comprises at least two upstream data sources and information defining a combination previously made according to claim 1.
- said actions are manipulations on a graphical interface of a representation of at least one dimension of the second source in order to match it with a representation of at least one dimension of the first source or to insert it between two dimensions of the first source, the dimensions corresponding to the manipulated representations determining either said associations between data, or said non-key value arrangements of the second source with values of the first source, depending on whether the dimension of the second source corresponding to the representation manipulated contains or not key values.
- a multi-dimensional data combining method comprising the following steps:
- the correspondence information also includes correspondence information between the dimensions of said sources and the method furthermore comprises, when accessing a data source that has already been the subject of combinations with other data sources, signaling also the correspondences between dimensions.
- the method further comprises the default execution of combining operations by the method of claim 1 between the data source to which it is accessed and said other data sources.
- the correspondence information is stored for a plurality of users, and the signaling step is performed according to preponderance rules among the correspondence information.
- a fourth aspect of the invention is a method for combining multidimensional data, comprising the following steps:
- a fifth aspect of the invention is directed to a process of enriching multidimensional data by automatic combination according to manipulations in their dimensions in a computing environment comprising computer equipment capable of accessing multidimensional data sources, characterized in that it understands, after applying to a previous source of data a selection function to obtain a previous selection of data, the following steps:
- mapping of dimensions between the data of the two sources is carried out during the implementation of the method.
- the method further comprises a synthesis step for displaying said selections in their graphical environment and associating values with means for dragging and dropping.
- the method is implemented repeatedly when accessing a succession of data sources and, when accessing a current data source for which there is no mapping of dimensions with the source previous, we seek the existence of a mapping of dimensions between the current source and a previous source, and the enrichment method is applied on pairs of sources constituted by said previous source and any source consulted more recently with which there is a mapping of dimensions, then on a pair of sources constituted by said anterior source thus enriched and the current source.
- the method is implemented when accessing a succession of SN-2, SN-I and SN data sources, and comprises the following steps: if a mapping between SN-2 and SN-I sources on the one hand, and SN-I, SN on the other, exists, implement the process between the SN and SN-I sources using source SN-I the result of the method according to claim 15 implemented on sources SN-I and SN-2, if no mapping between sources SN-2 and SN-I exists, determine if there is a mapping between the dimensions of the sources SN-2 and SN and, if so, implement the method according to claim 15 on the one hand on the sources SN and SN-I and on the other hand on the sources SN and SN-2, and if no mapping between SN-I and SN sources exists, determine if there is a mapping between the SN-2 and SN source dimensions and between SN-2 sources and SN-I and, if so, implement the method according to claim 15 on the one hand on sources SN-I and SN
- the method comprises a step consisting, as a function of actions exerted with the aid of an input user interface, associated with said other column at said single line, to cause the display of the different values taken by the dataset group in this other column.
- the method further comprises, in response to an action using an input user interface on an indicator, the deployment of the line in question into a sub-array.
- each row of said sub-table contains a different value in said other column and represents a subgroup of sets of data all having this value in said other column.
- the method comprises the repetition of steps (b) to (d) for at least one of the lines constituting said subarray, a repetition applied to at least one other column in which there are at least two values for the sub-table. group of data sets corresponding to said line at least. * there is an additional virtual type "line", the table being initially presented as a single line grouping all the rows, an indicator being displayed in association with each column in which there are at least two values.
- each row of the sub-table represents, for the columns from the indicators of which the sub-table was formed, a specific combination of values different.
- the method comprises displaying an indicator associated with said other column after deployment and on which an action using an input user interface causes the grouping (reduction) of said sub-array into said single line.
- the indicator associated with said other column comprises a symbol that can be oriented downwards or upwards.
- the method comprises the display in said other column of one of the values taken by the group of data sets in this column.
- the method comprises displaying in said other column a combination of the values taken by the group of data sets in this column.
- the method comprises displaying in said other column a property such as the cardinality of all the values taken by the group of data sets in this column.
- the method comprises a step of determining a value set selection key, determining a group of sets of values to which a change of value in a column at a displayed line will apply collectively.
- said selection key is constituted by the values displayed in the column or columns from the indicators of which a sub-table has been formed.
- said selection key is constituted by the values displayed in all the columns, including the value before change for the column in which the change is made.
- said selection key is constituted by the value before change in the column in question.
- the method comprises a step of adding to the selection key a value displayed in a column by the indicator from which no sub-array has been formed, by a specific action using an interface input user.
- the method comprises a step of deleting the selection key of a value displayed in a column by the indicator from which no sub-array has been formed, by a specific action using a user interface input.
- the method is able to display in association with the resource an indicator to allow direct access to said data source.
- the invention proposes a method of presenting data, comprising the following steps:
- the values of the "Valid From” and “Valid To” time columns come from an automatic detection of the first (or last) appearance of the data in the respective data sources, which the "null” values indicate. a value not known, and that the vertically repeated values are not presented 3 (in the following figure “Author2" is repeated in two lines but mentioned in one).
- multidimensional data sources and “data sources” are used interchangeably, and the term “data source” is sometimes used instead of “data source table”.
- the sources “Seller2” and “Seller3” contribute values on the one hand together in the column “Price” and on the other hand respectively in the “Number of pages” and “Rating” columns. It is considered here that the sources presented are in fact “selections” and that one applies the method of enhancement selections described below.
- Each missing value represents a repetition of the value above. This happens when from an already deployed value of a column of one row, a value of another column of the same row is deployed, this is described later.
- Vendor3 source does not provide a "Number of Pages” column
- the user now sees the value "350".
- this value is obtained by combining with the Vendor2 source 7 .
- Vendor's offer for ⁇ Author2, Title3 ⁇ is always 8 .
- the fourth line of Figure 1, which presented an offer for ⁇ Author3, Title4 ⁇ is not presented since it appeared after March 22, 2007 10:10 and there are no sources other offer data for this book that appeared before this date and is still valid at the time "Now".
- Vendor's offer for the book ⁇ Author2, Title2 ⁇ is more advantageous than Seller2's, and although less recent, it is still valid now. But are there even more advantageous offers (and
- the user can also request to display price differences over time for each book, as shown in Figure 6, or any other aggregation function (such as Min, Max, Average, etc.) applied. on a reduced cell, as will be described later.
- any other aggregation function such as Min, Max, Average, etc.
- the main interest of the process is to unify the vocabularies of the combined sources.
- FIG. 9 shows that Table B being combined with Table A, and that Col5 column of B being slid-dropped between Col2 and Col3 columns of A, the corresponding Col5 values of B are displayed in the resulting array A + B within a new column Col5 placed between Col2 and Col3 n .
- FIG. 10 shows that since table B is combined with table A, and the Col5 column of B is slid-deposited on column Col2 of A, the latter two are matched and thus, as a result of combining, the appropriate values of Col5 of B are displayed in the resulting array A + B within the same column Col2 (called "Col2 (Col5)" in the figure).
- the figures represent by means of broken lines the regions making it possible to distinguish (when detecting on-drop events) these two cases of dragging.
- the figure also shows a set of time cursors, by a start date of validity (date of first appearance) present in the sample.
- Setting multiple time cursors would mean (for the user) to display the union of the rows of the table corresponding to said placed cursors.
- Deploying the entire column "Valid from” (this can be done by clicking on a symbol """not shown in the figure, but used later) is indeed to display the union of the lines representing the offers respectively the most recent ones with respect to these time sliders.
- mappings of data source tables and table columns are counted, and this helps to determine which mappings to suggest (or apply by default) to users automatically 13 .
- Weights are associated with the mappings during their counting so that the preponderance rules used privilege matching by "close” users, for example users working in the same domain. And, of course, the user-made matching is offered first.
- new data sources can be automatically combined by default, provided that they have already been combined previously.
- a user himself creates a "Seller5" data source (for example from an already existing source, in this case from "Sellerl”) and presents the offer to sell a book “Authorl” "Titrel” (eg a secondhand book he would like to resell).
- Another user who accesses "Seller1” reads the offer of "Seller5" simply because a relatively large number of other users have already combined “Seller5" with “Sellerl” and matched their respective columns. .
- the implementation may consist of, for each pair among the columns in the current combination of tables, considering all the users having combined the tables in question (where are the columns forming this pair) and have kept this combination as a stored version (ie in the form of "views"), and count the number of times that this pair is matched in said stored version (take by user the average for all stored versions where this combination is kept) as well as possibly the number of times a suggestion of said matching has been denied by a user.
- access rights can be associated with the combinations and matched, so that for example the combinations made by a user can be reserved for him alone.
- said counts can also take into account data 15 visualized by the user when combinations.
- An extractor provides a "Yamazuki" data source from the website of the great Yamazuki motorcycle manufacturer, which presents all the motorcycles of this brand, with all their characteristics.
- An individual publishes a "I sell" data source containing a line showing the type of motorcycle (as a key value), the details, the price and the place of sale of a recent Yamazuki motorcycle that it sells.
- search engine provides, in a column “Domain”, the domain (in this case “fly fishing") corresponding to the keyword ("fly") given.
- domain in this case "fly fishing”
- search Engine source "Sellerl”
- ellerl is a seller specialized book in the field “Fly fishing”
- Each data source 20 is associated with the degree of fineness of the information to be taken into account during the counts.
- An "array of changes” is an array of modification lines and a “simple array” is an array of simple lines.
- any array of changes can be seen as an array of simple lines. This is done by seeing each line of modification as a line composed of the non-key cohones given there and completed, for the cohval not included in the set of non-key cohones given there, by key cohones given there .
- the first table presented above represents a table of simple lines drawn from the table of modifications that follows it. 27
- each pass: val is a value val in a column col of a row of the table - note that each row implicitly includes a pass: val with the value "null For each column not mentioned)
- a simple array (called the first array) can be combined with an array of changes (called the second array) using the key values of each of the rows in the second array to achieve, based on actions performed using an interface user on representations of the columns of the first table and the second table, associations between the rows of the first table and the rows of the second table, by combining the values of the first table with at least one part, also determined according to said actions, non-key values of the second table, and arranging the non-key values combined with pre-existing values also according to said actions.
- Said actions are manipulations (such as drag-and-drop, as already described) of a representation of at least one column of the second array to match it with a representation of at least one column of the first array (or for insert it between two columns of the first table), the columns corresponding to the manipulated representations determining either said associations between lines, or said non-key value arrangements of the second table with values of the first table, according to whether the column of the second table corresponding to the manipulated representation contains or not key values.
- manipulations such as drag-and-drop, as already described
- Conditions can be associated with key columns and stored as metadata.
- table "Seller4" given previously (and reproduced below 29 ) including the columns “Number of pages Min”, “Number of pages Max”, “Rating”, “Seller” and “Price” both first columns was associated with a condition expressing that the number of pages must be between the values given in these first two columns.
- the user who tries to map a column (which would be for example labeled "#pages") of a first table with a column of the table "Seller4" is then asked to match it with the number of columns "Number" of pages Min » « Number of pages Max »instead of a single column.
- the metadata may include global indications and conditions on the data sources to be combined.
- the first source able to provide an array of simple lines (or a table of changes seen as an array of simple lines)
- the second source able to provide a table of changes, a correspondence being established between at least one column of the second table (ie the table provided by the second source) and at least one column of the first table (ie the table supplied by the first source)
- the rows of said tables can be combined in cases where all the values key of the second table are thus mapped to columns of the first table (even in the absence of values, that is to say even if they have a zero value in the first table) and, if values are missing in the first table for these matched columns, in the case where key columns are given for the whole of the first array 31 , all the key cohentials of the first array have been its correspondence.
- This verification can be performed by a preprocessor, before the implementation of the method of combining the tables itself described below.
- each value is associated a beginning of validity (ie time of first appearance or beginning of belief of this value).
- Each line has an associated validity period: the beginning of validity of the line is equal to the greater validity start time associated with a value of the line, and the end of validity of the line is its last appearance time 32 (or belief end time of this data).
- An end of null validity means that the data is always valid (ie value always published by its source or value always raw).
- the rows are filtered relative to the time slider positioned by the user (as illustrated by the examples given at the beginning): only the lines having a lower validity start time and a valid end time greater than or equal to time indicated by the cursor are retained (the cursor time indicates the belief time and only the raw data at the set time are considered).
- the implementation of the method of combining a second table with a first table consists in adding to the first table the result of a relational join (operator known per se) between key tables corresponding to the first and second tables (respectively called first and second key tables). This join is performed on the key values in the columns of second key table 33 mapped by the user 34 taking into account the conditions 35 and / or actions if
- key table column means the corresponding columns in the corresponding table
- key table column means the corresponding columns in the corresponding table
- 3 4 or by accepting automatic suggestions for column mappings associated with the metadata (as described above); by providing said key values with the highest value of validity start 36 each, and for the other values of the matched columns, supplying the existing values having the largest validity start 37 , the values of the beginning of validity associated with said provided values being those they had before combination; the rows of said key tables being filtered with respect to the time set (time slider, as described above).
- the deployment / reduction method described later allows the user to present only the most recent data (by reducing the column "Start of validity", as illustrated above in the examples).
- the first selection will be "enriched with the second and first sources", namely: it will be enriched by the "combination” of the second source with she and she will be further enriched by adding the "combination" of the second selection with the first source taken entirely except the first selection (since the latter has already been combined with the second source taken in full); by said "combinations” is meant the combination method already described above.
- mapping 4 3 to enrich the third selection from the first and third sources 44 that if the previous selection, namely the first, had not been enriched with one before the previous one, in the second case, and a setting of at least one dimension correspondence was made with the latter, the same method should also have been applied to enrich the third selection with the second and third sources), if not, if a mapping of at least one dimension was made with that before the previous one, in this case the second, the same method is applied to enrich the third selection from the second and third sources, otherwise as in this example no other source was accessed in the current session, the third selection is not enriched.
- the current selection is enriched from the previous and current sources (see below the definition of these terms) and optionally, if the user has in the same session accessed a source before the previous one and a selection was presented to it, in case the previous selection had not itself been enriched with that before the previous one, if a matching of 'at least one dimension has been made between the latter and the current source, the current selection is enriched with the sources before the previous and current, and so on until the beginning of the session, ELSE
- the current selection is enriched from said source before the previous and the current source and optionally, if the user has in the same session accessed a source before 'the source before the previous' and a selection him in was presented, in the case where the selection before the previous one had not been enriched with that before 'before the previous', if a mapping of at least one dimension was made between the latter and the current source, the current selection is enriched with the sources before the previous and current, and so on until the beginning of the session,
- Said enrichment of the current selection from a previous source and the current source is to add to the current selection
- Per session is a succession of user access to data sources whose combination is potentially relevant. Typically, we will consider that close access in time
- Figure 11 shows schematically on the left a page of results of a site of sale of books, grouped by authors and on the right the table resulting from its extraction 47 .
- the user who creates an extractor associates him with meta-data in which he can notably indicate which are the key columns 48 of the extracted array. It can indicate several options. Thus for the example of figure 11 it can indicate optionl: the column "ISBN", and option2: the pair of columns "Author” and "Title".
- optionl the column "ISBN”
- option2 the pair of columns "Author” and "Title”.
- the system will then choose the first option (in the order of the given options) that forms part of the column (s) put in correspondence. For example, if the end user puts "Author” and "Title” in correspondence during a combination, this is the second option that will be chosen.
- An extractor provides a table (simple or modifications) from the data coming from a web page. It must therefore indicate on the one hand the request (url, GET or POST parameters) and on the other hand how to extract the data from the page. It can also manage paging and automatically download multiple pages of results.
- the method of creating an extractor from a web page containing a multidimensional data set is semi-automatic.
- the user selects in the web page one or more objects each corresponding to a row of the table, and indicates which object of the page corresponds to which row of the table to generate.
- the system compares the paths of these objects and conventionally constructs a generic path (Xpath) covering at least all the objects indicated by the user. 49
- the system can determine the values for each object, and present the table thus obtained to the user.
- the synthesizer is the inverse of the extractor, it is created automatically at the moment of the creation of the corresponding extractor, and allows to display the data of a table in the presentation style of the Web page, graphic areas being placed at the location of the objects containing the array values to allow them to be rolled out or collapsed and dragged and dropped to match columns of different tables corresponding to different webpages (ie to different combined sites as we describe further). It is created as follows: The user chooses a model object corresponding to a row of table 50 . All objects corresponding to other rows of the table are removed from the page and all objects referenced by objects corresponding to rows in the table but not the model object are deleted. The values in the template object are changed to
- all objects corresponding to the constructed path are highlighted and the user can refine the path by specifying additional objects or deselecting highlighted objects.
- the system refines the Xpath to respect these constraints.
- the user specifies for one of these objects (the "model object") all the attributes that will correspond to the columns of the array.
- the attribute an object in the page, a column name and, if necessary, the attribute HTM L to extract (for example, for links, it has the choice between the value of the attribute href or the text of the link).
- the system establishes, for each attribute, a pair (column name, Xpath), the path being relative to the model object, and stores this information in the extractor.
- 5 0 (the one that served as a template at the time of the extraction of the extractor, as described in the previous note) match the first row of the table, and one copy of the object is inserted afterward with the values of each other line to be displayed. 51
- a copy of ol (and thus also of oJ for all J> l) is created, its attributes objects are modified to reflect the current line, and it is inserted as a result (as brother) of the last copy of ol to have been placed in the document.
- the user can request to modify a synthesizer.
- the same procedure above is then applied based on a one-row array containing column names instead of values, with special markings to distinguish them from normal text (eg, "$ ⁇ author ⁇ " in the author column, and so on).
- the model object is marked by special marks (for example ⁇ model-object> ... ⁇ / model-object>).
- the user can modify the resulting document as he wishes, for example using a text editor, and return it to the system.
- the above method now uses this new structure (provided that there is exactly one area bounded by the model object markers). Note, however, that it is allowed to delete or duplicate attribute markers.
- the method of enriching selections obtained respectively from the data sources accessed in the same session can be applied to selections viewed in web pages acting as data sources (via extractors). Column mappings can be done by the user directly on presentations of these data sources (via synthesizers) in the form of web pages.
- the deployment / reduction process will now be described in detail.
- the methods described in this part assume the existence of a device providing an interface similar to a database server and giving access to the table displayed in the interface.
- this device the data source.
- a typical example is an extractor layer.
- the data source stores a "table” which is a data structure having a number of “columns” and “lines”, and each line of which has some content for each column.
- the lines represent information entities and the property columns of these entities, and it frequently happens that for a column, the same value is found in several lines, for example in the case where a property of the same entity can by nature have several values (it is said that the property in question is "multivalued”).
- the "table” refers to the table provided by the data source.
- the interface will provide a way to apply a number of filters to the rows (or, in other words, to search the table).
- a filter selects rows with a specific value in a certain column, the value of that column is said to be "specified”. More generally, it may also be possible to impose constraints ("Specifying" a column value then becomes a special case of constraint). For example, a filter can select rows containing a given word in a column. 52
- the method of the invention makes it possible, in the presence of multivalued fields, to replace the lines having the same values in a set of columns (the "deployed” columns) by a single “reduced” line.
- the display is essentially as follows: it contains a line (hereinafter called “displayed lines" as opposed to the rows of the table) for each combination of values in the columns deployed that exists in the table. For a displayed row and a reduced column data, if there is only one possible value according to the table, this value
- Each displayed line represents the subset of tuples (in the table) that have the values shown in the respective deployed columns 54 .
- each undeployed column in each undeployed column a "deploy" button is displayed if in the table there is at least one other tuple that has a. a different value for this column b. and the same values for the respective deployed columns.
- buttons "deploy” appearing in each column for which in the array at least one other tuple having a different value for that column exists.
- the user can choose an aggregation function to represent the reduced cells.
- Means can optionally be offered to select several buttons “deploy” or “reduce” and operate with one click.
- Column headers have associated user interface elements to reorder columns relative to one another and delete columns.
- the user also has a way to provide a "filter" on the lines to be displayed in the table. For example to show only the lines that have a certain value in a certain column, or that have two equal data columns, or even corresponding to an arbitrary SQL expression (ie any valid expression as parameter of WHERE or HAVING, taking good sure the usual precautions to prevent prohibited access) provided by the user.
- a "filter" any valid expression as parameter of WHERE or HAVING, taking good sure the usual precautions to prevent prohibited access
- sub-array means the set of newly displayed cells as described in point 5 above.
- a column ci uses an aggregation function a and it is not deployed, then the query contains a (ci) instead of ci.
- a new rotation of a column r to a value w in a displayed line L is treated as follows: The pair r-> w is added at the end of the list of rotations, to obtain r1-> w1, r2-> w2, ..., rn-> wn, r-> w. Then we add this sequence to the specified columns, as well as the association of the deployed columns dl, d2, ... to the values they take in line L. If at least one line is found, its values are displayed for L. In the opposite case, the first association (rl-> wl) is removed from the table T, and the process starts again, until at least one line is found.
- the columns to be shown are cl, c2, ..., the same as T; the specified values of the sub-table are f-> v1, f2-> v2, .. v d1-> L (d1), d2-> L (d2), ..., those of T plus the values of L for the deployed columns; the extended columns of T 'are dl, d2, ..., C, the same as those in the table containing L plus column C.
- the rotations indicated by T for the line L are removed from T, and placed in T, for the same line, with the exception, where appropriate, of a rotation of the column C for the line L, which is recorded as an overall rotation parameter for C.
- T 'therefore represents all the rows of the table corresponding to L.
- the system queries the data source to obtain only information not yet visible to the user.
- T ' it is not necessary for T 'to contain all the columns: in fact, the values of the specified columns are already visible in the parent table, and can be omitted in the sub-table, in order to lighten the display.
- the values of the specified columns are already visible in the parent table, and can be omitted in the sub-table, in order to lighten the display.
- the columns shown in the sub-tables be a contiguous interval of the columns shown in the root table. contain a deployment button just browse the corresponding column in the sub-table to reduce, and check if it contains cells with a deployment button or if two cells have a different value.
- the state of the line before deployment is recorded so that it can be restored at the time of the reduction.
- the spin reduction operation will at most change the values in the line, not the existence or not of deployment buttons.
- a query is sent to the data source, containing the properties of the sub-array about to be created (columns, specified values, and rotation information).
- the data source determines the contents of the subarray (the values to be shown, and all cells to contain a deployment button), and returns it to the user.
- the received data replaces the line containing the button that was clicked by the user.
- each associated deployment button has a reference to the sub-table to be visible when this button is activated.
- a button is pressed for the first time, a sub-table is created as described above, and a reference to it is saved in the deployment button.
- the sub-array is minimized, it is simply rendered invisible, and the reduced line is made visible. If the user uses the deployment button again, the sub-array reference is found, and the sub-array is simply made visible again.
- Figure 16 shows the case where all the columns are reduced. Note that in this example the user interface has in each reduced cell a value (rather than for example how many different values this cell represents) and that the set of values (01, El, Pl) shown in the different columns corresponds to a line that actually exists in the data source.
- Figure 17 shows the sub-table T 'presented following the deployment of the Organization column (the user having clicked the button associated with 01) in the single line that was presented in the previous example. Note that this button is then replaced by a reverse button that reduces Ol to new (and thus return to the situation of the previous figure).
- the Organization column all existing values (ie, Ol and 02) are then presented, each with an associated value presented in each other column, the values presented in each row together forming an existing tuple in the data source 58 .
- Figure 18 shows the sub-table T "that appears following the click on the button associated with El in the previous example (to deploy the employees of the organization 01) .It is noted that there is no need to repeat Ol in the second line, allowing a more pleasant presentation to read 59.
- Figure 19 highlights the sub-table T "which appears after the click on the button associated with the project Pl of the first line in the previous example (to deploy the projects of El of 01) El is implicit in the second line 60
- Figure 20 highlights the sub-table that appears after clicking the button associated with E3 in the previous example. We see that we now see the 5 rows of the data source table and that there is no longer a cell to deploy.
- Figure 21 shows the status of the displayed table, following the click on the button associated with Pl (deploy projects).
- Pl deployment projects
- all existing values P1 and P2 are then presented, each with an associated value presented in each other column.
- Figure 22 shows the sub-table T "that appears following the click on the button associated with El in the first line of the previous example (this click is intended to deploy the employees participating in the project Pl). directly deployed in full and, as the second tuple of the data source is already presented, the button deploy from Ol to the first line is no longer necessary.
- the user can then arrive directly at the fully deployed table by clicking the button associated with P1 in the first row, as shown in Figure 27.
- each column can also have a combination or aggregation or cardinality of the existing values or indeed any other relevant information, or nothing at all.
- the interface thus has a tree (a hierarchical structure) whose root is 01, El and E2 form two branches, and where P1 and P2 are the two leaves of El.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
L'invention concerne un procédé de combinaison automatique de données multidimensionnelles en fonction de manipulations au niveau de leurs dimensions dans un environnement informatique comprenant un équipement informatique capable d'accéder à des sources de données multidimensionnelles. Le procédé comprend les étapes suivantes : a) prévoir une première source de données multidimensionnelles; b) prévoir au moins une deuxième source de données multidimensionnelles, au moins cette deuxième source étant telle que chacune de ses données comporte dans les différentes dimensions des valeurs clés et des valeurs non-clés; c) identifier des actions effectuées à l'aide d'une interface utilisateur sur des représentations de certaines dimensions des sources; d) en fonction desdites actions, combiner les sources de données en utilisant les valeurs clés de chacune des données de la ou des deuxièmes sources pour réaliser des associations entre les données multidimensionnelles de la première source et les données multidimensionnelles de la ou des deuxièmes sources et ainsi obtenir des données multidimensionnelles combinées, ladite combinaison étant effectuée: i) en ajoutant aux données multidimensionnelles de la première source au moins une partie des valeurs non-clés des données correspondantes de la ou des deuxièmes sources, et ii) en agençant les valeurs non-clés ajoutées avec des valeurs préexistantes pour la même donnée multidimensionnelle combinée. L'invention propose également des procédés associés de combinaison et d'enrichissement de données et de manipulation de la visualisation de ressources.
Description
Titre « Procèdes d'extraction, de combinaison, de synthèse et de visualisation de données multidimensionnelles provenant de différentes sources »
La présente invention concerne des procèdes de combinaison et de visualisation de données à partir de sources de données, et en particulier de nouveau types de services d'extraction, de combinaison et de visualisation aptes à combiner des informations complémentaires ou concurrentes disponibles notamment sur le Web ou encore dans l'entreprise, et de naviguer facilement dans les combinaisons effectuées y compris lorsqu'elles représentent des volumes importants de données
Dans l'état actuel de la technique, les outils dits de « Mashup » permettent combiner des données extraites de sites Web ou autres sources de données multidimensionnelles Par exemple, des données extraites d'un site Web donnant des adresses d'hôtels peuvent être combinées avec des données extraites d'un site donnant des horaires d'avions, avec des données extraites d'un site de méteo, etc
Une difficulté de ces outils est qu'ils ont pour conséquence de démultiplier les données à considérer par l'utilisateur Par exemple, si à chaque destination d'un vol d'avion correspondent 10 hôtels en moyenne, la combinaison des vols intéressant l'utilisateur avec des hôtels va augmenter la quantité des informations auxquelles il fera face d'un facteur 10
II existe donc un besoin pour des outils permettant de combiner les données en limitant la quantité d'information globale à prendre en compte, et d'explorer plus facilement ces données, et également d'enrichir des données avec d'autres, pertinentes par rapport aux attentes de l'utilisateur, le tout avec une bonne ergonomie, et en particulier avec des actions réalisées simplement notamment à l'aide d'un dispositif de pointage tel qu'une souris
Par ailleurs, les outils de « mashup » peuvent être utilises par combiner des sources d'informations par nature concurrentes Par exemple, si l'on considère des extracteurs fournissant, à partir d'un site Web de vente de livres, un ensemble de données multidimensionnelles (typiquement présentées en lignes) composées des dimensions (typiquement les colonnes) telles que « Auteur principal », « Titre » et « Prix », une jointure peut être effectuée sur les colonnes « Auteur principal » et « Titre », pour comparer les prix d'ouvrages fournis par différents vendeurs sur différents sites
Une jointure sur la colonne « Prix » peut également être effectuée pour comparer des livres différents ayant le même prix Des extracteurs peuvent bien sûr être programmés pour combiner correctement de telles sources de données maigre leur recours a des vocabulaires différents
Mais dans cette profusion de choix de sources de données et de manières de les combiner qui s'offre a l'utilisateur, il n'existe pas de moyens génériques pour notamment
• permettre à un utilisateur de faire correspondre entre elles (ou de supprimer une telle correspondance), interactivement, n'importe quelles dimensions de sources de données multidimensionnelles, même si elles sont nommées différemment dans les différentes sources afin de pouvoir ensuite combiner ces sources de manière automatisée ,
FEUILLE DE REMPLACEMENT (RÈGLE 26)
• tirer parti d'indicateurs (clés), le cas échéant déjà associées aux données elles-mêmes (dans l'exemple susmentionné seules les colonnes « Auteur principal » et « Titre » devraient typiquement servir de clés et pouvoir ainsi servir de colonnes de jointure, bien que l'utilisateur ait aussi fait correspondre la colonne « Prix ») pour automatiquement combiner les données de la façon la plus appropriée, et ceci pourrait être déterminé de manière automatique ;
• à partir du comptage des correspondances de dimensions déjà établies ou supprimées par d'autres utilisateurs, automatiquement suggérer à l'utilisateur non seulement des sources de données à combiner, mais également des correspondances de dimensions entre ces sources ;
• combiner les données en tenant compte de leur chronologie et notamment dans l'ordre de leur première apparition (par opposition à l'ordre de leur réception), et naviguer dans le temps pour explorer des combinaisons de données interdépendantes qui ne sont pas toutes forcément valides en même temps.
Ainsi et plus spécifiquement, des objets de l'invention sont :
• de permettre à l'utilisateur de simplement laisser des sources multidimensionnelles se combiner automatiquement selon des indicateurs (clés) associés aux données à combiner, après avoir simplement validé des suggestions automatiques de correspondances entre dimensions et/ou de sa propre initiative fait correspondre des dimensions entre elles.
• de tenir automatiquement à jour les résultats des combinaisons ;
• de retenir les temps de première apparition de chaque information pour que les informations de différentes sources ne soient combinées que dans leurs périodes de validité respectives et pour que l'utilisateur puisse naviguer dans le temps pour reconstituer, par combinaison de sources différentes, des "débats" tels que des ensembles d'informations contradictoires pour une actualité ,ou tout simplement revoir des offres concurrentes pour un produit.
Ainsi dans l'exemple précédent de combinaison de données extraites de sites de vente de livres, l'utilisateur pourrait faire correspondre les colonnes « Prix » des sources respectives pour faire afficher dans une même colonne le prix le plus récent de chaque livre ; puis en naviguant dans le temps, c'est-à-dire en se déplaçant dans le passé, il verrait défiler le prix de chaque autre vendeur. En effet, chaque offre a forcément été la plus récente une fois (au moins au moment précis de sa première apparition), et dans la mesure où elle n'a pas été retirée depuis ce moment (elle est encore valide), elle sera affichée. Enfin, l'utilisateur pourrait faire afficher les offres de différents vendeurs en même temps ou encore mettre ses propres livres en vente en utilisant le même procédé.
En outre, une difficulté des outils existants de visualisation de données en tableaux réside dans le fait que la disposition de la structure arborescente (branchements de gauche à droite) est préétablie et l'agencement des colonnes dans cette présentation peut être différent de celui du tableau de données de départ.
Ceci est désavantageux en ce que cela peut nuire à la clarté de lecture de l'ensemble des données ainsi réduites ou déployées, typiquement lorsque l'utilisateur est habitué à l'agencement de colonnes du document de départ.
II existe ainsi un besoin pour accéder à des données sous forme de tableau dans lequel des réductions/déploiements de sous-ensembles des données puissent être effectuées directement dans le tableau d'origine, en conservant sa présentation et l'agencement de ses colonnes, de manière à améliorer la lisibilité par l'utilisateur des manipulations effectuées sur le tableau de données.
Pour atteindre au moins l'un des objectifs ci-dessus on propose selon un premier aspect de l'invention un procédé de combinaison automatique de données multidimensionnelles en fonction de manipulations au niveau de leurs dimensions dans un environnement informatique comprenant un équipement informatique capable d'accéder à des sources de données multidimensionnelles, caractérisé en ce qu'il comprend les étapes suivantes :
(a) prévoir une première source de données multidimensionnelles ;
(b) prévoir au moins une deuxième source de données multidimensionnelles, au moins cette deuxième source étant telle que chacune de ses données comporte dans les différentes dimensions des valeurs clés et des valeurs non-clés ;
(c) identifier des actions effectuées à l'aide d'une interface utilisateur sur des représentations de certaines dimensions des sources ;
(d) en fonction desdites actions, combiner les sources de données en utilisant les valeurs clés de chacune des données de la ou des deuxièmes sources pour réaliser des associations entre les données multidimensionnelles de la première source et les données multidimensionnelles de la ou des deuxièmes sources et ainsi obtenir des données multidimensionnelles combinées, ladite combinaison étant effectuée (i) en ajoutant aux données multidimensionnelles de la première source au moins une partie des valeurs non- clés des données correspondantes de la ou des deuxièmes sources, et (ii) en agençant les valeurs non-clés ajoutées avec des valeurs préexistantes pour la même donnée multidimensionnelle combinée.
L'invention propose selon un deuxième aspect un procédé de combinaison automatique de données multidimensionnelles provenant d'une pluralité de sources de données, caractérisé en ce qu'il comprend une succession de mises en œuvre en cascade du procédé tel que défini ci-dessus, les données combinées d'une mise en œuvre donnée dudit procédé constituant une source de données pour une mise en œuvre suivante dudit procédé.
Certains aspects préférés mais non limitatifs de ce procédé sont les suivants :
* l'agencement des valeurs non-clés ajoutées avec des valeurs préexistantes pour la même donnée multidimensionnelle combinée comprend la sélection d'une valeur non-vide parmi les valeurs provenant des différentes sources.
* l'agencement des valeurs non-clés ajoutées avec des valeurs préexistantes pour la même donnée multidimensionnelle combinée comprend la sélection d'une valeur parmi les valeurs provenant des différentes sources selon un processus décisionnel donné.
* à chaque donnée est associée une période de validité, et le processus décisionnel comprend la sélection d'une valeur appartenant à une donnée valide à une date donnée.
* à chaque donnée est associée une date de première apparition, et le processus décisionnel comprend la sélection d'une valeur provenant d'une donnée la plus récemment apparue à une date donnée éventuellement ajustable.
* le procédé comprend, pour les données d'une source auxquelles n'est associée aucune date de première apparition, une étape de création d'une date de première d'apparition égale à la date à laquelle la donnée a été mise en jeu dans une combinaison de données pour la première fois.
* au moins l'une des sources de données multidimensionnelles comprend au moins deux sources de données amont et des informations définissant une combinaison précédemment effectuée selon la revendication 1.
* lesdites actions sont des manipulations sur interface graphique d'une représentation d'au moins une dimension de la deuxième source pour la mettre en correspondance avec une représentation d'au moins une dimension de la première source ou pour l'insérer entre deux dimensions de la première source, les dimensions correspondant aux représentations manipulées déterminant soit lesdites associations entre données, soit lesdits agencements de valeurs non clés de la deuxième source avec des valeurs de la première source, selon que la dimension de la deuxième source correspondant à la représentation manipulée contient ou non des valeurs clés.
On propose selon un troisième aspect un procédé de combinaison de données multidimensionnelles, comprenant les étapes suivantes :
- prévoir un accès à une pluralité de sources de données,
- mémoriser des informations de correspondance entre sources de données à partir d'opérations de combinaison effectuées par le procédé de la revendication 1,
- lors d'un accès à une source de données ayant déjà fait l'objet de combinaison avec d'autres sources de données, signaler l'existence desdites autres sources de données.
Certains aspects préférés mais non limitatifs de ce procédé sont les suivants :
* les informations de correspondance comprennent également des informations de correspondance entre les dimensions desdites sources et le procédé comprend en outre, lors d'un accès à une source de données ayant déjà fait l'objet de combinaisons avec d'autres sources de données, signaler également les correspondances entre dimensions.
* le procédé comprend en outre l'exécution par défaut d'opérations de combinaison par le procédé de la revendication 1 entre la source de données à laquelle il est accédé et lesdites autres sources de données.
* les informations de correspondance sont mémorisées pour une pluralité d'utilisateurs, et l'étape de signalisation s'effectue en fonction de règles de prépondérance parmi les informations de correspondance.
Un quatrième aspect de l'invention vise un procédé de combinaison de données multidimensionnelles, comprenant les étapes suivantes :
- prévoir un accès à une pluralité de sources de données,
- mémoriser des informations de correspondance entre sources de données à partir d'opérations de combinaison effectuées par le procédé de la revendication 1,
- lors d'un accès à une source de données ayant déjà fait l'objet de combinaison avec d'autres sources de données, déterminer l'existence de correspondances en chaîne entre sources de données, et, en fonction de caractéristiques des informations de correspondance, exécuter sélectivement une opération de combinaison effectuée par le procédé de la revendication 1 entre la source de données à laquelle il est accédé et une source de données liées à celle-ci par une chaîne d'au moins deux correspondances.
Un cinquième aspect de l'invention vise un procédé d'enrichissement de données multidimensionnelles par combinaison automatique en fonction de manipulations au niveau de leurs dimensions dans un environnement informatique comprenant un équipement informatique capable d'accéder à des sources de données multidimensionnelles, caractérisé en ce qu'il comprend, après avoir appliqué à une source précédente de données une fonction de sélection pour obtenir une sélection précédente de données, les étapes suivantes :
- lors d'un accès à une source courante de données pour obtenir une sélection courante de données, déterminer l'existence d'au moins une mise en correspondance de dimensions entre les données des deux sources,
- si une telle existence a été déterminée, appliquer le procédé de la revendication 1 sur une première paire de première et deuxième sources de données constituées respectivement de la sélection courante et de la source précédente, et sur une seconde paire de première et deuxième sources de données constituées respectivement de la source courante, de laquelle est retirée la sélection courante, et de la sélection précédente.
Certains aspects préférés mais non limitatifs de ce procédé sont les suivants :
* la mise en correspondance de dimensions entre les données des deux sources est effectuée au cours de la mise en œuvre du procédé.
* l'accès aux sources s'effectue à l'aide d'un navigateur Web en ce que la mise en œuvre du procédé est effectuée par interception des requêtes vers des serveurs et extraction de données à partir de ces serveurs.
* ladite mise en correspondance est effectuée par affichage des sélections de données et glisser-déposer de valeurs dans les dimensions devant être mises en correspondance.
* le procédé comprend en outre une étape de synthèse pour afficher lesdites sélections dans leur environnement graphique et associer aux valeurs des moyens permettant le glisser-déposer.
* le procédé est mis en œuvre de façon répétée lors de l'accès à une succession de sources de données et, lors de l'accès à une source de données courante pour laquelle il n'existe aucune mise en correspondance de dimensions avec la source précédente, on recherche l'existence d'une mise en correspondance de dimensions entre la source courante et une source antérieure, et on applique le procédé d'enrichissement sur des paires de sources constituées par ladite source antérieure et toute source consultée plus récemment avec laquelle il existe une mise en correspondance de dimensions, puis sur une paire de sources constituée par ladite source antérieure ainsi enrichie et la source courante.
* le procédé est mis en œuvre lors de l'accès à une succession de sources de données SN-2, SN-I et SN, et comprend les étapes suivantes :
si une mise en correspondance entre des dimensions des sources SN-2 et SN-I d'une part, et SN-I, SN d'autre part existe, mettre en œuvre le procédé entre les sources SN et SN-I en utilisant comme source SN-I le résultat du procédé selon la revendication 15 mis en œuvre sur les sources SN-I et SN-2, si aucune mise en correspondance entre les sources SN-2 et SN-I n'existe, déterminer s'il existe une mise en correspondance entre les dimensions des sources SN-2 et SN et, dans l'affirmative, mettre en œuvre le procédé selon la revendication 15 d'une part sur les sources SN et SN-I et d'autre part sur les sources SN et SN-2, et si aucune mise en correspondance entre les sources SN-I et SN n'existe, déterminer s'il existe une mise en correspondance entre les dimensions des sources SN-2 et SN et entre les sources SN-2 et SN-I et, dans l'affirmative, mettre en œuvre le procédé selon la revendication 15 d'une part sur les sources SN-I et SN-2 et d'autre part sur les sources SN et SN-2. et ainsi de suite pour des sources SN-3, SN-4, etc.
Selon un sixième aspect de l'invention, on propose un procédé pour manipuler la visualisation d'une ressource contenant des informations structurées sous forme de tableau à au moins deux dimensions, telle qu'obtenue notamment à partir du procédé tel que défini dans ce qui précède, où une dimension du tableau est constituée de colonnes représentant des types de données, et une autre dimension du tableau est constituée de lignes représentant des jeux de données associées ayant les types respectifs, et en ce que le procédé comprend :
(a) l'affichage sous forme d'une ligne unique d'un groupe de jeux ayant tous même valeur dans une colonne donnée,
(b) l'affichage, dans la colonne donnée, de ladite valeur, et
(c) l'affichage, en association avec au moins une autre colonne, d'un indicateur signalant qu'il existe au moins deux valeurs dans cette autre colonne pour le groupe de jeux de données.
Certains aspects préférés mais non limitatifs de ce procédé sont les suivants :
* le procédé comprend une étape consistant, en fonction d'actions exercées à l'aide d'une interface utilisateur d'entrée de façon associée à ladite autre colonne au niveau de ladite ligne unique, à provoquer l'affichage des différentes valeurs prise par le groupe de jeux de données dans cette autre colonne.
* ledit affichage est effectué valeur par valeur.
* ledit affichage est effectué dans un menu surgissant (pop-up).
* le procédé comprend en outre, en réponse à une action à l'aide d'une interface utilisateur d'entrée sur un indicateur, le déploiement de la ligne en question en un sous-tableau.
* ledit sous-tableau comprend autant de lignes qu'il existe, dans ledit groupe de jeux * chaque ligne dudit sous-tableau contient une valeur différente dans ladite autre colonne et représente un sous-groupe de jeux de données ayant tous cette valeur dans ladite autre colonne.
* le procédé comprend la répétition des étapes (b) à (d) pour au moins l'une des lignes constituant ledit sous-tableau, répétition appliquée à au moins une autre colonne encore dans laquelle il existe au moins deux valeurs pour le sous-groupe de jeux de données correspondant à ladite ligne au moins.
* il existe un type supplémentaire virtuel « ligne », le tableau étant initialement présenté sous forme d'une ligne unique regroupant toutes les lignes, un indicateur étant affiché en association avec chaque colonne dans laquelle il existe au moins deux valeurs.
* chaque ligne dudit sous-tableau représente, pour les colonnes à partir des indicateurs desquelles le sous- tableau a été formé, une combinaison spécifique de valeurs différente.
* le procédé comprend l'affichage d'un indicateur associé à ladite autre colonne après déploiement et sur lequel une action à l'aide d'une interface utilisateur d'entrée provoque le regroupement (réduction) dudit sous-tableau en ladite ligne unique.
* l'indicateur associé à ladite autre colonne comprend un symbole susceptible d'être orienté vers le bas ou vers le haut.
* le procédé comprend l'affichage dans ladite autre colonne, d'une des valeurs prises par le groupe de jeux de données dans cette colonne.
* le procédé comprend l'affichage dans ladite autre colonne, d'une combinaison des valeurs prises par le groupe de jeux de données dans cette colonne.
* le procédé comprend l'affichage dans ladite autre colonne, d'une propriété telle que la cardinalité de l'ensemble des valeurs prises par le groupe de jeux de données dans cette colonne.
* le procédé comprend une étape de détermination d'une clé de sélection de jeux de valeurs, déterminant un groupe de jeux de valeurs auxquels un changement de valeur dans une colonne au niveau d'une ligne affichée s'appliquera collectivement.
* ladite clé de sélection est constituée par les valeurs affichées dans la ou les colonnes à partir des indicateurs desquelles un sous tableau a été formé.
* ladite clé de sélection est constituée par les valeurs affichées dans toutes les colonnes, dont la valeur avant changement pour la colonne dans laquelle le changement est effectué.
* ladite clé de sélection est constituée par la valeur avant changement dans la colonne en question.
* le procédé comprend une étape d'ajout à la clé de sélection d'une valeur affichée dans une colonne par l'indicateur de laquelle aucun sous-tableau n'a été formé, par une action spécifique à l'aide d'une interface utilisateur d'entrée.
* le procédé comprend une étape de suppression de la clé de sélection d'une valeur affichée dans une colonne par l'indicateur de laquelle aucun sous-tableau n'a été formé, par une action spécifique à l'aide d'une interface utilisateur d'entrée.
* dans le cas où la ressource est construite dynamiquement à partir d'une source de données, le procédé est apte à afficher en association avec la ressource un indicateur visant à permettre un accès direct à ladite source de données.
Enfin l'invention propose un procédé de présentation de données, comprenant les étapes suivantes :
(a) définir un modèle de présentation de données à partir d'une ressource dont sont issues une partie des données dont la visualisation est manipulée dans le procédé tel que défini selon le sixième aspect,
(b) synthétiser au moins une partie desdites données manipulées dans ledit modèle de présentation selon des règles prédéterminées, et
(c) lorsqu'à une desdites données est associé un indicateur, afficher un équivalent dudit indicateur dans la présentation de données.
Les figures illustrent respectivement ces différentes approches d'utilisation. On suppose que l'utilisateur combine les sources de données1 "Vendeur2" et "Vendeur3" à la source de données "Vendeurl"
Vendeurl
Auteur principal Titre Vendeur Prix Valide depuis Valide jusqu'à
Auteurl Titrel Vendeurl 25 21 mars 2007 08:15 null
Auteur2 Titre2 Vendeurl 24 22 mars 2007 10:05 null
Auteur2 Titre3 Vendeurl 20 15 mars 2007 11:10 null
Auteur3 Titre4 Vendeurl 15 27 février 2007 11:50 22 mars 2007 11:49
"Vendeur2" et "Vendeur3" ayant les mêmes colonnes que "Vendeurl" mais avec respectivement les colonnes supplémentaires « Nombre de pages » et « Rating » (évaluation du livre en question).2
Vendeur2
Auteur principal Titre Vendeur Prix Nombre de pages Valide depuis Valide jusqu'à
Auteurl Titrel Vendeur2 350 1 mars 2007 12:00 22 mars 12:00
Auteur2 Titre2 Vendeur2 25 430 23 mars 2007 14:15 null
Auteur3 Titre4 Vendeur2 12 62 23 mars 2007 09:00
Vendeur3
Auteur principal Titre Vendeur Prix Rating Valide depuis Valide jusqu'à
Auteurl Titrel Vendeur3 25 *** 22 mars 2007 10:00 null
Auteur2 Titre2 Vendeur3 26 ** 23 mars 2007 14:14 null
A noter que les valeurs des colonnes temporelles « Valide depuis » et « Valide jusqu'à » proviennent d'une détection automatique de la première (resp. dernière) apparition des données dans les sources de données respectives, que les valeurs "null" indiquent une valeur non connue, et que les valeurs verticalement répétées ne sont pas présentées 3 (dans la figure suivante "Auteur2" est répétée dans deux lignes mais mentionnée dans une seule).
Dans la première approche (figure 1) l'utilisateur se positionne à "Maintenant" sur l'axe du temps et voit les offres les plus récentes pour les valeurs qu'il a déployées (qui dans la figure sont préfixées du symbole """)4 et qui sont encore valides. Il y voit notamment le livre {Auteurl, Titrel} proposé par Vendeur3 avec un « Rating » de "***" (dans la première ligne affichée dans la figure) et le livre {Auteur2, Titre2} proposé par Vendeur2 (dans la deuxième ligne affichée dans la figure)5. L'utilisateur remarque que, bien que la source de
1 Dans la suite on utilise les termes « sources de données multidimensionnelles » et « sources de données » de manière interchangeable, et le terme « source de données » est parfois utilisé au lieu de « tableau de source de données ».
Ainsi sur la base d'une clé composée des colonnes « Auteur principal » et « Titre », les sources "Vendeur2" et "Vendeur3" contribuent des valeurs d'une part ensemble dans la colonne « Prix » et d'autre part respectivement dans les colonnes « Nombre de pages » et « Rating ». On considère ici que les sources présentées sont en fait des « sélections » et que l'on applique le procédé d'enrichissement de sélections décrit plus loin.
Chaque valeur manquante représente une répétition de la valeur au-dessus. Ceci arrive lorsqu'à partir d'une valeur déjà déployée d'une colonne d'une ligne, une valeur d'une autre colonne de la même ligne est déployée, ceci est décrit plus loin.
Le concept de cellule « déployée » ou « réduite » est décrit plus loin. Pour simplifier, dans ces figures le symbole """ n'est pas affiché pour indiqué qu'une cellule est réduite, mais ceci sera le cas plus loin.
Comme présenté dans la figure il est maintenant 15:20 et il peut optionnellement voir que cette offre est « Valide depuis » 14:15.
données Vendeur2 ne fournisse pas de « Rating », il y a une valeur "**" dans cette colonne dans la deuxième ligne. En amenant le curseur de la souris sur la valeur en question, il voit qu'elle a été obtenue par combinaison avec une offre antérieure (et qui est toujours valide) de Vendeur3. A noter enfin que la source Vendeur2 contribuant la colonne « Nombre de pages », toutes les lignes provenant de Vendeur2 présentent des valeurs dans cette colonne.
Dans la figure 2, l'utilisateur s'est positionné dans le passé (précisément au temps 22 mars 2007 10:10) par un glisser-déposer du curseur temporel6 vers la gauche. Voici ci-dessous ce qu'il voit.
Première ligne de la figure 2 :
Bien que la source Vendeur3 ne fournisse pas de colonne « Nombre de pages », l'utilisateur y voit maintenant la valeur "350". Lorsqu'il y amène de curseur de la souris il lui est affiché que cette valeur est obtenue par combinaison avec la source Vendeur2 7.
Deuxième ligne de la figure 2 :
L'utilisateur voit maintenant pour {Auteur2, Titre2} la ligne de Vendeurl avec un « Prix » de "24", qui était l'offre la plus récente au temps 22 mars 2007 10:10 pour les valeurs déployées et qui est encore valide maintenant.
L'utilisateur qui s'intéresse à cette offre dont le prix est plus avantageux ("24" au lieu de "25"), peut vouloir y voir affiché (comme dans la figure 3) le « Nombre de page » ("430") et le « Rating » ("**") qui ne sont pas mentionnés et qu'il avait remarqué pour {Auteur2, Titre2} lorsqu'il était positionné au temps "Maintenant". Pour ce faire il va activer une option qui permette de compléter les données manquantes (cette option ne fonctionne que si la valeur de la cellule est à "null") par des données qui ont été insérés après le temps positionné et sont valides au temps « Maintenant ».
Troisième ligne de la figure 2 :
L'offre de Vendeurl pour {Auteur2, Titre3} y est toujours8. Par contre, la quatrième ligne de la figure 1, qui présentait une offre pour {Auteur3, Titre4}, n'est pas présentée puisqu'elle était apparue après le 22 mars 2007 10:10 et il n'y a pas dans les sources de données d'autre offre pour ce livre qui soit apparue avant cette date et soit encore valide au temps "Maintenant".
Dans la figure 4, l'ouverture de la colonne optionnelle « Valide jusqu'à » a permis de présenter en plus les lignes (en l'occurrence il n'y en a qu'une seule) qui ne sont plus valides maintenant, bien qu'étant les plus récentes9 au temps indiqué par la position du curseur temporel (au 22 mars 2007 10:10). Ainsi, en remplacement de la quatrième ligne de la première figure qui avait disparu de l'affichage dans les deux figures précédentes, pour {Auteur3, Titre4} est maintenant présentée une ligne qui était bien valide au temps 22 mars 2007 10:10 mais qui ne l'est plus depuis le 22 mars 2007 à 11:49 (ce qui explique donc qu'elle n'est pas montrée lorsque cette colonne n'est pas affichée).
L'offre de Vendeurl pour le livre {Auteur2, Titre2} est plus avantageuse que celle de Vendeur2 et, bien que moins récente, elle est encore valide maintenant. Mais y a-t-il des offres encore plus avantageuses (et
(qui, dans la figure précédente, était positionné sur "Maintenant")
7 La ligne correspondante, qui est moins récente (« Valide depuis » : "1 mars 2007 12:00"), est encore valide au temps positionné : " 122 mars 2007 10:10". A noter que la colonne « Valide jusqu'à » n'étant pas ouverte, comme cette valeur "350" appartient à une donnée qui n'est plus valide Maintenant (sa date de fin de validité est le 22 Mars 12:00), une mise en œuvre différente pourrait ne pas la présenter.
8 Etant toujours valide depuis le 15 mars 2007 11:10 elle était donc valide au temps positionné (" 122 mars 2007 10:10").
9 (pour les valeurs déployées)
encore valides) ? L'utilisateur peut faire afficher toutes les offres valides maintenant des sources en présence, comme le présente la figure 5, en déployant toutes les valeurs de la colonne « Valide depuis ».10
L'utilisateur peut aussi demander à afficher les écarts de prix dans le temps pour chaque livre, comme le présente la figure 6, ou encore n'importe quelle autre fonction d'agrégation (telle que Min, Max, Moyenne, etc.) appliquée sur une cellule réduite, comme on va le décrire plus loin.
On suppose maintenant que l'utilisateur combine ces sources avec en plus la source de données ci-dessous "Vendeur4" comprenant les colonnes « Nombre de pages Min », « Nombre de pages Max », « Rating », « Vendeur » et « Prix », les trois premières étant la clé avec une condition sur la clé exprimant que le nombre de pages doit être entre les valeurs données dans les deux premières colonnes.
Vendeur4
Nombre de pages Nombre de pages Rating Vendeur Prix Valide depuis Valide
Min Max jusqu'à
300 400 *** Vendeur4 23 22 mars 2007 null
10:01
400 500 ** Vendeur4 22 23 mars 2007 null
14:14
Le résultat est celui obtenu dans la figure 7 où Auteur2 Titre2 est donné par Vendeur4 au prix de 22 et si l'utilisateur se repositionne au temps "22 mars 2007 10:10" il obtient le résultat de la figure 8 où Auteurl Titrel est donné par Vendeur4 au Prix de 23.
Jusqu'ici on a fait l'hypothèse que les colonnes respectives des tableaux des différentes sources de données (Vendeurl, Vendeur2, Vendeur3 et Vendeur4) étaient déjà mises en correspondance, c'est-à-dire que par exemple « Auteur principal » du tableau "Vendeurl" correspond à « Auteur principal » du tableau "Vendeur2" (ces colonnes ayant pu être libellées différemment dans les différentes sources !).
On va maintenant décrire le procédé de mise en correspondance - et ensuite le procédé de suggestion ou application automatique de mises en correspondance - des sources de données multidimensionnelles et de leurs dimensions (colonnes) respectives.
L'intérêt principal du procédé est d'unifier les vocabulaires des sources combinées.
Le principe d'une interface utilisateur de mise en correspondance de colonnes est schématisé dans les figures 9 et 10. La figure 9 montre que le tableau B étant combiné avec le tableau A, et que la colonne Col5 de B étant glissée-déposée entre les colonnes Col2 et Col3 de A, les valeurs correspondantes de Col5 de B se trouvent affichées dans le tableau résultant A+B au sein d'une nouvelle colonne Col5 placée entre Col2 et Col3n. La figure 10 montre que le tableau B étant combiné avec le tableau A, et la colonne Col5 de B étant glissée-déposée sur la colonne Col2 de A, ces deux dernières sont mises en correspondance et ainsi, en résultat de combinaison les valeurs appropriées de Col5 de B se trouvent affichées dans le tableau résultant A+B au sein de la même colonne Col2 (appelée « Col2(Col5) » dans la figure). Les figures représentent au moyen de traits traitillés les régions permettant de distinguer (lors de la détection d'événements « on- drop ») ces deux cas de glisser déposer.
10 La figure montre également un ensemble de curseurs temporels, un par date de début de validité (date de première apparition) présente dans le tableau. Placer (manuellement) plusieurs curseurs temporels signifierait (pour l'utilisateur) faire afficher l'union des lignes du tableau correspondant auxdits curseurs placés. Le fait de déployer toute la colonne « Valide depuis » (ceci pourra se faire en cliquant sur un symbole """ non montré dans la figure, mais utilisé plus loin) revient en effet à faire afficher l'union des lignes représentant les offres respectivement les plus récentes par rapport à ces curseurs temporels.
Bien entendu, on fait ici l'hypothèse qu'une colonne clé a été mise en correspondance au préalable pour permettre la jointure entre A et B.
En mettant en correspondance la colonne Col5 de B et la colonne Col2 de A, l'utilisateur indique au système que ces colonnes contiennent des valeurs qui peuvent être combinées.12
Les mises en correspondance, par des utilisateurs, de tableaux de sources de données, et de colonnes entre tableaux, sont comptées et ceci permet de déterminer quelles mises en correspondance suggérer (ou appliquer par défaut) aux utilisateurs automatiquement13.
Des poids sont associés aux mises en correspondance lors de leur comptage de manière à ce que les règles de prépondérance utilisées privilégient les mises en correspondance faites par des utilisateurs « proches », par exemple les utilisateurs travaillant dans le même domaine. Et, bien entendu, les mises en correspondance faites par l'utilisateur lui-même lui sont proposées en premier.14
Ainsi de nouvelles sources de données peuvent être combinées automatiquement par défaut, pourvu qu'elles aient déjà été combinées précédemment. Par exemple, un utilisateur crée lui-même une source de données "Vendeur5" (par exemple à partir d'une source déjà existante, en l'occurrence à partir de "Vendeurl") et présente l'offre de vente d'un livre "Auteurl" "Titrel" (par exemple un livre d'occasion qu'il voudrait revendre). Un autre utilisateur qui accède à "Vendeurl" prend connaissance de l'offre de "Vendeur5" par le simple fait qu'un nombre relativement grand d'autres utilisateurs ont déjà combiné "Vendeur5" avec "Vendeurl" et mis leurs colonnes respectives en correspondance. Comme déjà décrit, si l'offre de "Vendeur5" est la plus récente, ledit autre utilisateur verra l'offre de "Vendeur5" au lieu des offres des autres vendeurs ; sinon, il pourra la voir en se déplaçant dans le passé (en déplaçant le curseur temporel vers la gauche). Dans cette approche de combinaisons par défaut, un moyen graphique sera offert à l'utilisateur pour faire disparaître de l'affichage des valeurs provenant d'une source combinée par défaut, c'est-à-dire pour refuser la combinaison en question, ou défaire une mise en correspondance de colonnes effectuée par défaut, et ces refus sont comptabilisés dans les comptages mentionnés ci-dessus pour influencer la détermination des suggestions ultérieures.
De manière plus fine, les données présentées elles-mêmes peuvent être prises en compte dans les comptages. Reprenons l'exemple ci-dessus avec "Vendeur5" et précisons-le. L'utilisateur qui accède à "Vendeurl" va prendre connaissance de l'offre de "Vendeur5" non pas dans tous les cas, mais seulement dans le cas où "Auteurl" "Titrel" lui est présenté (dans le tableau "Vendeurl"), car c'est précisément lorsque "Auteurl" "Titrel" leur était présenté qu'un nombre relativement grand d'autres utilisateurs avaient
Dans les exemples précédents il est entendu que la colonne « Auteur principal » du tableau "Vendeurl" et la colonne « Auteur principal » du tableau "Vendeur2", et ainsi de suite, avaient été mises en correspondance (à moins que bien sûr un dispositif induise les mises en correspondance par reconnaissance automatique de similarité des colonnes en question).
13 La conception de la mise en œuvre de ce procédé est triviale pour le comptage et la suggestion de combinaisons. En ce qui concerne la suggestion de mises en correspondance de colonnes, la mise en œuvre peut consister à, pour chaque paire parmi les colonnes se trouvant dans la combinaison courante de tableaux, considérer l'ensemble des utilisateurs ayant combiné les tableaux en question (où se trouvent les colonnes formant cette paire) et qui ont gardé cette combinaison sous forme de version mémorisée (i.e. sous forme de « vues »), et compter le nombre de fois que cette paire est mise en correspondance dans ladite version mémorisée (prendre par utilisateur la moyenne pour toutes les versions mémorisées où cette combinaison est gardée) ainsi qu'éventuellement le nombre de fois qu'une suggestion de ladite mise en correspondance a été refusée par un utilisateur. Dans le cas où le nombre résultant du comptage est grand, et que le nombre correspondant des refus de suggestion est négligeable, suggérer ladite mise en correspondance lors d'une nouvelle combinaison (ou effectuer les mises en correspondance de colonne par défaut lors des combinaisons), les seuils "grand" et "négligeable" dépendant de la popularité des tableaux en question. A noter toutefois que le fait de gérer des vues implique d'éviter les cycles (une première vue faisant référence à une deuxième vue qui fait directement ou indirectement référence à la première) ; il suffit pour cela que le système refuse d'enregistrer sous le même nom une vue qui est référencée dans une autre vue et qui introduit un cycle du fait d'une référence qu'elle contient. Par suggérer on entend suggérer ou appliquer par défaut.
En outre des droits d'accès peuvent être associés aux combinaisons et mises en correspondance, de manière à ce que par exemple les combinaisons faites par un utilisateur puissent lui être réservées à lui seul.
combiné "Vendeur5" avec "Vendeurl" (et non pas lorsqu'ils visualisaient des données sur n'importe quels autres livres). Ainsi, lesdits comptages peuvent en plus prendre en compte les données15 visualisées par l'utilisateur lors des combinaisons.
Voici un exemple plus complet : Un extracteur fournit une source de données "Yamazuki" à partir du site Web du grand constructeur de motos Yamazuki qui présente toutes les motos de cette marque, avec toutes leurs caractéristiques.
Yamazuki
Type de moto Caratéristiques... Valide depuis Valide jusqu'à
RS750 ... 20 mars 2007 10:00 null
Un particulier publie une source de donnée "Je vends" contenant une ligne présentant le type de moto (comme valeur clé), les détails, le prix et le lieu de vente d'une moto Yamazuki récente qu'il met en vente.
Je vends
Type de moto Détails... Prix Lieu Valide depuis Valide jusqu'à
RS750 ... 5000 Fontainebleau 23 mars 2007 17:00 null
Ensuite, lui-même et/ou d'autre(s) utilisateur(s) combinent cette source "Je vends" avec la source "Yamazuki", en mettant en correspondance la colonne qui identifie le type exact de la moto mis en vente.
Yamazuki + Je vends
Caratéristiques... Détails... Prix Lieu Valide depuis Valide
RS750 ... ... 5000 Fontainebleau 23 mars 2007
17:00
Lorsqu'un utilisateur final va visiter le site de Yamazuki, et qu'il visualise les données sur le type de moto qui se trouve être celui de la moto que le particulier a mis en vente, l'offre de ce dernier va lui être spontanément présentée seulement si où le nombre de fois que "Je vends" a été combinée avec "Yamazuki" est relativement important.
Dans le cas contraire, c'est-à-dire même s'il y a trop de sources à combiner avec la source Yamazuki pour ce type de moto, en concurrence avec la source "Je vends", l'offre du particulier pourra être présenté par défaut si l'utilisateur final s'intéresse dans la même session au lieu "Fontainebleau" qui se trouve être le lieu de vente de cette moto. En effet la concurrence de données à combiner avec la source Yamazuki (pour la moto RS750) sera alors réduite.
Le scénario est le suivant : L'utilisateur final accède dans la même session non seulement au site "Yamazuki" mais aussi à un site "Châteaux" dans lequel l'utilisateur sélectionne16 la ligne Fontainebleau. Dans ce cas, dans la mesure où la source "Je vends" est automatiquement combiné par défaut à ces deux sites, l'offre de la moto du particulier est présentée :
Yamazuki + Châteaux + Je vends
Type de moto Caratéristiques... Lieu Détails... Prix Valide depuis Valide jusqu'à
15 Plus précisément les valeurs déployées de ces données, ce concept étant décrit plus loin.
RS750 ... Fontainebleau ... 5000 23 mars 2007 17:00 null
Le procédé d'enrichissement de sélections obtenues respectivement à partir des sources de données accédées dans une même session, permettant de mettre en oeuvre l'exemple ci-dessus, est décrit plus loin.
De manière encore plus fine, le contenu même des données présentées peut être pris en compte dans les comptages. Considérons l'exemple simple17 suivant où les valeurs d'une colonne particulière sont prises en compte dans les comptages. Un utilisateur accède sur le Web à un moteur de recherche et lui fournit un mot-clé "mouche" représentant son domaine d'intérêt particulier. Un extracteur18 présente, sous forme de tableau, le résultat retourné par le moteur de recherche19 comme suit :
Moteur de recherche
Mot-clé URL Domaine Valide depuis Valide jusqu'à mouche ... Pêche à la mouche 23 mars 2007 17:00 null
On suppose ici que le moteur de recherche fournit, dans une colonne « Domaine », le domaine (en l'occurrence " Pêche à la mouche") correspondant au mot-clé ("mouche") donné. Dans le cas où un nombre relativement grand d'utilisateurs avaient, en visualisant précisément la valeur " Pêche à la mouche", combiné avec ce site "Moteur de recherche" la source "Vendeurl" (on suppose ici que "Vendeurl" est un vendeur de livre spécialisé dans le domaine "Pêche à la mouche"), cette dernière y sera automatiquement combiné :
Moteur de recherche + Vendeurl
Mot-clé URL Domaine Auteur Titre Vendeur Prix Valide depuis Valide principal jusqu'à
mouche ... Pêche à la Auteurl Titrel Vendeurl 25 23 mars 2007 17:00 null mouche
A chaque source de données20 est associé le degré de finesse des informations à prendre en compte lors des comptages.
On va maintenant voir un autre exemple et introduire un procédé de suggestion qui ne reflète pas seulement un cas précédent de mise en correspondance, mais un enchaînement implicite de plusieurs cas précédents de mises en correspondance.
Dans le tableau "Mes articles" ci-dessous, un utilisateur associe un article ("TitrelO", "AuteurlO") à un livre ("Auteurl", "Titrel") qu'il considère comme étant très « populaire » dans le domaine de l'article.
Mes articles
Article Article Revue URL Date Liyre Liyre Valide depuis Valide
Titre Premier parution Auteur Titre jusqu'à
Auteur principal
(filtre sur)
(et qu'on peut sophistiquer à souhait, voir plus loin l'exemple avec les expressions régulières) 18 On décrit plus loin la mise en œuvre d'extracteurs de données à partir de sites Web.
(qui devient ainsi une source de données au sens de la présente invention) 20 (ou chaque extracteur)
TitrelO AuteurlO RevuelO UrIlO Juin 2006 Auteurl Titrel 23 mars 2007 null 16:00
II met ensuite en correspondance les colonnes « Livre Auteur Principal » et « Livre Titre » (qui identifient ledit livre très populaire dans "Mes articles") avec les colonnes « Auteur Principal » et « Titre » de la source de données "Vendeurl".21
Vendeurl + Mes articles
Auteur principal Titre Article Article Revue URL Date Valide Valide
(Liyre Auteur (Liyre Titre Premier parution principal) Titre) Auteur
Auteurl Titrel TitrelO AuteurlO RevuelO UrIlO Juin 2006 23 mars
2007
16:00
Ainsi, comme déjà décrit, lorsque plus tard l'utilisateur accède à la source "Vendeurl" et s'intéresse à ce même livre, sa combinaison avec "Mes articles" lui est rappelée automatiquement et l'article "TitrelO" "AuteurlO" lui est présenté.
Mais même lorsque l'utilisateur accède à une autre source (disons "Vendeur2") pour laquelle la combinaison avec "Vendeurl" aurait été automatiquement suggérée, sa source "Mes articles" peut22 lui être suggérée.
En effet, ceci est justifié par le fait que "Mes articles" lui aurait de toutes façons été suggérée pour être combinée indirectement via23 "Vendeurl" (et l'utilisateur aurait pu simplement faire disparaître les lignes et minimiser ("hide") toutes les colonnes provenant de "Vendeurl" pour se retrouver exactement dans le même cas).
Ainsi, une « chaîne de correspondances » existant entre "Vendeur2" et "Mes articles", et la correspondance de "Vendeurl" à "Mes articles" étant privilégiée (de poids fort) car établie par l'utilisateur lui-même, cette dernière source sera automatiquement combinée par défaut. La source "Mes articles" est ainsi rappelée à l'utilisateur même s'il ne se rappelle plus ni de son nom, ni même du nom de la source "Vendeurl" à laquelle il l'avait associé (combiné).
Bien évidemment, en fonction des règles de prépondérance utilisées, la combinaison de "Mes articles" avec "Vendeurl" ou "Vendeur2" sera aussi suggérée aux autres utilisateurs, dans la mesure où les sources en question leurs sont accessibles. 24
Les fonctionnalités illustrées jusqu'ici sont rendues possibles grâce à un mécanisme de combinaison de sources de données multidimensionnelles, d'extracteurs (et synthétiseurs) de telles données à partir notamment de sites Web, et de gestion de la structure récursive de leurs attributs25 multivalués (au sens que les valeurs d'un attribut multivalué peuvent elles-mêmes avoir un attribut multivalué), que nous allons maintenant décrire et illustrer davantage.
A noter que l'on suppose ici que l'utilisateur a en plus « minimisé » (hide) les colonnes « Vendeur » et « Prix ».
(en fonction des règles de prépondérence)
Une chaîne d'indirection plus longue est ainsi aussi possible.
24 En outre, on n'a pas considéré dans ce dernier exemple des degrés de finesses différents comme on l'avait fait dans les exemples précédents, ce qu'on aurait bien sûr pu faire.
25 (dimensions, colonnes)
On va utiliser le concept de tag à deux parties (colonne et valeur), que l'on va appeler « cohval » (ou simplement valeur) ; le concept de relation entre des cohval, que l'on va appeler « ligne »26 ; et le concept d'ensemble de lignes (tel qu'une table de BD relationnelle, chaque ligne étant alors une ligne de la table) que l'on va appeler « tableau ».
Exemple d'un tableau de deux lignes simples de trois valeurs :
1. Auteur principahA, Titre:C, Prix:10
2. Titre:C, Prix:15, EditeuπD
Même tableau présenté sous forme tabulaire :
Auteur principal Titre Prix Editeur A C 10 null null C 15 D
On va aussi utiliser le concept de « ligne de modification » qui spécifie une modification de lignes, par d'une part un ensemble de cohval donnés comme « Clé » et d'autre part un ensemble de cohval « Non clé » donnés comme valeurs de substitution lors des combinaisons.
Exemple d'un tableau de deux lignes de modification
1. Clé - Auteur principahA, Titre:B ; Non clé - Titre:C, Prix:10
2. Clé - Titre:C ; Non clé - Prix:15, EditeuπD ou sous forme tabulaire :
Clé Non clé (modification)
Auteur principal Titre Titre Prix Editeur
A B C 10 null null C null 15 D
Un « tableau de modifications » est un tableau de lignes de modification et un « tableau simple » est un tableau de lignes simples.
Tout tableau de modifications peut être vu comme un tableau de lignes simples. Ceci se fait en voyant chaque ligne de modification comme une ligne composée des cohval non clé qui y sont donnés et complétée, pour les cohval non inclus dans l'ensemble des cohval non clé qui y sont donnés, par des cohval clé qui y sont donnés. Par exemple le premier tableau présenté ci-avant représente un tableau de lignes simples tiré du tableau de modifications qui le suit.27
Pour une source d'informations apte à présenter des lignes simples, connaissant sa clé primaire (c'est-à-dire les colonnes identifiant ses lignes de manière unique), il est possible d'en extraire des lignes de modification.28
Exemple :
26 (tel qu'une ligne de table de BD relationnelle, chaque col:val étant alors une valeur val dans une colonne col d'une ligne de la table - à noter que chaque ligne comprend implicitement un col:val ayant la valeur « null » pour chaque colonne non mentionnée)
27 Bien entendu, un cas particulier de ligne de modification est le cas de ligne ne comprenant aucune valeur clé, et un cas particulier d'un tableau de modification est le cas où il n'y a aucune colonne clé.
28 On verra plus tard que ceci est mis en œuvre dans les extracteurs.
Soit un tableau de lignes simples représentant une liste de livres, pour lequel on sait par ailleurs que les deux premières colonnes représentent la clé primaire :
Auteur principal Titre Prix A B 10
C D 25
En voici la vue sous forme de tableau de modifications
Clé Non clé
Auteur principal Titre Prix
A B 10
C D 25
Un tableau simple (appelé premier tableau) peut être combiné avec un tableau de modifications (appelé deuxième tableau) en utilisant les valeurs clés de chacune des lignes du deuxième tableau pour réaliser, en fonction d'actions effectuées à l'aide d'une interface utilisateur sur des représentations des colonnes du premier tableau et du deuxième tableau, des associations entre les lignes du premier tableau et les lignes du deuxième tableau, en combinant les valeurs du premier tableau avec au moins une partie, déterminée également en fonction desdites actions, des valeurs non-clés du deuxième tableau, et en agençant les valeurs non-clés combinées avec des valeurs préexistantes également en fonction desdites actions. Lesdites actions sont des manipulations (telles que des glisser-déposer, comme déjà décrit) d'une représentation d'au moins une colonne du deuxième tableau pour la mettre en correspondance avec une représentation d'au moins une colonne du premier tableau (ou pour l'insérer entre deux colonnes du premier tableau), les colonnes correspondant aux représentations manipulées déterminant soit lesdites associations entre lignes, soit lesdits agencements de valeurs non clés du deuxième tableau avec des valeurs du premier tableau, selon que la colonne du deuxième tableau correspondant à la représentation manipulée contient ou non des valeurs clés.
Des conditions peuvent être associées à des colonnes clé et mémorisées sous forme de méta-données. Dans l'exemple du tableau "Vendeur4" donné précédemment (et reproduit ci-dessous29) comprenant les colonnes « Nombre de pages Min », « Nombre de pages Max », « Rating », « Vendeur » et « Prix », aux deux premières colonnes était associée une condition exprimant que le nombre de pages doit être entre les valeurs données dans ces deux premières colonnes. L'utilisateur qui cherche à mettre en correspondance une colonne (qui serait par exemple libellée « #pages ») d'un premier tableau avec une colonne du tableau "Vendeur4" est alors invité à la mettre en correspondance avec le couple de colonnes « Nombre de pages Min », « Nombre de pages Max » au lieu d'une seule colonne. 30
Clé Non Clé
Nombre de pages Nombre de pages Vendeur Prix Valide depuis Valide
Min Max jusqu'à
300 400 Vendeur4 23 22 mars 2007 null
10:01
400 500 Vendeur4 22 23 mars 2007 null
14:14
(dans une table à clé, une colonne temporelle implicite « Valide depuis » existe en plus pour chaque colonne, comme décrit plus bas) 30 Ces conditions sont alors vérifiées lors de la jointure des tables à clé décrite ci-après.
En plus des conditions, les méta-données peuvent contenir des actions. La ligne ci-dessous indique que si condition : la valeur en question correspond à l'expression "*Everest*8?844*", alors action : la transformer selon l'expression "*Everest*8?844<red>[Everest: 8 844,43 m]</red>]*".
Clé Non clé
A trouver A remplacer *Everest*8?844* *Everest*8?844<red>[Everest: 8 844,43 m]</red>]*
Enfin, les méta-données peuvent comprendre des indications et des conditions globales sur les sources de données à combinées.
Etant donné deux sources d'informations, la première source apte à fournir un tableau de lignes simples (ou un tableau de modifications vu comme un tableau de lignes simples), la deuxième source apte à fournir un tableau de modifications, une correspondance étant établie entre au moins une colonne du deuxième tableau (i.e. le tableau fournit par la deuxième source) et au moins une colonne du premier tableau (i.e. le tableau fournit par la première source), les lignes desdits tableaux pourront être combinées dans les cas où toutes les valeurs clé du deuxième tableau sont ainsi mises en correspondance avec des colonnes du premier tableau (même en l'absence de valeurs, c'est-à-dire même si elles ont une valeur nulle dans le premier tableau) et, si des valeurs manquent dans le premier tableau pour ces colonnes mises en correspondance, dans le cas où des colonnes clé sont données pour l'ensemble du premier tableau31, toutes les cohval clés du premier tableau ont été mises en correspondance. Cette vérification peut être effectuée par un préprocesseur, avant la mise en œuvre du procédé de combinaison des tableaux proprement dite décrit ci- dessous.
A chaque valeur est associée un début de validité (i.e. temps de première apparition ou début de croyance de cette valeur). A chaque ligne est associée une période de validité : le début de validité de la ligne est égal au plus grand temps de début de validité associée à une valeur de la ligne, et la fin de validité de la ligne est son temps de dernière apparition32 (ou temps de fin de croyance de cette donnée). Une fin de validité nulle signifie que la donnée est toujours valide (i.e. valeur toujours publiée par sa source ou valeur toujours crue).
Dans un tableau les lignes sont filtrées par rapport au curseur temporel positionné par l'utilisateur (comme illustré par les exemples donnés au début): seules les lignes ayant un temps de début de validité inférieur et un temps de fin de validité supérieur ou égal au temps indiqué par le curseur sont retenues (le temps du curseur indique le temps de croyance et seules les données crues au temps positionné sont considérés).
La mise en œuvre de la combinaison de tableaux utilise la notion de « table à clé ». Tout tableau peut être transformé en une table relationnelle, appellée « table à clé », où toutes les colonnes susceptibles d'être utilisées comme clé figurent comme colonne supplémentaire et contiennent la valeur de la clé pour la ligne en question.
La mise en œuvre du procédé de combinaison d'un deuxième tableau avec un premier tableau consiste à ajouter au premier tableau le résultat d'une jointure relationnelle (opérateur connu en soi) entre des tables à clé correspondant aux premier et deuxième tableaux (respectivement appelés première et deuxième tables à clé). Cette jointure s'effectue sur les valeurs clé se trouvant dans les colonnes de deuxième table à clé33 mises en correspondance par l'utilisateur34 en tenant compte des conditions35 et/ou actions le cas
On verra que l'information des colonnes clés peut être ainsi associée par un extracteur de données. 32 (qui généralement nécessite d'être confirmée après une période d'incertitude)
(par « colonne de table à clé » on entend les colonnes correspondantes dans le tableau correspondant) 34 (ou par acceptation de suggestions automatiques de mises en correspondance de colonnes)
échéant associées se trouvant dans les méta-données (comme décrit plus haut) ; en fournissant lesdites valeurs clé avec pour chacune la plus grande valeur de début de validité36 et, pour les autres valeurs des colonnes mises en correspondance, en fournissant les valeurs existantes ayant le début de validité le plus grand37, les valeurs de début de validité associées auxdites valeurs fournies étant celles qu'elles avaient avant combinaison ; les lignes desdites tables à clé étant filtrées par rapport au temps positionné (curseur temporel, comme décrit plus haut).
Le procédé de déploiement / réduction décrit plus loin permet de ne présenter à l'utilisateur que les données les plus récentes (en réduisant la colonne « Début de validité », comme illustré plus haut dans les exemples).
Lorsqu'un résultat de combinaison de tableaux est combiné à son tour (en cascade), seules les lignes les plus récentes par rapport au temps positionné (curseur temporel) sont prises en considération.
On va maintenant tenir compte du fait que l'utilisateur qui accède à une source de données n'en visualise en général pas toutes les données en même temps, mais juste une sélection, et décrire un procédé d'enrichissement de sélections obtenues respectivement à partir des sources de données accédées dans une même session. Ce procédé est mis en œuvre en utilisant le procédé de combinaison de tableaux décrit ci- dessus et peut être vu comme en étant un perfectionnement.
Considérons que l'utilisateur accède tout d'abord à la deuxième source et ensuite à la première.38 Appelons « première sélection » la sélection de données à partir de la première source et « deuxième sélection » la sélection de données à partir de la deuxième source.
Après la présentation à l'utilisateur d'une sélection de données à partir d'une deuxième source39, lors de la présentation à l'utilisateur, dans la même session, d'une sélection de données à partir d'une première source40, une mise en correspondance d'au moins une dimension ayant été faite41 entre les deux sources, la première sélection va être « enrichie des deuxièmes et premières sources », à savoir : elle sera enrichie de la « combinaison » de la deuxième source avec elle et elle sera en plus enrichie en lui ajoutant la « combinaison » de la deuxième sélection avec la première source prise entièrement sauf la première sélection (puisque cette dernière a déjà été combinée avec la deuxième source prise en entier) ; par lesdites « combinaisons » on entend le procédé de combinaison déjà décrit plus haut.
Ensuite, lorsque l'utilisateur accède à une troisième source (et qu'une troisième sélection lui en est donc présentée), si une mise en correspondance d'au moins une dimension a été faite42 avec la source de la sélection précédente (en l'occurrence la première), le même procédé est directement appliqué43 (à noter
(par exemple sous forme de « Where » ou « Having » en SQL)
36 (entre la valeur de début de validité de ladite valeur clé dans la première table à clé et la valeur de début de validité de ladite valeur clé dans la deuxième table à clé)
37 Autrement dit, entre les première et deuxième tables, pour chaque colonne non clé, lorsque la valeur existe des deux côtés c'est la valeur la plus récente qui est prise. Les informations sont ainsi complétées dans le temps. Ainsi, pour obtenir les valeurs « Prix » (comme présenté dans les exemples précédents), en SQL la clause SELECT comprendra une partie CASE WHEN Table2.[Prix_ValideDepuis] > Tablel.[Prix_ValideDepuis] THEN ISNULL(Table2.Prix, Tablel.Prix) ELSE ISNULL(TaNeI. Prix, Table2.Prix) END AS Prix.
38 Ceci afin de pouvoir réutiliser la description du procédé de combinaison d'une deuxième source avec une première faite jusqu'ici.
39 (dite « deuxième sélection ») (dite « première sélection »)
41 (explicitement faite, ou appliquée par défaut, ou encore suggérée puis acceptée ; même remarque sous-entendue à chaque fois qu'on parle de mise en correspondance)
(et que la ou les colonnes mises en correspondance sont susceptibles de couvrir les valeurs clés de la source précédente, du moins de la sélection précédente ; même remarque sous-entendue à chaque fois que ci-après on parle de mise en correspondance) 43 (pour enrichir la troisième sélection à partir des première et troisième sources)
que si44 la sélection précédente, en l'occurrence la première, n'avait pas été enrichie avec celle avant la précédente, en l'occurrence la deuxième, et qu'une mise en correspondance d'au moins une dimension avait été faite avec cette dernière, le même procédé aurait aussi dû être appliqué pour enrichir la troisième sélection avec les deuxième et troisième sources), sinon, si une mise en correspondance d'au moins une dimension a été faite avec celle avant la précédente, en l'occurrence la deuxième, le même procédé est appliqué pour enrichir la troisième sélection à partir des deuxième et troisième sources, sinon comme dans cet exemple aucune autre source n'a été accédée dans la session courante, la troisième sélection n'est pas enrichie.
Ainsi, en généralisant au cas de n sélections :
Lorsque l'utilisateur accède à une source courante, qu'une sélection courante lui en est présentée et que l'utilisateur avait dans la même session accédé à une source précédente et qu'une sélection lui en avait également été présentée,
SI une mise en correspondance d'au moins une dimension a été faite avec la source précédente, la sélection courante est enrichie à partir des sources précédente et courante (voir ci-après la définition de ces termes) et optionnellement, si l'utilisateur a dans la même session accédé à une source avant la précédente et qu'une sélection lui en a été présentée, dans le cas où la sélection précédente n'avait pas elle-même été enrichie avec celle avant la précédente, si une mise en correspondance d'au moins une dimension a été faite entre cette dernière et la source courante, la sélection courante est enrichie avec les sources avant la précédente et courante, et ainsi de suite jusqu'au début de la session, SINON
SI l'utilisateur a dans la même session accédé à une source avant la précédente et qu'une sélection lui en a été présentée, si une mise en correspondance d'au moins une dimension a été faite entre ladite source avant la précédente et la source courante, la sélection courante est enrichie à partir de ladite source avant la précédente et la source courante et optionnellement, si l'utilisateur a dans la même session accédé à une source avant 'la source avant la précédente' et qu'une sélection lui en a été présentée, dans le cas où la sélection avant la précédente n'avait pas elle-même été enrichie avec celle avant 'celle avant la précédente', si une mise en correspondance d'au moins une dimension a été faite entre cette dernière et la source courante, la sélection courante est enrichie avec les sources avant la précédente et courante, et ainsi de suite jusqu'au début de la session,
SINON une source encore antérieure est considérée et ainsi de suite jusqu'à qu'il y ait eu une mise en correspondance d'au moins une dimension entre une source précédente et la source courante ou qu'il n'y ait plus eu d'autre source précédemment accédée par l'utilisateur dans la même session.
Ledit enrichissement de la sélection courante à partir d'une source précédente et de la source courante consiste à ajouter à la sélection courante
• la combinaison de ladite source précédente avec la sélection courante et
• la combinaison de la sélection précédente avec la source courante de laquelle a été retirée la sélection courante.
A noter que le procédé ci-dessus est aussi applicable dans le cas d'une sélection vide45. Ceci est par exemple le cas lorsque, au sein d'une succession d'accès à des sites Web fournissant des données (vus comme sources de données via un extracteur, comme décrit plus loin), l'utilisateur visite la page d'accueil d'un site Web au lieu d'accéder directement à une page du site (qui elle en fournira par la suite une sélection de données).
Par session on entend une succession d'accès par l'utilisateur à des sources de données dont la combinaison est potentiellement pertinente. Typiquement, on va considérer que les accès rapprochés dans le temps
(ce qui n'est pas le cas dans cet exemple) 45 La combinaison d'une source avec une sélection vide résultant tout simplement en un tableau vide.
forment une même session. Une mise en œuvre particulière consiste à partitionner les sources accédées selon les dimensions qu'elles ont en correspondance46.
On va maintenant décrire un procédé d'extraction/synthèse de données qui permettra d'effectuer les combinaisons (enrichissements de sélections) et déploiements directement au niveau des pages Web. La figure 11 présente schématiquement à gauche une page de résultats d'un site de vente de livres, groupés par auteurs et à droite le tableau résultant de son extraction47.
L'utilisateur qui crée un extracteur lui associe des meta-données dans lesquelles il peut notamment indiquer quelles sont les colonnes clé48 du tableau extrait. Il peut en indiquer plusieurs options. Ainsi pour l'exemple de la figure 11 il peut indiquer optionl : la colonne « ISBN », et option2 : le couple de colonnes « Auteur » et « Titre ». Lors de chaque combinaison le système choisira alors la première option (dans l'ordre des options données) qui fasse partie des colonne(s) mise(s) en correspondance. Par exemple, si l'utilisateur final met « Auteur » et « Titre » en correspondance lors d'une combinaison, c'est la deuxième option qui sera choisie.
Un extracteur fournit un tableau (simple ou de modifications) à partir des données en provenance d'une page web. Il doit donc indiquer d'une part la requête (url, paramètres GET ou POST) et d'autre part comment extraire les données de la page. Il peut également gérer la pagination et télécharger automatiquement plusieurs pages de résultats.
Le procédé de création d'un extracteur, à partir d'une page Web contenant un ensemble de données multidimensionnelles, est semi-automatique. Tout d'abord, l'utilisateur sélectionne dans la page Web un ou plusieurs objets correspondant chacun à une ligne du tableau, et indique quel objet de la page correspond à quelle ligne du tableau à générer. Le système compare les chemins de ces objets et construit classiquement un chemin générique (Xpath) couvrant au moins tous les objets indiqués par l'utilisateur.49 Le système peut ainsi déterminer les valeurs pour chaque objet, et présenter le tableau ainsi obtenu à l'utilisateur.
Le synthétiseur est l'inverse de l'extracteur, il est créé automatiquement au moment de la création de l'extracteur correspondant, et permet d'afficher les données d'un tableau dans le style de présentation de la page Web, des zones graphiques étant placés à l'emplacement des objets contenant les valeurs du tableau pour permettre de les déployer ou réduire et de les glisser-déposer pour mettre en correspondance des colonnes de différents tableaux correspondant à différentes pages Web (i.e. à différents sites combinés comme nous le décrivons plus loin). Il est créé comme suit : L'utilisateur choisit un objet modèle correspondant à une ligne du tableau50. Tous les objets correspondant à d'autres lignes du tableau sont retirés de la page et tous les objets référencés par des objets correspondant à des lignes du tableau mais pas par l'objet modèle sont supprimés. Les valeurs contenues dans l'objet modèle sont modifiées pour
Avantageusement on considérera ensemble (dans une même session) les sources accédées par l'utilisateur pour lesquelles des mises en correspondance de colonnes ont été suggérés à l'utilisateur et que l'utilisateur n'a pas rejeté.
On voit que la colonne « auteur » répète les noms d'auteurs autant de fois que nécessaire, on verra plus loin comment pallier à ce problème grâce au procédé de déploiement réduction. 48 (ou les colonnes clé « par défaut » dans le cas où des valeurs de ces colonnes peuvent être nulles)
Dans une mise en œuvre préférée, tous les objets correspondant au chemin ainsi construit sont mis en évidence et l'utilisateur peut affiner le chemin en indiquant des objets additionnels ou en désélectionnant des objets mis en évidence. Le système affine alors le Xpath pour respecter ces contraintes. Lorsque l'utilisateur est satisfait de la sélection d'objets, il précise pour l'un de ces objets (I' « objet modèle ») tous les attributs qui correspondront aux colonnes du tableau. Pour chaque attribut, un objet dans la page, un nom de colonne et, si nécessaire, l'attribut HTM L à extraire (par exemple, pour les liens, il a le choix entre la valeur de l'attribut href ou le texte du lien). Le système établit, pour chaque attribut, une paire (nom de colonne ; chemin Xpath), le chemin étant relatif à l'objet modèle, et enregistre cette information dans l'extracteur. 50 (celui ayant servi comme modèle au moment de la création de l'extracteur, comme décrit dans la note précédente)
correspondre à la première ligne du tableau, et une copie de l'objet est insérée à la suite avec les valeurs de chaque autre ligne à afficher.51
On va maintenant brièvement introduire le procédé de déploiement/réduction offerte par l'affichage sous forme de tableau, au moyen d'un exemple (très schématique) de tableau présentant une liste de livres ayant les colonnes « Photo », « Auteur », « ISBN », « Titre » et « Langue ».
Dans la figure 12, seule la colonne « auteur » est déployée, ce qui fait qu'autant de lignes sont affichées qu'il y a d'auteurs différents. Comme ici tous les auteurs ont plus d'un livre, des boutons « déployer » (triangle dirigé vers le bas) permettent d'afficher la liste des livres écrits par un auteur donné.
L'affichage présenté dans la figure 13 est obtenu par clic sur le bouton « déployer » associé à la cellule Titre de la première ligne, ce bouton signifiant ici « déployer la liste des titres de l'auteur Al ». Comme la colonne Auteur était déjà déployée, il est clair que les cellules de cette colonne, dans les lignes ainsi déployées, auront toutes la valeur Al. Afin d'alléger l'interface, Al n'est donc indiqué qu'à la première des lignes déployées, les autres lignes laissant cette cellule vide.
Si maintenant l'utilisateur clique sur le bouton « réduire la liste des auteurs » (triangle dirigé vers le haut), tout le tableau se réduit à une seule ligne comme indiqué sur la figure 14. Des boutons « déployer » indiquent qu'il existe plus d'un auteur, plus d'un livre, plus d'une langue, etc. (figure 14).
Ensuite, à la figure 15, l'utilisateur a déployé la liste des langues. On voit qu'il n'y a pas de bouton
« déployer » au niveau de A2 vu que dans cet exemple il n'y a pas d'autre auteur que A2 ayant un livre en anglais.
La même fonctionnalité est disponible lorsqu'un synthétiseur est utilisé : Les boutons « déployer » et « réduire » sont placés à l'emplacement de l'objet contenant la valeur de la cellule. Cependant certains synthétiseurs sont plus adaptés à un ordre de déploiement particulier. Par exemple un synthétiseur affichant les auteurs en évidence est plus adapté à un déploiement de la colonne Auteur en premier. On va maintenant décrire la sélection d'un synthétiseur approprié pour un ordre de déploiement de colonnes donné.
Plus précisément, appelons « objet synthétisé » le plus petit objet contenant l'objet modèle ainsi que tous les objets correspondant à un attribut de la ligne modèle (appelons ces objets « objets attributs »), et soit ol, o2, ..., oN la séquence d'objets dont chacun est parent du suivant, le premier est égal à l'objet synthétisé et le dernier égal à l'objet modèle. Une copie de l'objet synthétisé est effectuée, puis (dans le document lui-même) ses objets attributs sont modifiés pour correspondre à la première ligne affichée du tableau. Pour chaque ligne du tableau, est déterminé, dans l'objet synthétisé, le plus grand I (avec l≤l≤N) tel que ol contient tous les objets attributs correspondant à des cellules non vides de la ligne courante. Une copie de ol (et donc également de oJ pour tous les J>l) est créée, ses objets attributs sont modifiés pour refléter la ligne courante, et elle est insérée à la suite (comme frère) de la dernière copie de ol à avoir été placée dans le document.
A noter que L'utilisateur peut demander à modifier un synthétiseur. Le même procédé ci-dessus est alors appliqué en se basant sur un tableau à une ligne contenant les noms des colonnes au lieu de valeurs, avec des marques spéciales permettant de les distinguer de texte normal (par exemple, « ${auteur} » dans la colonne auteur, et ainsi de suite). L'objet modèle est repéré par des marques spéciales (par exemple <model-object>...</model-object>). L'utilisateur peut modifier le document résultant à sa guise, par exemple à l'aide d'un éditeur de texte, et le renvoie au système. Pour afficher la page synthétisée, le procédé ci-dessus utilise désormais cette nouvelle structure (à condition qu'il y ait exactement une zone délimitée par les marqueurs d'objet modèle). A noter cependant qu'il est autorisé de supprimer ou dupliquer des marqueurs d'attributs. Il peut supprimer l'affichage d'un attribut qu'il juge peu important, et un exemple de duplication est de placer un attribut une fois à l'intérieur de l'objet modèle et une fois à l'extérieur, afin d'avoir une entête utilisant cet attribut, tout en affichant la valeur de l'attribut à chaque ligne de la liste affichée. Une autre application est de mettre la même valeur « url » comme texte et adresse d'un lien hypertexte (i.e. <a href="$url">$url</a>).
Pour un synthétiseur donné, à chaque colonne (affichée au moins une fois) peut être associé le plus petit objet ol (et donc le plus grand I, avec l≤l≤N) contenant tous les marqueurs d'attributs correspondant à cette colonne. Ceci permet d'ordonner les colonnes selon l'importance leur étant attribuée par le synthétiseur (une petite valeur de I indique une importance plus élevée). On peut ainsi estimer dans quelle mesure un synthétiseur est approprié pour un ordre de déploiement de colonnes, en comparant l'ordre de déploiement avec l'ordre d'importance de ces colonnes selon le synthétiseur. Lorsque le système donne la liste des synthétiseurs pour une source donnée, cette liste pourra être triée selon ce critère, en fonction de déploiements déjà effectués par l'utilisateur, afin de permettre la sélection du synthétiseur.
Par ailleirs, le procédé d'enrichissement de sélections obtenues respectivement à partir des sources de données accédées dans une même session peut être appliqué à des sélections visualisées dans des pages Web jouant le rôle de sources de données (via extracteurs). Les mises en correspondance de colonnes peuvent être faites par l'utilisateur directement sur des présentations de ces sources de données (via synthétiseurs) sous forme de pages Web.
Deux sources étant ainsi affichées sous forme de pages Web positionnées de manière adjacente, l'utilisateur va simplement glisser-déposer une valeur d'une page Web sur une valeur d'une autre page Web pour mettre en correspondance les colonnes auxquelles ces valeurs appartiennent.
On va maintenant décrire le procédé de déploiement / réduction en détail. Les procédés décrits dans cette partie supposent l'existence d'un dispositif fournissant une interface similaire à un serveur de base de données et donnant accès au tableau affiché dans l'interface. Dans la suite on appelle ce dispositif la source de données. Un exemple typique est un calque extracteur.
La source de données stocke un « tableau » qui est une structure de données ayant un certain nombre de « colonnes » et de « lignes », et dont chaque ligne possède un certain contenu pour chaque colonne. En général, les lignes représentent des entités d'information et les colonnes des propriétés de ces entités, et il arrive fréquemment que pour une colonne, une même valeur se retrouve dans plusieurs lignes, par exemple dans le cas où une propriété d'une même entité peut par nature avoir plusieurs valeurs (on dit alors que la propriété en question est « multivaluée »). Lorsqu'il n'y a pas d'ambiguïtés, « le tableau » se réfère au tableau fourni par la source de données.
Accessoirement, pour permettre de réduire la quantité d'informations présentée, l'interface offrira un moyen d'appliquer un certain nombre de filtres sur les lignes (ou, autrement dit, d'effectuer une recherche dans le tableau). Lorsqu'un filtre sélectionne des lignes ayant une valeur spécifique dans une certaine colonne, on dit que la valeur de cette colonne est « spécifiée ». De manière plus générale, il peut aussi être possible d'imposer des contraintes (« Spécifier » une valeur de colonne devient alors un cas particulier de contrainte). Par exemple un filtre peut sélectionner les lignes contenant dans une colonne un mot donné. 52
Lorsque la valeur d'une colonne est contrainte, une ligne n'ayant pas une valeur conforme à la contrainte pour cette colonne ne sera pas montrée dans le tableau affiché.
Le procédé de l'invention permet, en présence de champs multivalués, de remplacer les lignes ayant les mêmes valeurs dans un ensemble de colonnes (les colonnes «déployées ») par une seule ligne « réduite ».
Ayant un certain nombre de colonnes réduites et d'autres non, l'affichage se présente essentiellement comme suit: il contient une ligne (ci-après appelées « lignes affichées » par opposition aux lignes du tableau) pour chaque combinaison de valeurs dans les colonnes déployées qui existe dans le tableau. Pour une ligne affichée et une colonne réduite données, s'il existe une seule valeur possible selon le tableau, cette valeur
Afin de ne pas alourdir le texte on décrit la présentation des données en supposant qu'aucun filtre n'est appliqué. En effet, il suffit de les ajouter à ceux produits par les algorithmes lors de chaque accès au tableau.
est montrée. Dans le cas contraire, le nombre de valeurs existantes (ou l'une de ces valeurs53, ou encore n'importe quelle autre fonction de ces valeurs) est indiqué, et un bouton permet de déployer ces valeurs.
Plus précisément, les colonnes du tableau représentant des types de données et les lignes des jeux de données (tuples) ayant les types respectifs, pour certaines lignes l'affichage de certaines colonnes peut se faire en mode « déployé » et les lignes affichées comprennent alors les caractéristiques suivantes :
1. Chaque ligne affichée représente le sous-ensemble des tuples (du tableau) qui ont les valeurs présentées dans les colonnes déployées respectives54.
2. Dans chaque ligne affichée, dans chaque colonne non déployée un bouton « déployer » est affiché si dans le tableau il existe au moins un autre tuple qui a a. une valeur différente pour cette colonne b. et les mêmes valeurs pour les colonnes déployées respectives.
3. Lorsque l'utilisateur positionne le curseur de la souris sur le bouton « déployer » (effectue un
« mouse-over »), la liste des valeurs existant pour la colonne en question, parmi les tuples ayant les mêmes valeurs pour les colonnes déployées, est affichée dans une « fenêtre surgissante » (« pop- up »).
4. L'utilisateur peut alors cliquer sur une des valeurs affichées dans ledit pop-up, ce qui aura pour effet de changer les valeurs indiquées dans la ligne contenant ce bouton déployer, pour montrer un tuple ayant la valeur choisie dans cette colonne. On parle de « rotation » de ligne pour décrire cette opération.
5. Lorsque l'utilisateur clique sur le bouton « déployer », lesdits tuples (ayant une valeur différente pour la colonne en question et les mêmes valeurs pour les colonnes déployées - comme indiqué en point 2.) sont affichées (à noter que dans ces lignes déployées il y a maintenant une colonne déployée supplémentaire) et alors a. un bouton « réduire » remplace le bouton « déployer » b. comme indiqué en point 2., pour chaque ligne ainsi déployée, un bouton « déployer » est affiché dans chaque colonne pour laquelle au moins un tuple ayant une valeur différente existe dans le tableau.
6. En cascade, il est ensuite possible de déployer des cellules des lignes déployées au point précédent, et ainsi de suite jusqu'à obtenir un tableau ne comportant plus de bouton « déployer » et dont les lignes affichées correspondent exactement aux lignes du tableau.
7. On peut imaginer qu'il existe en plus une colonne virtuelle déployée appelée « ligne » (regroupant toutes les lignes) et que donc initialement une seule ligne représentant toutes les lignes du tableau peut être affichée, des boutons « déployer » figurant dans chaque colonne pour laquelle dans le tableau au moins un autre tuple ayant une valeur différente pour cette colonne existe.
8. Cliquer sur le bouton « réduire » apparu au point 5. a. a pour effet d'annuler le déploiement ayant causé son apparition, ainsi que tous les déploiements ayant eu lieu dans les lignes déployées correspondantes. Ce bouton sera typiquement placé au même endroit que le bouton ayant servi à déployer une cellule, de sorte que cliquer deux fois sur un bouton de déploiement permet de voir brièvement les lignes correspondant à une ligne affichée.
(comme illustré dans les exemples présentés ci-dessous) 54 Les sous-ensembles correspondant aux lignes affichées sont deux à deux disjoints.
9. Au lieu de ne placer qu'un bouton « réduire » pour un déploiement de colonnes, au niveau de la première ligne, un tel bouton peut être placé à chacune des lignes ainsi déployées, afin de simuler l'effet d'une réduction suivie d'une (ou plusieurs) rotation (on parle de « rotation globale »), de sorte que les valeurs montrées dans la ligne après réduction soient les mêmes que celle de la ligne se trouvant au niveau du bouton « réduire » utilisé, avant la réduction.
10. Pour chaque colonne, l'utilisateur peut choisir une fonction d'agrégation pour représenter les cellules réduites.
11. Des moyens peuvent éventuellement être offerts pour sélectionner plusieurs boutons « déployer » ou « réduire » et les actionner en un seul clic.
12. Aux entêtes des colonnes sont associés des éléments d'interface utilisateur permettant de réordonner les colonnes les unes par rapport aux autres et de supprimer des colonnes.
13. L'utilisateur a également un moyen de fournir un « filtre » sur les lignes à afficher dans le tableau. Par exemple pour ne montrer que les lignes qui ont une certaine valeur dans une certaine colonne, ou qui ont deux colonnes données égales, ou même correspondant à une expression SQL arbitraire (i.e. toute expression valide comme paramètre de WHERE ou de HAVING, en prenant bien sûr les précautions d'usage pour empêcher des accès interdits) fournie par l'utilisateur.
14. fonction « cacher les autres valeurs » sur les cellules des colonnes déployées, similaire à la fonction de réduction de lignes, mais qui se comporte comme si elle restait déployée. Ensuite un moyen de changer (par « rotation ») ou sortir de cet état.
On entend par « sous-tableau » l'ensemble des cellules nouvellement affichées comme décrit au point 5 ci- dessus.
A un tableau de lignes affichées sont associées les informations suivantes (constituant une structure de type « état de tableau de lignes affichées »)
• Un ensemble cl,c2,... de colonnes à montrer,
• une association colonne->valeur55 fl->vl,f2->v2,... pour chaque valeur contrainte56,
• un ensemble de colonnes déployées dl->tl,d2->t2,...., les valeurs ti, optionnelles, indiquant dans la liste des lignes affichées, laquelle est placée en premier (on parle de « rotation globale », cf. point 9 ci-avant où cette notion a été introduite)
• pour chaque ligne, un ensemble ordonné de rotations, chacune représentée par une paire colonne- >valeur ri->wi, correspondant aux valeurs sélectionnées par l'utilisateur comme dit au point 4 ci- dessus. L'ordre correspond à l'ordre chronologique des rotations effectuées, et ne contient que les associations dont le résultat est encore visible : si une rotation annule l'effet d'une autre, cette dernière et celles qui la précédent sont retirées de la liste.
• un ensemble de sous-tableaux, également décrits par une structure de type « état de tableau de lignes affichées » (comme décrit ci-après).
Les données affichées par un tableau correspondent alors à une requête SQL SELECT cl,c2,... WHERE fl=vl AND f2=v2 AND ... GROUP BY dl,d2,... (les lignes comprenant des rotations devant être altérées comme décrit plus bas), suivie de requêtes similaires pour chacun des sous-tableaux.
Si une colonne ci utilise une fonction d'agrégation a et que ci n'est pas déployé, alors la requête contient a(ci) au lieu de ci.
55 (une valeur ou une expression représentant une contrainte)
Dans la suite on présente les requêtes pour le cas de valeurs spécifiées (fl=vl...), mais les mécanismes décrits fonctionneront aussi dans le cas de valeurs contraintes.
Sauf contre indication, les ensembles de sous-tableaux et rotations d'une telle structure est initialement vide.
Une nouvelle rotation d'une colonne r à une valeur w dans une ligne affichée L est traitée comme suit : On ajoute la paire r->w en fin de la liste de rotations, pour obtenir rl->wl, r2->w2, ..., rn->wn, r->w. Ensuite on ajoute cette séquence aux colonnes spécifiées, ainsi que l'association des colonnes déployées dl, d2, ... aux valeurs qu'elles prennent dans la ligne L. Si au moins une ligne est trouvée, ses valeurs sont affichées pour L. Dans le cas contraire, la première association (rl->wl) est retirée de la table T, et le processus recommence, jusqu'à ce qu'au moins une ligne soit trouvée.
Lorsque dans un tableau T, une cellule d'une ligne affichée L et d'une colonne réduite C est déployée, un nouveau tableau T' est inséré dans la liste de sous-tableaux de T, avec les paramètres suivants:
Les colonnes à montrer sont cl,c2,..., les mêmes que T ; les valeurs spécifiées du sous-tableau sont fl- >vl,f2->v2,..vdl->L(dl),d2->L(d2),..., celles de T plus les valeurs de L pour les colonnes déployées ; les colonnes déployées de T' sont dl,d2,...,C, les mêmes que celles du tableau contenant L plus la colonne C. Les rotations indiquées par T pour la ligne L sont retirées de T, et placées dans T, pour la même ligne, à l'exception, le cas échéant, d'une rotation de la colonne C pour la ligne L qui, elle, est enregistrée comme paramètre de rotation globale pour C.
T' représente donc toutes les lignes du tableau correspondant à L.
Plusieurs variantes peuvent être utilisées dans l'interface pour représenter un sous-tableau T' :
1. Il peut être montré par-dessus T, à la manière d'un « pop-up »,
2. être inséré à la place de la ligne L (décalant les lignes affichées de T suivant L), en le distinguant des autres par un cadre,57
3. être inséré à la place de la ligne L, en le distinguant des autres par un changement de couleurs.
La réduction d'un tableau T', sous-tableau d'un tableau T et déployant la cellule à la colonne c d'une ligne L, est effectuée en :
1. retirant T' de la liste de sous-tableaux de T,
2. ajoutant à la liste de rotations de la ligne que T' remplaçait l'ensemble des rotations se trouvant dans T' et ses sous-tableaux et correspondant à la ligne se trouvant au niveau du bouton de réduction utilisé. Ces rotations sont ordonnées en respectant l'ordre donné dans les sous-tableaux, et en plaçant celles se trouvant dans les sous-tableaux les plus profonds en premier ;
3. Si le bouton de réduction utilisé n'était pas celui de la première ligne mais celui en face d'une valeur v, une rotation c->v est ajoutée en fin de la liste de rotation de la ligne L.
Etant donné que l'ensemble des données se trouvant dans le tableau est typiquement trop grand pour être intégralement téléchargé depuis la source de données, seules les données effectivement affichées à l'utilisateur sont demandées. Lorsque l'utilisateur effectue un déploiement (ou changement des règles de filtrage), le système interroge la source de données pour n'obtenir que les informations non encore visibles par l'utilisateur.
Lors de la réduction d'un ensemble de lignes, aucune information ne doit être demandée à la source de données car toutes les informations nécessaires sont déjà présentes : afin de déterminer quelle cellule doit
II n'est pas nécessaire que T' contienne toutes les colonnes : en effet, les valeurs des colonnes spécifiées sont déjà visibles dans le tableau parent, et peuvent être omises dans le sous-tableau, afin d'alléger l'affichage. Cependant pour éviter, dans les variantes 1 et 2, d'avoir des « trous » dans le sous-tableau causés par ces colonnes omises (afin de préserver l'alignement avec le tableau racine : le tableau qui n'est sous-tableau d'aucun autre), on pourrait éventuellement imposer que les colonnes montrées dans les sous-tableaux soient un intervalle contigu des colonnes montrées dans le tableau racine.
contenir un bouton de déploiement il suffit de parcourir la colonne correspondante dans le sous-tableau à réduire, et vérifier s'il contient des cellules ayant un bouton de déploiement ou si deux cellules ont une valeur différente.
Alternativement, au moment de déployer un ensemble de lignes, l'état de la ligne avant déploiement est enregistré afin de pouvoir le restituer au moment de la réduction. L'opération de réduction rotative va au plus changer les valeurs se trouvant dans la ligne, pas l'existence ou non de boutons de déploiement.
Lors du déploiement d'un ensemble de lignes, une requête est envoyée à la source de données, contenant les propriétés du sous-tableau sur le point d'être créé (colonnes, valeurs spécifiées et informations de rotation).
La source de données détermine le contenu du sous-tableau (les valeurs à montrer, et l'ensemble des cellules devant contenir un bouton de déploiement), et le renvoie à l'utilisateur.
Les données reçues remplacent la ligne contenant le bouton ayant été cliqué par l'utilisateur.
Afin d'éviter de détruire des données lors d'une réduction de lignes (exigeant de les demander à nouveau au serveur si l'utilisateur déploie les colonnes à nouveau), il est possible de conserver l'ensemble des sous- tableaux ayant été créés, et de simplement les rendre visible à nouveau lorsque l'utilisateur effectue un déploiement pour afficher un sous-tableau ayant déjà été construit.
Pour ce faire, à chaque bouton de déploiement peut-être associée une référence au sous-tableau à rendre visible lorsque ce bouton est activé. Lorsqu'un bouton est pressé pour la première fois, un sous-tableau est créé comme décrit plus haut, et une référence vers ce dernier est enregistrée dans le bouton de déploiement. Lorsque le sous-tableau est réduit, il est simplement rendu invisible, et la ligne réduite est rendue visible. Si l'utilisateur utilise le bouton de déploiement à nouveau, la référence au sous-tableau est trouvée, et ce dernier est simplement rendu visible à nouveau.
A noter que, lors du déploiement d'une ligne, même si la première ligne du sous-tableau contient les mêmes valeurs que dans la ligne réduite, les boutons de déploiement sont des objets différents, et ont donc leur propre référence à un sous-tableau correspondant. Ceci permet de conserver en parallèle les différents ordres de déploiement des cellules.
Dans les figures 16 à 33 on considère la source de données suivante fournissant 5 lignes de 3 colonnes : Organisation Employé Projet
Ol El Pl
Ol El P2
01 E2 Pl
02 E3 Pl 02 E4 Pl
Tout d'abord, la figure 16 présente le cas où toutes les colonnes sont réduites. A noter que dans cet exemple l'interface utilisateur présente dans chaque cellule réduite une valeur (plutôt que par exemple combien de valeurs différentes cette cellule représente) et que le jeu de valeurs (01, El, Pl) montrées dans les différentes colonnes correspond à une ligne existant réellement dans la source de données.
La figure 17 présente le sous-tableau T' présenté suite au déploiement de la colonne Organisation (l'utilisateur ayant cliqué sur le bouton associé à 01) dans la ligne unique qui était présentée dans l'exemple précédent. Remarquer que ce bouton est alors remplacé par un bouton inverse qui permet de réduire Ol à
nouveau (et revenir donc à la situation de la figure précédente). Dans la colonne Organisation, toutes les valeurs existantes (à savoir : Ol et 02) sont alors présentées, avec pour chacune une valeur associée présentée dans chaque autre colonne, les valeurs présentées dans chaque ligne formant ensemble un tuple existant dans la source de données58.
La figure 18 présente le sous-tableau T" qui apparaît suite au clic sur le bouton associé à El dans l'exemple précédent (pour déployer les employés de l'organisation 01). On remarque qu'il n y a pas eu besoin de répéter Ol dans la deuxième ligne, ce qui permet une présentation plus agréable à lire59.
La figure 19 met en évidence le sous-tableau T" qui apparaît suite au clic sur le bouton associé au projet Pl de la première ligne dans l'exemple précédent (pour déployer les projets de El de 01). El est implicite dans la deuxième ligne.60
La figure 20 met en évidence le sous-tableau qui apparaît suite au clic sur le bouton associé à E3 dans l'exemple précédent. On constate que l'on voit maintenant les 5 lignes du tableau de la source de données et qu'il n'y a ainsi plus de cellule à déployer.
En repartant de l'exemple présenté dans la figure 16, la figure 21 présente l'état du tableau affiché, suite au clic sur le bouton associé à Pl (déployer les projets). Dans la colonne Projet, toutes les valeurs existantes (Pl et P2) sont alors présentées, avec pour chacune une valeur associée présentée dans chaque autre colonne.
La figure 22 présente le sous-tableau T" qui apparaît suite au clic sur le bouton associé à El de la première ligne de l'exemple précédent (ce clic ayant pour but de déployer les employés participant au projet Pl). Le tableau est ainsi directement déployé au complet et, comme le deuxième tuple de la source de donnée est ainsi déjà présenté, le bouton déployer de Ol à la première ligne n'a plus de raison d'être.
En partant de la figure 21 on peut aussi choisir de déceler les organisations de la première ligne avant les employés, c'est ce que présente la figure 23.
Ensuite, dans la figure 24, El de la première ligne est déployée, et dans la figure 25, E3 est déployée pour compléter l'affichage des lignes de la source de données.
Enfin, en partant du premier exemple, on peut aussi commencer par déployer les employés, comme le montre la figure 26. Comme pour toutes les lignes présentées il n'y a plus d'organisation à déceler, il n'y a plus de bouton déployer dans la colonne organisation, par contre il reste un projet à montrer d'où le bouton déployer sur Pl à la première ligne.
L'utilisateur peut ensuite arriver directement au tableau entièrement déployé en cliquant sur le bouton associé à Pl dans la première ligne, comme le montre la figure 27.
58 En variante, au lieu (ou en plus) de présenter une valeur dans chaque colonne on peut aussi présenter une combinaison ou agrégation ou cardinalité des valeurs existantes ou d'ailleurs n'importe quelle autre information pertinente, ou même rien du tout.
59 (cette valeur est implicite dans la première colonne de la deuxième ligne)
L'interface présente ainsi un arbre (une structure hiérarchique) dont la racine est 01, El et E2 forment deux branches, et ou Pl et P2 sont les deux feuilles de El.
Claims
1. Procédé de combinaison automatique de données multidimensionnelles en fonction de manipulations au niveau de leurs dimensions dans un environnement informatique comprenant un équipement informatique capable d'accéder à des sources de données multidimensionnelles, caractérisé en ce qu'il comprend les étapes suivantes :
(a) prévoir une première source de données multidimensionnelles ;
(b) prévoir au moins une deuxième source de données multidimensionnelles, au moins cette deuxième source étant telle que chacune de ses données comporte dans les différentes dimensions des valeurs clés et des valeurs non-clés ;
(c) identifier des actions effectuées à l'aide d'une interface utilisateur sur des représentations de certaines dimensions des sources ;
(d) en fonction desdites actions, combiner les sources de données en utilisant les valeurs clés de chacune des données de la ou des deuxièmes sources pour réaliser des associations entre les données multidimensionnelles de la première source et les données multidimensionnelles de la ou des deuxièmes sources et ainsi obtenir des données multidimensionnelles combinées, ladite combinaison étant effectuée (i) en ajoutant aux données multidimensionnelles de la première source au moins une partie des valeurs non- clés des données correspondantes de la ou des deuxièmes sources, et (ii) en agençant les valeurs non-clés ajoutées avec des valeurs préexistantes pour la même donnée multidimensionnelle combinée.
2. Procédé de combinaison automatique de données multidimensionnelles provenant d'une pluralité de sources de données, caractérisé en ce qu'il comprend une succession de mises en œuvre en cascade du procédé de la revendication 1, les données combinées d'une mise en œuvre donnée dudit procédé constituant une source de données pour une mise en œuvre suivante dudit procédé.
3. Procédé selon la revendication 2, dans lequel l'agencement des valeurs non-clés ajoutées avec des valeurs préexistantes pour la même donnée multidimensionnelle combinée comprend la sélection d'une valeur non-vide parmi les valeurs provenant des différentes sources.
4. Procédé selon la revendication 2, dans lequel l'agencement des valeurs non-clés ajoutées avec des valeurs préexistantes pour la même donnée multidimensionnelle combinée comprend la sélection d'une valeur parmi les valeurs provenant des différentes sources selon un processus décisionnel donné.
5. Procédé selon la revendication 4, dans lequel à chaque donnée est associée une période de validité, et dans lequel le processus décisionnel comprend la sélection d'une valeur appartenant à une donnée valide à une date donnée.
6. Procédé selon la revendication 4, dans lequel à chaque donnée est associée une date de première apparition, et dans lequel le processus décisionnel comprend la sélection d'une valeur provenant d'une donnée la plus récemment apparue à une date donnée éventuellement ajustable.
7 Procédé selon la revendication 6, comprenant, pour les données d'une source auxquelles n'est associée aucune date de première apparition, une étape de création d'une date de première d'apparition égale à la date à laquelle la donnée a été mise en jeu dans une combinaison de données pour la première fois.
8. Procédé selon la revendication 1, dans lequel au moins l'une des sources de données multidimensionnelles comprend au moins deux sources de données amont et des informations définissant une combinaison précédemment effectuée selon la revendication 1.
9. Procédé selon la revendication 1, dans lequel lesdites actions sont des manipulations sur interface graphique d'une représentation d'au moins une dimension de la deuxième source pour la mettre en correspondance avec une représentation d'au moins une dimension de la première source ou pour l'insérer entre deux dimensions de la première source, les dimensions correspondant aux représentations manipulées déterminant soit lesdites associations entre données, soit lesdits agencements de valeurs non clés de la deuxième source avec des valeurs de la première source, selon que la dimension de la deuxième source correspondant à la représentation manipulée contient ou non des valeurs clés.
10. Procédé de combinaison de données multidimensionnelles, comprenant les étapes suivantes :
- prévoir un accès à une pluralité de sources de données,
- mémoriser des informations de correspondance entre sources de données à partir d'opérations de combinaison effectuées par le procédé de la revendication 1,
- lors d'un accès à une source de données ayant déjà fait l'objet de combinaison avec d'autres sources de données, signaler l'existence desdites autres sources de données.
11. Procédé selon la revendication 10, dans lequel les informations de correspondance comprennent également des informations de correspondance entre les dimensions desdites sources et comprenant en outre, lors d'un accès à une source de données ayant déjà fait l'objet de combinaisons avec d'autres sources de données, signaler également les correspondances entre dimensions.
12. Procédé selon la revendication 10 ou 11, comprenant en outre l'exécution par défaut d'opérations de combinaison par le procédé de la revendication 1 entre la source de données à laquelle il est accédé et lesdites autres sources de données.
13. Procédé selon l'une des revendications 10 à 12, dans lequel les informations de correspondance sont mémorisées pour une pluralité d'utilisateurs, et l'étape de signalisation s'effectue en fonction de règles de prépondérance parmi les informations de correspondance.
14. Procédé de combinaison de données multidimensionnelles, comprenant les étapes suivantes :
- prévoir un accès à une pluralité de sources de données,
- mémoriser des informations de correspondance entre sources de données à partir d'opérations de combinaison effectuées par le procédé de la revendication 1,
- lors d'un accès à une source de données ayant déjà fait l'objet de combinaison avec d'autres sources de données, déterminer l'existence de correspondances en chaîne entre sources de données, et, en fonction de caractéristiques des informations de correspondance, exécuter sélectivement une opération de combinaison effectuée par le procédé de la revendication 1 entre la source de données à laquelle il est accédé et une source de données liées à celle-ci par une chaîne d'au moins deux correspondances.
15. Procédé d'enrichissement de données multidimensionnelles par combinaison automatique en fonction de manipulations au niveau de leurs dimensions dans un environnement informatique comprenant un équipement informatique capable d'accéder à des sources de données multidimensionnelles, caractérisé en ce qu'il comprend, après avoir appliqué à une source précédente de données une fonction de sélection pour obtenir une sélection précédente de données, les étapes suivantes :
- lors d'un accès à une source courante de données pour obtenir une sélection courante de données, déterminer l'existence d'au moins une mise en correspondance de dimensions entre les données des deux sources,
- si une telle existence a été déterminée, appliquer le procédé de la revendication 1 sur une première paire de première et deuxième sources de données constituées respectivement de la sélection courante et de la source précédente, et sur une seconde paire de première et deuxième sources de données constituées respectivement de la source courante, de laquelle est retirée la sélection courante, et de la sélection précédente.
16. Procédé selon la revendication 15, dans lequel la mise en correspondance de dimensions entre les données des deux sources est effectuée au cours de la mise en œuvre du procédé.
17. Procédé selon l'une des revendications 15 et 16, dans lequel l'accès aux sources s'effectue à l'aide d'un navigateur Web en ce que la mise en œuvre du procédé est effectuée par interception des requêtes vers des serveurs et extraction de données à partir de ces serveurs.
18. Procédé selon les revendications 16 et 17 prises en combinaison, dans lequel ladite mise en correspondance est effectuée par affichage des sélections de données et glisser-déposer de valeurs dans les dimensions devant être mises en correspondance.
19. Procédé selon la revendication 18, comprenant en outre une étape de synthèse pour afficher lesdites sélections dans leur environnement graphique et associer aux valeurs des moyens permettant le glisser-déposer.
20. Procédé selon la revendication 15, mis en œuvre de façon répétée lors de l'accès à une succession de sources de données, dans lequel, lors de l'accès à une source de données courante pour laquelle il n'existe aucune mise en correspondance de dimensions avec la source précédente, on recherche l'existence d'une mise en correspondance de dimensions entre la source courante et une source antérieure, et on applique le procédé d'enrichissement sur des paires de sources constituées par ladite source antérieure et toute source consultée plus récemment avec laquelle il existe une mise en correspondance de dimensions, puis sur une paire de sources constituée par ladite source antérieure ainsi enrichie et la source courante.
21. Procédé selon la revendication 20, mis en œuvre lors de l'accès à une succession de sources de données SN-2, SN-I et SN, comprenant les étapes suivantes : si une mise en correspondance entre des dimensions des sources SN-2 et SN-I d'une part, et SN-I, SN d'autre part existe, mettre en œuvre le procédé entre les sources SN et SN-I en utilisant comme source SN-I le résultat du procédé selon la revendication 15 mis en œuvre sur les sources SN-I et SN-2, si aucune mise en correspondance entre les sources SN-2 et SN-I n'existe, déterminer s'il existe une mise en correspondance entre les dimensions des sources SN-2 et SN et, dans l'affirmative, mettre en œuvre le procédé selon la revendication 15 d'une part sur les sources SN et SN-I et d'autre part sur les sources SN et SN-2, et si aucune mise en correspondance entre les sources SN-I et SN n'existe, déterminer s'il existe une mise en correspondance entre les dimensions des sources SN-2 et SN et entre les sources SN-2 et SN-I et, dans l'affirmative, mettre en œuvre le procédé selon la revendication 15 d'une part sur les sources SN-I et SN-2 et d'autre part sur les sources SN et SN-2. et ainsi de suite pour des sources SN-3, SN-4, etc.
22. Procédé pour manipuler la visualisation d'une ressource contenant des informations structurées sous forme de tableau à au moins deux dimensions, telle qu'obtenue notamment à partir du procédé selon l'une des revendications 1 à 9 ou 12 à 21, où une dimension du tableau est constituée de colonnes représentant des types de données, et une autre dimension du tableau est constituée de lignes représentant des jeux de données associées ayant les types respectifs, et en ce que le procédé comprend :
(a) l'affichage sous forme d'une ligne unique d'un groupe de jeux ayant tous même valeur dans une colonne donnée,
(b) l'affichage, dans la colonne donnée, de ladite valeur, et
(c) l'affichage, en association avec au moins une autre colonne, d'un indicateur signalant qu'il existe au moins deux valeurs dans cette autre colonne pour le groupe de jeux de données.
23. Procédé selon la revendication 22, caractérisé en ce qu'il comprend une étape consistant, en fonction d'actions exercées à l'aide d'une interface utilisateur d'entrée de façon associée à ladite autre colonne au niveau de ladite ligne unique, à provoquer l'affichage des différentes valeurs prise par le groupe de jeux de données dans cette autre colonne.
24. Procédé selon la revendication 23, caractérisé en ce que ledit affichage est effectué valeur par valeur.
25. Procédé selon la revendication 24, caractérisé en ce que ledit affichage est effectué dans un menu surgissant (pop-up).
26. Procédé selon l'une des revendications 22 à 25, caractérisé en ce qu'il comprend en outre, en réponse à une action à l'aide d'une interface utilisateur d'entrée sur un indicateur, le déploiement de la ligne en question en un sous-tableau.
27. Procédé selon la revendication 26, caractérisé en ce que ledit sous-tableau comprend autant de lignes qu'il existe, dans ledit groupe de jeux de données, de valeurs différentes dans ladite autre colonne.
28. Procédé selon la revendication 26 ou 27, caractérisé en ce que chaque ligne dudit sous-tableau contient une valeur différente dans ladite autre colonne et représente un sous-groupe de jeux de données ayant tous cette valeur dans ladite autre colonne.
29. Procédé selon l'une des revendications 26 à 28, caractérisé en ce qu'il comprend la répétition des étapes (b) à (d) pour au moins l'une des lignes constituant ledit sous-tableau, répétition appliquée à au moins une autre colonne encore dans laquelle il existe au moins deux valeurs pour le sous-groupe de jeux de données correspondant à ladite ligne au moins.
30. Procédé selon l'une des revendications 26 à 29, caractérisé en ce qu'il existe un type supplémentaire virtuel « ligne », le tableau étant initialement présenté sous forme d'une ligne unique regroupant toutes les lignes, un indicateur étant affiché en association avec chaque colonne dans laquelle il existe au moins deux valeurs.
31. Procédé selon l'une des revendications 26 à 30, caractérisé en ce que chaque ligne dudit sous- tableau représente, pour les colonnes à partir des indicateurs desquelles le sous-tableau a été formé, une combinaison spécifique de valeurs différente.
32. Procédé selon l'une des revendications 26 à 31, caractérisé en ce qu'il comprend l'affichage d'un indicateur associé à ladite autre colonne après déploiement et sur lequel une action à l'aide d'une interface utilisateur d'entrée provoque le regroupement (réduction) dudit sous-tableau en ladite ligne unique.
33. Procédé selon l'une des revendications 26 à 32, caractérisé en ce que l'indicateur associé à ladite autre colonne comprend un symbole susceptible d'être orienté vers le bas ou vers le haut.
34. Procédé selon l'une des revendications 26 à 33, caractérisé en ce qu'il comprend l'affichage dans ladite autre colonne, d'une des valeurs prises par le groupe de jeux de données dans cette colonne.
35. Procédé selon l'une des revendications 26 à 34, caractérisé en ce qu'il comprend l'affichage dans ladite autre colonne, d'une combinaison des valeurs prises par le groupe de jeux de données dans cette colonne.
36. Procédé selon l'une des revendications 26 à 35, caractérisé en ce qu'il comprend l'affichage dans ladite autre colonne, d'une propriété telle que la cardinalité de l'ensemble des valeurs prises par le groupe de jeux de données dans cette colonne.
37. Procédé selon l'une des revendications 26 à 36, caractérisé en ce qu'il comprend une étape de détermination d'une clé de sélection de jeux de valeurs, déterminant un groupe de jeux de valeurs auxquels un changement de valeur dans une colonne au niveau d'une ligne affichée s'appliquera collectivement.
38. Procédé selon la revendication 37, caractérisé en ce que ladite clé de sélection est constituée par les valeurs affichées dans la ou les colonnes à partir des indicateurs desquelles un sous tableau a été formé.
39. Procédé selon la revendication 37, caractérisé en ce que ladite clé de sélection est constituée par les valeurs affichées dans toutes les colonnes, dont la valeur avant changement pour la colonne dans laquelle le changement est effectué.
40. Procédé selon la revendication 37, caractérisé en ce que ladite clé de sélection est constituée par la valeur avant changement dans la colonne en question.
41. Procédé selon la revendication 37, caractérisé en ce qu'il comprend une étape d'ajout à la clé de sélection d'une valeur affichée dans une colonne par l'indicateur de laquelle aucun sous-tableau n'a été formé, par une action spécifique à l'aide d'une interface utilisateur d'entrée.
42. Procédé selon la revendication 37, caractérisé en ce qu'il comprend une étape de suppression de la clé de sélection d'une valeur affichée dans une colonne par l'indicateur de laquelle aucun sous-tableau n'a été formé, par une action spécifique à l'aide d'une interface utilisateur d'entrée.
43. Procédé selon l'une des revendications 22 à 42, caractérisé en ce que, dans le cas où la ressource est construite dynamiquement à partir d'une source de données, il est apte à afficher en association avec la ressource un indicateur visant à permettre un accès direct à ladite source de données.
44. Procédé de présentation de données, comprenant les étapes suivantes :
(a) définir un modèle de présentation de données à partir d'une ressource dont sont issues une partie des données dont la visualisation est manipulée dans le procédé selon l'une des revendications 22 à 32,
(b) synthétiser au moins une partie desdites données manipulées dans ledit modèle de présentation selon des règles prédéterminées, et
(c) lorsqu'à une desdites données est associé un indicateur, afficher un équivalent dudit indicateur dans la présentation de données.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP08717108A EP2181402A1 (fr) | 2007-02-23 | 2008-02-25 | Procedes d'extraction, de combinaison, de synthese et de visualisation de donnees multidimensionnelles provenant de differentes sources |
US12/528,258 US20120117500A1 (en) | 2007-02-23 | 2008-02-25 | Method for the extraction, combination, synthesis and visualisation of multi-dimensional data from different sources |
PCT/FR2009/000204 WO2009115695A1 (fr) | 2008-02-25 | 2009-02-25 | Procede d'enrichissement de sources de donnees |
US12/919,375 US20110106791A1 (en) | 2007-02-23 | 2009-02-25 | Method for enriching data sources |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0753440 | 2007-02-23 | ||
FR0753440 | 2007-02-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2008107338A1 true WO2008107338A1 (fr) | 2008-09-12 |
Family
ID=38626642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2008/052274 WO2008107338A1 (fr) | 2007-02-23 | 2008-02-25 | Procedes d'extraction, de combinaison, de synthese et de visualisation de donnees multidimensionnelles provenant de differentes sources |
Country Status (3)
Country | Link |
---|---|
US (2) | US20120117500A1 (fr) |
EP (1) | EP2181402A1 (fr) |
WO (1) | WO2008107338A1 (fr) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346449A (zh) * | 2014-10-28 | 2015-02-11 | 用友软件股份有限公司 | 数据合并方法和数据合并装置 |
CN108717418A (zh) * | 2018-04-13 | 2018-10-30 | 五维引力(上海)数据服务有限公司 | 一种基于不同数据源的数据关联方法和装置 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5252388B2 (ja) * | 2007-11-20 | 2013-07-31 | 国立大学法人大阪大学 | 多次元データ分析方法、多次元データ分析装置、及びプログラム |
WO2009153831A1 (fr) * | 2008-06-18 | 2009-12-23 | 株式会社 アテナテレコムラボ | Programme pour afficher et actionner une table |
US8538934B2 (en) * | 2011-10-28 | 2013-09-17 | Microsoft Corporation | Contextual gravitation of datasets and data services |
JP6049300B2 (ja) * | 2012-05-11 | 2016-12-21 | オリンパス株式会社 | 顕微鏡システム |
US10191955B2 (en) * | 2013-03-13 | 2019-01-29 | Microsoft Technology Licensing, Llc | Detection and visualization of schema-less data |
US9208214B2 (en) * | 2013-03-15 | 2015-12-08 | International Business Machines Corporation | Flexible column selection in relational databases |
US9792566B2 (en) * | 2013-08-02 | 2017-10-17 | International Business Machines Corporation | Modeling hierarchical information from a data source |
US10347027B2 (en) | 2014-09-08 | 2019-07-09 | Tableau Software, Inc. | Animated transition between data visualization versions at different levels of detail |
US10347018B2 (en) | 2014-09-08 | 2019-07-09 | Tableau Software, Inc. | Interactive data visualization user interface with hierarchical filtering based on gesture location on a chart |
US10380770B2 (en) | 2014-09-08 | 2019-08-13 | Tableau Software, Inc. | Interactive data visualization user interface with multiple interaction profiles |
US10635262B2 (en) | 2014-09-08 | 2020-04-28 | Tableau Software, Inc. | Interactive data visualization user interface with gesture-based data field selection |
US10521092B2 (en) | 2014-09-08 | 2019-12-31 | Tableau Software, Inc. | Methods and devices for adjusting chart magnification asymmetrically |
US10891272B2 (en) | 2014-09-26 | 2021-01-12 | Oracle International Corporation | Declarative language and visualization system for recommended data transformations and repairs |
US10210246B2 (en) | 2014-09-26 | 2019-02-19 | Oracle International Corporation | Techniques for similarity analysis and data enrichment using knowledge sources |
US10915233B2 (en) | 2014-09-26 | 2021-02-09 | Oracle International Corporation | Automated entity correlation and classification across heterogeneous datasets |
US10896532B2 (en) | 2015-09-08 | 2021-01-19 | Tableau Software, Inc. | Interactive data visualization user interface with multiple interaction profiles |
US11042536B1 (en) * | 2016-09-06 | 2021-06-22 | Jpmorgan Chase Bank, N.A. | Systems and methods for automated data visualization |
US10650000B2 (en) | 2016-09-15 | 2020-05-12 | Oracle International Corporation | Techniques for relationship discovery between datasets |
US10565222B2 (en) | 2016-09-15 | 2020-02-18 | Oracle International Corporation | Techniques for facilitating the joining of datasets |
US10445062B2 (en) | 2016-09-15 | 2019-10-15 | Oracle International Corporation | Techniques for dataset similarity discovery |
US10417185B2 (en) * | 2016-10-25 | 2019-09-17 | Business Objects Software Limited | Gesture based semantic enrichment |
US20180300388A1 (en) * | 2017-04-17 | 2018-10-18 | International Business Machines Corporation | System and method for automatic data enrichment from multiple public datasets in data integration tools |
US10810472B2 (en) | 2017-05-26 | 2020-10-20 | Oracle International Corporation | Techniques for sentiment analysis of data using a convolutional neural network and a co-occurrence network |
US10885056B2 (en) | 2017-09-29 | 2021-01-05 | Oracle International Corporation | Data standardization techniques |
US10936599B2 (en) | 2017-09-29 | 2021-03-02 | Oracle International Corporation | Adaptive recommendations |
US10785340B2 (en) * | 2018-01-25 | 2020-09-22 | Operr Technologies, Inc. | System and method for a convertible user application |
JP6866870B2 (ja) * | 2018-03-30 | 2021-04-28 | 横河電機株式会社 | データアクイジションシステム、データアクイジション装置、およびデータ合成装置 |
US11537271B2 (en) | 2018-04-16 | 2022-12-27 | Ebay Inc. | System and method for aggregation and comparison of multi-tab content |
US11416514B2 (en) * | 2020-11-20 | 2022-08-16 | Palantir Technologies Inc. | Interactive dynamic geo-spatial application with enriched map tiles |
US20220398230A1 (en) * | 2021-06-14 | 2022-12-15 | Adobe Inc. | Generating and executing automatic suggestions to modify data of ingested data collections without additional data ingestion |
CN115952775A (zh) * | 2021-10-08 | 2023-04-11 | 北京字跳网络技术有限公司 | 文档的处理方法、装置、终端和存储介质 |
US11663399B1 (en) * | 2022-08-29 | 2023-05-30 | Bank Of America Corporation | Platform for generating published reports with position mapping identification and template carryover reporting |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0400620A2 (fr) * | 1989-05-31 | 1990-12-05 | Microsoft Corporation | Procédé pour cacher ou révéler des cellules d'une feuille de calcul électronique |
WO1992006437A1 (fr) * | 1990-10-02 | 1992-04-16 | Hewlett-Packard Company | Presentation guidee de donnees |
US6526399B1 (en) | 1999-06-15 | 2003-02-25 | Microsoft Corporation | Method and system for grouping and displaying a database |
US20030188259A1 (en) * | 2002-03-28 | 2003-10-02 | International Business Machines Corporation | System and method in an electronic spreadsheet for displaying and/or hiding range of cells |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6628312B1 (en) * | 1997-12-02 | 2003-09-30 | Inxight Software, Inc. | Interactive interface for visualizing and manipulating multi-dimensional data |
US7530012B2 (en) * | 2003-05-22 | 2009-05-05 | International Business Machines Corporation | Incorporation of spreadsheet formulas of multi-dimensional cube data into a multi-dimensional cube |
US20050192981A1 (en) * | 2004-02-29 | 2005-09-01 | Theodore Holm Nelson | System for combining datasets and information structures by intercalation |
US8060817B2 (en) * | 2004-11-09 | 2011-11-15 | Oracle International Corporation | Data viewer |
US20060107196A1 (en) * | 2004-11-12 | 2006-05-18 | Microsoft Corporation | Method for expanding and collapsing data cells in a spreadsheet report |
US20060122872A1 (en) * | 2004-12-06 | 2006-06-08 | Stevens Harold L | Graphical user interface for and method of use for a computer-implemented system and method for booking travel itineraries |
US7975019B1 (en) * | 2005-07-15 | 2011-07-05 | Amazon Technologies, Inc. | Dynamic supplementation of rendered web pages with content supplied by a separate source |
-
2008
- 2008-02-25 WO PCT/EP2008/052274 patent/WO2008107338A1/fr active Application Filing
- 2008-02-25 US US12/528,258 patent/US20120117500A1/en not_active Abandoned
- 2008-02-25 EP EP08717108A patent/EP2181402A1/fr not_active Ceased
-
2009
- 2009-02-25 US US12/919,375 patent/US20110106791A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0400620A2 (fr) * | 1989-05-31 | 1990-12-05 | Microsoft Corporation | Procédé pour cacher ou révéler des cellules d'une feuille de calcul électronique |
WO1992006437A1 (fr) * | 1990-10-02 | 1992-04-16 | Hewlett-Packard Company | Presentation guidee de donnees |
US6526399B1 (en) | 1999-06-15 | 2003-02-25 | Microsoft Corporation | Method and system for grouping and displaying a database |
US20030188259A1 (en) * | 2002-03-28 | 2003-10-02 | International Business Machines Corporation | System and method in an electronic spreadsheet for displaying and/or hiding range of cells |
Non-Patent Citations (6)
Title |
---|
ALLEN G. TAYLOR: "SQL For Dummies", 14 August 2006, JOHN WILEY & SONS, ISBN: 0-470-04652-X, XP002486106 * |
ANONYMOUS: "A 60-second demo showing off the compact view", THE DABBLE DB BLOG, 4 August 2006 (2006-08-04), XP002460296, Retrieved from the Internet <URL:http://dabbledb.com/blog/clips/compactview.mov> [retrieved on 20071116] * |
ANONYMOUS: "Compact and Pivot", THE DABBLE BLOG, 4 August 2006 (2006-08-04), XP002460297, Retrieved from the Internet <URL:http://blog.dabbledb.com/2006/08/compact-and-piv.html> [retrieved on 20071112] * |
ANONYMOUS: "Dabble DB' s Features", INTERNET ARTICLE, 19 February 2007 (2007-02-19), XP002460295, Retrieved from the Internet <URL:http://web.archive.org/web/20070219132847/http://www.dabbledb.com/explore/features/> [retrieved on 20071116] * |
GLICK J.: "Autocomplete Addressing", MACHV/MOZILLA: MAIL & NEWS, 10 September 2001 (2001-09-10), XP002460298, Retrieved from the Internet <URL:http://www.mozilla.org/mailnews/specs/autocomplete/> [retrieved on 20071116] * |
See also references of EP2181402A1 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346449A (zh) * | 2014-10-28 | 2015-02-11 | 用友软件股份有限公司 | 数据合并方法和数据合并装置 |
CN104346449B (zh) * | 2014-10-28 | 2017-11-24 | 用友网络科技股份有限公司 | 数据合并方法和数据合并装置 |
CN108717418A (zh) * | 2018-04-13 | 2018-10-30 | 五维引力(上海)数据服务有限公司 | 一种基于不同数据源的数据关联方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20110106791A1 (en) | 2011-05-05 |
EP2181402A1 (fr) | 2010-05-05 |
US20120117500A1 (en) | 2012-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2181402A1 (fr) | Procedes d'extraction, de combinaison, de synthese et de visualisation de donnees multidimensionnelles provenant de differentes sources | |
AU2022221498B2 (en) | Creation and update of hierarchical websites based on collected business knowledge | |
US20230359689A1 (en) | System and method for the generation and editing of text content in website building systems | |
WO2005045698A2 (fr) | Procede mis en oeuvre dans un environnement informatique pour engendrer une vue courante a partir d’au moins un objet d’information source susceptible de varier | |
CA2668306A1 (fr) | Methode et systeme d'application de metadonnees a des jeux de donnees ou a des objets de fichiers | |
EP2188745B1 (fr) | Procédé d'interrogation d'une base de données et dispositif d'interrogation | |
WO1998057272A1 (fr) | Dispositif d'analyse et d'organisation de donnees | |
WO2001035269A2 (fr) | Systeme de partage d'informations entre au moins deux utilisateurs sur un reseau informatique | |
FR2813132A1 (fr) | Systeme d'interface d'acces aux donnees d'une base de donnees | |
FR3104299A1 (fr) | Dispositif d’accessibilité juridique, une méthode mise en œuvre par ordinateur pour en produire un exemplaire et une machine pour l’utiliser | |
Lee et al. | Single image summarization of 3D animation using depth images | |
WO2006013307A1 (fr) | Procede de traitement de donnees logiciel associe | |
WO2009115695A1 (fr) | Procede d'enrichissement de sources de donnees | |
Olinik et al. | The WordPress Anthology: Get Under the Hood of Wordpress! | |
FR2806184A1 (fr) | Systeme de navigation mis en oeuvre dans un systeme informatique pour acceder a des pages fournies par des serveurs via un reseau informatique | |
FR3102594A1 (fr) | Ensemble de génération d’application, méthode et programme associés | |
WO2001095146A2 (fr) | Systeme et procede permettant l'importation semi-automatique de fragments de ressources d'informations | |
Mathé et al. | Deep Inside OsCommerce: The Cookbook: Spice Up Your OsCommerce Website Using 69 Mouth Watering, Ready-made Recipes | |
FR2807182A1 (fr) | Systeme de traitement de donnees oriente objet a chargement progressif | |
FR2808911A1 (fr) | Procede et systeme de recherche et de comparaison d'informations sur au moins un produit determine propose sur le reseau internet | |
FR3032291A1 (fr) | Outil et procede d'amelioration du referencement d'un site internet | |
FR2807181A1 (fr) | Procede et systeme de gestion, dans un poste informatique, de l'affichage de fenetres lors d'une operation de glisser-deposer | |
FR2805376A1 (fr) | Procede d'enrichissement selectif de graphes contenant a leurs noeuds des ensembles informations | |
FR2805378A1 (fr) | Systeme permettant l'execution partagee d'apllications par replication mixte |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 08717108 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2008717108 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 12528258 Country of ref document: US |