WO2014006715A1 - 入力支援方法、情報処理システムおよびプログラム - Google Patents

入力支援方法、情報処理システムおよびプログラム Download PDF

Info

Publication number
WO2014006715A1
WO2014006715A1 PCT/JP2012/067154 JP2012067154W WO2014006715A1 WO 2014006715 A1 WO2014006715 A1 WO 2014006715A1 JP 2012067154 W JP2012067154 W JP 2012067154W WO 2014006715 A1 WO2014006715 A1 WO 2014006715A1
Authority
WO
WIPO (PCT)
Prior art keywords
input
data
terminal device
input field
item
Prior art date
Application number
PCT/JP2012/067154
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/JP2012/067154 priority Critical patent/WO2014006715A1/ja
Priority to JP2014523493A priority patent/JP5928589B2/ja
Publication of WO2014006715A1 publication Critical patent/WO2014006715A1/ja
Priority to US14/573,662 priority patent/US20150106701A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/157Transformation using dictionaries or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs

Definitions

  • the present invention relates to an input support method, an information processing system, and a program.
  • an information processing system in which data input on the screen of a terminal device is stored in a database, and data can be retrieved later from the database.
  • a terminal device such as a personal computer transmits input data to a server device such as a Web server via a network, and the server device receives input data received from the terminal device in a database.
  • the input screen displayed on the terminal device may be defined by screen information such as an HTML (HyperText Markup Language) document provided from the Web server, or may be defined by application software installed in the terminal device. is there.
  • HTML HyperText Markup Language
  • the notation method is unified so that the data stored in the database can be efficiently searched and aggregated.
  • the notation method is unified so that the data stored in the database can be efficiently searched and aggregated.
  • addresses and company names of different notation methods are not mixedly registered in the database. If data of different notation methods are mixed, it is difficult to search for data that indicates substantially the same content without omission by simple matching processing, and there is a possibility that the data cannot be used effectively.
  • the notation method is likely to fluctuate.
  • data cleansing a technique called data cleansing is used to solve the situation where data in different notation methods are mixed in the database.
  • data cleansing a rule indicating the correspondence between the data whose notation is to be corrected and the correction method of the data is defined, and the data to be corrected is searched from the database according to the rule and automatically corrected.
  • data cleansing it is not always possible to uniquely specify the notation after correction for all the correction target data stored in the database, and it is easy to set the percentage of data that can be automatically corrected to 100%.
  • the administrator of the information processing system may confirm to the user who entered the data what kind of intention the data was entered.
  • the Web server transmits document data with an identifier indicating the type of the text input field
  • the character input support device embeds dictionary information according to the identifier in the document data, and refers to the dictionary information in which the user terminal is embedded.
  • a system for displaying input character conversion candidates has been proposed.
  • the character string is recognized from the image by using OCR (Optical Character Reader), and the recognized character string is properly checked by comparing with the dictionary data of a type specified by a specific category name among a plurality of types of dictionary data.
  • OCR Optical Character Reader
  • the information processing system assists in inputting data with a unified notation method before storing the data in the database. For example, there is a method of preparing an input screen that allows the user to select a character string from a list instead of inputting a free-form character string so that the user does not input data other than a predetermined notation method. It is done.
  • the existing information processing system has a problem that the input screen and the program of the server device cannot always be modified, and it has not been easy to add an input support function to the existing information processing system.
  • an object of the present invention is to provide an input support method, an information processing system, and a program that can prevent inconsistent data from being stored in a database.
  • an input support method executed by a system including a terminal device including a display unit and a management device accessible from the terminal device via a network.
  • item information indicating the item name of the input field displayed on the display unit is transmitted from the terminal device to the management device.
  • a dictionary corresponding to the item information received by the management apparatus is selected from a plurality of dictionaries each including a plurality of data candidates and classified based on a predetermined condition. Based on the selected dictionary, at least one data candidate corresponding to the item information is transmitted from the management device to the terminal device.
  • an information processing system having a terminal device and a management device.
  • the terminal device includes a display unit, and transmits item information indicating the item name of the input field displayed on the display unit via the network.
  • the management device includes a storage unit that stores a plurality of dictionaries each including a plurality of data candidates and classified based on a predetermined condition, and a dictionary corresponding to item information received from the terminal device is selected from the plurality of dictionaries. Based on the selected dictionary, at least one data candidate corresponding to the item information is transmitted to the terminal device.
  • a program to be executed by a computer accessible from a terminal device via a network is provided.
  • a computer that executes the program receives item information indicating an item name of an input field displayed on a display unit included in the terminal device from the terminal device.
  • a dictionary corresponding to the received item information is selected from a plurality of dictionaries each including a plurality of data candidates and classified based on a predetermined condition. Based on the selected dictionary, at least one data candidate corresponding to the item information is transmitted to the terminal device.
  • FIG. 1 illustrates an information processing system according to the first embodiment.
  • the information processing system according to the first embodiment includes a terminal device 10 and a management device 20.
  • the terminal device 10 and the management device 20 are connected via the network 3.
  • the terminal device 10 is a client computer operated by a user
  • the management device 20 is a server computer accessed from the terminal device 10.
  • the network 3 may be a LAN (Local Area Network) or a wide area network such as the Internet.
  • the terminal device 10 includes a display unit 11, a communication unit 12, and a control unit 13.
  • the display unit 11 displays an input screen.
  • the input screen may be defined by application software installed in the terminal device 10, or may be drawn by a Web browser based on screen information such as an HTML document provided from the management device 20 or another server device. Good.
  • the input screen includes an input field 11a.
  • a user can input data such as a character string in the input field 11a.
  • the item name of the input field 11a may be displayed near the input field 11a.
  • the communication unit 12 communicates with the management device 20 and other server devices via the network 3.
  • the communication unit 12 performs data communication by accessing the management device 20 or another server device using a protocol such as TCP (Transmission Control Protocol) / IP (Internet Protocol) or HTTP (Hypertext Transfer Protocol).
  • TCP Transmission Control Protocol
  • IP Internet Protocol
  • HTTP Hypertext Transfer Protocol
  • the control unit 13 supports the data input to the input field 11a in cooperation with the management device 20.
  • the control unit 13 includes, for example, one or more processors and a memory.
  • the processor may be a CPU (Central Processing Unit) or a DSP (Digital Signal Processing). Further, the processor may include an electronic circuit such as ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array).
  • the memory may be a RAM (Random Access Memory). For example, the function described below is realized by the processor executing a program stored in the memory.
  • the management device 20 includes a storage unit 21, a communication unit 22, and a control unit 23.
  • the storage unit 21 stores a plurality of dictionaries including dictionaries 21a and 21b. Each of the plurality of dictionaries includes a plurality of data candidates. The plurality of dictionaries are created, for example, by classifying data candidates according to their data types.
  • the storage unit 21 may be a volatile storage device such as a RAM or a non-volatile storage device such as an HDD (Hard Disk Drive) or a flash memory.
  • the communication unit 22 communicates with the terminal device 10 via the network 3.
  • the communication unit 22 receives access from the terminal device 10 and performs data communication with the terminal device 10 according to a protocol such as TCP / IP or HTTP, for example.
  • the control unit 23 uses the plurality of dictionaries stored in the storage unit 21 to assist the user of the terminal device 10 to input appropriate data in the input field 11a.
  • the control unit 23 includes, for example, one or more processors and a memory.
  • the processor may be a CPU or DSP, and may include an electronic circuit such as an ASIC or FPGA.
  • the memory may be a RAM or may be common with the storage unit 21.
  • the function described below is realized by the processor executing a program stored in the memory.
  • data input to the input field 11a is supported as follows.
  • the terminal device 10 transmits item information indicating the item name of the input field 11 a to the management device 20 via the network 3.
  • the item name may be extracted near the input field 11a, or may be extracted from invisible information such as a tag included in screen information such as an HTML document.
  • the item information may be transmitted before the input field 11a is displayed on the display unit 11, or may be transmitted after being displayed.
  • the management device 20 selects a dictionary corresponding to the item information received from the terminal device 10 from among a plurality of dictionaries stored in the storage unit 21. For example, the management device 20 estimates the data type of data to be input to the input field 11a from the item name indicated by the item information, and selects a dictionary corresponding to the estimated data type. Then, based on the selected dictionary, the management device 20 transmits data candidates input to the input field 11 a corresponding to the item information to the terminal device 10 via the network 3. One or more data candidates may be transmitted.
  • the terminal device 10 supports data input to the input field 11a by the user based on the data candidates received from the management device 20. For example, the terminal device 10 displays the received data candidates near the input field 11a so that the user can select one of them. When there is one received data candidate, the terminal device 10 may embed the data candidate in the input field 11a without a user operation. When the input data in the input field 11a is determined based on the data candidates, the terminal device 10 transmits the determined input data to the server device (the management device 20 or another server device) via the network 3, for example. The server device that has received the input data stores the input data in the database.
  • the server device the management device 20 or another server device
  • the item information is transmitted from the terminal device 10 to the management device 20 when the input field 11a is displayed on the display unit 11, and the data candidates are the management device 20 when the user performs an operation on the input field 11a.
  • the terminal device 10 detects the user operation and transmits the current input data to the management device 20, and the management device 20 determines the final data candidate or the corrected data based on the current input data.
  • the candidate may be transmitted to the terminal device 10.
  • the user operation to be detected may include an input operation for the input field 11a, a button operation for confirming the input data, and the like.
  • the information processing system of the first embodiment it is possible to support input of appropriate data to the input field 11a before the data is stored in the database. Therefore, it is possible to suppress inconsistent data from being stored in the database. Also, item information indicating the item name of the input field 11a is transmitted from the terminal device 10 to the management device 20, and data candidates are transmitted from the management device 20 to the terminal device 10 based on a dictionary corresponding to the item information. Therefore, it is possible to present appropriate data candidates without modifying the definition of the input screen in the existing information processing system or the program of the server device that updates the database, and the input support function is added to the information processing system. Can be easily added.
  • the input support function of the terminal device 10 may be implemented as a plug-in incorporated in a Web browser, or may be implemented as character input assistance software (for example, what is called IME (Input Method Editor)).
  • character input assistance software for example, what is called IME (Input Method Editor)
  • Japanese character input assistance software performs conversion from alphabet to kana character into a kanji character.
  • character input assist software is used.
  • FIG. 2 illustrates an information processing system according to the second embodiment.
  • the information processing system according to the second embodiment includes a network 31, a database server 32, client devices 100 and 100a, and server devices 200 and 200a.
  • a database server 32, client devices 100 and 100a, and server devices 200 and 200a are connected to the network 31.
  • the database server 32 is a server computer that stores data in a nonvolatile storage device such as an HDD provided in the database server 32 and manages a set of data as a database.
  • the database server 32 receives a data write request from the server device 200a via the network 31, and stores data related to the write request.
  • Data processing such as searching for data containing values specified by the user and summing up data containing the same values can be performed on the database. Therefore, in order to facilitate data search and aggregation, it is preferable that the data stored in the database server 32 has a unified notation method. For example, when there are a plurality of notation methods for an address or company, it is preferable that data representing the same address or company in different notation methods is not mixed in the database so that a search omission does not occur.
  • the client apparatuses 100 and 100a and the server apparatus 200 cooperate to unify the data notation method. Control as follows.
  • the client devices 100 and 100a are client computers as terminal devices operated by the user.
  • the client devices 100 and 100a display an input screen including an input field, accept a user character input to the input field, and transmit a character string determined as data to be stored in the database server 32 to the server device 200a.
  • the input screen may be a screen defined by application software installed in the client devices 100 and 100a, or may be a screen drawn by a Web browser based on an HTML document downloaded from the server device 200a. .
  • character input assist software is installed in the client devices 100 and 100a.
  • the character input auxiliary software converts the alphabet designated by the key input into a kana character, and receives the conversion command to convert the kana character into a kanji character.
  • the character input auxiliary software installed in the client devices 100 and 100a cooperates with the server device 200 to support the input of a character string according to a predetermined notation method.
  • an input support method there are a method of displaying a character string candidate presented from the server device 200 near the input field, and a method of replacing the character string currently entered in the input field with the presented character string candidate. Can be mentioned.
  • the server device 200 is a server computer accessed from the client devices 100 and 100a.
  • the server device 200 supports the user's character input to the input field in cooperation with the character input auxiliary software installed in the client devices 100 and 100a.
  • the server device 200 receives from the client devices 100 and 100a the character string before confirmation that is currently input, and based on the received character string, the character string candidate after correction according to a predetermined notation method is retrieved from the dictionary. Search and send to the client devices 100, 100a.
  • the characters transmitted from the client devices 100 and 100a to the server device 200 may be kana characters or kanji characters.
  • the timing of presenting the corrected character string candidate includes when an input operation is performed on the input field, immediately before the character string is determined as data to be stored in the database server 32, or the like.
  • the server apparatus 200a is a server computer accessed from the client apparatuses 100 and 100a.
  • the server device 200a receives data as a confirmed character string from the client devices 100 and 100a via the network 31, and transmits a write command for writing the received data to the database to the database server 32.
  • the server apparatus 200a may be a Web server.
  • an HTML document defining an input screen including an input field may be transmitted to the client apparatuses 100 and 100a in response to access from the client apparatuses 100 and 100a.
  • the client devices 100 and 100a are an example of the terminal device 10 of the first embodiment
  • the server device 200 is an example of the management device 20 of the first embodiment
  • the network 31 is the first embodiment. It is an example of the network 3 of a form.
  • the server device 200 supports data input in the client devices 100 and 100a, and the server device 200a updates the database. However, the processing of the server devices 200 and 200a described below is performed. The same server device may be used.
  • FIG. 3 is a diagram showing an example of a window including input items.
  • a window as shown in FIG. 3 is displayed on the client devices 100 and 100a.
  • the window of FIG. 3 includes three input fields, three labels corresponding to the input fields, and two buttons.
  • the item name “company” is assigned to the first input field, and it is expected that a character string indicating the company name is input by the user.
  • the item name “address” is assigned to the second input field, and it is expected that a character string indicating the address is input by the user.
  • the item name “price” is assigned to the third input field, and it is expected that a numerical value indicating the price is input by the user.
  • a label indicating the item name of each input field is displayed on the left side of the input field.
  • the first and second labels are represented as text
  • the third label is represented as an image.
  • buttons are placed under the three input fields.
  • the left button is a button given the name “Cancel”, and is pressed by the user when the input operation is stopped.
  • the right button is a button to which the name “Send” is assigned, and is pressed by the user when the character strings entered in the three input fields are confirmed and transmitted from the client devices 100 and 100a to the server device 200a.
  • Buttons having functions similar to the cancel button and the send button in FIG. 3 can be given various names depending on the window.
  • buttons having the same function as the transmission button in FIG. 3 are collectively referred to as a determination button.
  • Labels indicating item names in input fields are often placed on the left or upper side of the input field.
  • the decision button is often arranged at the lower right corner of the window.
  • the client devices 100 and 100a and the server device 200 use such a property of the arrangement of display components in order to be able to detect an input operation for an input field and a selection operation for a determination button.
  • the positions of display parts such as input fields, labels, and buttons can be represented by coordinates based on the upper left of the window.
  • the coordinates indicating the position of each display component are, for example, the coordinates of the upper left point of the display component.
  • FIG. 4 is a diagram showing an example of input support on the window. There are the following three timings when the candidate for the character string to be input to the input field is presented from the server device 200. (1) When characters are being entered in the input field (in the case of Japanese input, kana characters before conversion may be used). (2) When the focus moves from the input field in which the character string is input to another input field. (3) When the enter button is pressed.
  • a candidate for a character string according to a predetermined notation method including the character or another character converted from the character (for example, a kanji character converted from the kana character) is transferred from the server device 200 to the client devices 100 and 100a.
  • the timing at which the character string candidates are displayed may be the timing at which the user inputs the conversion command.
  • the character string written in the input field is transmitted from the client device 100 or 100a to the server device 200.
  • the corrected character string candidate is transmitted from the server device 200 to the client devices 100 and 100a and displayed.
  • Possible ways to display the corrected character string candidates are to display the character string candidates near the input field to prompt the user to correct the character string and to replace the character string written in the input field. It is done. For example, when the user enters the company abbreviation “ABCD Co., Ltd.” in the input field whose item name is “Company”, the company's official name “ABCD Inc.” is displayed as a candidate for the corrected character string. .
  • FIG. 5 is a block diagram illustrating a hardware example of the client device.
  • the client device 100 includes a CPU 101, a RAM 102, an HDD 103, an image signal processing unit 104, an input signal processing unit 105, a disk drive 106, and a communication interface 107. Each unit of the client device 100 is connected to the bus 108.
  • the CPU 101 is a processor including an arithmetic unit that executes program instructions.
  • the CPU 101 loads at least a part of the program and data stored in the HDD 103 into the RAM 102 and executes the program.
  • the CPU 101 may include a plurality of processor cores, the client device 100 may include a plurality of processors, and the processes described below may be executed in parallel using a plurality of processors or processor cores.
  • a set of two or more processors, a dedicated circuit such as an FPGA or an ASIC, a set of two or more dedicated circuits, and a combination of a processor and a dedicated circuit may be called a “processor”.
  • the RAM 102 is a volatile memory that temporarily stores programs executed by the CPU 101 and data referred to by the programs.
  • the client device 100 may include a type of memory other than the RAM, and may include a plurality of volatile memories.
  • the HDD 103 is a non-volatile storage device that stores an OS (Operating System), software programs such as firmware and application software, and data.
  • OS Operating System
  • software programs such as firmware and application software
  • data data
  • the client device 100 may include other storage devices such as a flash memory and an SSD (Solid State Drive), or may include a plurality of nonvolatile storage devices.
  • the image signal processing unit 104 outputs an image to the display 41 connected to the client device 100 in accordance with a command from the CPU 101.
  • a CRT (Cathode Ray Tube) display As the display 41, a CRT (Cathode Ray Tube) display, a liquid crystal display, or the like can be used. It can also be said that the display 41 connected to the client apparatus 100 is included in the client apparatus 100 (is part of the client apparatus 100).
  • the display 41 may be formed integrally with the casing of the client device 100.
  • the input signal processing unit 105 acquires an input signal from the input device 42 connected to the client device 100 and notifies the CPU 101 of the input signal.
  • a pointing device such as a mouse or a touch panel, a keyboard, or the like can be used. It can also be said that the input device 42 connected to the client apparatus 100 is included in the client apparatus 100 (is part of the client apparatus 100). Further, the input device 42 may be formed integrally with the casing of the client device 100.
  • the disk drive 106 is a drive device that reads programs and data recorded on the recording medium 43.
  • a magnetic disk such as a flexible disk (FD) or HDD
  • an optical disk such as a CD (Compact Disk) or a DVD (Digital Versatile Disk), or a magneto-optical disk (MO: Magneto-Optical disk) is used.
  • CD Compact Disk
  • DVD Digital Versatile Disk
  • MO Magneto-Optical disk
  • the disk drive 106 stores the program and data read from the recording medium 43 in the RAM 102 or the HDD 103 in accordance with a command from the CPU 101.
  • the communication interface 107 is a wired communication interface that can perform data communication with the server device 200 via the network 31.
  • the communication interface 107 may be a wireless communication interface for connecting to an access point.
  • the client device 100 may not include the disk drive 106.
  • the client device 100 may not include the image signal processing unit 104 or the input signal processing unit 105 when it can be accessed from another computer operated by the user.
  • the client device 100a and the server devices 200 and 200a can also be realized by the same hardware configuration as the client device 100.
  • the combination of the CPU 101 and the RAM 102 is an example of the control unit 13 of the first embodiment
  • the communication interface 107 is an example of the communication unit 12 of the first embodiment
  • the display 41 is the first embodiment. It is an example of the display part 11 of a form.
  • FIG. 6 is a block diagram illustrating functional examples of the client device and the server device.
  • the client device 100 includes a window display unit 110, an input control unit 120, a control information storage unit 130, and an access unit 140.
  • the control information storage unit 130 can be realized as a storage area secured in the RAM 102 or the HDD 103. Units other than the control information storage unit 130 can be realized as a module of a program executed by the CPU 101.
  • the client apparatus 100a can also be realized with the same module configuration as the client apparatus 100.
  • the window display unit 110 is a module corresponding to a process for displaying a window.
  • the window display unit 110 renders a Web page in the window based on the HTML document received from the server device 200.
  • the window display unit 110 draws a display component in the window using an OS API (Application Programming Interface).
  • the input control unit 120 is a character input auxiliary software module and supports character input by the user.
  • the input control unit 120 When a process corresponding to the window display unit 110 is activated in the client device 100, the input control unit 120 is taken into the process and operates.
  • the input control unit 120 acquires control information indicating what kind of input support is performed for the window from the server device 200 and stores it in the control information storage unit 130. To do. Then, the input control unit 120 detects a user operation on the window, and appropriately acquires a character string candidate to be input to each input field from the server device 200 according to the control information stored in the control information storage unit 130. indicate.
  • the control information storage unit 130 stores control information that the input control unit 120 refers to when performing input support.
  • the control information stored in the control information storage unit 130 includes window information, input field information, and decision button information, as will be described later.
  • the access unit 140 accesses the server devices 200 and 200a in accordance with requests from the window display unit 110 and the input control unit 120. For example, the access unit 140 accesses the server device 200 according to a request from the input control unit 120 when a window is displayed or when a specific user operation on the window is detected. Further, when the character string entered in the input field is determined as data to be stored in the database, the access unit 140 transmits the data to the server device 200a according to a request from the window display unit 110.
  • the server apparatus 200 includes an access reception unit 210, a client support unit 240, a control information storage unit 250, a character conversion unit 260, a cleansing unit 270, and a dictionary storage unit 280.
  • the server device 200a includes an access reception unit 210a, a data processing unit 220, and a database update unit 230.
  • the dictionary storage unit 280 can be realized as a storage area secured in the RAM or HDD. Units other than the dictionary storage unit 280 can be realized as a module of a program executed by the CPU.
  • the access accepting units 210 and 210a accept access from the client devices 100 and 100a.
  • the access receiving unit 210 of the server device 200 receives an access for input support before determining input data
  • the access receiving unit 210 notifies the client support unit 240 of the access.
  • the access receiving unit 210a of the server apparatus 200a outputs the input data to the data processing unit 220.
  • the data processing unit 220 is a module of server software corresponding to a Web browser or application software that operates on the client devices 100 and 100a.
  • the data processing unit 220 performs predetermined data processing such as time stamping on the input data determined by the user and outputs the input data to the database update unit 230.
  • the database update unit 230 generates a write command for storing the data received from the data processing unit 220 in the database, and transmits the write command to the database server 32.
  • the client support unit 240 provides information for input support to the client devices 100 and 100a in response to access from the client devices 100 and 100a.
  • the client support unit 240 searches the control information storage unit 250 for control information for input control of the window and provides the control information storage unit 250 to the client device 100, 100a.
  • the client support unit 240 when receiving a character in the middle of input (for example, a kana character before being converted into kanji), the client support unit 240 causes the character conversion unit 260 to convert the character in the middle of input, and sets the converted character string candidate as the client.
  • the client support unit 240 causes the cleansing unit 270 to cleanse the received character string, and if correction is required, the client device 100, 100a.
  • the control information storage unit 250 stores control information for supporting character input in the client devices 100 and 100a. As described later, the control information stored in the control information storage unit 250 includes window information, data type information, and decision button information.
  • the character conversion unit 260 refers to the dictionary stored in the dictionary storage unit 280 and obtains one or more character string candidates according to a predetermined notation method from characters being input.
  • a Kana-Kanji conversion module can be used.
  • the character conversion unit 260 converts a kana character being input into kanji.
  • the character conversion unit 260 uses the predictive conversion function to search the dictionary for a character string partially including characters being input or characters after conversion. Then, the character conversion unit 260 outputs the converted character string candidates to the client support unit 240.
  • the cleansing unit 270 performs cleansing on the character string input by the user. That is, the cleansing unit 270 refers to the dictionary stored in the dictionary storage unit 280 and checks whether the input character string conforms to a predetermined notation method. When the inspection does not pass, the cleansing unit 270 estimates a corrected character string candidate corresponding to the character string input with reference to the dictionary. Then, the cleansing unit 270 outputs the corrected character string candidates to the client support unit 240 when the inspection result and the inspection are unacceptable.
  • Dictionary storage unit 280 stores a dictionary corresponding to each of a plurality of data types. For example, an address type dictionary in which addresses are described in a predetermined unified notation method, a corporate type dictionary in which corporations are described in a predetermined unified notation method, and the like are prepared in advance. Each dictionary includes a plurality of character string candidates that can be presented to the client devices 100 and 100a. In the case of corresponding to Japanese input, each dictionary describes a set of a character string using kanji and a character string corresponding to the reading kana.
  • FIG. 7 shows an example of the window identification table.
  • the window identification table 251 is stored in the control information storage unit 250.
  • the contents of the window identification table 251 are defined in advance by the user, for example.
  • the window identification table 251 includes items of ID (Identification), control target, control method, input items, and buttons.
  • an identifier for identifying a window (a Web page in the case of a Web browser) that can be displayed on the client devices 100 and 100a is registered.
  • a name of a process for displaying a window and a window name (a Web page name in the case of a Web browser) are registered.
  • a window can be specified by a combination of a process name and a window name.
  • the control method items include a flag (FEP) indicating whether or not to operate the input support function in the window, an operation method at the time of focus-out (FocusOut), and an operation method (Submit) when the determination button is pressed. be registered.
  • FEP flag
  • FocusOut operation method at the time of focus-out
  • Submit operation method
  • the input item field when the positions of one or more input fields are known in advance, the coordinates of each input field and the data type of the character string to be input are registered. When there is no input field whose position is known, the input item may be blank.
  • the button item the coordinates of the decision button are registered when the position of the decision button is known in advance. When the position of the determination button is unknown, the item of the determination button may be blank.
  • FIG. 8 is a diagram showing an example of the data type table.
  • the data type table 252 is stored in the control information storage unit 250. The contents of the data type table 252 are defined in advance by the user, for example.
  • the data type table 252 includes items of ID, type name, item name, dictionary, and cleansing function.
  • an identifier for identifying the data type is registered.
  • the name of a data type such as an address type or a corporate type is registered.
  • the user type 1 is a data type customized by the user
  • the character string type is a character string type that does not correspond to any other data type.
  • the item name item one or more names that can be used as labels of input fields are registered. For example, “address” and “location” are registered for the address type, and character strings such as “corporate name” and “company” are registered for the corporate type.
  • dictionary item a dictionary name corresponding to the data type among a plurality of dictionaries stored in the dictionary storage unit 280 is registered.
  • cleansing function item the name of the function called from the client support unit 240 when cleansing a character string of the data type among a plurality of functions (cleansing functions) prepared in the cleansing unit 270 is registered.
  • cleansing function the dictionary indicated by the dictionary item is referred to.
  • FIG. 9 is a diagram showing an example of a button table.
  • the button table 253 is stored in the control information storage unit 250. The contents of the button table 253 are defined in advance by the user, for example.
  • the button table 253 includes items of ID, button name, and control flag.
  • ID item an identifier for identifying the name of the determination button is registered.
  • button name item a name that can be used as a label of the determination button such as “Send”, “Determine”, and “Execute” is registered.
  • the control flag item a flag indicating whether or not the character string is to be inspected or corrected when the determination button having the label is pressed is set.
  • FIG. 10 is a diagram illustrating an example of the control method table.
  • the control method table 131 is stored in the control information storage unit 130.
  • the control method table 131 is updated by the input control unit 120 through communication with the server device 200.
  • the control method table 131 includes items of process name, window name, control flag, focus control, and decision control.
  • the process name item the name of the process that displays the window is registered.
  • the window name item the name of the displayed window is registered.
  • the control flag item a flag indicating whether or not to perform input support such as displaying character string candidates for the window is registered.
  • the focus control item an operation method when a focus-out operation is performed on the input field of the window is registered.
  • the decision control item an operation method when the decision button of the window is pressed is registered. As described above, nothing is performed in the focus control and determination control items (None), a character string candidate is displayed near the input field (Suggest), and the character string in the input field is automatically corrected ( Any one of Auto Correct) is registered.
  • FIG. 11 is a diagram showing an example of the input item table.
  • the input item table 132 is stored in the control information storage unit 130.
  • the input item table 132 is updated by the input control unit 120 through communication with the server device 200.
  • the input item table 132 includes items of ID, field, label, and data type.
  • an identifier for identifying the input field is registered.
  • the type and coordinates of the input field are registered.
  • the type of the input field for inputting a character string in free format is text.
  • the label item the label type corresponding to the input field, and the characters and coordinates described as the label are registered.
  • the label type is text or image. If the label is represented as an image, the characters may be unknown.
  • the data type item the data type of a character string to be input to the field is registered.
  • FIG. 12 is a diagram illustrating an example of the determination button table.
  • the determination button table 133 is stored in the control information storage unit 130.
  • the determination button table 133 is updated by the input control unit 120 through communication with the server device 200.
  • the determination button table 133 includes items of ID and button information.
  • ID item an identifier for identifying the determination button displayed in the window is registered.
  • button information item the type of the display component is a button, the label attached to the determination button, and the coordinates of the determination button are registered.
  • FIG. 13 is a sequence diagram illustrating an example of communication between the client device and the server device.
  • the client apparatus 100 transmits identification information including the process name and the window name to the server apparatus 200 (step S11).
  • the server device 200 determines what kind of input control is performed on the window indicated by the received identification information, and transmits control method information to the client device 100 (step S21).
  • the client device 100 confirms the input field included in the window, and transmits the input item information including the item name and coordinates of the input field to the server device 200 (step S12).
  • Item names are represented as text or images.
  • the server device 200 determines the data type of the character string to be input to the input field based on the received input item information, and returns the determined data type to the client device 100 (step S22).
  • the client device 100 confirms the buttons included in the window, and transmits button information including the button names and coordinates of one or more buttons to the server device 200 (step S13).
  • Button names are represented as text or images.
  • the server apparatus 200 determines which button is the determination button based on the received button information, and transmits determination button information indicating the determined determination button to the client apparatus 100 (step S23).
  • the client device 100 detects that the focus has moved to a certain input field (focus in) and that character input has started, or that a conversion command for the input character string has been input. Then, the client device 100 transmits the data type of the input field determined in step S22 and the character string currently input to the server device 200 (step S14).
  • the server device 200 refers to the dictionary corresponding to the notified data type, converts the received character string into one or more character string candidates to be input, and transmits the candidate to the client device 100 (step S24). ).
  • the client device 100 displays the received character string candidates near the input field.
  • the client device 100 detects a focus-out from the input field in which the character string is entered or pressing of the enter button. Then, the client device 100 transmits the data type of the input field and the character string entered in the input field to the server device 200 (step S15).
  • the server device 200 calls a cleansing function corresponding to the notified data type, checks whether the received character string conforms to a predetermined notation method, and if the check fails, the corrected character string Seek candidates. And the server apparatus 200 transmits the character string candidate after correction
  • the client apparatus 100 displays the received character string candidates near or in the input field.
  • the client device 100 determines these character strings as input data to be stored in the database, and transmits them to the server device 200.
  • the server device 200 updates the database by transmitting the received data to the database server 32 (step S26).
  • FIG. 14 is a flowchart illustrating a procedure example of identification information extraction and control method determination. The following steps S110 to S112 are executed in step S11 described above.
  • Step S110 When a window (Web page in the case of a Web browser) is displayed by the window display unit 110, the input control unit 120 displays a process name and a window name for the window (Web page name in the case of a Web browser). To extract.
  • the process name and the window name can be acquired using, for example, an OS API.
  • the Web page name can be extracted from, for example, an HTML document that the Web browser has.
  • Step S111 The input control unit 120 transmits identification information including the process name and the window name extracted in Step S111 to the server device 200.
  • Step S112 The input control unit 120 receives the control method information from the server device 200, and registers it in the control method table 131 together with the process name and window name extracted in step S110.
  • the received control method information includes a control flag (FEP), a focus control method (FocusOut), and a decision control method (Submit).
  • Step S210 The client support unit 240 receives the identification information including the process name and the window name transmitted from the client device 100 in Step S110.
  • Step S211 The client support unit 240 searches the window identification table 251 for control method information corresponding to a set of process name and window name.
  • Step S212 The client support unit 240 transmits the control method information searched in Step S211 to the client device 100.
  • the control flag information, the focus control method, and the determination control method are described in the control method information.
  • the focus control and determination control methods nothing is performed (None), character string candidates are displayed near the input field (Suggest), and automatic correction is performed (Auto Correct).
  • FIG. 15 is a flowchart illustrating an example of an input item evaluation procedure.
  • the process shown in FIG. 15 is executed by the client device 100 in the above-described step S12.
  • the input control unit 120 confirms input items included in the window. For example, the input control unit 120 searches for an input field for inputting a character string from display parts as child elements of the window by using the API of the OS, and corresponds to the input field (for example, the input field) Look for labels (located on the left or top).
  • the input control unit 120 searches for a tag indicating an input field from an HTML document included in the Web browser, and confirms the tag identification name (name attribute).
  • Step S122 The input control unit 120 selects one input item from the one or more input items confirmed in step S121.
  • Step S123 The input control unit 120 transmits the input item information including the item name of the input item selected in Step S122 and the coordinates of the input field to the server device 200 together with the identification information (process name and window name). .
  • the text can be extracted from the label or the HTML tag, the text is transmitted as the item name.
  • an image in which the label portion is captured is transmitted as the item name.
  • Step S124 The input control unit 120 is notified of the data type of the input item selected in Step S122 from the server device 200. Then, the input control unit 120 registers the data type in the input item table 132 together with the information of the input item confirmed in step S121.
  • Step S125 The input control unit 120 determines whether all input items included in the window have been selected in step S122. If all are selected, the process proceeds to step S126. If there is an unselected input item, the process proceeds to step S122.
  • FIG. 16 is a flowchart illustrating a procedure example of data type determination.
  • the process shown in FIG. 16 is executed by the server device 200 in the above-described step S22.
  • the client support unit 240 receives input item information including an item name and coordinates and identification information including a process name and a window name from the client device 100.
  • item names are represented as text or images.
  • Step S221 The client support unit 240 determines whether the item name is represented by an image. If the item name is represented by an image, the process proceeds to step S222. If the item name is represented by a text, the process proceeds to step S223.
  • Step S222 The client support unit 240 extracts text (label text) from the image corresponding to the item name using the OCR.
  • Step S223 The client support unit 240 searches the window identified by the received identification information and the input items of the window from the window identification table 251.
  • Step S224 The client support unit 240 determines whether the window indicated by the received identification information is registered in the window identification table 251. If it is a registered window, the process proceeds to step S225. If the window is not registered, the process proceeds to step S227.
  • Step S225 The client support unit 240 determines whether the coordinates of any of the input items searched in Step S223 match the coordinates indicated by the input item information. If they match, the process proceeds to step S226. If they do not match, the process proceeds to step S227.
  • Step S226) The client support unit 240 selects the data type of the input item whose coordinates are determined to match in step S225, and advances the processing to step S228.
  • Step S227) The client support unit 240 searches the data type table 252 for a data type corresponding to the item name text included in the received input item information or the item name text extracted in step S222. When the text of the item name is not registered in the data type table 252, the character string type is selected.
  • Step S228) The client support unit 240 returns the data type selected in Step S226 or Step S227 to the client device 100.
  • FIG. 17 is a flowchart illustrating an example of a button evaluation procedure. The process shown in FIG. 17 is executed by the client apparatus 100 in step S13 described above.
  • the input control unit 120 confirms the buttons included in the window. For example, the input control unit 120 searches for a button from display components as child elements of the window by using the API of the OS. When the process is a Web browser, for example, the input control unit 120 searches for a tag indicating a button from an HTML document included in the Web browser.
  • Step S132 The input control unit 120 transmits button information including a list of button names and coordinates of all buttons confirmed in step S131 to the server device 200 together with identification information (process name and window name). .
  • identification information process name and window name.
  • text can be extracted from a display component that is a button, the text is transmitted as the button name.
  • an image capturing the button part is transmitted as the button name.
  • Step S133 The input control unit 120 is notified of the button determined to be the determination button from the server device 200. Which of the plurality of buttons is the decision button is identified by, for example, coordinates. Then, the input control unit 120 registers information about the determination button among the buttons confirmed in step S131 in the determination button table 133.
  • Step S134 The input control unit 120 hooks a button registered in the determination button table 133. That is, the input control unit 120 receives an event notification from the window display unit 110 when the enter button is pressed.
  • FIG. 18 is a flowchart illustrating a procedure example of determination button determination.
  • the process shown in FIG. 18 is executed by the server device 200 in the above-described step S23.
  • the client support unit 240 receives button information including a button name and a list of coordinates and identification information including a process name and a window name from the client device 100.
  • the button name is represented as text or an image.
  • Step S231 The client support unit 240 determines whether at least one button name is represented by an image. If the button name is represented by an image, the process proceeds to step S232. If the button name is represented by text, the process proceeds to step S233.
  • Step S232 The client support unit 240 extracts the text (the text of the button label) from the image corresponding to the button name using the OCR.
  • Step S233 The client support unit 240 searches the window identification table 251 for the window indicated by the received identification information and the coordinates of the button of the window.
  • Step S234 The client support unit 240 determines whether the window indicated by the received identification information is registered in the window identification table 251. If it is a registered window, the process proceeds to step S235, and if it is an unregistered window, the process proceeds to step S237.
  • Step S235 The client support unit 240 determines whether the coordinates searched in step S233 match the coordinates of any button indicated by the button information. If they match, the process proceeds to step S236; otherwise, the process proceeds to step S237.
  • Step S236 The client support unit 240 selects, as a decision button, a button determined to match the coordinates registered in the window identification table 251 in Step S235 from among the buttons indicated by the received button information, and the process is performed in Step S238. Proceed to
  • Step S238) The client support unit 240 returns the determination button selected in Step S236 or Step S237 to the client device 100. However, if the determination button is not selected in step S237, the client support unit 240 notifies the client device 100 that there is no determination button. In that case, the client device 100 does not hook any buttons included in the window.
  • FIG. 19 is a flowchart illustrating an example of the input control procedure.
  • the process shown in FIG. 19 is executed by the client device 100 in step S14 described above.
  • Step S140 The input control unit 120 detects focus-in to the input field based on the event notification from the window display unit 110.
  • Step S141 The input control unit 120 searches the input item table 132 for the data type corresponding to the input field in which the focus-in is detected, that is, the data type of the character string to be input to the input field.
  • Step S142 The input control unit 120 uses the server device to search for a character string (which may include kana characters in the case of Japanese input) input after focus-in is detected, together with the data type searched in step S141. 200.
  • the timing for transmitting the input character string is, for example, when a predetermined number of characters (for example, three characters) or more are input, or when a conversion command (for example, Kana-Kanji conversion command) for the input character is input Can be considered.
  • Step S143 The input control unit 120 receives character string candidates to be input from the server device 200, and displays a list of character string candidates in the vicinity of the input field.
  • Step S144 The input control unit 120 inserts the character string selected by the user from the character string candidates displayed in step S143 into the input field.
  • FIG. 20 is a flowchart illustrating a procedure example of candidate determination.
  • the process shown in FIG. 20 is executed by the server device 200 in the above-described step S24.
  • the client support unit 240 receives the data type and the character string input up to the present time from the client device 100.
  • Step S241 The client support unit 240 searches the data type table 252 for a dictionary corresponding to the data type notified from the client device 100.
  • Step S242 The client support unit 240 determines whether a dictionary is found by the search in step S241. If a dictionary is found, the process proceeds to step S243; otherwise, the process proceeds to step S244.
  • the character conversion unit 260 refers to the dictionary searched in Step S241, and one or more character string candidates (in the input field) that conform to a predetermined notation format corresponding to the received character string. Search for a character string candidate to be entered. In this search for character string candidates, a so-called kana-kanji conversion function or prediction conversion function may be used. For example, the character conversion unit 260 selects one or more character string candidates that read the received kana characters and include the kana characters in a plurality of character string candidates described in the dictionary.
  • Step S244 The client support unit 240 transmits to the client device 100 the list of character string candidates to be input, which are searched in Step S243. If no candidate for the converted character string is found, the client support unit 240 notifies the client device 100 that there is no character string candidate. In this case, the client device 100 may display that the input character string is incorrect, for example.
  • FIG. 21 is a flowchart showing a procedure example of inspection / correction control. The process shown in FIG. 21 is executed by the client device 100 in the above-described step S15. Here, a procedure example of inspection / correction control triggered by pressing of the determination button will be described.
  • Step S150 Based on the event notification from the window display unit 110, the input control unit 120 detects that the enter button has been pressed.
  • Step S151 The input control unit 120 selects one input field included in the window to which the pressed decision button belongs.
  • Step S152 The input control unit 120 searches the input item table 132 for the data type corresponding to the input field selected in step S151, that is, the data type of the character string to be input to the input field.
  • Step S153 The input control unit 120 transmits the character string written in the selected input field to the server device 200 together with the data type searched in step S152.
  • Step S156 The input control unit 120 displays the corrected character string candidate received from the server device 200 together with the inspection result in the vicinity of the input field.
  • Step S157 The input control unit 120 updates the input field using the corrected character string candidate received from the server device 200 together with the inspection result. That is, the input control unit 120 replaces the current character string in the input field with the received character string.
  • Step S158 The input control unit 120 determines whether all input fields have been selected in step S151. If all are selected, the process proceeds to step S159. If there is an unselected input field, the process proceeds to step S151.
  • Step S159 The input control unit 120 determines whether or not the inspection result received from the server device 200 is VALID for all input fields included in the window. If all the inspection results are VALID, the input control unit 120 returns the control for pressing the enter button to the window display unit 110.
  • the window display unit 110 determines the character string currently entered in the input field as input data, and transmits the input data to the server device 200. This is a process that the window display unit 110 originally executes when the user presses the enter button when the enter button is not hooked.
  • FIG. 22 is a flowchart illustrating an exemplary procedure for inspection / correction determination. The process shown in FIG. 22 is executed by the server device 200 in the above-described step S25.
  • Step S250 The client support unit 240 receives the data type and the character string written in the input field from the client device 100.
  • the client support unit 240 searches the data type table 252 for a cleansing function corresponding to the data type notified from the client device 100.
  • Step S252 The client support unit 240 determines whether a cleansing function is found by the search in step S251. If a cleansing function is found, the process proceeds to step S253; otherwise, the process proceeds to step S254.
  • Step S253 The client support unit 240 calls the cleansing function searched in step S251 among the plurality of cleansing functions prepared in the cleansing unit 270.
  • the cleansing unit 270 cleanses the received character string with reference to the dictionary of the data type handled by the called cleansing function. That is, the cleansing unit 270 checks whether or not the received character string conforms to a predetermined notation format, and if it is determined to be unacceptable (the character string does not conform to the predetermined notation format), Seek candidates.
  • a rule for obtaining a corrected character string from a character string before correction is defined. For example, a rule for converting an address abbreviation “XX town 1-2-3” into an official address name “XX town 1-2-3” is defined in the address type cleansing function.
  • Step S254 The client support unit 240 transmits the received character string inspection result and, if the inspection result is unacceptable, the corrected character string candidate to the client device 100. If a candidate for the corrected character string is not found, the client support unit 240 notifies the client device 100 that there is no correction candidate. In this case, the client device 100 may display that the input character string is incorrect, for example.
  • the character string is inspected and corrected to conform to a predetermined unified notation method. Later character string candidates are presented. Therefore, it is possible to prevent data having inconsistent notation methods from being stored in the database.
  • the server device 200 determines the data type of the input field based on the item name notified from the client devices 100 and 100a, and thereafter checks the character string using the dictionary corresponding to the determined data type. . Therefore, the input support function can be easily added to the information processing system without modifying an existing window definition or a program corresponding to the data processing unit 220 of the server device 200a.
  • the functions of the first embodiment can be realized by causing the terminal device 10 or the management device 20 to execute a program.
  • the functions of the second embodiment can be realized by causing the client devices 100 and 100a and the server devices 200 and 200a to execute programs.
  • the program can be recorded on a computer-readable recording medium (for example, the recording medium 43).
  • a computer-readable recording medium for example, the recording medium 43.
  • the recording medium for example, a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like can be used.
  • Magnetic disks include FD and HDD.
  • Optical disks include CD, CD-R (Recordable) / RW (Rewritable), DVD, and DVD-R / RW.
  • the program may be recorded and distributed on a portable recording medium. In this case, the program recorded on the portable recording medium may be executed after being copied (installed) on another recording medium such as the HDD 103.

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

 一貫性のないデータがデータベースに格納されることを抑制する。 端末装置(10)は、表示部(11)に表示される入力フィールド(11a)の項目名を示す項目情報を管理装置(20)に送信する。管理装置(20)は、それぞれが複数のデータの候補を含み、所定条件に基づいて分類された辞書(21a,21b,・・・)の中から、受信した項目情報に応じた辞書を選択する。管理装置(20)は、選択した辞書に基づいて、項目情報に対応する少なくとも1つのデータの候補を端末装置(10)に送信する。

