WO2020152804A1 - 情報提供システム、方法およびプログラム - Google Patents

情報提供システム、方法およびプログラム Download PDF

Info

Publication number
WO2020152804A1
WO2020152804A1 PCT/JP2019/002052 JP2019002052W WO2020152804A1 WO 2020152804 A1 WO2020152804 A1 WO 2020152804A1 JP 2019002052 W JP2019002052 W JP 2019002052W WO 2020152804 A1 WO2020152804 A1 WO 2020152804A1
Authority
WO
WIPO (PCT)
Prior art keywords
pair
tables
columns
column
joined
Prior art date
Application number
PCT/JP2019/002052
Other languages
English (en)
French (fr)
Inventor
圭吾 木村
邦紘 竹岡
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to PCT/JP2019/002052 priority Critical patent/WO2020152804A1/ja
Priority to US17/424,389 priority patent/US11860910B2/en
Priority to JP2020567298A priority patent/JP7276355B2/ja
Publication of WO2020152804A1 publication Critical patent/WO2020152804A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/288Entity relationship models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof

Definitions

  • the present invention relates to an information providing system, an information providing method, and an information providing program for providing a worker (user) with information related to work for combining tables.
  • Non-Patent Document 1 describes a technique for estimating the meaning of a column of a table using an ontology.
  • Patent Document 1 A technique for estimating the meaning of a table column is also described in Patent Document 1.
  • Patent Document 2 describes a system that performs a process of combining data in a table format.
  • the present invention provides a worker with useful information for the work of joining tables so that a worker (user) with little specialized knowledge can smoothly perform the work of joining a plurality of tables. It is an object to provide an information providing system, an information providing method, and an information providing program that can be performed.
  • the information providing system specifies an input unit to which a plurality of tables are input and a pair of columns that are in a joinable relationship, and a pair of tables to which the individual columns forming the pair belong. Outputs the specific part that identifies a pair and the join method of the joined tables, the pair of joined tables, the pair of columns that have a joinable relationship, and the join method of the joined tables. And an output unit that operates.
  • a computer accepts inputs of a plurality of tables, identifies pairs of columns that are in a joinable relationship, and identifies the pairs of tables to which the individual columns forming the pair belong. Specify that the table is a pair, specify the join method of the joined tables, and output the pair of joined tables, the pair of columns that have a joinable relationship, and the join method of the joined tables. Characterize.
  • An information providing program is an information providing program installed in a computer provided with an input unit for inputting a plurality of tables, in which a pair of columns in a relation that can be combined is identified and the pair is identified.
  • the specific processing that identifies the pair of tables to which the individual columns that belong to each other is the pair of tables to be joined, and the joining method of the joined tables, and the pair of joined tables and the joinable relationship It is characterized in that an output process for outputting a pair of certain columns and a joining method of joined tables is executed.
  • FIG. 10 is a schematic diagram showing a result of combining the tables shown in FIGS. 6 to 9 according to the information shown in FIG. 10. It is a block diagram which shows one of the modifications of 1st Embodiment. It is a block diagram which shows the example of the information provision system of the 2nd Embodiment of this invention. In 2nd Embodiment, it is a schematic diagram which shows the example of the screen containing GUI displayed by step S24. It is a schematic block diagram which shows the structural example of the computer which concerns on the information provision system of each embodiment of this invention. It is a block diagram showing an example of an outline of an information service system of the present invention.
  • FIG. 1 is a block diagram showing an example of an information providing system according to the first embodiment of the present invention.
  • the information providing system 1 of the present invention includes an input unit 2, a specifying unit 3, a storage unit 4, a display device 5, and a display control unit 6.
  • the input unit 2 is an input device for inputting a plurality of tables.
  • the input unit 2 may be a data reading device that reads a plurality of tables recorded on a data recording medium from a data recording medium such as a magneto-optical disk.
  • a column type meaning of column
  • the column type is determined separately from the column name. Also, the table does not have to include the column name.
  • the column type may be set, for example, before an operator (user) or an external information processing device inputs each table into the information providing system 1.
  • At least the types of columns are "Entity-Identifier”, “time”, and “location”.
  • one of the types of “Entity-Identifier”, “time”, “place”, and “None” is defined in advance in each column of each table.
  • types other than the above four types may exist.
  • Entity-Identifier represents a column of attribute values that indicates that it corresponds to one row of an arbitrary table and that has the property of a primary key. Below, the type “Entity-Identifier” is described as “Entity-ID”.
  • time represents a column in which each attribute value is date, time, or date and time.
  • time will be referred to as “Time”.
  • the type “location” indicates a column in which each attribute value is a location or a location.
  • the type “location” will be referred to as “Space”.
  • Type "None” indicates a column that does not correspond to any of "Entity-ID", "Time”, and "Space”.
  • the specifying unit 3 refers to a plurality of input tables, specifies a pair of columns that have a joinable relationship, and determines that the pair of tables to which the individual columns forming the pair belong is a pair of tables to be joined. And the method of joining the tables to be joined.
  • the combination of the pair of tables to be combined, the pair of columns in a relationship that can be combined, and the combination method of the tables specified by the specifying unit 3 is not limited to one, and a plurality of combinations are specified by the specifying unit 3. May be done.
  • the storage unit 4 is a storage device that stores a pair of tables to be joined, a pair of columns in a joinable relationship, and a combination of joining methods of the tables, which are identified by the identifying unit 3.
  • the display control unit 6 displays on the display device 5 the pair of tables to be joined, the pair of columns in a joinable relationship, and the joining method of the tables, which are identified by the identifying unit 3.
  • the specifying unit 3 and the display control unit 6 are realized by, for example, a CPU (Central Processing Unit) of a computer that operates according to an information providing program.
  • the CPU may read the information providing program from a program recording medium such as a program storage device of a computer and operate as the identifying unit 3 and the display control unit 6 according to the information providing program.
  • FIG. 3, FIG. 4 and FIG. 5 are flowcharts showing an example of the processing progress of the information providing system 1 of the present embodiment.
  • there is at most one column of type "Time” in one table and similarly, the maximum number of columns of type "Space” in one table is the same. An example will be described where one exists.
  • the number of columns whose type is “Entity-ID” in one table will be described as an example in which the number is not particularly limited.
  • the input unit 2 receives inputs from a plurality of tables (step S1).
  • a column type is assigned in advance to each column of each input table.
  • a case where each table shown in FIGS. 6, 7, 8, and 9 is input in step S1 will be described as an example.
  • the table 21 illustrated in FIG. 6 includes two columns of type “Entity-ID”, one column of type “Time”, and one column of type “None”. ..
  • the table 22 shown in FIG. 7 includes one column whose type is "Entity-ID" and one column whose type is "None".
  • the table 23 illustrated in FIG. 8 includes one column whose type is “Entity-ID”, one column whose type is “Space”, and one column whose type is “None”. ..
  • the table 24 shown in FIG. 9 includes one column whose type is "Space”, one column whose type is “Time”, and two columns whose type is "None”.
  • step S2 the identifying unit 3 selects one unselected table from the plurality of tables input in step S1 (step S2).
  • the selected table will be referred to as a selected table.
  • the specifying unit 3 selects the table 21 (see FIG. 6) in step S2 will be described as an example. That is, a case where the selection table is the table 21 will be described as an example.
  • step S2 the identifying unit 3 determines whether or not a column whose type is "Entity-ID” exists in the selection table (step S3). If there is no column whose type is “Entity-ID” in the selection table (No in step S3), the process proceeds to step S11 (see FIG. 3) described later. If the selection table includes a column whose type is “Entity-ID”, the process proceeds to step S4. In this example, the selection table (table 21 shown in FIG. 6) includes a column whose type is “Entity-ID”. Therefore, the process proceeds to step S4.
  • step S4 the identifying unit 3 selects one column whose type is "Entity-ID" from the selection table. At this time, the identifying unit 3 excludes the columns already selected in step S4 from the selection targets. Here, it is assumed that the identifying unit 3 selects the column whose column name is “store name” from the table 21 illustrated in FIG.
  • the identifying unit 3 identifies a column whose type is "Entity-ID” from among the columns of each table other than the selection table (step S5). If there is a plurality of columns of type “Entity-ID” in each column of each table other than the selection table, the identifying unit 3 identifies all the columns. In this example, the identifying unit 3 determines in step S5 that the column name in the table 22 (see FIG. 7) is “product name” and the column name in the table 23 (see FIG. 8) is “store name”. Identify a column.
  • the identifying unit 3 selects one unselected column from the columns identified in step S5 (step S6).
  • a case will be described as an example where a column whose column name in the table 23 is “store name” is selected.
  • the identifying unit 3 determines whether or not the column selected in step S4 and the column selected in step S6 have a joinable relationship (step S7).
  • step S7 the identifying unit 3 edits the attribute values for each combination of, for example, each attribute value included in the column selected in step S4 and each attribute value included in the column selected in step S6. Calculate the distance. Then, if the number of combinations of attribute values whose edit distance is equal to or less than the threshold value is equal to or more than a predetermined number, the specifying unit 3 may determine that the two columns have a connectable relationship. Further, if the number of combinations of attribute values whose edit distance is equal to or less than the threshold value is less than a predetermined number, the specifying unit 3 may determine that the two columns are not in a connectable relationship.
  • the threshold value and the predetermined number may be set in advance.
  • step S7 a method of determining whether or not the two columns whose type is "Entity-ID" are in a joinable relationship (in other words, the two columns whose type is "Entity-ID" are The condition for determining that there is a connectable relationship) is not limited to the above example.
  • the identifying unit 3 may determine whether or not the two columns have a connectable relationship by another method in step S7.
  • step S7 If it is determined that the two columns have a joinable relationship (Yes in step S7), the process proceeds to step S8. If it is determined that the two columns are not in a relationship that allows them to be combined (No in step S7), the process proceeds to step S9 (see FIG. 3).
  • the column selected in step S4 (column whose column name in the table 21 (see FIG. 6) is “store name”) and the column selected in step S6 (column name in table 23 (see FIG. 8)) Is a "store name")
  • the store name is used as the attribute value in all cases. Therefore, the case where the number of combinations of attribute values whose edit distance is equal to or less than the threshold value is equal to or more than a predetermined number and the specifying unit 3 determines that the two columns have a relation that can be combined (step S7) Yes).
  • step S8 the process proceeds to step S8, and the identifying unit 3 determines in step S8 the selection table (in this example, the table 21 shown in FIG. 6) and the table including the column selected in step S6 (in this example, FIG. 8). And the table 23) shown in Table 2) are combined by "Similarity-Join" (step S8).
  • the table pair identified in the process of steps S7 and S8 is a pair of tables to be joined.
  • step S8 the identifying unit 3 and the pair of tables to be joined (the pair of tables 21 and 23 in this example) and the pair of columns in a joinable relationship (in this example, the column name in the table 21 is A combination of a column that is a “store name” and a column whose column name in the table 23 is a “store name”) and a combination method (in this example, “Similarity-Join ”) is stored in the storage unit 4.
  • step S9 the identifying unit 3 determines whether all the columns identified in step S5 have been selected. If all the columns specified in step S5 are selected in step S6 (Yes in step S9), the process proceeds to step S10. Further, if there is a column that has not been selected in step S6 among the columns identified in step S5 (No in step S9), the identifying unit 3 repeats the process of step S6 and subsequent steps.
  • step S6 the column with the column name “product name” in the table 22 (see FIG. 7) is not yet selected in step S6. Therefore, the process proceeds to step S6, and the identifying unit 3 selects the column having the column name “product name” in the table 22 in step S6.
  • the identifying unit 3 determines whether or not the column selected in step S4 and the column selected in step S6 have a connectable relationship (step S7).
  • the column selected in step S4 (the column whose column name in the table 21 (see FIG. 6) is “store name”) is a column whose attribute value is the store name.
  • the column selected in step S6 (column whose column name in the table 22 is "product name”) is a column whose product value is the attribute value. Therefore, an example is given in which the number of combinations of attribute values whose edit distance is equal to or less than the threshold is less than the predetermined number, and the identifying unit 3 determines that the two columns are not in a connectable relationship (step S7). No).
  • step S8 is not executed and the process proceeds to step S9.
  • both of the two columns identified in step S5 have been selected in step S6. Therefore, the identifying unit 3 determines that all the columns identified in step S5 have been selected (Yes in step S9), and proceeds to step S10.
  • step S10 the identifying unit 3 determines whether or not all the columns having the type “Entity-ID” in the selection table have been selected. If all the columns of the type “Entity-ID” in the selection table are selected in step S4 (Yes in step S10), the process proceeds to step S11. In addition, if there is a column that is not selected in step S4 among the columns whose type is “Entity-ID” in the selection table (No in step S10), the identifying unit 3 performs the processing in step S4 and subsequent steps. repeat.
  • step S4 the process proceeds to step S4, and the identifying unit 3 selects the column having the column name “product name” in the table 21 in step S4. Since the processing of steps S4 to S10 has already been described, detailed description thereof will be omitted here.
  • the identifying unit 3 sequentially executes steps S7 and S8.
  • step S8 the identifying unit 3 and the pair of tables to be combined (in this example, the pair of tables 21 and 22) and the pair of columns in a connectable relationship (in this example, the columns in the table 21).
  • the combination of the column whose name is "Product name” and the column whose column name in the table 22 is "Product name” and the combination method ("Similarity-Join " in this example) is stored. It is stored in the section 4.
  • step S10 At the time of moving to step S10 again, all the columns with the type “Entity-ID” in the table 21 are already selected (Yes in step S10). Therefore, the process proceeds to step S11.
  • step S11 the identifying unit 3 determines whether or not there is a column whose type is "Time” in the selection table. If the selection table does not include a column whose type is "Time” (No in step S11), the process proceeds to step S17 (see FIG. 4) described later. If there is a column whose type is "Time” in the selection table (Yes in step S11), the process proceeds to step S12. In this example, the selection table (table 21 shown in FIG. 6) includes a column whose type is “Time”. Therefore, the process proceeds to step S12.
  • step S12 the identifying unit 3 identifies a column whose type is "Time” from the columns of each table other than the selection table. If there is a plurality of columns of type “Time” in each column of each table other than the selection table, the identifying unit 3 identifies all the columns. In this example, the identifying unit 3 identifies the column whose column name is “date and time” in the table 24 (see FIG. 9) in step S12. That is, in this example, one column is specified in step S12.
  • the identifying unit 3 selects one unselected column from the columns identified in step S12 (step S13). In this example, the identifying unit 3 selects a column whose column name is “date and time” in the table 24.
  • the identifying unit 3 determines whether or not the column whose type is “Time” existing in the selection table and the column selected in step S13 can be combined (step S14).
  • step S14 the identifying unit 3 determines whether or not the two columns whose type is "Time" are in a connectable relationship. An example of this determination is shown below. For example, when the two columns having the type “Time” use only time (not including the date) as the attribute value, the specifying unit 3 determines whether the two columns having the type “Time” are used. When the date (which may include the time) is used as the attribute value, it may be determined that the two columns are in a connectable relationship (Yes in step S14). Then, in other cases, the identifying unit 3 may determine that the two columns are not in a relationship capable of being combined (No in step S14).
  • the specifying unit 3 has two It is determined that the columns are not in a joinable relationship.
  • step S14 the identifying unit 3 determines that the two columns of which the type is "Time” are in a connectable relationship (Yes in step S14).
  • step S14 a method of determining whether or not the two columns whose type is "Time” are in a connectable relationship (in other words, the two columns whose type is "Time” are in a connectable relationship
  • the condition for determining that there is no limitation is not limited to the above example.
  • the identifying unit 3 may determine whether or not the two columns have a connectable relationship by another method in step S14.
  • step S14 If it is determined in step S14 that the two columns are not in a connectable relationship (No in step S14), the process proceeds to step S16 (see FIG. 4) described later.
  • step S15 When it is determined in step S14 that the two columns are in a relationship that allows them to be combined (Yes in step S14), the process proceeds to step S15 (see FIG. 4). In this example, the process proceeds to step S15.
  • step S15 the identifying unit 3 sets the selection table (the table 21 in this example) and the table including the column selected in step S13 (the table 24 shown in FIG. 9 in this example) to “Temporal-Join”. It is decided to combine with.
  • the table pair identified in the process of steps S14 and S15 is a pair of tables to be joined.
  • the identifying unit 3 and the pair of tables to be joined (the pair of the tables 21 and 24 in this example) and the pair of columns that have a joinable relationship (in this example, the column name in the table 21 is A combination of a column having “date and time” and a column having a column name of “date and time” in the table 24) and a combination method (“Temporal-Join ” in this example) is stored in the storage unit 4.
  • step S16 the identifying unit 3 determines whether all the columns identified in step S12 have been selected. If all the columns specified in step S12 are selected in step S13 (Yes in step S16), the process proceeds to step S17. Further, if there is a column that has not been selected in step S13 among the columns identified in step S12 (No in step S16), the identifying unit 3 repeats the processing from step S13.
  • step S12 only one column (column whose column name in the table 24 is “date and time”) is specified in step S12, and that column is selected in step S13 (Yes in step S16). Therefore, the process proceeds to step S17.
  • the identifying unit 3 may execute the processing of steps S12 to S16 for each column.
  • step S17 the identifying unit 3 determines whether or not there is a column whose type is "Space” in the selection table. If there is no column whose type is "Space” in the selection table (No in step S17), the process proceeds to step S23 (see FIG. 5). If there is a column whose type is “Space” in the selection table (Yes in step S17), the process proceeds to step S18 (see FIG. 4).
  • step S17 there is no column of type “Space” in the table 21 corresponding to the selection table (No in step S17), so the process proceeds to step S23.
  • the processing when moving to step S18 will be described later.
  • step S23 the identifying unit 3 determines whether all the tables input in step S1 have been selected. If all the input tables are selected in step S2 (Yes in step S23), the process proceeds to step S24. In addition, if there is a table that has not been selected in step S2 among the input tables (No in step S23), the identifying unit 3 repeats the processing from step S2.
  • the identifying unit 3 has not yet selected the tables 22, 23 and 24. Therefore, the identifying unit 3 repeats the processing from step S2.
  • the specifying unit 3 selects the table 23 (see FIG. 8) in step S2 after shifting from step S23 to step S2.
  • the table 23 corresponds to the selection table.
  • step S3 the identifying unit 3 determines that the selection table (table 23) includes a column whose type is "Entity-ID" (Yes in step S3). Therefore, the identifying unit 3 executes the processing of step S4 and subsequent steps. Since the loop processing of steps S4 to S10 has already been described, the description is omitted here.
  • step S10 when it is determined that all the columns having the type “Entity-ID” in the selection table have been selected (Yes in step S10), the process proceeds to step S11.
  • step S11 the identifying unit 3 determines whether or not there is a column whose type is "Time” in the selection table. In this example, there is no column of type “Time” in the selection table (table 23) (No in step S11), so the process proceeds to step S17 (see FIG. 4).
  • step S17 the identifying unit 3 determines whether or not there is a column whose type is “Space” in the selection table (table 23). In this example, there is a column whose type is "Space” in the table 23 (Yes in step S17). Therefore, the process proceeds to step S18.
  • step S18 the identifying unit 3 identifies a column whose type is "Space” from the columns of each table other than the selection table. If there is a plurality of columns of type "Space” in each column of each table other than the selection table, the identifying unit 3 identifies all of the columns. In this example, the identifying unit 3 identifies the column whose column name is “prefecture” in the table 24 (see FIG. 9) in step S18. That is, in this example, one column is specified in step S18.
  • the identifying unit 3 selects one unselected column from the columns identified in step S18 (step S19). In this example, the identifying unit 3 selects a column whose column name in the table 24 is “prefecture”.
  • the identifying unit 3 selects the column having the type “Space” existing in the selection table (in this example, the column having the column name “address” in the table 23) and the column selected in step S19 ( In this example, the column name in the table 24 is the column "prefecture") and the relation is determined to be connectable (step S20).
  • the identifying unit 3 determines that the selection table (the table 23 in the present example) and the table (the table 24 in the present example) including the column selected in step S19 are combined by “Spatial-Join” ( Step S21).
  • the table pair identified in the process of steps S20 and S21 is a pair of tables to be combined.
  • the identifying unit 3 and the pair of tables to be joined (the pair of the tables 23 and 24 in this example) and the pair of columns that have a joinable relationship (in this example, the column name in the table 23 is A combination of a column that is “address” and a column whose column name in the table 24 is “prefecture”) and a combination method (“Spatial-Join” in this example) is stored in the storage unit 4.
  • step S21 the process proceeds to step S22.
  • step S22 the identifying unit 3 determines whether all the columns identified in step S18 have been selected. If all the columns specified in step S18 are selected in step S19 (Yes in step S22), the process proceeds to step S23 (see FIG. 5). If there is a column that has not been selected in step S19 among the columns identified in step S18 (No in step S22), the identifying unit 3 repeats the processing from step S19.
  • step S18 only one column (column whose column name in the table 24 is “prefecture”) is specified in step S18, and that column is selected in step S19 (Yes in step S22). Therefore, the process proceeds to step S23.
  • the identifying unit 3 may execute the processing of steps S18 to S22 for each column.
  • step S23 the identifying unit 3 determines whether all the tables input in step S1 have been selected. If there is a table that has not been selected in step S2 among the input tables (No in step S23), the identifying unit 3 repeats the processing from step S2. In this example, the tables 22 and 24 have not been selected yet. Therefore, the identifying unit 3 selects the table 22 in step S2, and repeats the processing from step S3. When the process proceeds to step S2 again, the identifying unit 3 selects the table 24 and repeats the process from step S3.
  • step S23 if the identifying unit 3 determines that all the tables input in step S1 have been selected (Yes in step S23), the process proceeds to step S24.
  • step S24 the display control unit 6 reads from the storage unit 4 a combination of a pair of tables to be joined, a pair of columns in a joinable relationship, and a joining method. Then, the display control unit 6, based on each combination read from the storage unit 4, displays a combination of a table pair to be combined, a pair of columns in a connectable relationship, and a combination method, respectively. Display in 5.
  • FIG. 10 is a schematic diagram showing an example of information displayed on the display device 5 by the display control unit 6 in step S24.
  • the display control unit 6 displays, for example, each input table on the display device 5. Further, the display control unit 6 displays, for each combination of a pair of tables to be joined, a pair of columns in a joinable relationship, and a joining method, a line connecting the columns in a joinable relationship to each other on the display device. 5, and the combination method included in the combination is displayed near the line (see FIG. 10).
  • the display control unit 6 displays, for each combination of a pair of tables to be joined, a pair of columns in a joinable relationship, and a joining method, a line connecting the columns in a joinable relationship to each other on the display device. 5, and the combination method included in the combination is displayed near the line (see FIG. 10).
  • the tables to which the columns belong are also connected by a line. Therefore, in the example shown in FIG.
  • the display control unit 6 displays a line connecting the columns that have a connectable relationship on the display device 5 to display a pair of columns that have a connectable relationship, and You will also see the table pairs that are joined based on that column pair. In the example shown in FIG. 10, the combining method is displayed near the line.
  • the display control unit 6 displays the pair of tables to be joined, the pair of columns having a joinable relationship, and the joining method of the tables, which are identified by the identifying unit 3. can do.
  • the tables 21 and 22 are a pair of tables to be combined, and the tables 21 and 22 are composed of the “product name” column in the table 21 and the “product name” in the table 22. It indicates that the joining method when joining based on columns and columns is "Similarity-Join ".
  • the display mode of information by the display control unit 6 is not limited to the example shown in FIG. 10.
  • one column may be determined to have a joinable relationship with a plurality of columns.
  • a line extending from that one column to a plurality of columns is displayed.
  • the display control unit 6 displays on the display device 5 the pair of tables to be joined, the pair of columns in a joinable relationship, and the joining method of the tables. Therefore, the information providing system 1 according to the present embodiment determines, based on which column of which table and which column of which table, the tables should be combined by the method (of the information providing system 1). User). Therefore, even a worker with little specialized knowledge can smoothly proceed with the work of joining a plurality of tables. That is, according to the present embodiment, it is possible to provide the worker with information useful for the work of joining the tables for data analysis.
  • the information providing system 1 of the present invention may include a combining unit (not shown) that executes the combining process of the tables according to the contents presented by the display control unit 6 to the worker. Does not have to be provided.
  • the coupling unit is realized by, for example, the CPU of the computer that operates according to the information providing program.
  • the CPU may read the information providing program from a program recording medium such as a program storage device of a computer and operate as the identifying unit 3, the display control unit 6, and the combining unit according to the information providing program.
  • an external system other than the information providing system 1 may join the tables according to the operator's instruction.
  • the worker gives an instruction regarding the table combination to the external system based on the information provided by the information providing system 1 of the present invention (the information displayed on the display device 5 by the display controller 6 and exemplified in FIG. 10). Give it.
  • Similarity-Join is defined along with the two columns that have a joinable relationship.
  • a set is specified, in which the edit distance between attribute values is less than or equal to a threshold value.
  • the record including the attribute value b in the table including the column B may be added to the record including the attribute value a in the table including the column A.
  • a word distributed expression may be used to specify the set of attribute values.
  • the record including the attribute value b in the table including the column B may be added to the record including the attribute value a in the table including the column A.
  • Temporal-Join is defined along with the two columns that have a joinable relationship.
  • a set is identified in which a time zone within a predetermined range centered on the attribute value a and a time zone within a predetermined range centered on the attribute value b overlap.
  • the record including the attribute value b in the table including the column B may be added to the record including the attribute value a in the table including the column A.
  • FIG. 11 shows the result of combining the above-mentioned tables 21 to 24 according to the information shown in FIG.
  • step S6 see FIG. 2
  • step S13 see FIG. 3
  • step S19 see FIG. 4
  • the identifying unit 3 has already communicated with another column. Columns that are determined to have a connectable relationship may be excluded from the selection target.
  • the specifying unit 3 excludes the columns excluded from the selection target in step S6 due to the fact that the column has already been in a joinable relationship with other columns in step S9 (see FIG. 3). It is treated as a selected column in S6.
  • the identifying unit 3 handles the column excluded from the selection target in step S13 as the column selected in step S13 in step S16 (see FIG. 4).
  • the identifying unit 3 handles the column excluded from the selection target in step S19 as the column already selected in step S19 in step S22 (see FIG. 4).
  • the processing time can be shortened by excluding, from the selection targets, the columns that have already been determined to have a relationship that can be combined with other columns.
  • the specifying unit 3 may exclude a table that is already determined to be combined with another table from the selection target. .. In this case, the specifying unit 3 excludes the table excluded from the selection target in step S2 because it is already determined to be combined with another table, and the table selected in step S2 in step S23 (see FIG. 5). Treat as. In this way, in step S2, the processing time can be shortened by excluding, from the selection target, the table that has already been determined to be combined with another table.
  • a pair of columns that belong to different tables and are preset to have a joinable relationship there is a pair of columns that belong to different tables and are preset to have a joinable relationship
  • the joining method of the different tables is preset. May be. That is, a combination of a predetermined pair of tables to be joined, a pair of columns in a joinable relationship, and a joining method may exist in a plurality of input tables. The operator cannot determine all combinations of table pairs to be joined, pairs of columns that have a joinable relationship, and joining methods based on his/her own knowledge, but some combinations May be specified. In that case, the worker may input a plurality of tables to the input unit 2 together with the information indicating the combinations that can be determined by the worker.
  • step S6 in step S6 (see FIG. 2 ), step S13 (see FIG. 3 ), and step S19 (see FIG. 4 ), the identifying unit 3 already determines that the other columns are different from each other. It is only necessary to exclude columns that are determined to have a connectable relationship between them from being selected. Then, the identifying unit 3 may handle the column excluded from the selection target in step S6 as the column already selected in step S6 in step S9 (see FIG. 3). Similarly, the identifying unit 3 may handle the column excluded from the selection target in step S13 as the column already selected in step S13 in step S16 (see FIG. 4). Similarly, the identifying unit 3 may handle the column excluded from the selection target in step S19 as the column selected in step S19 in step S22 (see FIG. 4).
  • FIG. 1 Another modification of the first embodiment is shown in FIG.
  • the same components as those shown in FIG. 1 are designated by the same reference numerals as those in FIG.
  • the information providing system 1 includes a column type estimation unit 7 in addition to the elements shown in FIG.
  • a column type meaning of column
  • the column type does not have to be assigned to each column of each table input to the input unit 2.
  • the column type estimation unit 7 estimates the column type for each column of each table input to the input unit 2 based on the attribute value included in the column, and adds the estimated type to the column. Do (assign).
  • the column type estimation unit 7 is input to the input unit 2 before the first execution of step S2.
  • the column type may be estimated based on the attribute value included in the column, and the estimated type may be added to the column.
  • the identifying unit 3 may execute the process from step S2 onward by referring to the column type added to each column of each table by the column type estimating unit 7.
  • a known method may be used as a method for the column type estimation unit 7 to estimate the type of each column based on the attribute value included in the column.
  • the column type estimation unit 7 estimates the type of each column by using the column meaning estimation method described in Non-Patent Document 1 or the column meaning estimation method described in Patent Document 1. Good.
  • the column type estimation unit 7 may replace the type with “None”.
  • the column type estimation unit 7 is realized by, for example, a CPU of a computer that operates according to an information providing program.
  • the CPU may read the information providing program from a program recording medium such as a program storage device of a computer and operate as the column type estimating unit 7, the identifying unit 3, and the display control unit 6 according to the information providing program.
  • Embodiment 2 As one modification of the first embodiment, in a plurality of input tables, a combination of a predetermined pair of tables to be joined, a pair of columns in a joinable relationship, and a joining method. Explained that there may be.
  • the information providing system presents a combination of a pair of tables to be joined, a pair of columns in a joinable relationship, and a joining method to the worker, and further, according to the operation of the worker. And add such combinations.
  • FIG. 13 is a block diagram showing an example of an information providing system according to the second embodiment of the present invention.
  • the same components as those shown in FIG. 1 are designated by the same reference numerals as those in FIG.
  • the information providing system 1 of the second embodiment includes an information adding unit 9 in addition to the elements shown in FIG.
  • step S1 see FIG. 2
  • step S24 see FIG. 5
  • the operations from step S1 (see FIG. 2) to step S24 (see FIG. 5) described in the first embodiment are the same in the second embodiment.
  • the display control unit 6 allows the operator to add a combination of a pair of tables to be joined, a pair of columns in a joinable relationship, and a joining method in step S24. (Graphical User Interface) is displayed together with each combination (a pair of tables to be joined, a pair of columns in a joinable relationship, and a joining method) identified by the identifying unit 3.
  • the information adding unit 9 accepts a combination of a pair of tables to be joined, a pair of columns in a joinable relationship, and a joining method in accordance with an operation of the GUI by an operator, and the combination is stored in the storage unit 4 Memorize.
  • the display control unit 6 When the information adding unit 9 causes the storage unit 4 to store the new combination, the display control unit 6 also reads the combination, and the pairs of tables included in the combination and the columns that are in a combinable relationship. The pair and the coupling method are additionally displayed on the display device 5.
  • FIG. 14 is a schematic diagram showing an example of a screen including the GUI displayed in step S24.
  • the display control unit 6 displays the screen illustrated in FIG. 14 on the display device 5 in step S24.
  • the screen shown in FIG. 14 includes a pull-down menu 51 and a decision button 52. Display contents other than the pull-down menu 51 and the determination button 52 are the same as the display contents illustrated in FIG. 10. However, each column of each table shown in FIG. 14 can be designated by an operation such as a mouse click.
  • the pull-down menu 51 is used by the operator to specify the joining method of tables such as “Similarity-Join”, “Temporal-Join”, and “Spatial-Join”.
  • the operator designates two columns (pairs of columns) belonging to different tables by an operation such as a mouse click. Further, the pull-down menu 51 specifies the connection method between the table to which one of the two columns belongs and the table to which the other of the two columns belongs by the worker. Then, the operator clicks the enter button 52 with the mouse. Then, the information adding unit 9 defines a table to which one of the two specified columns belongs and a table to which the other of the two columns belongs as a pair of tables to be combined. Further, the information adding unit 9 defines the two designated columns as a pair of columns having a connectable relationship. Then, the information adding unit 9 adds to the storage unit 4 a combination of a pair of tables to be joined, a pair of columns having a joinable relationship, and a joining method designated by the pull-down menu 51.
  • the display control unit 6 also reads the combination and can combine with the pair of tables to be combined, which is included in the combination.
  • the pair of columns having such a relationship and the joining method are additionally displayed on the display device 5.
  • the information adding unit 9 is realized by, for example, a CPU of a computer that operates according to an information providing program.
  • the CPU may read the information providing program from a program recording medium such as a program storage device of a computer and operate as the identifying unit 3, the display control unit 6, and the information adding unit 9 according to the information providing program.
  • the worker provides the information providing system 1 with a combination of a pair of tables to be joined, a pair of columns in a joinable relationship, and a joining method according to his/her own judgment. Can be added to.
  • FIG. 15 is a schematic block diagram showing a configuration example of a computer according to the information providing system 1 of each embodiment of the present invention.
  • the computer 1000 includes a CPU 1001, a main storage device 1002, an auxiliary storage device 1003, an interface 1004, a display device 1005, and an input device 1006.
  • the information providing system 1 of each of the embodiments of the present invention and its modification is realized by a computer 1000.
  • the operation of the information providing system 1 is stored in the auxiliary storage device 1003 in the form of an information providing program.
  • the CPU 1001 reads the information providing program from the auxiliary storage device 1003, expands it in the main storage device 1002, and executes the processing described in each of the above embodiments and various modifications according to the information providing program.
  • the auxiliary storage device 1003 is an example of a non-transitory tangible medium.
  • a non-transitory tangible medium a magnetic disk, a magneto-optical disk, a CD-ROM (Compact Disk Read Only Memory), a DVD-ROM (Digital Versatile Disk Read Only Memory) connected via the interface 1004, A semiconductor memory etc. are mentioned. Further, when this program is distributed to the computer 1000 via a communication line, the computer 1000 that has received the distribution may expand the program in the main storage device 1002 and execute the above processing.
  • the program may be for realizing a part of the above-mentioned processing. Further, the program may be a difference program that realizes the above-described processing in combination with another program already stored in the auxiliary storage device 1003.
  • constituent elements may be realized by a general-purpose or dedicated circuit, a processor, or a combination thereof. These may be configured by a single chip, or may be configured by a plurality of chips connected via a bus. Some or all of the constituent elements may be realized by a combination of the above-described circuits and the like and a program.
  • the plurality of information processing devices, circuits, etc. may be centrally arranged or distributed.
  • the information processing device, the circuit, and the like may be realized as a form in which a client and server system, a cloud computing system, and the like are connected to each other via a communication network.
  • FIG. 16 is a block diagram showing an example of the outline of the information providing system of the present invention.
  • the information providing system of the present invention includes an input unit 81, a specifying unit 82, and an output unit 83.
  • the input unit 81 receives inputs from a plurality of tables.
  • the specifying unit 82 (for example, the specifying unit 3 in the embodiment) specifies a pair of columns that have a joinable relationship, and specifies that the pair of tables to which the individual columns forming the pair belong is a pair of tables to be joined. And specify the joining method of the joined tables.
  • the output unit 83 (for example, the display control unit 6 in the embodiment) outputs the pair of tables to be joined, the pair of columns in a joinable relationship, and the joining method of the joined tables.
  • the identifying unit 82 identifies a pair of columns that have a joinable relationship based on the type of each column of each table, and identifies the pair of tables to which the paired individual columns belong.
  • the configuration may be such that it is identified as a pair and the joining method of the joined tables is identified.
  • the specifying unit 82 is an attribute value indicating that it is a pair of columns belonging to different tables and corresponds to one row of an arbitrary table and has a property as a primary key.
  • the pair of columns is identified as a pair of columns having a connectable relationship to form a pair.
  • the joining method of the joined tables is specified as Similarity-Join, and it is a pair of columns that belong to different tables,
  • the pair of columns is specified as a column pair having a joinable relationship, and a table to which the individual columns forming the pair belong Is a pair of tables to be joined, and the joining method of the joined tables is Temporal-Join. It is a pair of columns belonging to different tables and has a type "location”.
  • a pair of columns is specified as a pair of columns having a joinable relationship, the pair of tables to which the individual columns forming the pair belong is identified as the pair of tables to be joined, and the joining method of the joined tables May be specified as Spatial-Join.
  • a plurality of tables in which the column type is assigned to each column in advance may be input to the input unit 81.
  • a column type estimation unit (for example, the column type estimation unit 7) that estimates the column type for each column of each table input to the input unit 81.
  • a pair of tables to be joined After a pair of tables to be joined, a pair of columns having a joinable relationship, and a joining method of the joined tables are output, a pair of tables to be joined, depending on a user operation, It may be configured to include an information adding unit (for example, the information adding unit 9) that adds a pair of columns that have a joinable relationship and a joining method of the tables to be joined.
  • an information adding unit for example, the information adding unit 9 that adds a pair of columns that have a joinable relationship and a joining method of the tables to be joined.
  • the present invention is preferably applied to an information providing system that provides a worker with information related to work for joining tables.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