Description

入力支援方法、情報処理システムおよびプログラム
 本発明は入力支援方法、情報処理システムおよびプログラムに関する。
 現在、端末装置の画面上で入力されたデータをデータベースに格納し、データベースから後でデータを検索できるようにした情報処理システムが利用されている。このような情報処理システムとしては、例えば、パーソナルコンピュータなどの端末装置が、入力データをWebサーバなどのサーバ装置にネットワークを介して送信し、サーバ装置が、端末装置から受信した入力データをデータベースに格納する形態が考えられる。端末装置に表示される入力画面は、Webサーバから提供されるHTML(HyperText Markup Language)文書などの画面情報によって定義されることもあるし、端末装置にインストールされたアプリケーションソフトウェアによって定義されることもある。
 ここで、データベースに格納されたデータは、検索や集計を効率的に行えるように表記方法が統一されていることが好ましい。例えば、住所や会社名について、正式名称や略称のように複数通りの表記方法が存在する場合に、異なる表記方法の住所や会社名がデータベースに混在して登録されていないことが好ましい。異なる表記方法のデータが混在していると、単純なマッチング処理では実質的に同一内容を指しているデータを漏れなく検索することが難しくなり、データを有効に活用できなくなるおそれがある。一方で、複数のユーザがデータを入力する情報処理システムでは、表記方法の揺れが発生しやすい。
 そこで、異なる表記方法のデータがデータベースに混在しているという状態を解消するため、データクレンジングという技術が利用されている。データクレンジングでは、表記方法を修正すべきデータとそのデータの修正方法との対応関係を示すルールを定義しておき、ルールに従って修正対象のデータをデータベースから検索して自動的に修正する。ただし、データクレンジングでは、データベースに格納された修正対象のデータ全てについて、コンピュータによって修正後の表記を一意に特定できるとは限らず、自動的に修正できるデータの割合を100%とすることは容易でない。コンピュータによって自動的に修正できなかったデータについては、情報処理システムの管理者がデータを入力したユーザに、どのような意図でそのデータを入力したのか確認することがある。
 なお、Webサーバがテキスト入力欄の種別を示す識別子が付された文書データを送信し、文字入力支援装置が識別子に応じた辞書情報を文書データに埋め込み、ユーザ端末が埋め込まれた辞書情報を参照して入力文字の変換候補を表示するシステムが提案されている。また、OCR(Optical Character Reader)を用いて画像から文字列を認識し、複数の種類の辞書データのうち特定のカテゴリ名によって指定される種類の辞書データと照合して、認識した文字列を適切な単語に修正するシステムが提案されている。