専門的知識が少ない作業者であっても複数のテーブルを結合する作業を円滑に進められるように、テーブルを結合する作業に有用な情報を作業者に提供することができる情報提供システムを提供する。入力部81は、複数のテーブルの入力を受け付ける。特定部82は、結合可能な関係にある列のペアを特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する。出力部83は、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とを出力する。

Description

情報提供システム、方法およびプログラム
 本発明は、テーブルを結合する作業に関する情報を作業者(ユーザ)に提供する情報提供システム、情報提供方法および情報提供プログラムに関する。
 非特許文献1には、オントロジを用いて、テーブルの列の意味を推定する技術が記載されている。
 テーブルの列の意味を推定する技術は、特許文献1にも記載されている。
 また、特許文献2には、テーブル形式のデータの結合処理を行うシステムが記載されている。
国際公開第2018/025706号 再表2015/025386号公報
Petros Venetis,外7名,"Recovering Semantics of Tables on the Web",[2016年7月20日検索]、インターネット<URL: http://www.vldb.org/pvldb/vol4/p528-venetis.pdf>
 データ分析では、データの分析に必要なデータ整形に多くの時間が充てられている。具体的には、与えられた複数のテーブルを結合する作業に多くの時間が充てられている。
 与えられた複数のテーブルを結合する作業には、多くの専門的知識が必要であり、そのため、その作業には多くのエキスパートが必要になる。
 そこで、本発明は、専門的知識が少ない作業者(ユーザ)であっても複数のテーブルを結合する作業を円滑に進められるように、テーブルを結合する作業に有用な情報を作業者に提供することができる情報提供システム、情報提供方法および情報提供プログラムを提供することを目的とする。
 本発明による情報提供システムは、複数のテーブルが入力される入力部と、結合可能な関係にある列のペアを特定し、そのペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する特定部と、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とを出力する出力部とを備えることを特徴とする。
 本発明による情報提供方法は、コンピュータが、複数のテーブルの入力を受け付け、結合可能な関係にある列のペアを特定し、そのペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定し、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とを出力することを特徴とする。
 本発明による情報提供プログラムは、複数のテーブルが入力される入力部を備えるコンピュータに搭載される情報提供プログラムであって、コンピュータに、結合可能な関係にある列のペアを特定し、そのペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する特定処理、および、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とを出力する出力処理を実行させることを特徴とする。
 本発明によれば、専門的知識が少ない作業者であっても複数のテーブルを結合する作業を円滑に進められるように、テーブルを結合する作業に有用な情報を作業者に提供することができる。
本発明の第1の実施形態の情報提供システムの例を示すブロック図である。 第1の実施形態の情報提供システムの処理経過の例を示すフローチャートである。 第1の実施形態の情報提供システムの処理経過の例を示すフローチャートである。 第1の実施形態の情報提供システムの処理経過の例を示すフローチャートである。 第1の実施形態の情報提供システムの処理経過の例を示すフローチャートである。 入力されるテーブルの例を示す模式図である。 入力されるテーブルの例を示す模式図である。 入力されるテーブルの例を示す模式図である。 入力されるテーブルの例を示す模式図である。 ステップS24で表示制御部6がディスプレイ装置5に表示する情報の例を示す模式図である。 図6から図9までに示す各テーブルを、図10が示す情報に従って結合した結果を示す模式図である。 第1の実施形態の変形例のうちの1つを示すブロック図である。 本発明の第2の実施形態の情報提供システムの例を示すブロック図である。 第2の実施形態において、ステップS24で表示されるGUIを含む画面の例を示す模式図である。 本発明の各実施形態の情報提供システムに係るコンピュータの構成例を示す概略ブロック図である。 本発明の情報提供システムの概要の例を示すブロック図である。
 以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
 図1は、本発明の第1の実施形態の情報提供システムの例を示すブロック図である。本発明の情報提供システム1は、入力部2と、特定部3と、記憶部4と、ディスプレイ装置5と、表示制御部6とを備える。
 入力部2は、複数のテーブルが入力される入力デバイスである。例えば、入力部2は、光磁気ディスク等のデータ記録媒体から、データ記録媒体に記録されている複数のテーブルを読み込むデータ読み込み装置であってもよい。
 本実施形態では、入力部2に入力される個々のテーブルの個々の列には、予め、列の種別(列の意味)が割り当てられているものとする。なお、列の種別は、列名とは別に定められる。また、テーブルに列名が含まれていなくてもよい。列の種別は、例えば、作業者(ユーザ)または外部の情報処理装置が、各テーブルを情報提供システム1に入力する前に定めておけばよい。
 列の種別として、少なくとも、「Entity-Identifier 」、「時間」および「場所」という種別があるものとする。本実施形態では、列の種別が、「Entity-Identifier 」、「時間」、「場所」および「None」の4種類である場合を例にして説明する。そして、個々のテーブルの個々の列には、予め、「Entity-Identifier 」、「時間」、「場所」および「None」のうちのいずれかの種別が定められているものとする。ただし、上記の4種類以外の種別が存在していてもよい。
 種別「Entity-Identifier 」は、任意のテーブルの1行に対応していることを示す属性値であって主キーとしての性質を備えている属性値からなる列を表わす。以下、種別「Entity-Identifier 」を、「Entity-ID 」と記す。
 種別「時間」は、個々の属性値が、日付、時刻、または日時である列を表わす。以下、種別「時間」を、「Time」と記す。
 種別「場所」は、個々の属性値が、場所または位置である列を表わす。以下、種別「場所」を、「Space 」と記す。
 種別「None」は、「Entity-ID 」、「Time」および「Space 」のいずれにも該当しない列を表わす。
 特定部3は、入力された複数のテーブルを参照し、結合可能な関係にある列のペアを特定し、そのペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、さらに、結合されるテーブルの結合方法を特定する。
 特定部3によって特定される、結合されるテーブルのペア、結合可能な関係にある列のペア、およびそのテーブルの結合方法の組み合わせは、1つとは限らず、複数の組み合わせが特定部3によって特定されてもよい。
 なお、結合可能な関係にある列のペアに基づいて、ペアをなすテーブルを結合する結合方法として、「Similarity-Join 」、「Temporal-Join 」、「Spatial-Join」等がある。これらの結合方法の例については、後述する。
 記憶部4は、特定部3によって特定される、結合されるテーブルのペア、結合可能な関係にある列のペア、およびそのテーブルの結合方法の組み合わせを記憶する記憶装置である。
 表示制御部6は、特定部3によって特定される、結合されるテーブルのペア、結合可能な関係にある列のペア、およびそのテーブルの結合方法を、ディスプレイ装置5に表示する。
 特定部3および表示制御部6は、例えば、情報提供プログラムに従って動作するコンピュータのCPU(Central Processing Unit )によって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体から情報提供プログラムを読み込み、その情報提供プログラムに従って、特定部3および表示制御部6として動作すればよい。
 次に、本実施形態の処理経過について説明する。図2、図3、図4および図5は、本実施形態の情報提供システム1の処理経過の例を示すフローチャートである。以下では、説明を簡単にするために、1つのテーブル内に種別が「Time」である列は最大で1つ存在し、同様に、1つのテーブル内に種別が「Space 」である列は最大で1つ存在する場合を例にして説明する。また、1つのテーブル内における種別が「Entity-ID 」である列の数は、特に限定されない場合を例にして説明する。
 まず、入力部2は、複数のテーブルの入力を受け付ける(ステップS1)。入力される個々のテーブルの個々の列には、予め、列の種別が割り当てられている。本例では、ステップS1で、図6、図7、図8および図9に示す各テーブルが入力される場合を例にして説明する。
 図6に示すテーブル21は、種別が「Entity-ID 」である列を2つ含み、種別が「Time」である列を1つ含み、種別が「None」である列を1つ含んでいる。
 図7に示すテーブル22は、種別が「Entity-ID 」である列を1つ含み、種別が「None」である列を1つ含んでいる。
 図8に示すテーブル23は、種別が「Entity-ID 」である列を1つ含み、種別が「Space 」である列を1つ含み、種別が「None」である列を1つ含んでいる。
 図9に示すテーブル24は、種別が「Space 」である列を1つ含み、種別が「Time」である列を1つ含み、種別が「None」である列を2つ含んでいる。
 ステップS1の次に、特定部3は、ステップS1で入力された複数のテーブルのうち、未選択のテーブルを1つ選択する(ステップS2)。選択されているテーブルを、以下、選択テーブルと記す。ここでは、ステップS2で、特定部3が、テーブル21(図6参照)を選択した場合を例にして説明する。すなわち、選択テーブルが、テーブル21である場合を例にして説明する。
 ステップS2の次に、特定部3は、選択テーブル内に、種別が「Entity-ID 」である列が存在するか否かを判定する(ステップS3)。選択テーブル内に、種別が「Entity-ID 」である列が存在しない場合(ステップS3のNo)、後述のステップS11(図3参照)に移行する。また、選択テーブル内に、種別が「Entity-ID 」である列が存在する場合、ステップS4に移行する。本例では、選択テーブル(図6に示すテーブル21)は、種別が「Entity-ID 」である列を含んでいる。従って、ステップS4に移行する。
 ステップS4において、特定部3は、選択テーブルから、種別が「Entity-ID 」である列を1つ選択する。このとき、特定部3は、ステップS4で既に選択済みの列は、選択対象から除外する。ここでは、特定部3は、図6に示すテーブル21から、列名が「店名」である列を選択したものとして説明する。
 次に、特定部3は、選択テーブル以外の各テーブルの各列の中から、種別が「Entity-ID 」である列を特定する(ステップS5)。選択テーブル以外の各テーブルの各列の中に、種別が「Entity-ID 」である列が複数存在するならば、特定部3は、その複数の列を全て特定する。本例では、特定部3は、ステップS5において、テーブル22(図7参照)内の列名が「商品名」である列と、テーブル23(図8参照)内の列名が「店名」である列とを特定する。
 次に、特定部3は、ステップS5で特定した列の中から、未選択の列を1つ選択する(ステップS6)。ここでは、テーブル23内の列名が「店名」である列を選択した場合を例にして説明する。
 次に、特定部3は、ステップS4で選択した列と、ステップS6で選択した列とが、結合可能な関係にあるか否かを判定する(ステップS7)。
 ステップS7において、特定部3は、例えば、ステップS4で選択した列に含まれる個々の属性値と、ステップS6で選択した列に含まれる個々の属性値との組み合わせ毎に、属性値同士の編集距離を算出する。そして、特定部3は、編集距離が閾値以下となる属性値の組み合わせの個数が予め定めた所定の個数以上であるならば、2つの列が結合可能な関係にあると判定すればよい。また、特定部3は、編集距離が閾値以下となる属性値の組み合わせの個数が予め定めた所定の個数未満であるならば、2つの列が結合可能な関係にないと判定すればよい。上記の閾値や所定の個数は、予め設定しておけばよい。
 なお、ステップS7において、種別が「Entity-ID 」である2つ列が結合可能な関係にあるか否かを判定する方法(換言すれば、種別が「Entity-ID 」である2つ列が結合可能な関係にあると判定するための条件)は、上記の例に限定されない。特定部3は、ステップS7において、他の方法で、2つ列が結合可能な関係にあるか否かを判定してもよい。
 2つの列が結合可能な関係にあると判定した場合(ステップS7のYes)、ステップS8に移行する。また、2つの列が結合可能な関係にないと判定した場合(ステップS7のNo)、ステップS9(図3参照)に移行する。
 本例では、ステップS4で選択した列(テーブル21(図6参照)内の列名が「店名」である列)と、ステップS6で選択した列(テーブル23(図8参照)内の列名が「店名」である列)とは、いずれも店名を属性値とする。従って、編集距離が閾値以下となる属性値の組み合わせの個数が所定の個数以上であり、特定部3が、その2つの列が結合可能な関係にあると判定した場合を例にする(ステップS7のYes)。
 この場合、ステップS8に移行し、特定部3は、ステップS8で、選択テーブル(本例では、図6に示すテーブル21)と、ステップS6で選択した列を含むテーブル(本例では、図8に示すテーブル23)とを、「Similarity-Join 」で結合すると定める(ステップS8)。
 ステップS7,S8の過程で特定したテーブルのペアは、結合されるテーブルのペアである。特定部3は、ステップS8において、結合されるテーブルのペア(本例では、テーブル21,23のペア)と、結合可能な関係にある列のペア(本例では、テーブル21内の列名が「店名」である列と、テーブル23内の列名が「店名」である列とのペア)と、結合方法(本例では、「Similarity-Join 」)との組み合わせを、記憶部4に記憶させる。
 ステップS8の後、ステップS9(図3参照)に移行する。ステップS9で、特定部3は、ステップS5で特定した列が全て選択済みであるか否かを判定する。ステップS5で特定した列が全てステップS6で選択されているならば(ステップS9のYes)、ステップS10に移行する。また、ステップS5で特定した列のうち、まだステップS6で選択されていない列が存在するならば(ステップS9のNo)、特定部3は、ステップS6以降の処理を繰り返す。
 本例では、まだ、テーブル22(図7参照)内の列名が「商品名」である列がステップS6で選択されていない。従って、ステップS6に移行し、特定部3は、ステップS6で、テーブル22内の列名が「商品名」である列を選択する。
 そして、特定部3は、ステップS4で選択した列と、ステップS6で選択した列とが、結合可能な関係にあるか否かを判定する(ステップS7)。ステップS4で選択した列(テーブル21(図6参照)内の列名が「店名」である列)は、店名を属性値とする列である。一方、ステップS6で選択された列(テーブル22内の列名が「商品名」である列)は、商品名を属性値とする列である。従って、編集距離が閾値以下となる属性値の組み合わせの個数が所定の個数未満であり、特定部3が、その2つの列が結合可能な関係にないと判定した場合を例にする(ステップS7のNo)。
 この場合、ステップS8は実行されずに、ステップS9に移行する。ここでは、ステップS5で特定された2つの列はいずれもステップS6で選択済みである。従って、特定部3は、ステップS5で特定した列が全て選択済みであると判定し(ステップS9のYes)、ステップS10に移行する。
 ステップS10において、特定部3は、選択テーブル内の種別が「Entity-ID 」である列が全て選択済みであるか否かを判定する。選択テーブル内の種別が「Entity-ID 」である列が全てステップS4で選択されているならば(ステップS10のYes)、ステップS11に移行する。また、選択テーブル内の種別が「Entity-ID 」である列のうち、まだステップS4で選択されていない列が存在するならば(ステップS10のNo)、特定部3は、ステップS4以降の処理を繰り返す。
 本例では、まだ、選択テーブルに該当するテーブル21において、列名が「商品名」である列がステップS4で選択されていない。従って、ステップS4に移行し、特定部3は、ステップS4で、テーブル21内の列名が「商品名」である列を選択する。ステップS4~S10の処理については、既に説明したので、ここでは詳細な説明を省略する。なお、ここでは、ステップS6で、テーブル22(図7参照)内の列名が「商品名」である列が選択された場合、特定部3は、ステップS7,S8を順次、実行する。そして、特定部3は、ステップS8において、結合されるテーブルのペア(本例では、テーブル21,22のペア)と、結合可能な関係にある列のペア(本例では、テーブル21内の列名が「商品名」である列と、テーブル22内の列名が「商品名」である列とのペア)と、結合方法(本例では、「Similarity-Join 」)との組み合わせを、記憶部4に記憶させる。
 再度、ステップS10に移行した時点では、テーブル21内の種別が「Entity-ID 」である列が全て選択済みになっている(ステップS10のYes)。従って、ステップS11に移行する。
 ステップS11において、特定部3は、選択テーブル内に、種別が「Time」である列が存在するか否かを判定する。選択テーブル内に、種別が「Time」である列が存在しない場合(ステップS11のNo)、後述のステップS17(図4参照)に移行する。また、選択テーブル内に、種別が「Time」である列が存在する場合(ステップS11のYes)、ステップS12に移行する。本例では、選択テーブル(図6に示すテーブル21)は、種別が「Time」である列を含んでいる。従って、ステップS12に移行する。
 ステップS12において、特定部3は、選択テーブル以外の各テーブルの各列の中から、種別が「Time」である列を特定する。選択テーブル以外の各テーブルの各列の中に、種別が「Time」である列が複数存在するならば、特定部3は、その複数の列を全て特定する。本例では、特定部3は、ステップS12において、テーブル24(図9参照)内の列名が「日時」である列を特定する。すなわち、本例では、ステップS12で1つの列が特定される。
 次に、特定部3は、ステップS12で特定した列の中から、未選択の列を1つ選択する(ステップS13)。本例では、特定部3は、テーブル24内の列名が「日時」である列を選択する。
 次に、特定部3は、選択テーブル内に存在する種別が「Time」である列と、ステップS13で選択した列とが結合可能な関係にあるか否かを判定する(ステップS14)。
 ステップS14では、特定部3は、種別が「Time」である2つ列が結合可能な関係にあるか否かを判定する。この判定の例を以下に示す。特定部3は、例えば、種別が「Time」である2つ列がいずれも時刻のみ(日付は含まない。)を属性値とする場合、または、種別が「Time」である2つ列がいずれも日付(時刻まで含んでいてもよい。)を属性値とする場合に、2つ列が結合可能な関係にあると判定すればよい(ステップS14のYes)。そして、その他の場合には、特定部3は、2つ列が結合可能な関係にないと判定すればよい(ステップS14のNo)。例えば、種別が「Time」である2つ列の一方が、時刻のみ(日付は含まない。)を属性値とし、他方が日付のみを属性値とする場合には、特定部3は、2つ列が結合可能な関係にないと判定する。
 本例では、選択テーブル内に存在する種別が「Time」である列(テーブル21内の列名が「日時」である列)、および、ステップS13で選択された列(テーブル24内の列名が「日時」である列)は、いずれも、日付を属性値としている(図6、図9参照)。従って、本例では、ステップS14において、特定部3は、種別が「Time」である2つ列が結合可能な関係にあると判定する(ステップS14のYes)。
 なお、ステップS14において、種別が「Time」である2つ列が結合可能な関係にあるか否かを判定する方法(換言すれば、種別が「Time」である2つ列が結合可能な関係にあると判定するための条件)は、上記の例に限定されない。特定部3は、ステップS14において、他の方法で、2つ列が結合可能な関係にあるか否かを判定してもよい。
 ステップS14で2つ列が結合可能な関係にないと判定された場合(ステップS14のNo)、後述のステップS16(図4参照)に移行する。ステップS14で2つ列が結合可能な関係にあると判定された場合(ステップS14のYes)、ステップS15(図4参照)に移行する。本例では、ステップS15に移行する。
 ステップS15において、特定部3は、選択テーブル(本例では、テーブル21)と、ステップS13で選択した列を含むテーブル(本例では、図9に示すテーブル24)とを、「Temporal-Join 」で結合すると定める。
 ステップS14,S15の過程で特定したテーブルのペアは、結合されるテーブルのペアである。特定部3は、ステップS15において、結合されるテーブルのペア(本例では、テーブル21,24のペア)と、結合可能な関係にある列のペア(本例では、テーブル21内の列名が「日時」である列と、テーブル24内の列名が「日時」である列とのペア)と、結合方法(本例では、「Temporal-Join 」)との組み合わせを、記憶部4に記憶させる。