特開2009-20865号公報 特開2003-187188号公報
 上記のように、データクレンジングによる自動修正を100%の精度で行えるわけではないため、表記方法に一貫性のないデータがデータベースに格納されてしまうと、一貫性の欠如を後から解消することは容易でない。そこで、データベースにデータを格納する前に、表記方法の統一されたデータが入力されるように情報処理システムが支援することが好ましい。例えば、ユーザが自由形式の文字列を入力するのではなくリストの中から文字列を選択するような入力画面を用意し、ユーザが所定の表記方法以外のデータを入力しないようにする方法が考えられる。しかし、既存の情報処理システムについては、入力画面やサーバ装置のプログラムなどを改変できるとは限らず、既存の情報処理システムに入力支援の機能を追加することは容易でなかったという問題がある。
 一つの側面では、本発明は、一貫性のないデータがデータベースに格納されることを抑制できる入力支援方法、情報処理システムおよびプログラムを提供することを目的とする。
 一態様では、表示部を備える端末装置と端末装置からネットワークを介してアクセス可能な管理装置とを含むシステムが実行する入力支援方法が提供される。入力支援方法では、表示部に表示される入力フィールドの項目名を示す項目情報を、端末装置から管理装置に送信する。それぞれが複数のデータの候補を含み、所定条件に基づいて分類された複数の辞書の中から、管理装置が受信した項目情報に応じた辞書を選択する。選択された辞書に基づいて、項目情報に対応する少なくとも1つのデータの候補を、管理装置から端末装置に送信する。
 また、一態様では、端末装置と管理装置とを有する情報処理システムが提供される。端末装置は、表示部を備え、表示部に表示される入力フィールドの項目名を示す項目情報をネットワークを介して送信する。管理装置は、それぞれが複数のデータの候補を含み所定条件に基づいて分類された複数の辞書を記憶する記憶部を備え、端末装置から受信した項目情報に応じた辞書を複数の辞書の中から選択し、選択された辞書に基づいて、項目情報に対応する少なくとも1つのデータの候補を端末装置に送信する。
 また、一態様では、端末装置からネットワークを介してアクセス可能なコンピュータに実行させるプログラムが提供される。プログラムを実行するコンピュータは、端末装置から、端末装置が備える表示部に表示される入力フィールドの項目名を示す項目情報を受信する。それぞれが複数のデータの候補を含み、所定条件に基づいて分類された複数の辞書の中から、受信した項目情報に応じた辞書を選択する。選択された辞書に基づいて、項目情報に対応する少なくとも1つのデータの候補を端末装置に送信する。
 一つの側面では、一貫性のないデータがデータベースに格納されることを抑制できる。
 本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態の情報処理システムを示す図である。 第2の実施の形態の情報処理システムを示す図である。 入力項目を含むウィンドウの例を示す図である。 ウィンドウ上での入力支援の例を示す図である。 クライアント装置のハードウェア例を示すブロック図である。 クライアント装置とサーバ装置の機能例を示すブロック図である。 ウィンドウ識別テーブルの例を示す図である。 データ型テーブルの例を示す図である。 ボタンテーブルの例を示す図である。 制御方法テーブルの例を示す図である。 入力項目テーブルの例を示す図である。 決定ボタンテーブルの例を示す図である。 クライアント装置とサーバ装置の通信例を示すシーケンス図である。 識別情報抽出と制御方法判定の手順例を示すフローチャートである。 入力項目評価の手順例を示すフローチャートである。 データ型判定の手順例を示すフローチャートである。 ボタン評価の手順例を示すフローチャートである。 決定ボタン判定の手順例を示すフローチャートである。 入力制御の手順例を示すフローチャートである。 候補判定の手順例を示すフローチャートである。 検査・修正制御の手順例を示すフローチャートである。 検査・修正判定の手順例を示すフローチャートである。
 以下、本実施の形態を図面を参照して説明する。
 [第1の実施の形態]
 図1は、第1の実施の形態の情報処理システムを示す図である。第1の実施の形態の情報処理システムは、端末装置10および管理装置20を有する。端末装置10と管理装置20とはネットワーク3を介して接続されている。例えば、端末装置10はユーザが操作するクライアントコンピュータであり、管理装置20は端末装置10からアクセスされるサーバコンピュータである。ネットワーク3は、LAN(Local Area Network)でもよいし、インターネットなどの広域ネットワークであってもよい。
 端末装置10は、表示部11、通信部12および制御部13を有する。
 表示部11は、入力画面を表示する。入力画面は、端末装置10にインストールされたアプリケーションソフトウェアによって定義されたものでもよいし、管理装置20または他のサーバ装置から提供されるHTML文書などの画面情報に基づいてWebブラウザが描画するものでもよい。入力画面には、入力フィールド11aが含まれる。入力フィールド11aに対しては、ユーザが文字列などのデータを入力することができる。入力フィールド11aの近くには、入力フィールド11aの項目名が表示されることがある。
 通信部12は、ネットワーク3を介して管理装置20や他のサーバ装置と通信を行う。通信部12は、例えば、TCP(Transmission Control Protocol)/IP(Internet Protocol)やHTTP(Hypertext Transfer Protocol)などのプロトコルを用いて、管理装置20や他のサーバ装置にアクセスしてデータ通信を行う。
 制御部13は、管理装置20と連携して、入力フィールド11aへのデータ入力を支援する。制御部13は、例えば、1またはそれ以上のプロセッサおよびメモリを含む。プロセッサは、CPU(Central Processing Unit)やDSP(Digital Signal Processor)であってもよい。また、プロセッサは、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を含んでもよい。メモリは、RAM(Random Access Memory)であってもよい。例えば、プロセッサがメモリに記憶されたプログラムを実行することで、以下に述べる機能を実現する。
 管理装置20は、記憶部21、通信部22および制御部23を有する。
 記憶部21は、辞書21a,21bを含む複数の辞書を記憶する。複数の辞書それぞれは、複数のデータの候補を含む。複数の辞書は、例えば、データの候補をそのデータ型に応じて分類することで作成される。記憶部21は、RAMなどの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。
 通信部22は、ネットワーク3を介して端末装置10と通信を行う。通信部22は、例えば、TCP/IPやHTTPなどのプロトコルに従って、端末装置10からアクセスを受け付けて端末装置10とデータ通信を行う。
 制御部23は、記憶部21に記憶された複数の辞書を用いて、端末装置10のユーザが入力フィールド11aに適切なデータを入力できるよう支援する。制御部23は、例えば、1またはそれ以上のプロセッサおよびメモリを含む。上記の通り、プロセッサはCPUやDSPでもよく、ASICやFPGAなどの電子回路を含んでもよい。メモリはRAMでもよく、記憶部21と共通であってもよい。例えば、プロセッサがメモリに記憶されたプログラムを実行することで、以下に述べる機能を実現する。
 ここで、第1の実施の形態の情報処理システムでは、以下のようにして入力フィールド11aへのデータ入力を支援する。端末装置10は、入力フィールド11aの項目名を示す項目情報を、ネットワーク3を介して管理装置20に送信する。項目名は、入力フィールド11aの近くに表示されるものを抽出してもよいし、HTML文書などの画面情報に含まれるタグなどの不可視情報から抽出してもよい。項目情報は、入力フィールド11aが表示部11に表示される前に送信してもよいし、表示された後に送信してもよい。
 管理装置20は、記憶部21に記憶された複数の辞書の中から、端末装置10から受信した項目情報に応じた辞書を選択する。例えば、管理装置20は、項目情報が示す項目名から入力フィールド11aに入力されるべきデータのデータ型を推定し、推定したデータ型に対応する辞書を選択する。そして、管理装置20は、選択された辞書に基づいて、項目情報に対応する、入力フィールド11aに入力されるデータの候補を、ネットワーク3を介して端末装置10に送信する。送信するデータの候補は1つでも複数でもよい。
 端末装置10は、管理装置20から受信したデータの候補に基づいて、ユーザによる入力フィールド11aへのデータ入力を支援する。例えば、端末装置10は、受信したデータの候補を入力フィールド11aの近くに表示し、ユーザが何れか1つを選択できるようにする。受信したデータの候補が1個である場合、端末装置10は、そのデータの候補をユーザ操作なしに入力フィールド11aに埋め込んでもよい。データの候補に基づいて入力フィールド11aの入力データが確定すると、端末装置10は、例えば、ネットワーク3を介してサーバ装置(管理装置20または他のサーバ装置)に確定した入力データを送信する。入力データを受信したサーバ装置は、データベースに入力データを格納する。
 なお、項目情報は、入力フィールド11aが表示部11に表示されるときに端末装置10から管理装置20に送信し、データの候補は、入力フィールド11aに関してユーザが操作を行ったときに管理装置20から端末装置10に送信してもよい。この場合、端末装置10は、ユーザ操作を検出して現時点の入力データを管理装置20に送信し、管理装置20は、現時点の入力データに基づいて最終的なデータの候補または修正後のデータの候補を端末装置10に送信してもよい。検出するユーザ操作には、入力フィールド11aに対する入力操作や、入力したデータを確定するときのボタン操作などが含まれ得る。
 第1の実施の形態の情報処理システムによれば、データベースにデータが格納される前に、入力フィールド11aに対して適切なデータが入力されるように支援することができる。よって、一貫性のないデータがデータベースに格納されることを抑制できる。また、端末装置10から管理装置20に入力フィールド11aの項目名を示す項目情報が送信され、項目情報に応じた辞書に基づいて管理装置20から端末装置10にデータの候補が送信される。よって、既存の情報処理システムにおける入力画面の定義やデータベースを更新するサーバ装置のプログラムなどを改変せずに、適切なデータの候補を提示することが可能となり、入力支援の機能を情報処理システムに容易に追加することができる。
 なお、端末装置10の入力支援機能は、Webブラウザに組み込むプラグインとして実装してもよいし、文字入力補助ソフトウェア(例えば、IME(Input Method Editor)と呼ばれるもの)として実装してもよい。例えば、日本語用の文字入力補助ソフトウェアは、アルファベットからかな文字への変換やかな文字から漢字への変換を行う。以下に説明する第2の実施の形態では、文字入力補助ソフトウェアを利用することとする。
 [第2の実施の形態]
 図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態の情報処理システムは、ネットワーク31、データベースサーバ32、クライアント装置100,100aおよびサーバ装置200,200aを含む。ネットワーク31に、データベースサーバ32、クライアント装置100,100aおよびサーバ装置200,200aが接続されている。
 データベースサーバ32は、データをデータベースサーバ32が備えるHDDなどの不揮発性記憶装置に保存し、データの集合をデータベースとして管理するサーバコンピュータである。データベースサーバ32は、ネットワーク31を介してサーバ装置200aからデータの書き込み要求を受信し、書き込み要求に係るデータを保存する。
 データベースに対しては、ユーザが指定した値を含むデータの検索や同じ値を含んだデータの集計などのデータ処理が行われ得る。そこで、データの検索や集計を容易にするため、データベースサーバ32に保存されるデータは表記方法が統一されていることが好ましい。例えば、住所や会社に複数の表記方法が存在するとき、検索漏れが生じないよう、同一の住所や会社を異なる表記方法で表したデータがデータベースに混在していないことが好ましい。第2の実施の形態では、データがサーバ装置200aからデータベースサーバ32に送信されてデータベースに追加される前に、クライアント装置100,100aとサーバ装置200とが連携してデータの表記方法を統一するよう制御する。
 クライアント装置100,100aは、ユーザが操作する端末装置としてのクライアントコンピュータである。クライアント装置100,100aは、入力フィールドを含む入力画面を表示し、入力フィールドに対するユーザの文字入力を受け付け、データベースサーバ32に保存するデータとして確定した文字列をサーバ装置200aに送信する。入力画面は、クライアント装置100,100aにインストールされたアプリケーションソフトウェアによって定義された画面であることもあるし、サーバ装置200aからダウンロードされるHTML文書に基づいてWebブラウザが描画する画面であることもある。
 また、クライアント装置100,100aには、文字入力補助ソフトウェアがインストールされている。日本語を入力する場合、文字入力補助ソフトウェアは、キー入力によって指定されたアルファベットをかな文字に変換し、変換命令を受けてかな文字を漢字に変換する。また、クライアント装置100,100aにインストールされた文字入力補助ソフトウェアは、サーバ装置200と連携して、所定の表記方法に従った文字列が入力フィールドに入力されるよう支援する。入力支援方法としては、サーバ装置200から提示された文字列の候補を入力フィールドの近くに表示する方法や、入力フィールドに現在記入されている文字列を提示された文字列の候補に置き換える方法が挙げられる。
 サーバ装置200は、クライアント装置100,100aからアクセスされるサーバコンピュータである。サーバ装置200は、クライアント装置100,100aにインストールされた文字入力補助ソフトウェアと連携して、入力フィールドに対するユーザの文字入力を支援する。サーバ装置200は、現在入力されている確定前の文字列をクライアント装置100,100aから受信し、受信した文字列に基づいて、所定の表記方法に従った修正後の文字列の候補を辞書から検索してクライアント装置100,100aに送信する。日本語入力の場合、クライアント装置100,100aからサーバ装置200に送信される文字はかな文字でもよいし漢字でもよい。修正後の文字列の候補が提示されるタイミングとしては、入力フィールドに対して入力操作が行われたときや、文字列をデータベースサーバ32に保存するデータとして確定する直前などが挙げられる。
 サーバ装置200aは、クライアント装置100,100aからアクセスされるサーバコンピュータである。サーバ装置200aは、確定された文字列としてのデータをクライアント装置100,100aからネットワーク31を介して受信し、受信したデータをデータベースに書き込むための書き込み命令をデータベースサーバ32に送信する。サーバ装置200aはWebサーバでもよく、その場合にはクライアント装置100,100aからのアクセスに応じて、入力フィールドを含む入力画面を定義したHTML文書をクライアント装置100,100aに送信してもよい。
 なお、クライアント装置100,100aは第1の実施の形態の端末装置10の一例であり、サーバ装置200は第1の実施の形態の管理装置20の一例であり、ネットワーク31は第1の実施の形態のネットワーク3の一例である。また、第2の実施の形態では、サーバ装置200がクライアント装置100,100aにおけるデータ入力を支援し、サーバ装置200aがデータベースを更新しているが、以下に説明するサーバ装置200,200aの処理を同一のサーバ装置が行うようにしてもよい。
 図3は、入力項目を含むウィンドウの例を示す図である。クライアント装置100,100aには図3に示すようなウィンドウが表示される。図3のウィンドウは、3つの入力フィールドと入力フィールドに対応する3つのラベルと2つのボタンとを含む。
 1つ目の入力フィールドには「会社」という項目名が付与されており、会社名を示す文字列がユーザによって入力されることが期待される。2つ目の入力フィールドには「住所」という項目名が付与されており、住所を示す文字列がユーザによって入力されることが期待される。3つ目の入力フィールドには「価格」という項目名が付与されており、価格を示す数値がユーザによって入力されることが期待される。各入力フィールドの項目名を示すラベルが、その入力フィールドの左側に表示されている。1つ目と2つ目のラベルはテキストとして表され、3つ目のラベルは画像として表されている。
 3つの入力フィールドの下に2つのボタンが配置されている。左側のボタンは「取消」という名称が付与されたボタンであり、入力操作を中止するときにユーザによって押下される。右側のボタンは「送信」という名称が付与されたボタンであり、3つの入力フィールドに記入された文字列を確定してクライアント装置100,100aからサーバ装置200aに送信するときにユーザによって押下される。図3の取消ボタンや送信ボタンと同様の機能をもつボタンは、ウィンドウによって様々な名称が付与され得る。以下では、図3の送信ボタンと同様の機能をもつボタンを決定ボタンと総称することとする。
 入力フィールドの項目名を示すラベルは、その入力フィールド左側または上側に配置されることが多い。また、決定ボタンはウィンドウの最も右下に配置されることが多い。クライアント装置100,100aおよびサーバ装置200は、入力フィールドに対する入力操作や決定ボタンに対する選択操作を検出できるようにするにあたり、このような表示部品の配置の性質を利用する。なお、入力フィールドやラベルやボタンなどの表示部品の位置は、ウィンドウの左上を基点とした座標で表すことができる。各表示部品の位置を示す座標は、例えば、その表示部品の左上の点の座標とする。
 図4は、ウィンドウ上での入力支援の例を示す図である。入力フィールドに入力すべき文字列の候補がサーバ装置200から提示されるタイミングは、次の3つが挙げられる。(1)入力フィールドに対して文字(日本語入力の場合は変換前のかな文字でもよい)を入力中のとき。(2)文字列を入力した入力フィールドから他の入力フィールドにフォーカスが移動したとき。(3)決定ボタンが押下されたとき。
 (1)入力フィールドに文字を入力中のとき、現在まで入力した文字がクライアント装置100,100aからサーバ装置200に送信される。そして、その文字またはその文字から変換される他の文字(例えば、かな文字から変換される漢字)を含む所定の表記方法に従った文字列の候補が、サーバ装置200からクライアント装置100,100aに送信されて表示される。ユーザは、入力フィールドの近くに表示された複数の文字列の候補の中から何れか1つを選択することができる。例えば、項目名が「住所」である入力フィールドにユーザが「かな」と入力したとき、住所を表す文字列の候補として「神奈川県」や「石川県金沢市」などの文字列が表示される。文字列の候補が表示されるタイミングを、ユーザが変換命令を入力したタイミングとしてもよい。
 (2)文字列を入力した入力フィールドからフォーカスが外れたとき(フォーカスアウト)、その入力フィールドに記入された文字列がクライアント装置100,100aからサーバ装置200に送信される。その文字列が所定の表記方法に適合していないと判断された場合、修正後の文字列の候補がサーバ装置200からクライアント装置100,100aに送信されて表示される。修正後の文字列の候補の表示方法としては、文字列の候補を入力フィールドの近くに表示してユーザに修正を促す方法と、入力フィールドに記入されている文字列を置換する方法とが考えられる。例えば、項目名が「会社」である入力フィールドにユーザが会社の略称「ABCD(株)」を入力したとき、修正後の文字列の候補として会社の正式名称「ABCD株式会社」が表示される。
 (3)決定ボタンが押下されたとき、データベースを更新するための手続きが中断されて、ウィンドウに含まれる各入力フィールドについて上記(2)と同様の方法で、入力された文字列が検査されて修正後の文字列が表示される。(2)と(3)の入力支援機能は何れか一方または両方が動作しないように設定することもできる。なお、(2)と(3)は、データベースに格納する前に文字列が所定の表記方法に適合するように修正するものであるが、第2の実施の形態ではこの修正機能も「クレンジング」と呼ぶこととする。
 図5は、クライアント装置のハードウェア例を示すブロック図である。クライアント装置100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、ディスクドライブ106および通信インタフェース107を有する。クライアント装置100の上記の各ユニットは、バス108に接続されている。
 CPU101は、プログラムの命令を実行する演算器を含むプロセッサである。CPU101は、HDD103に記憶されているプログラムやデータの少なくとも一部をRAM102にロードしてプログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、クライアント装置100は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、2以上のプロセッサの集合、FPGAやASICなどの専用回路、2以上の専用回路の集合、プロセッサと専用回路の組み合わせを「プロセッサ」と呼んでもよい。
 RAM102は、CPU101が実行するプログラムやプログラムから参照されるデータを一時的に記憶する揮発性メモリである。なお、クライアント装置100は、RAM以外の種類のメモリを備えてもよく、複数個の揮発性メモリを備えてもよい。
 HDD103は、OS(Operating System)やファームウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性記憶装置である。なお、クライアント装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の記憶装置を備えてもよく、複数の不揮発性記憶装置を備えてもよい。
 画像信号処理部104は、CPU101からの命令に従って、クライアント装置100に接続されたディスプレイ41に画像を出力する。ディスプレイ41としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。なお、クライアント装置100に接続されたディスプレイ41は、クライアント装置100が備えている(クライアント装置100の一部である)と言うこともできる。また、ディスプレイ41は、クライアント装置100の筐体と一体に形成されていてもよい。
 入力信号処理部105は、クライアント装置100に接続された入力デバイス42から入力信号を取得し、CPU101に通知する。入力デバイス42としては、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。なお、クライアント装置100に接続された入力デバイス42は、クライアント装置100が備えている(クライアント装置100の一部である)と言うこともできる。また、入力デバイス42は、クライアント装置100の筐体と一体に形成されていてもよい。
 ディスクドライブ106は、記録媒体43に記録されたプログラムやデータを読み取る駆動装置である。記録媒体43として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。ディスクドライブ106は、CPU101からの命令に従って、記録媒体43から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
 通信インタフェース107は、ネットワーク31を介してサーバ装置200とデータ通信を行うことができる有線通信インタフェースである。ただし、通信インタフェース107をアクセスポイントに接続する無線通信インタフェースとしてもよい。
 なお、クライアント装置100は、ディスクドライブ106を備えなくてもよい。また、クライアント装置100は、ユーザが操作する他のコンピュータからアクセス可能な場合、画像信号処理部104や入力信号処理部105を備えなくてもよい。クライアント装置100aおよびサーバ装置200,200aも、クライアント装置100と同様のハードウェア構成によって実現できる。また、CPU101とRAM102の組み合わせは第1の実施の形態の制御部13の一例であり、通信インタフェース107は第1の実施の形態の通信部12の一例であり、ディスプレイ41は第1の実施の形態の表示部11の一例である。
 図6は、クライアント装置とサーバ装置の機能例を示すブロック図である。
 クライアント装置100は、ウィンドウ表示部110、入力制御部120、制御情報記憶部130およびアクセス部140を有する。制御情報記憶部130は、RAM102またはHDD103に確保した記憶領域として実現できる。制御情報記憶部130以外のユニットは、CPU101に実行させるプログラムのモジュールとして実現できる。クライアント装置100aもクライアント装置100と同様のモジュール構成で実現できる。
 ウィンドウ表示部110は、ウィンドウを表示させるプロセスに対応するモジュールである。プロセスがWebブラウザである場合、ウィンドウ表示部110は、サーバ装置200から受信するHTML文書に基づいてウィンドウ内にWebページをレンダリングする。プロセスがクライアント装置100にインストールされたアプリケーションソフトウェアである場合、ウィンドウ表示部110は、OSのAPI(Application Programming Interface)を利用してウィンドウ内に表示部品を描画する。
 入力制御部120は、文字入力補助ソフトウェアのモジュールであり、ユーザによる文字入力を支援する。入力制御部120は、ウィンドウ表示部110に相当するプロセスがクライアント装置100で起動すると、当該プロセスの中に取り込まれて動作する。入力制御部120は、ウィンドウ表示部110によりウィンドウが表示されると、そのウィンドウに対してどのような入力支援を行うかを示す制御情報をサーバ装置200から取得し、制御情報記憶部130に格納する。そして、入力制御部120は、ウィンドウに対するユーザ操作を検出し、制御情報記憶部130に記憶された制御情報に従って、各入力フィールドに入力されるべき文字列の候補をサーバ装置200から適宜取得して表示する。
 制御情報記憶部130は、入力制御部120が入力支援を行うにあたって参照する制御情報を記憶する。制御情報記憶部130に記憶される制御情報には、後述するように、ウィンドウの情報と入力フィールドの情報と決定ボタンの情報とが含まれる。
 アクセス部140は、ウィンドウ表示部110および入力制御部120からの要求に従ってサーバ装置200,200aにアクセスする。例えば、アクセス部140は、ウィンドウが表示されたときやウィンドウに対する特定のユーザ操作が検出されたとき、入力制御部120からの要求に従ってサーバ装置200にアクセスする。また、アクセス部140は、入力フィールドに記入された文字列がデータベースに格納するデータとして確定されたとき、ウィンドウ表示部110からの要求に従ってデータをサーバ装置200aに送信する。
 サーバ装置200は、アクセス受付部210、クライアント支援部240、制御情報記憶部250、文字変換部260、クレンジング部270および辞書記憶部280を有する。サーバ装置200aは、アクセス受付部210a、データ処理部220およびデータベース更新部230を有する。辞書記憶部280は、RAMまたはHDDに確保した記憶領域として実現できる。辞書記憶部280以外のユニットは、CPUに実行させるプログラムのモジュールとして実現できる。
 アクセス受付部210,210aは、クライアント装置100,100aからアクセスを受け付ける。サーバ装置200のアクセス受付部210は、入力データを確定する前の入力支援のためのアクセスを受け付けたとき、そのアクセスをクライアント支援部240に通知する。サーバ装置200aのアクセス受付部210aは、確定された入力データを受信した場合、入力データをデータ処理部220に出力する。
 データ処理部220は、クライアント装置100,100aで動作するWebブラウザまたはアプリケーションソフトウェアに対応するサーバソフトウェアのモジュールである。データ処理部220は、ユーザによって確定された入力データに対して、タイムスタンプの付与などの所定のデータ処理を行ってデータベース更新部230に出力する。
 データベース更新部230は、データ処理部220から受け取ったデータをデータベースに格納するための書き込み命令を生成し、データベースサーバ32に送信する。
 クライアント支援部240は、クライアント装置100,100aからのアクセスに応じて、入力支援のための情報をクライアント装置100,100aに提供する。クライアント装置100,100aでウィンドウが表示されたとき、クライアント支援部240は、そのウィンドウの入力制御のための制御情報を制御情報記憶部250から検索してクライアント装置100,100aに提供する。また、入力途中の文字(例えば、漢字に変換する前のかな文字)を受け付けると、クライアント支援部240は、文字変換部260に入力途中の文字を変換させ、変換後の文字列の候補をクライアント装置100,100aに提供する。また、入力フィールドに記入された文字列を受け付けると、クライアント支援部240は、受け付けた文字列をクレンジング部270にクレンジングさせ、修正を要する場合には修正後の文字列の候補をクライアント装置100,100aに提供する。
 制御情報記憶部250は、クライアント装置100,100aでの文字入力を支援するための制御情報を記憶する。制御情報記憶部250に記憶される制御情報には、後述するように、ウィンドウの情報とデータ型の情報と決定ボタンの情報とが含まれる。
 文字変換部260は、辞書記憶部280に記憶された辞書を参照して、入力途中の文字から所定の表記方法に従った1またはそれ以上の文字列の候補を求める。日本語入力である場合、かな漢字変換のモジュールが利用され得る。例えば、文字変換部260は、入力途中のかな文字を漢字に変換する。また、文字変換部260は、予測変換機能を用いて、入力途中の文字や変換後の文字を一部に含む文字列を辞書から検索する。そして、文字変換部260は、変換された文字列の候補をクライアント支援部240に出力する。
 クレンジング部270は、ユーザが入力した文字列に対してクレンジングを行う。すなわち、クレンジング部270は、辞書記憶部280に記憶された辞書を参照して、入力された文字列が所定の表記方法に適合しているか検査する。検査に合格しなかった場合、クレンジング部270は、辞書を参照して入力された文字列に対応する修正後の文字列の候補を推定する。そして、クレンジング部270は、検査結果および検査が不合格だった場合には修正後の文字列の候補を、クライアント支援部240に出力する。
 辞書記憶部280は、複数のデータ型それぞれに対応する辞書を記憶する。例えば、住所を所定の統一された表記方法で記載した住所型の辞書や、法人を所定の統一された表記方法で記載した法人型の辞書などが予め用意される。各辞書は、クライアント装置100,100aに提示され得る複数の文字列の候補を含む。日本語入力に対応する場合、各辞書には、漢字を用いた文字列とその読み仮名に対応する文字列との組が記載される。
 図7は、ウィンドウ識別テーブルの例を示す図である。ウィンドウ識別テーブル251は、制御情報記憶部250に記憶されている。ウィンドウ識別テーブル251の内容は、例えば、予めユーザにより定義される。ウィンドウ識別テーブル251は、ID(Identification)、制御対象、制御方法、入力項目およびボタンの項目を含む。
 IDの項目には、クライアント装置100,100aに表示され得るウィンドウ(Webブラウザの場合はWebページ)を識別するための識別子が登録される。制御対象の項目には、ウィンドウを表示するプロセスの名称とウィンドウ名(Webブラウザの場合はWebページ名)とが登録される。プロセス名とウィンドウ名の組によって、ウィンドウを特定することができる。制御方法の項目には、そのウィンドウで入力支援機能を動作させるか否かを示すフラグ(FEP)、フォーカスアウト時の動作方法(FocusOut)および決定ボタンが押下されたときの動作方法(Submit)が登録される。フォーカスアウト時および決定ボタンが押下されたときの動作は、何もしない(None)、入力フィールドの近くに文字列の候補を表示する(Suggest)、入力フィールドの文字列を自動的に修正する(AutoCorrect)の中から選択される。
 入力項目の項目には、1またはそれ以上の入力フィールドの位置が予めわかっているとき、各入力フィールドの座標と入力されるべき文字列のデータ型とが登録される。位置がわかっている入力フィールドが存在しない場合には、入力項目の項目は空欄でよい。ボタンの項目には、決定ボタンの位置が予めわかっているとき、決定ボタンの座標が登録される。決定ボタンの位置が不明である場合には、決定ボタンの項目は空欄でよい。
 図8は、データ型テーブルの例を示す図である。データ型テーブル252は、制御情報記憶部250に記憶されている。データ型テーブル252の内容は、例えば、予めユーザにより定義される。データ型テーブル252は、ID、型名、項目名、辞書およびクレンジング関数の項目を含む。
 IDの項目には、データ型を識別するための識別子が登録される。型名の項目には、住所型や法人型などのデータ型の名称が登録される。なお、図8において、ユーザ型1はユーザによってカスタマイズされたデータ型であり、文字列型は他の何れのデータ型にも該当しない文字列の型である。項目名の項目には、入力フィールドのラベルとして使用され得る1またはそれ以上の名称が登録される。例えば、住所型については「住所」や「所在地」、法人型については「法人名」や「会社」などの文字列が登録される。
 辞書の項目には、辞書記憶部280に記憶された複数の辞書のうちそのデータ型に対応する辞書の名称が登録される。クレンジング関数の項目には、クレンジング部270に用意された複数の関数(クレンジング関数)のうち、そのデータ型の文字列をクレンジングするときにクライアント支援部240から呼び出される関数の名称が登録される。なお、クレンジング関数の中では、辞書の項目で示される辞書が参照される。
 図9は、ボタンテーブルの例を示す図である。ボタンテーブル253は、制御情報記憶部250に記憶されている。ボタンテーブル253の内容は、例えば、予めユーザにより定義される。ボタンテーブル253は、ID、ボタン名および制御フラグの項目を含む。IDの項目には、決定ボタンの名称を識別するための識別子が登録される。ボタン名の項目には、「送信」や「決定」や「実行」など、決定ボタンのラベルとして使用され得る名称が登録される。制御フラグの項目には、そのラベルをもつ決定ボタンが押下されたときに文字列の検査や修正を行うか否かを示すフラグが設定される。
 図10は、制御方法テーブルの例を示す図である。制御方法テーブル131は、制御情報記憶部130に記憶されている。制御方法テーブル131は、サーバ装置200との通信を通じて入力制御部120により更新される。制御方法テーブル131は、プロセス名、ウィンドウ名、制御フラグ、フォーカス制御および決定制御の項目を含む。
 プロセス名の項目には、ウィンドウを表示するプロセスの名称が登録される。ウィンドウ名の項目には、表示されたウィンドウの名称が登録される。制御フラグの項目には、そのウィンドウについて文字列の候補を表示するなどの入力支援を行うか否かを示すフラグが登録される。フォーカス制御の項目には、そのウィンドウの入力フィールドに対してフォーカスアウトの操作が行われたときの動作方法が登録される。決定制御の項目には、そのウィンドウの決定ボタンが押下されたときの動作方法が登録される。前述のように、フォーカス制御および決定制御の項目には、何もしない(None)、入力フィールドの近くに文字列の候補を表示する(Suggest)、入力フィールドの文字列を自動的に修正する(AutoCorrect)の何れかが登録される。
 図11は、入力項目テーブルの例を示す図である。入力項目テーブル132は、制御情報記憶部130に記憶されている。入力項目テーブル132は、サーバ装置200との通信を通じて入力制御部120により更新される。入力項目テーブル132は、ID、フィールド、ラベルおよびデータ型の項目を含む。
 IDの項目には、入力フィールドを識別するための識別子が登録される。フィールドの項目には、入力フィールドの種別と座標が登録される。自由形式で文字列を入力する入力フィールドの種別はテキストである。ラベルの項目には、その入力フィールドに対応するラベルの種別とラベルとして記載された文字と座標が登録される。ラベルの種別はテキストまたは画像である。ラベルが画像として表されている場合、文字は不明でもよい。データ型の項目には、そのフィールドに入力されるべき文字列のデータ型が登録される。
 図12は、決定ボタンテーブルの例を示す図である。決定ボタンテーブル133は、制御情報記憶部130に記憶されている。決定ボタンテーブル133は、サーバ装置200との通信を通じて入力制御部120により更新される。決定ボタンテーブル133は、IDおよびボタン情報の項目を含む。IDの項目には、ウィンドウに表示された決定ボタンを識別するための識別子が登録される。ボタン情報の項目には、表示部品の種別がボタンであること、その決定ボタンに付されたラベルおよび決定ボタンの座標が登録される。
 次に、クライアント装置100とサーバ装置200とが連携して行う入力制御を説明する。クライアント装置100aとサーバ装置200の間でも同様の制御が行われる。
 図13は、クライアント装置とサーバ装置の通信例を示すシーケンス図である。
 クライアント装置100は、ウィンドウがディスプレイ41に表示されると、プロセス名とウィンドウ名を含む識別情報をサーバ装置200に送信する(ステップS11)。サーバ装置200は、受信した識別情報が示すウィンドウに対してどのような入力制御を行うか判定し、制御方法情報をクライアント装置100に送信する(ステップS21)。
 クライアント装置100は、ウィンドウに含まれる入力フィールドを確認し、入力フィールドの項目名と座標を含む入力項目情報をサーバ装置200に送信する(ステップS12)。項目名は、テキストまたは画像として表されている。サーバ装置200は、受信した入力項目情報に基づいて入力フィールドに入力されるべき文字列のデータ型を判定し、判定したデータ型をクライアント装置100に回答する(ステップS22)。
 クライアント装置100は、ウィンドウに含まれるボタンを確認し、1またはそれ以上のボタンのボタン名と座標を含むボタン情報をサーバ装置200に送信する(ステップS13)。ボタン名は、テキストまたは画像として表されている。サーバ装置200は、受信したボタン情報に基づいて何れのボタンが決定ボタンであるか判定し、判定した決定ボタンを示す決定ボタン情報をクライアント装置100に送信する(ステップS23)。
 クライアント装置100は、ある入力フィールドにフォーカスが移動して(フォーカスイン)文字入力が開始されたこと、または、入力された文字列に対する変換命令が入力されたことを検出する。すると、クライアント装置100は、ステップS22で判定されたその入力フィールドのデータ型と現時点で入力されている文字列とをサーバ装置200に送信する(ステップS14)。サーバ装置200は、通知されたデータ型に対応する辞書を参照して、受信した文字列から入力されるべき1またはそれ以上の文字列の候補に変換してクライアント装置100に送信する(ステップS24)。クライアント装置100は、受信した文字列の候補を入力フィールドの近くに表示する。
 クライアント装置100は、文字列が記入された入力フィールドからのフォーカスアウト、または、決定ボタンの押下を検出する。すると、クライアント装置100は、その入力フィールドのデータ型とその入力フィールドに記入された文字列とをサーバ装置200に送信する(ステップS15)。サーバ装置200は、通知されたデータ型に対応するクレンジング関数を呼び出して、受信した文字列が所定の表記方法に適合しているか検査し、検査が不合格である場合には修正後の文字列の候補を求める。そして、サーバ装置200は、検査結果と不合格の場合は修正後の文字列の候補とをクライアント装置100に送信する(ステップS25)。クライアント装置100は、受信した文字列の候補を、入力フィールドの近くまたは入力フィールドの中に表示する。
 クライアント装置100は、ウィンドウに含まれる全ての入力フィールドの文字列が検査に合格した場合、それら文字列をデータベースに格納する入力データとして確定し、サーバ装置200に送信する。サーバ装置200は、受信したデータをデータベースサーバ32に送信することでデータベースを更新する(ステップS26)。
 以下では、上記ステップS11~S15,S21~S25の詳細を説明する。
 図14は、識別情報抽出と制御方法判定の手順例を示すフローチャートである。
 以下のステップS110~S112が前述のステップS11で実行される。
 (ステップS110)入力制御部120は、ウィンドウ表示部110によりウィンドウ(Webブラウザの場合はWebページ)が表示されると、当該ウィンドウについてのプロセス名とウィンドウ名(Webブラウザの場合はWebページ名)を抽出する。プロセス名とウィンドウ名は、例えば、OSのAPIを利用して取得することができる。Webページ名は、例えば、WebブラウザがもつHTML文書から抽出することができる。
 (ステップS111)入力制御部120は、ステップS111で抽出したプロセス名とウィンドウ名を含む識別情報をサーバ装置200に送信する。
 (ステップS112)入力制御部120は、サーバ装置200から制御方法情報を受信し、ステップS110で抽出したプロセス名およびウィンドウ名と併せて制御方法テーブル131に登録する。受信する制御方法情報には、制御フラグ(FEP)とフォーカス制御の方法(FocusOut)と決定制御の方法(Submit)とが記載されている。
 以下のステップS210~S212が前述のステップS12で実行される。
 (ステップS210)クライアント支援部240は、クライアント装置100から上記ステップS110で送信されたプロセス名とウィンドウ名を含む識別情報を受信する。
 (ステップS211)クライアント支援部240は、ウィンドウ識別テーブル251から、プロセス名とウィンドウ名の組に対応する制御方法情報を検索する。
 (ステップS212)クライアント支援部240は、ステップS211で検索した制御方法情報をクライアント装置100に送信する。上記の通り、制御方法情報には、制御フラグとフォーカス制御の方法と決定制御の方法が記載されている。フォーカス制御および決定制御の方法は、何もしない(None)、入力フィールドの近くに文字列の候補を表示する(Suggest)、自動修正する(AutoCorrect)の何れかである。
 図15は、入力項目評価の手順例を示すフローチャートである。図15に示す処理がクライアント装置100により前述のステップS12で実行される。
 (ステップS120)入力制御部120は、制御方法テーブル131に登録された制御フラグがYESであるか(ウィンドウが入力支援の対象であるか)判断する。制御フラグ=YESの場合は処理をステップS121に進め、それ以外の場合は処理を終了する。
 (ステップS121)入力制御部120は、ウィンドウに含まれる入力項目を確認する。例えば、入力制御部120は、OSのAPIを利用して、ウィンドウの子要素としての表示部品の中から文字列を入力するための入力フィールドを探し、入力フィールドに対応する(例えば、入力フィールドの左または上に配置された)ラベルを探す。プロセスがWebブラウザの場合、例えば、入力制御部120は、WebブラウザがもつHTML文書の中から入力フィールドを示すタグを探し、タグの識別名(name属性)を確認する。
 (ステップS122)入力制御部120は、ステップS121で確認した1またはそれ以上の入力項目の中から、入力項目を1つ選択する。
 (ステップS123)入力制御部120は、ステップS122で選択した入力項目の項目名と入力フィールドの座標を含む入力項目情報を、識別情報(プロセス名とウィンドウ名)と併せてサーバ装置200に送信する。ラベルまたはHTMLタグからテキストを抽出できた場合、項目名としてテキストが送信される。テキストを抽出できなかった場合、項目名としてラベル部分をキャプチャした画像が送信される。
 (ステップS124)入力制御部120は、サーバ装置200からステップS122で選択した入力項目のデータ型が通知される。すると、入力制御部120は、ステップS121で確認した入力項目の情報と併せてデータ型を入力項目テーブル132に登録する。
 (ステップS125)入力制御部120は、ウィンドウに含まれる全ての入力項目をステップS122で選択したか判断する。全て選択した場合は処理をステップS126に進め、未選択の入力項目がある場合は処理をステップS122に進める。
 (ステップS126)入力制御部120は、入力項目テーブル132に登録した入力フィールドをフックする。すなわち、入力制御部120は、入力フィールドに対してユーザ操作(フォーカスインとフォーカスアウト)が行われたとき、ウィンドウ表示部110からイベント通知を受け取るようにする。ただし、制御方法テーブル131にフォーカス制御=Noneと登録されている場合、フォーカスアウトをフックしなくてもよい。
 図16は、データ型判定の手順例を示すフローチャートである。図16に示す処理がサーバ装置200により前述のステップS22で実行される。
 (ステップS220)クライアント支援部240は、クライアント装置100から項目名と座標を含む入力項目情報、および、プロセス名とウィンドウ名を含む識別情報を受信する。前述の通り、項目名はテキストまたは画像として表されている。
 (ステップS221)クライアント支援部240は、項目名が画像で表されているか判断する。項目名が画像で表されている場合は処理をステップS222に進め、項目名がテキストで表されている場合は処理をステップS223に進める。
 (ステップS222)クライアント支援部240は、OCRを利用して項目名に相当する画像からテキスト(ラベルのテキスト)を抽出する。
 (ステップS223)クライアント支援部240は、ウィンドウ識別テーブル251から、受信した識別情報が示すウィンドウとそのウィンドウの入力項目を検索する。
 (ステップS224)クライアント支援部240は、受信した識別情報によって示されるウィンドウがウィンドウ識別テーブル251に登録されているものか判断する。登録されているウィンドウである場合は処理をステップS225に進め、登録されていないウィンドウである場合は処理をステップS227に進める。
 (ステップS225)クライアント支援部240は、ステップS223で検索された何れかの入力項目の座標が、入力項目情報が示す座標と一致するか判断する。一致する場合は処理をステップS226に進め、一致しない場合は処理をステップS227に進める。
 (ステップS226)クライアント支援部240は、ステップS225で座標が一致すると判断された入力項目のデータ型を選択し、処理をステップS228に進める。
 (ステップS227)クライアント支援部240は、データ型テーブル252から、受信した入力項目情報に含まれる項目名のテキストまたはステップS222で抽出された項目名のテキストに対応するデータ型を検索する。項目名のテキストがデータ型テーブル252に登録されていないときは、文字列型が選択される。
 (ステップS228)クライアント支援部240は、ステップS226またはステップS227で選択されたデータ型をクライアント装置100に回答する。
 図17は、ボタン評価の手順例を示すフローチャートである。図17に示す処理がクライアント装置100により前述のステップS13で実行される。
 (ステップS130)入力制御部120は、制御方法テーブル131に決定制御=Noneと登録されているか、すなわち、決定ボタンの押下時に何もしないと設定されているか判断する。決定制御=Noneの場合は処理を終了し、それ以外の場合(決定制御=SuggestまたはAutoCorrect)は処理をステップS131に進める。
 (ステップS131)入力制御部120は、ウィンドウに含まれるボタンを確認する。例えば、入力制御部120は、OSのAPIを利用して、ウィンドウの子要素としての表示部品の中からボタンを探す。プロセスがWebブラウザの場合、例えば、入力制御部120は、WebブラウザがもつHTML文書の中からボタンを示すタグを探す。
 (ステップS132)入力制御部120は、ステップS131で確認された全てのボタンのボタン名および座標のリストを含むボタン情報を、識別情報(プロセス名とウィンドウ名)と併せてサーバ装置200に送信する。ボタンである表示部品からテキストを抽出できた場合、ボタン名としてテキストが送信される。テキストを抽出できなかった場合、ボタン名としてボタン部分をキャプチャした画像が送信される。
 (ステップS133)入力制御部120は、サーバ装置200から決定ボタンであると判定されたボタンが通知される。複数のボタンのうち何れが決定ボタンであるかは、例えば、座標によって識別される。すると、入力制御部120は、ステップS131で確認したボタンのうち決定ボタンについての情報を決定ボタンテーブル133に登録する。
 (ステップS134)入力制御部120は、決定ボタンテーブル133に登録されたボタンをフックする。すなわち、入力制御部120は、決定ボタンが押下されたとき、ウィンドウ表示部110からイベント通知を受け取るようにする。
 図18は、決定ボタン判定の手順例を示すフローチャートである。図18に示す処理がサーバ装置200により前述のステップS23で実行される。
 (ステップS230)クライアント支援部240は、クライアント装置100からボタン名と座標のリストを含むボタン情報、および、プロセス名とウィンドウ名を含む識別情報を受信する。前述の通り、ボタン名はテキストまたは画像として表されている。
 (ステップS231)クライアント支援部240は、少なくとも1つのボタン名が画像で表されているか判断する。ボタン名が画像で表されている場合は処理をステップS232に進め、ボタン名がテキストで表されている場合は処理をステップS233に進める。
 (ステップS232)クライアント支援部240は、OCRを利用してボタン名に相当する画像からテキスト(ボタンのラベル部分のテキスト)を抽出する。
 (ステップS233)クライアント支援部240は、ウィンドウ識別テーブル251から、受信した識別情報が示すウィンドウとそのウィンドウのボタンの座標を検索する。
 (ステップS234)クライアント支援部240は、受信した識別情報によって示されるウィンドウがウィンドウ識別テーブル251に登録されているものか判断する。登録されているウィンドウである場合は処理をステップS235に進め、登録されていないウィンドウである場合は処理をステップS237に進める。
 (ステップS235)クライアント支援部240は、ステップS233で検索された座標が、ボタン情報が示す何れかのボタンの座標と一致するか判断する。一致する場合は処理をステップS236に進め、一致しない場合は処理をステップS237に進める。
 (ステップS236)クライアント支援部240は、受信したボタン情報が示すボタンのうち、ステップS235でウィンドウ識別テーブル251に登録された座標と一致すると判断されたボタンを決定ボタンとして選択し、処理をステップS238に進める。
 (ステップS237)クライアント支援部240は、ボタンテーブル253から、受信したボタン情報に含まれるボタン名のテキストまたはステップS232で抽出されたボタン名のテキストを検索する。そして、クライアント支援部240は、ボタン情報が示すボタンの中から、ボタンテーブル253に制御フラグ=YESと設定されているボタン名をもつボタンを決定ボタンとして選択する。なお、ボタン情報が示す何れのボタン名も、ボタンテーブル253に登録されていないか制御フラグ=NOと設定されている場合には、ウィンドウに決定ボタンが含まれていないと判断される。
 (ステップS238)クライアント支援部240は、ステップS236またはステップS237で選択された決定ボタンをクライアント装置100に回答する。ただし、ステップS237において決定ボタンが選択されなかった場合、クライアント支援部240は、決定ボタンが存在しない旨をクライアント装置100に通知する。その場合、クライアント装置100は、ウィンドウに含まれる何れのボタンもフックしない。
 図19は、入力制御の手順例を示すフローチャートである。図19に示す処理がクライアント装置100により前述のステップS14で実行される。
 (ステップS140)入力制御部120は、ウィンドウ表示部110からのイベント通知に基づいて、入力フィールドへのフォーカスインを検出する。
 (ステップS141)入力制御部120は、入力項目テーブル132から、フォーカスインを検出した入力フィールドに対応するデータ型、すなわち、当該入力フィールドに対して入力されるべき文字列のデータ型を検索する。
 (ステップS142)入力制御部120は、フォーカスインが検出された後に入力された文字列(日本語入力の場合はかな文字を含んでもよい)を、ステップS141で検索したデータ型と併せてサーバ装置200に送信する。入力された文字列を送信するタイミングは、例えば、所定数(例えば、3文字)以上の文字が入力されたときや、入力された文字に対する変換命令(例えば、かな漢字変換命令)が入力されたときが考えられる。
 (ステップS143)入力制御部120は、サーバ装置200から入力すべき文字列の候補を受信し、文字列の候補のリストを入力フィールドの近傍に表示する。
 (ステップS144)入力制御部120は、ステップS143で表示した文字列の候補の中からユーザにより選択された文字列を、入力フィールドに挿入する。
 図20は、候補判定の手順例を示すフローチャートである。図20に示す処理がサーバ装置200により前述のステップS24で実行される。
 (ステップS240)クライアント支援部240は、クライアント装置100からデータ型と現時点までに入力された文字列とを受信する。
 (ステップS241)クライアント支援部240は、データ型テーブル252から、クライアント装置100から通知されたデータ型に対応する辞書を検索する。
 (ステップS242)クライアント支援部240は、ステップS241の検索によって辞書が見つかったか判断する。辞書が見つかった場合は処理をステップS243に進め、見つからなかった場合は処理をステップS244に進める。
 (ステップS243)文字変換部260は、ステップS241で検索された辞書を参照して、受信された文字列に対応する所定の表記形式に適合した1またはそれ以上の文字列の候補(入力フィールドに入力されるべき文字列の候補)を検索する。ここでの文字列の候補の検索では、いわゆるかな漢字変換機能や予測変換機能を利用してもよい。例えば、文字変換部260は、辞書に記載された複数の文字列の候補の中から、受信されたかな文字を読み仮名に含む1またはそれ以上の文字列の候補を選択する。
 (ステップS244)クライアント支援部240は、ステップS243で検索された入力されるべき文字列の候補のリストを、クライアント装置100に送信する。なお、変換後の文字列の候補が1つも検索されなかった場合、クライアント支援部240は、文字列の候補が存在しない旨をクライアント装置100に通知する。その場合、クライアント装置100は、例えば、入力された文字列が誤っている旨を表示すればよい。
 図21は、検査・修正制御の手順例を示すフローチャートである。図21に示す処理がクライアント装置100により前述のステップS15で実行される。ここでは、決定ボタンの押下を契機とした検査・修正制御の手順例を説明する。
 (ステップS150)入力制御部120は、ウィンドウ表示部110からのイベント通知に基づいて、決定ボタンが押下されたことを検出する。
 (ステップS151)入力制御部120は、押下された決定ボタンの属するウィンドウに含まれている入力フィールドを1つ選択する。
 (ステップS152)入力制御部120は、入力項目テーブル132から、ステップS151で選択した入力フィールドに対応するデータ型、すなわち、当該入力フィールドに対して入力されるべき文字列のデータ型を検索する。
 (ステップS153)入力制御部120は、選択した入力フィールドに記入されている文字列を、ステップS152で検索したデータ型と併せてサーバ装置200に送信する。
 (ステップS154)入力制御部120は、ステップS153で送信した文字列の検査結果をサーバ装置200から受信し、受信した検査結果がINVALID(不合格)であるか判断する。検査結果=INVALIDである場合は処理をステップS155に進め、検査結果=VALID(合格)である場合は処理をステップS158に進める。
 (ステップS155)入力制御部120は、制御方法テーブル131に決定制御=Suggestと登録されているか判断する。決定制御=Suggestの場合は処理をステップS156に進め、それ以外の場合(すなわち、決定制御=AutoCorrectの場合)は処理をステップS157に進める。
 (ステップS156)入力制御部120は、検査結果と併せてサーバ装置200から受信した修正後の文字列の候補を、入力フィールドの近傍に表示する。
 (ステップS157)入力制御部120は、検査結果と併せてサーバ装置200から受信した修正後の文字列の候補を用いて入力フィールドを更新する。すなわち、入力制御部120は、入力フィールドの現在の文字列を受信した文字列に置き換える。
 (ステップS158)入力制御部120は、ステップS151で全ての入力フィールドを選択したか判断する。全て選択した場合は処理をステップS159に進め、未選択の入力フィールドがある場合は処理をステップS151に進める。
 (ステップS159)入力制御部120は、ウィンドウに含まれる全ての入力フィールドについて、サーバ装置200から受信した検査結果がVALIDであるか判断する。検査結果が全てVALIDであれば、入力制御部120は、決定ボタンの押下に対する制御をウィンドウ表示部110に戻す。ウィンドウ表示部110は、入力フィールドに現在記入されている文字列を入力データとして確定し、入力データをサーバ装置200に送信する。これは、決定ボタンをフックしない場合に、ユーザによる決定ボタンの押下を受けてウィンドウ表示部110が本来実行する処理である。
 なお、フォーカスアウトを契機とした検査・修正制御では、フォーカスアウトが検出された入力フィールドについて上記のステップS152~S157の処理が実行される。
 図22は、検査・修正判定の手順例を示すフローチャートである。図22に示す処理がサーバ装置200により前述のステップS25で実行される。
 (ステップS250)クライアント支援部240は、クライアント装置100からデータ型と入力フィールドに記入された文字列とを受信する。
 (ステップS251)クライアント支援部240は、データ型テーブル252から、クライアント装置100から通知されたデータ型に対応するクレンジング関数を検索する。
 (ステップS252)クライアント支援部240は、ステップS251の検索によってクレンジング関数が見つかったか判断する。クレンジング関数が見つかった場合は処理をステップS253に進め、見つからなかった場合は処理をステップS254に進める。
 (ステップS253)クライアント支援部240は、クレンジング部270に用意された複数のクレンジング関数のうちステップS251で検索されたクレンジング関数を呼び出す。クレンジング部270は、呼び出されたクレンジング関数が担当するデータ型の辞書を参照して、受信された文字列をクレンジングする。すなわち、クレンジング部270は、受信された文字列が所定の表記形式に適合するか検査し、不合格(文字列が所定の表記形式に適合しない)と判断した場合は、修正後の文字列の候補を求める。クレンジング関数では、例えば、修正前の文字列から修正後の文字列を求めるためのルールが定義されている。例えば、住所の略称「○○町1-2-3」を住所の正式名称「○○町1丁目2番3号」に変換するためのルールが、住所型のクレンジング関数に定義されている。
 (ステップS254)クライアント支援部240は、受信した文字列の検査結果と、検査結果が不合格の場合は修正後の文字列の候補とをクライアント装置100に送信する。なお、修正後の文字列の候補が求まらなかった場合、クライアント支援部240は、修正候補が存在しない旨をクライアント装置100に通知する。その場合、クライアント装置100は、例えば、入力された文字列が誤っている旨を表示すればよい。
 第2の実施の形態の情報処理システムによれば、入力された文字列がデータベースサーバ32に保存される前に、その文字列が所定の統一された表記方法に適合しているか検査されて修正後の文字列の候補が提示される。よって、表記方法に一貫性のないデータがデータベースに格納されることを抑制できる。また、サーバ装置200により、クライアント装置100,100aから通知される項目名に基づいて入力フィールドのデータ型が判定され、以降は判定されたデータ型に対応する辞書を用いて文字列が検査される。よって、既存のウィンドウ定義やサーバ装置200aのデータ処理部220に相当するプログラムなどを改変しなくても、入力支援機能を情報処理システムに容易に追加できる。
 なお、第1の実施の形態の機能は、端末装置10や管理装置20にプログラムを実行させることで実現できる。また、第2の実施の形態の機能は、クライアント装置100,100aやサーバ装置200,200aにプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体43)に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD-R(Recordable)/RW(Rewritable)、DVDおよびDVD-R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体に記録されたプログラムを、HDD103などの他の記録媒体に複製してから(インストールしてから)実行するようにしてもよい。
 上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
 3 ネットワーク
 10 端末装置
 11 表示部
 11a 入力フィールド
 12,22 通信部
 13,23 制御部
 20 管理装置
 21 記憶部
 21a,21b 辞書