ステップS15の後、ステップS16に移行する。ステップS16で、特定部3は、ステップS12で特定した列が全て選択済みであるか否かを判定する。ステップS12で特定した列が全てステップS13で選択されているならば(ステップS16のYes)、ステップS17に移行する。また、ステップS12で特定した列のうち、まだステップS13で選択されていない列が存在するならば(ステップS16のNo)、特定部3は、ステップS13以降の処理を繰り返す。
 本例では、ステップS12で1つの列のみ(テーブル24内の列名が「日時」である列)が特定され、その列がステップS13で選択されている(ステップS16のYes)。従って、ステップS17に移行する。
 なお、ここでは、説明を簡単にするために、1つのテーブル内に種別が「Time」である列は最大で1つ存在する場合を例にしている。選択テーブル内に種別が「Time」である列が2以上存在する場合には、特定部3は、その列毎に、ステップS12~S16の処理を実行すればよい。
 ステップS17において、特定部3は、選択テーブル内に、種別が「Space 」である列が存在するか否かを判定する。選択テーブル内に、種別が「Space 」である列が存在しない場合(ステップS17のNo)、ステップS23(図5参照)に移行する。また、選択テーブル内に、種別が「Space 」である列が存在する場合(ステップS17のYes)、ステップS18(図4参照)に移行する。
 本例では、選択テーブルに該当するテーブル21内に、種別が「Space 」である列は存在しないので(ステップS17のNo)、ステップS23に移行する。ステップS18に移行する場合の処理については、後述する。
 ステップS23において、特定部3は、ステップS1で入力されたテーブルが全て選択済みであるか否かを判定する。入力されたテーブルが全てステップS2で選択されているならば(ステップS23のYes)、ステップS24に移行する。また、入力されたテーブルのうち、まだステップS2で選択されていないテーブルが存在するならば(ステップS23のNo)、特定部3は、ステップS2以降の処理を繰り返す。
 本例では、特定部3は、まだテーブル22,23,24を選択していない。従って、特定部3は、ステップS2以降の処理を繰り返す。以下、ステップS23からステップS2に移行し、特定部3が、ステップS2において、テーブル23(図8参照)を選択する場合を例にして説明する。このステップS2以降では、テーブル23が選択テーブルに該当する。
 ステップS2の後、ステップS3で、特定部3は、選択テーブル(テーブル23)内に、種別が「Entity-ID 」である列が存在すると判定する(ステップS3のYes)。従って、特定部3は、ステップS4以降の処理を実行する。ステップS4~S10のループ処理については既に説明したので、ここでは説明を省略する。
 ステップS10(図3参照)で、選択テーブル内の種別が「Entity-ID 」である列が全て選択済みであると判定された場合(ステップS10のYes)、ステップS11に移行する。ステップS11で、特定部3は、選択テーブル内に、種別が「Time」である列が存在するか否かを判定する。本例では、選択テーブル(テーブル23)内に、種別が「Time」である列は存在しないので(ステップS11のNo)、ステップS17(図4参照)に移行する。
 ステップS17で、特定部3は、選択テーブル(テーブル23)内に、種別が「Space 」である列が存在するか否かを判定する。本例では、テーブル23内に、種別が「Space 」である列が存在する(ステップS17のYes)。従って、ステップS18に移行する。
 ステップS18において、特定部3は、選択テーブル以外の各テーブルの各列の中から、種別が「Space 」である列を特定する。選択テーブル以外の各テーブルの各列の中に、種別が「Space 」である列が複数存在するならば、特定部3は、その複数の列を全て特定する。本例では、特定部3は、ステップS18において、テーブル24(図9参照)内の列名が「都道府県」である列を特定する。すなわち、本例では、ステップS18で1つの列が特定される。
 次に、特定部3は、ステップS18で特定した列の中から、未選択の列を1つ選択する(ステップS19)。本例では、特定部3は、テーブル24内の列名が「都道府県」である列を選択する。
 次に、特定部3は、選択テーブル内に存在する種別が「Space 」である列(本例では、テーブル23内の列名が「住所」である列)と、ステップS19で選択した列(本例では、テーブル24内の列名が「都道府県」である列)とが、結合可能な関係にあると定める(ステップS20)。
 次に、特定部3は、選択テーブル(本例では、テーブル23)と、ステップS19で選択した列を含むテーブル(本例では、テーブル24)とを、「Spatial-Join」で結合すると定める(ステップS21)。
 ステップS20,S21の過程で特定したテーブルのペアは、結合されるテーブルのペアである。特定部3は、ステップS21において、結合されるテーブルのペア(本例では、テーブル23,24のペア)と、結合可能な関係にある列のペア(本例では、テーブル23内の列名が「住所」である列と、テーブル24内の列名が「都道府県」である列とのペア)と、結合方法(本例では、「Spatial-Join」)との組み合わせを、記憶部4に記憶させる。
 ステップS21の後、ステップS22に移行する。ステップS22では、特定部3は、ステップS18で特定した列が全て選択済みであるか否かを判定する。ステップS18で特定した列が全てステップS19で選択されているならば(ステップS22のYes)、ステップS23(図5参照)に移行する。ステップS18で特定した列のうち、まだステップS19で選択されていない列が存在するならば(ステップS22のNo)、特定部3は、ステップS19以降の処理を繰り返す。
 本例では、ステップS18で1つの列のみ(テーブル24内の列名が「都道府県」である列)が特定され、その列がステップS19で選択されている(ステップS22のYes)。従って、ステップS23に移行する。
 なお、ここでは、説明を簡単にするために、1つのテーブル内に種別が「Space 」である列は最大で1つ存在する場合を例にしている。選択テーブル内に種別が「Space 」である列が2以上存在する場合には、特定部3は、その列毎に、ステップS18~S22の処理を実行すればよい。
 既に説明したように、ステップS23において、特定部3は、ステップS1で入力されたテーブルが全て選択済みであるか否かを判定する。入力されたテーブルのうち、まだステップS2で選択されていないテーブルが存在するならば(ステップS23のNo)、特定部3は、ステップS2以降の処理を繰り返す。本例では、まだ、テーブル22,24が選択されていない。従って、特定部3は、ステップS2でテーブル22を選択し、ステップS3以降の処理を繰り返す。再度、ステップS2に移行した場合、特定部3は、テーブル24を選択し、ステップS3以降の処理を繰り返す。
 ステップS23において、特定部3が、ステップS1で入力されたテーブルが全て選択済みであると判定すると(ステップS23のYes)、ステップS24に移行する。
 ステップS24では、表示制御部6が、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを記憶部4から読み込む。そして、表示制御部6は、記憶部4から読み込んだ各組み合わせに基づいて、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを、それぞれ、ディスプレイ装置5に表示する。
 図10は、ステップS24で表示制御部6がディスプレイ装置5に表示する情報の例を示す模式図である。表示制御部6は、例えば、入力された各テーブルをディスプレイ装置5に表示する。さらに、表示制御部6は、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせ毎に、結合可能な関係にある列同士を結ぶ線を、ディスプレイ装置5に表示し、その線の近傍に、組み合わせに含まれている結合方法を表示する(図10参照)。結合可能な関係にある列同士を線で結んだ場合、その列が属するテーブル同士も線で結ばれることになる。従って、図10に示す例では、表示制御部6は、結合可能な関係にある列同士を結ぶ線をディスプレイ装置5に表示することによって、結合可能な関係にある列のペアを表示するとともに、その列のペアに基づいて結合されるテーブルのペアも表示していることになる。図10に示す例では、その線の近傍に結合方法が表示される。
 従って、図10に例示する表示態様で、表示制御部6は、特定部3によって特定される、結合されるテーブルのペア、結合可能な関係にある列のペア、およびそのテーブルの結合方法を表示することができる。図10に示す例では、例えば、テーブル21,22が結合されるテーブルのペアであり、そのテーブル21,22を、テーブル21内の「商品名」の列とテーブル22内の「商品名」の列とに基づいて結合する場合の結合方法が「Similarity-Join 」であることを示している。ただし、表示制御部6による情報の表示態様は、図10に示す例に限定されない。
 なお、フローチャートに例示した処理の結果、1つの列が、複数の列との間で、結合可能な関係にあると定められてもよい。この場合、その1つの列から複数の列に延びる線が表示されることになる。
 本実施形態によれば、表示制御部6がディスプレイ装置5に、結合されるテーブルのペア、結合可能な関係にある列のペア、およびそのテーブルの結合方法を表示する。従って、本実施形態の情報提供システム1は、どのテーブルのどの列とどのテーブルのどの列とに基づいて、そのテーブル同士をどの方法で結合すればよいのかを、作業者(情報提供システム1のユーザ)に提示することができる。従って、専門的知識が少ない作業者であっても、複数のテーブルを結合する作業を円滑に進めることができる。すなわち、本実施形態によれば、データ分析のためにテーブルを結合する作業に有用な情報を作業者に提供することができる。
 以下に、「Similarity-Join 」、「Temporal-Join 」および「Spatial-Join」によるテーブルの結合処理の例を示す。ただし、以下に示す結合処理は例示であり、各結合処理は、以下に示す例に限定されない。また、本発明の情報提供システム1は、表示制御部6が作業者に提示した内容に従って、テーブルの結合処理を実行する結合部(図示略)を備えていてもよいが、そのような結合部を備えていなくてもよい。情報提供システム1がそのような結合部を備える場合、結合部は、例えば、情報提供プログラムに従って動作するコンピュータのCPUによって実現される。この場合、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体から情報提供プログラムを読み込み、その情報提供プログラムに従って、特定部3、表示制御部6および結合部として動作すればよい。
 また、情報提供システム1がそのような結合部を備えない構成の場合は、例えば、情報提供システム1以外の外部システムが作業者の指示に従って、テーブルを結合すれよい。このとき、作業者は、本発明の情報提供システム1が提供する情報(表示制御部6がディスプレイ装置5に表示する、図10に例示する情報)に基づいて、外部システムにテーブル結合に関する指示を与えればよい。
 結合可能な関係にある2つの列とともに、結合方法「Similarity-Join 」が定められている場合について説明する。一方の列(列Aとする。)における任意の属性値(属性値aとする。)と、他方の列(列Bとする。)における任意の属性値(属性値bとする。)との組であって、属性値同士の編集距離が閾値以下である組が特定されたとする。この場合、列Bを含むテーブルにおける属性値bを含むレコードを、列Aを含むテーブルにおける属性値aを含むレコードに追加すればよい。ここでは、属性値の編集距離を用いる場合を例示したが、単語分散表現を用いて、属性値の組を特定してもよい。例えば、属性値a,bそれぞれからword2vecによって得られるベクトル同士の距離を求め、その距離が閾値以下である組が特定されたとする。この場合に、上記のように、列Bを含むテーブルにおける属性値bを含むレコードを、列Aを含むテーブルにおける属性値aを含むレコードに追加してもよい。
 結合可能な関係にある2つの列とともに、結合方法「Temporal-Join 」が定められている場合について説明する。一方の列(列Aとする。)における任意の属性値(属性値aとする。)と、他方の列(列Bとする。)における任意の属性値(属性値bとする。)との組であって、属性値aを中心とする所定範囲内の時間帯と、属性値bを中心とする所定範囲内の時間帯とが重複する組が特定されたとする。この場合、列Bを含むテーブルにおける属性値bを含むレコードを、列Aを含むテーブルにおける属性値aを含むレコードに追加すればよい。
 結合可能な関係にある2つの列とともに、結合方法「Spatial-Join」が定められている場合について説明する。一方の列(列Aとする。)における任意の属性値(属性値aとする。)と、他方の列(列Bとする。)における任意の属性値(属性値bとする。)との組であって、属性値aから得られる座標(例えば、緯度および経度)と属性値bから得られる座標との距離が閾値以下である組が特定されたとする。この場合、列Bを含むテーブルにおける属性値bを含むレコードを、列Aを含むテーブルにおける属性値aを含むレコードに追加すればよい。なお、2つの座標間の距離として、例えば、ユークリッド距離やマンハッタン距離等を用いることができる。
 これらの結合処理は例示であり、「Similarity-Join 」、「Temporal-Join 」および「Spatial-Join」によるテーブルの結合処理は、上記の例に限定されない。
 前述の各テーブル21~24を、図10が示す情報に従って結合した結果を図11に示す。
 次に、本実施形態の変形例について説明する。以下に示す種々の変形例は、後述の第2の実施形態にも適用可能である。
 第1の実施形態で例示したフローチャートのステップS6(図2参照)、ステップS13(図3参照)、および、ステップS19(図4参照)において、特定部3は、既に他の列との間で結合可能な関係にあると定められている列を、選択対象から除外してもよい。この場合、特定部3は、既に他の列との間で結合可能な関係にあると定められていることによりステップS6で選択対象から除外した列を、ステップS9(図3参照)では、ステップS6で選択済みの列として扱う。同様に、特定部3は、ステップS13で選択対象から除外した列を、ステップS16(図4参照)では、ステップS13で選択済みの列として扱う。同様に、特定部3は、ステップS19で選択対象から除外した列を、ステップS22(図4参照)では、ステップS19で選択済みの列として扱う。このように、ステップS6,S13,S19において、既に他の列との間で結合可能な関係にあると定められている列を選択対象から除外することで、処理時間を短縮することができる。
 また、第1の実施形態で例示したフローチャートのステップS2(図2参照)において、特定部3は、既に他のテーブルと結合されると定められているテーブルを、選択対象から除外してもよい。この場合、特定部3は、既に他のテーブルと結合されると定められていることによりステップS2で選択対象から除外したテーブルを、ステップS23(図5参照)では、ステップS2で選択済みのテーブルとして扱う。このように、ステップS2において、既に他のテーブルと結合されると定められているテーブルを選択対象から除外することで、処理時間を短縮することができる。
 また、入力される複数のテーブルで、異なるテーブルに属する列のペアであって、結合可能な関係にあると予め定められている列のペアが存在し、その異なるテーブルの結合方法が予め定められていてもよい。すなわち、入力される複数のテーブルにおいて、既に定められた、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせが存在していてもよい。作業者は、作業者自身の持つ知識によって、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを全て定めることはできなくても、一部の組み合わせについては定められる場合がある。その場合、作業者は、作業者が定めることができた組み合わせを示す情報とともに、複数のテーブルを入力部2に入力すればよい。この場合、前述の変形例で説明したように、ステップS6(図2参照)、ステップS13(図3参照)、および、ステップS19(図4参照)において、特定部3は、既に他の列との間で結合可能な関係にあると定められている列を、選択対象から除外すればよい。そして、特定部3は、ステップS6で選択対象から除外した列を、ステップS9(図3参照)では、ステップS6で選択済みの列として扱えばよい。同様に、特定部3は、ステップS13で選択対象から除外した列を、ステップS16(図4参照)では、ステップS13で選択済みの列として扱えばよい。同様に、特定部3は、ステップS19で選択対象から除外した列を、ステップS22(図4参照)では、ステップS19で選択済みの列として扱えばよい。
 また、第1の実施形態の他の変形例を、図12に示す。図1に示す構成要素と同様の構成要素については、図1と同一の符号を付し、説明を省略する。
 図12に示す変形例では、情報提供システム1は、図1に示す各要素に加えて、列種別推定部7を備える。前述の第1の実施形態では、入力部2に入力される個々のテーブルの個々の列には、予め、列の種別(列の意味)が割り当てられている場合を説明した。本変形例では、入力部2に入力される個々のテーブルの個々の列に列の種別は割り当てられていなくてよい。
 列種別推定部7は、入力部2に入力された個々のテーブルの個々の列毎に、列に含まれる属性値に基づいて、列の種別を推定し、その列に、推定した種別を付加する(割り当てる)。本変形例では、ステップS1(図2参照)で入力部2に複数のテーブルが入力されたら、例えば、1回目のステップS2の実行前に、列種別推定部7が、入力部2に入力された個々のテーブルの個々の列毎に、列に含まれる属性値に基づいて、列の種別を推定し、その列に、推定した種別を付加すればよい。そして、特定部3は、列種別推定部7によって個々のテーブルの個々の列毎に付加された列の種別を参照することによって、ステップS2以降の処理を実行すればよい。
 列種別推定部7が個々の列の種別を、その列に含まれる属性値に基づいて推定する方法は公知の方法でよい。例えば、列種別推定部7は、非特許文献1に記載された列の意味の推定方法、または、特許文献1に記載された列の意味の推定方法で、個々の列の種別を推定してもよい。このとき、列の種別として、少なくとも、「Entity-ID 」、「Time」、「Space 」があるものとする。そして、列種別推定部7は、この3種類の種別以外の種別を推定結果として得た場合には、その種別を、「None」に置き換えればよい。
 列種別推定部7は、例えば、情報提供プログラムに従って動作するコンピュータのCPUによって実現される。この場合、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体から情報提供プログラムを読み込み、その情報提供プログラムに従って、列種別推定部7、特定部3および表示制御部6として動作すればよい。
実施形態2.
 第1の実施形態の変形例の1つとして、入力される複数のテーブルにおいて、既に定められた、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせが存在していてもよいことを説明した。
 第2の実施形態の情報提供システムは、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを作業者に提示し、さらに、作業者の操作に応じて、そのような組み合わせを追加する。
 図13は、本発明の第2の実施形態の情報提供システムの例を示すブロック図である。図1に示す構成要素と同様の構成要素については、図1と同一の符号を付し、説明を省略する。第2の実施形態の情報提供システム1は、図1に示す各要素に加えて、情報追加部9を備える。
 第1の実施形態で説明したステップS1(図2参照)からステップS24(図5参照)までの動作は、第2の実施形態でも同様である。
 ただし、本実施形態では、表示制御部6は、ステップS24において、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを作業者が追加するためのGUI(Graphical User Interface)を、特定部3によって特定された個々の組み合わせ(結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせ)とともに表示する。
 情報追加部9は、作業者によるそのGUIの操作に応じて、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを受け付け、その組み合わせを記憶部4に記憶させる。
 情報追加部9が記憶部4に新たな組み合わせを記憶させると、表示制御部6は、その組み合わせも読み込み、その組み合わせに含まれる、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法とを、ディスプレイ装置5に追加で表示する。
 図14は、ステップS24で表示されるGUIを含む画面の例を示す模式図である。第2の実施形態では、表示制御部6は、ステップS24で、図14に例示する画面をディスプレイ装置5に表示する。図14に示す画面は、プルダウンメニュー51および決定ボタン52を含む。プルダウンメニュー51および決定ボタン52以外の表示内容は、図10に例示する表示内容と同様である。ただし、図14に示す各テーブルの各列は、マウスクリック等の操作により、指定可能である。プルダウンメニュー51は、作業者が、「Similarity-Join 」、「Temporal-Join 」、「Spatial-Join」等のテーブルの結合方法を指定するために用いられる。
 情報追加部9が、作業者から追加情報を受け付ける動作の例を、図14を参照して説明する。作業者によって、マウスクリック等の操作で、互いに異なるテーブルに属する2つの列(列のペア)が指定される。さらに、作業者によって、その2つの列の一方が属するテーブルと、その2つの列のもう一方が属するテーブルとの接続方法がプルダウンメニュー51によって指定される。そして、作業者によって決定ボタン52がマウスクリックされる。すると、情報追加部9は、指定された2つの列の一方が属するテーブルと、その2つの列のもう一方が属するテーブルとを、結合されるテーブルのペアとして定める。さらに、情報追加部9は、指定された2つの列を、結合可能な関係にある列のペアとして定める。そして、情報追加部9は、結合されるテーブルのペアと、結合可能な関係にある列のペアと、プルダウンメニュー51によって指定された結合方法との組み合わせを、記憶部4に追加する。
 既に説明したように、情報追加部9が記憶部4に新たな組み合わせを記憶させると、表示制御部6は、その組み合わせも読み込み、その組み合わせに含まれる、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法とを、ディスプレイ装置5に追加で表示する。
 情報追加部9は、例えば、情報提供プログラムに従って動作するコンピュータのCPUによって実現される。この場合、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体から情報提供プログラムを読み込み、その情報提供プログラムに従って、特定部3、表示制御部6および情報追加部9として動作すればよい。
 第2の実施形態によれば、第1の実施形態と同様の効果が得られる。さらに、第2の実施形態では、作業者が、作業者自身の判断によって、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを、情報提供システム1に追加させることができる。
 また、前述のように、第1の実施形態の種々の変形例は、第2の実施形態にも適用可能である。
 図15は、本発明の各実施形態の情報提供システム1に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004と、ディスプレイ装置1005と、入力デバイス1006とを備える。
 本発明の各実施形態やその変形例の情報提供システム1は、コンピュータ1000によって実現される。情報提供システム1の動作は、情報提供プログラムの形式で補助記憶装置1003に記憶されている。CPU1001は、その情報提供プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、その情報提供プログラムに従って、上記の各実施形態や各種変形例で説明した処理を実行する。
 補助記憶装置1003は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory )、DVD-ROM(Digital Versatile Disk Read Only Memory )、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000がそのプログラムを主記憶装置1002に展開し、上記の処理を実行してもよい。
 また、プログラムは、前述の処理の一部を実現するためのものであってもよい。さらに、プログラムは、補助記憶装置1003に既に記憶されている他のプログラムとの組み合わせで前述の処理を実現する差分プログラムであってもよい。
 また、各構成要素の一部または全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
 各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
 次に、本発明の概要を説明する。図16は、本発明の情報提供システムの概要の例を示すブロック図である。本発明の情報提供システムは、入力部81と、特定部82と、出力部83とを備える。
 入力部81(例えば、実施形態における入力部2)は、複数のテーブルの入力を受け付ける。
 特定部82(例えば、実施形態における特定部3)は、結合可能な関係にある列のペアを特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する。
 出力部83(例えば、実施形態における表示制御部6)は、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とを出力する。
 そのような構成により、専門的知識が少ない作業者であっても複数のテーブルを結合する作業を円滑に進められるように、テーブルを結合する作業に有用な情報を作業者に提供することができる。
 また、特定部82が、個々のテーブルの個々の列の種別に基づいて、結合可能な関係にある列のペアを特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する構成であってもよい。
 また、特定部82が、異なるテーブルに属する列のペアであって、任意のテーブルの1行に対応していることを示す属性値であって主キーとしての性質を備えている属性値からなる列であることを意味する所定の種別を有する列のペアが、第1の条件を満たしている場合に、その列のペアを、結合可能な関係にある列のペアとして特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSimilarity-Join であると特定し、異なるテーブルに属する列のペアであって、種別「時間」を有する列のペアが、第2の条件を満たしている場合に、その列のペアを、結合可能な関係にある列のペアとして特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がTemporal-Joinであると特定し、異なるテーブルに属する列のペアであって、種別「場所」を有する列のペアを、結合可能な関係にある列のペアとして特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSpatial-Joinであると特定する構成であってもよい。
 また、入力部81に、予め個々の列に列の種別が割り当てられたテーブルが複数、入力されてもよい。
 また、入力部81に入力された個々のテーブルの個々の列毎に、列の種別を推定する列種別推定部(例えば、列種別推定部7)を備える構成であってもよい。
 また、入力される複数のテーブルで、異なるテーブルに属する列のペアであって、結合可能な関係にあると予め定められている列のペアが存在し、その異なるテーブルの結合方法が予め定められていてもよい。
 また、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とが出力された後に、ユーザの操作に応じて、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とを追加する情報追加部(例えば、情報追加部9)を備える構成であってもよい。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