Claims (8)

  1.  表示部を備える端末装置と前記端末装置からネットワークを介してアクセス可能な管理装置とを含むシステムが実行する入力支援方法であって、
     前記表示部に表示される入力フィールドの項目名を示す項目情報を、前記端末装置から前記管理装置に送信し、
     それぞれが複数のデータの候補を含み、所定条件に基づいて分類された複数の辞書の中から、前記管理装置が受信した前記項目情報に応じた辞書を選択し、
     前記選択された辞書に基づいて、前記項目情報に対応する少なくとも1つのデータの候補を、前記管理装置から前記端末装置に送信する、
     入力支援方法。
  2.  前記入力フィールドに対する入力操作を検出し、前記入力操作に応じた入力データを前記端末装置から前記管理装置に送信し、
     前記選択された辞書に含まれる複数のデータの候補の中から、前記管理装置が受信した前記入力データと置き換えて前記入力フィールドに入力される1またはそれ以上のデータの候補を選択する、
     請求の範囲第1項記載の入力支援方法。
  3.  検出する前記入力操作は、文字入力、入力した文字に対する変換命令の入力、および、前記入力フィールドから前記表示部に表示された他の入力フィールドへのフォーカス移動のうちの少なくとも1つを含む、請求の範囲第2項記載の入力支援方法。
  4.  前記入力フィールドに入力された入力データを確定するための前記表示部に表示された表示部品に対する選択操作を検出し、前記選択操作を受けて前記入力データを前記端末装置から前記管理装置に送信し、
     前記選択された辞書に含まれる複数のデータの候補の中から、前記管理装置が受信した前記入力データと置き換えて前記入力フィールドに入力される1またはそれ以上のデータの候補を選択する、
     請求の範囲第1項記載の入力支援方法。
  5.  項目名とデータ型との対応関係を示すデータ型情報を参照して、前記管理装置が受信した前記項目情報に基づいて、前記入力フィールドのデータ型を判定し、
     辞書の選択では、前記判定したデータ型に応じた辞書を前記複数の辞書の中から選択する、
     請求の範囲第1項記載の入力支援方法。
  6.  前記端末装置が受信したデータの候補の何れかを、前記入力フィールドの入力データとして確定し、
     前記確定した入力データを、データベースに登録するデータとして、前記端末装置から前記管理装置または他の管理装置に送信する、
     請求の範囲第1項記載の入力支援方法。
  7.  表示部を備え、前記表示部に表示される入力フィールドの項目名を示す項目情報をネットワークを介して送信する端末装置と、
     それぞれが複数のデータの候補を含み所定条件に基づいて分類された複数の辞書を記憶する記憶部を備え、前記端末装置から受信した前記項目情報に応じた辞書を前記複数の辞書の中から選択し、前記選択された辞書に基づいて、前記項目情報に対応する少なくとも1つのデータの候補を前記端末装置に送信する管理装置と、
     を有する情報処理システム。
  8.  端末装置からネットワークを介してアクセス可能なコンピュータに、
     前記端末装置から、前記端末装置が備える表示部に表示される入力フィールドの項目名を示す項目情報を受信し、
     それぞれが複数のデータの候補を含み、所定条件に基づいて分類された複数の辞書の中から、受信した前記項目情報に応じた辞書を選択し、
     前記選択された辞書に基づいて、前記項目情報に対応する少なくとも1つのデータの候補を前記端末装置に送信する、
     処理を実行させるプログラム。