産業上の利用の可能性
 本発明は、テーブルを結合する作業に関する情報を作業者に提供する情報提供システムに好適に適用される。
 1 情報提供システム
 2 入力部
 3 特定部
 4 記憶部
 5 ディスプレイ装置
 6 表示制御部
 7 列種別推定部
 9 情報追加部

Claims (9)

  1.  複数のテーブルが入力される入力部と、
     結合可能な関係にある列のペアを特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する特定部と、
     前記結合されるテーブルのペアと、前記結合可能な関係にある列のペアと、前記結合されるテーブルの結合方法とを出力する出力部とを備える
     ことを特徴とする情報提供システム。
  2.  特定部は、
     個々のテーブルの個々の列の種別に基づいて、結合可能な関係にある列のペアを特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する
     請求項1に記載の情報提供システム。
  3.  特定部は、
     異なるテーブルに属する列のペアであって、任意のテーブルの1行に対応していることを示す属性値であって主キーとしての性質を備えている属性値からなる列であることを意味する所定の種別を有する列のペアが、第1の条件を満たしている場合に、前記列のペアを、結合可能な関係にある列のペアとして特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSimilarity-Join であると特定し、
     異なるテーブルに属する列のペアであって、種別「時間」を有する列のペアが、第2の条件を満たしている場合に、前記列のペアを、結合可能な関係にある列のペアとして特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がTemporal-Joinであると特定し、
     異なるテーブルに属する列のペアであって、種別「場所」を有する列のペアを、結合可能な関係にある列のペアとして特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSpatial-Joinであると特定する
     請求項1または請求項2に記載の情報提供システム。
  4.  入力部に、予め個々の列に列の種別が割り当てられたテーブルが複数、入力される
     請求項1から請求項3のうちのいずれか1項に記載の情報提供システム。
  5.  入力部に入力された個々のテーブルの個々の列毎に、列の種別を推定する列種別推定部を備える
     請求項1から請求項3のうちのいずれか1項に記載の情報提供システム。
  6.  入力される複数のテーブルで、異なるテーブルに属する列のペアであって、結合可能な関係にあると予め定められている列のペアが存在し、その異なるテーブルの結合方法が予め定められている
     請求項1から請求項5のうちのいずれか1項に記載の情報提供システム。
  7.  結合されるテーブルのペアと、結合可能な関係にある列のペアと、前記結合されるテーブルの結合方法とが出力された後に、ユーザの操作に応じて、結合されるテーブルのペアと、結合可能な関係にある列のペアと、前記結合されるテーブルの結合方法とを追加する情報追加部を備える
     請求項1から請求項6のうちのいずれか1項に記載の情報提供システム。
  8.  コンピュータが、
     複数のテーブルの入力を受け付け、
     結合可能な関係にある列のペアを特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定し、
     前記結合されるテーブルのペアと、前記結合可能な関係にある列のペアと、前記結合されるテーブルの結合方法とを出力する
     ことを特徴とする情報提供方法。
  9.  複数のテーブルが入力される入力部を備えるコンピュータに搭載される情報提供プログラムであって、
     前記コンピュータに、
     結合可能な関係にある列のペアを特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する特定処理、および、
     前記結合されるテーブルのペアと、前記結合可能な関係にある列のペアと、前記結合されるテーブルの結合方法とを出力する出力処理
     を実行させるための情報提供プログラム。