PCT/JP2012/067154 2012-07-05 2012-07-05 入力支援方法、情報処理システムおよびプログラム WO2014006715A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2012/067154 WO2014006715A1 (ja) 2012-07-05 2012-07-05 入力支援方法、情報処理システムおよびプログラム
JP2014523493A JP5928589B2 (ja) 2012-07-05 2012-07-05 入力支援方法、情報処理システムおよびプログラム
US14/573,662 US20150106701A1 (en) 2012-07-05 2014-12-17 Input support method and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/067154 WO2014006715A1 (ja) 2012-07-05 2012-07-05 入力支援方法、情報処理システムおよびプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/573,662 Continuation US20150106701A1 (en) 2012-07-05 2014-12-17 Input support method and information processing system

Publications (1)

Publication Number Publication Date
WO2014006715A1 true WO2014006715A1 (ja) 2014-01-09

Family

ID=49881505

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/067154 WO2014006715A1 (ja) 2012-07-05 2012-07-05 入力支援方法、情報処理システムおよびプログラム

Country Status (3)

Country Link
US (1) US20150106701A1 (ja)
JP (1) JP5928589B2 (ja)
WO (1) WO2014006715A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017072872A (ja) * 2015-10-05 2017-04-13 日本電信電話株式会社 操作支援システム、操作支援方法、および、操作支援プログラム
JP2020514901A (ja) * 2017-03-07 2020-05-21 グーグル エルエルシー ユーザ機器のための自動記入

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10037238B2 (en) * 2016-02-10 2018-07-31 Dell Products, L.P. System and method for encoding exception conditions included at a remediation database
JP2019095848A (ja) * 2017-11-17 2019-06-20 富士ゼロックス株式会社 文書処理装置およびプログラム
JP7263712B2 (ja) * 2018-08-23 2023-04-25 富士通株式会社 制御方法,情報処理装置および制御プログラム
CN116700725B (zh) * 2023-08-04 2023-10-31 太平金融科技服务(上海)有限公司 页面生成方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62278663A (ja) * 1986-05-28 1987-12-03 Hitachi Ltd ワ−ドプロセツシング方式
JPH10207875A (ja) * 1997-01-20 1998-08-07 Just Syst Corp 表作成装置およびその方法
JP2009020865A (ja) * 2007-06-14 2009-01-29 Ntt Docomo Inc 文字入力支援方法、文字入力支援システム、文字入力支援プログラム、ユーザ端末、文字変換方法及び文字変換プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747639B2 (en) * 2005-08-24 2010-06-29 Yahoo! Inc. Alternative search query prediction

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62278663A (ja) * 1986-05-28 1987-12-03 Hitachi Ltd ワ−ドプロセツシング方式
JPH10207875A (ja) * 1997-01-20 1998-08-07 Just Syst Corp 表作成装置およびその方法
JP2009020865A (ja) * 2007-06-14 2009-01-29 Ntt Docomo Inc 文字入力支援方法、文字入力支援システム、文字入力支援プログラム、ユーザ端末、文字変換方法及び文字変換プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017072872A (ja) * 2015-10-05 2017-04-13 日本電信電話株式会社 操作支援システム、操作支援方法、および、操作支援プログラム
JP2020514901A (ja) * 2017-03-07 2020-05-21 グーグル エルエルシー ユーザ機器のための自動記入
JP7102431B2 (ja) 2017-03-07 2022-07-19 グーグル エルエルシー ユーザ機器のための自動記入