PCT/JP2019/002052 2019-01-23 2019-01-23 情報提供システム、方法およびプログラム WO2020152804A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2019/002052 WO2020152804A1 (ja) 2019-01-23 2019-01-23 情報提供システム、方法およびプログラム
US17/424,389 US11860910B2 (en) 2019-01-23 2019-01-23 Information provision system, method, and program
JP2020567298A JP7276355B2 (ja) 2019-01-23 2019-01-23 情報提供システム、方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/002052 WO2020152804A1 (ja) 2019-01-23 2019-01-23 情報提供システム、方法およびプログラム

Publications (1)

Publication Number Publication Date
WO2020152804A1 true WO2020152804A1 (ja) 2020-07-30

Family

ID=71736858

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/002052 WO2020152804A1 (ja) 2019-01-23 2019-01-23 情報提供システム、方法およびプログラム

Country Status (3)

Country Link
US (1) US11860910B2 (ja)
JP (1) JP7276355B2 (ja)
WO (1) WO2020152804A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114254599A (zh) * 2021-10-11 2022-03-29 上海新氦类脑智能科技有限公司 表格合并方法、处理芯片以及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002288012A (ja) * 2001-03-23 2002-10-04 Casio Comput Co Ltd ファイル結合装置、及びプログラム
JP2003271600A (ja) * 1992-06-15 2003-09-26 Fuji Xerox Co Ltd データベース検索システムおよびデータベース検索方法
JP2015075970A (ja) * 2013-10-09 2015-04-20 前田建設工業株式会社 表形式データ処理プログラム、方法、及び装置
JP2016081526A (ja) * 2014-10-10 2016-05-16 富士通株式会社 テーブル再構成装置と方法
WO2018016001A1 (ja) * 2016-07-19 2018-01-25 株式会社日立製作所 データモデリングシステム、データモデリング方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725498B2 (en) * 2004-04-22 2010-05-25 International Business Machines Corporation Techniques for identifying mergeable data
US7908266B2 (en) * 2007-07-18 2011-03-15 Sas Institute Inc. Systems and methods for automatically creating an SQL join expression
JP6158623B2 (ja) * 2013-07-25 2017-07-05 株式会社日立製作所 データベース分析装置及び方法
JP6045706B2 (ja) 2013-08-21 2016-12-14 株式会社日立製作所 データ処理システム、データ処理方法およびデータ処理装置
US11062213B2 (en) 2016-08-05 2021-07-13 Nec Corporation Table-meaning estimation system, method, and program
US11093494B2 (en) * 2016-12-06 2021-08-17 Microsoft Technology Licensing, Llc Joining tables by leveraging transformations
US10650050B2 (en) * 2016-12-06 2020-05-12 Microsoft Technology Licensing, Llc Synthesizing mapping relationships using table corpus
US11068453B2 (en) * 2017-03-09 2021-07-20 data.world, Inc Determining a degree of similarity of a subset of tabular data arrangements to subsets of graph data arrangements at ingestion into a data-driven collaborative dataset platform
EP3407206B1 (en) * 2017-05-22 2021-08-04 Fujitsu Limited Reconciled data storage system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271600A (ja) * 1992-06-15 2003-09-26 Fuji Xerox Co Ltd データベース検索システムおよびデータベース検索方法
JP2002288012A (ja) * 2001-03-23 2002-10-04 Casio Comput Co Ltd ファイル結合装置、及びプログラム
JP2015075970A (ja) * 2013-10-09 2015-04-20 前田建設工業株式会社 表形式データ処理プログラム、方法、及び装置
JP2016081526A (ja) * 2014-10-10 2016-05-16 富士通株式会社 テーブル再構成装置と方法
WO2018016001A1 (ja) * 2016-07-19 2018-01-25 株式会社日立製作所 データモデリングシステム、データモデリング方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114254599A (zh) * 2021-10-11 2022-03-29 上海新氦类脑智能科技有限公司 表格合并方法、处理芯片以及电子设备