Also Published As

Publication number Publication date
JPWO2014006715A1 (ja) 2016-06-02
US20150106701A1 (en) 2015-04-16
JP5928589B2 (ja) 2016-06-01

Similar Documents

Publication Publication Date Title
JP5928589B2 (ja) 入力支援方法、情報処理システムおよびプログラム
US11431745B2 (en) Techniques for curating threat intelligence data
US8601059B2 (en) Sharing form training result utilizing a social network
RU2637880C2 (ru) Идентификация загружаемых приложений, совместимых с основой
JP5898153B2 (ja) 省略語管理プログラム、省略語管理装置、フルスペル表示プログラムおよびフルスペル表示装置
JP6750057B2 (ja) ジオロケーションを使用して位置決めされた画像を用いた施設の固定
US10528678B2 (en) Digital content translation techniques and systems
JP2023027785A (ja) 装置およびコンピュータプログラム
US11429556B2 (en) Document management apparatus and non-transitory computer readable medium
JP2008021211A (ja) 質問生成装置及びプログラム
JP7360047B2 (ja) 検索処理プログラム、検索処理方法および検索処理装置
US20100185608A1 (en) Information retrieval device, information retrieval system, information retrieval program and information retrieval method
JP6019848B2 (ja) プログラム、情報処理装置、及び情報処理方法
WO2015145525A1 (ja) 情報処理装置、情報処理方法及びプログラム
JP6425989B2 (ja) 文字認識支援プログラム、文字認識支援方法及び文字認識支援装置
US20170278077A1 (en) Input assistance method, computer-readable recording medium, and input assistance device
US11455311B2 (en) Multi-locator system for tracking data elements in resources
JP2009223538A (ja) 情報提供方法、情報提供装置、情報提供システム及びコンピュータプログラム
US9009659B2 (en) Method and system for displaying context-based completion values in an integrated development environment for asset management software
US20220198190A1 (en) Information processing apparatus and non-transitory computer readable medium
JP7388176B2 (ja) 情報処理装置及び情報処理プログラム
JP6734538B2 (ja) 評価プログラム、評価方法、および評価装置
JP7263712B2 (ja) 制御方法,情報処理装置および制御プログラム
JP2010170192A (ja) 階層構造改変処理装置、階層構造改変方法及びプログラム
JP2006227859A (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: 12880358

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014523493

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

Country of ref document: EP

Kind code of ref document: A1