Also Published As

Publication number Publication date
US11860910B2 (en) 2024-01-02
JPWO2020152804A1 (ja) 2021-12-09
JP7276355B2 (ja) 2023-05-18
US20220092088A1 (en) 2022-03-24

Similar Documents

Publication Publication Date Title
CN109739855B (zh) 实现数据表拼接及自动训练机器学习模型的方法和系统
JP6338036B1 (ja) テーブル意味推定システム、方法およびプログラム
US9703915B2 (en) Method for determining a sequence for drilling holes according to a pattern using global and local optimization
US9787557B2 (en) Determining semantic place names from location reports
WO2017090475A1 (ja) 情報処理システム、関数作成方法および関数作成プログラム
WO2020152804A1 (ja) 情報提供システム、方法およびプログラム
JP6291041B2 (ja) 検索推奨方法及び装置
US20120158216A1 (en) Apparatus and method for automatically generating satellite operation procedure parameters
KR20170062235A (ko) 서비스 처리 시스템 및 방법
JP6229512B2 (ja) 情報処理プログラム、情報処理方法及び情報処理装置
JP2008305019A (ja) シミュレーション装置及びシミュレーション方法及びプログラム
US10198150B2 (en) Cross database data selection and correlation interface
JP6157166B2 (ja) 部品生成システムおよび方法ならびにプログラム
KR20190070627A (ko) 처리 스케줄러를 이용한 워크플로우 장치 및 워크플로우 장치의 동작 방법
JP2013089057A (ja) モデル検査支援方法、モデル検査支援プログラム、およびモデル検査支援装置
CN110059328A (zh) 结构分析模拟方法、信息处理设备和计算机可读存储介质
JP2009134511A (ja) サイジング装置、サイジング方法、サイジング用プログラム及び記録媒体
JP5477099B2 (ja) データ連携定義作成装置
JP7464193B2 (ja) 類似度導出システムおよび類似度導出方法
US20190103171A1 (en) Configurable workflow for pathology labs
JP2008009966A (ja) 業務プロセス設定装置及び業務プロセス設定方法
TWI579719B (zh) 解決方案搜尋系統及解決方案搜尋系統的操作方法
JP6877150B2 (ja) プロジェクト管理支援装置、プロジェクト管理支援方法およびプロジェクト管理支援プログラム
WO2014016884A1 (ja) 計算機システム、データ処理方法、及び、記録媒体
JP6197667B2 (ja) ソースコード作成装置、ソースコード作成プログラム

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: 19911157

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020567298

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19911157

Country of ref document: EP

Kind code of ref document: A1