WO2014147719A1 - 電子機器および手書き文書処理方法 - Google Patents

電子機器および手書き文書処理方法 Download PDF

Info

Publication number
WO2014147719A1
WO2014147719A1 PCT/JP2013/057707 JP2013057707W WO2014147719A1 WO 2014147719 A1 WO2014147719 A1 WO 2014147719A1 JP 2013057707 W JP2013057707 W JP 2013057707W WO 2014147719 A1 WO2014147719 A1 WO 2014147719A1
Authority
WO
WIPO (PCT)
Prior art keywords
stroke data
handwritten
stroke
file
data
Prior art date
Application number
PCT/JP2013/057707
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/JP2013/057707 priority Critical patent/WO2014147719A1/ja
Priority to JP2015506402A priority patent/JP5869179B2/ja
Publication of WO2014147719A1 publication Critical patent/WO2014147719A1/ja
Priority to US14/615,379 priority patent/US20150154443A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • 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/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/171Editing, e.g. inserting or deleting by use of digital ink
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/333Preprocessing; Feature extraction
    • G06V30/347Sampling; Contour coding; Stroke extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/36Matching; Classification
    • G06V30/387Matching; Classification using human interaction, e.g. selection of the best displayed recognition candidate

Definitions

  • the embodiment of the present invention relates to a technique for processing a handwritten document.
  • the user can instruct the electronic device to execute the function associated with the menu or object by touching the menu or object displayed on the touch screen display with a finger or the like.
  • An object of one embodiment of the present invention is to provide an electronic device and a handwritten document processing method capable of efficiently processing a handwritten document.
  • the electronic device includes a drawing unit, a stroke processing unit, and a generation unit.
  • the drawing means draws a plurality of trajectories corresponding to a plurality of handwritten strokes on the screen.
  • the stroke processing means stores a plurality of stroke data corresponding to the plurality of strokes.
  • the generation unit generates at least one of a plurality of handwriting feature amounts corresponding to the plurality of stroke data or a plurality of character codes corresponding to the plurality of stroke data from the plurality of stroke data.
  • the stroke processing means stores the plurality of stroke data in a first file in a hierarchical document structure format described in a markup language.
  • the generating means acquires one or more unprocessed stroke data, and at least one of a handwriting feature amount corresponding to the one or more stroke data or a character code corresponding to the one or more stroke data is obtained from the first Save to a second file different from the file.
  • FIG. 1 is a perspective view illustrating an appearance of an electronic apparatus according to an embodiment.
  • FIG. 2 is a diagram illustrating a cooperative operation between the electronic apparatus and the external device according to the embodiment.
  • FIG. 3 is a diagram illustrating an example of a handwritten document handwritten on the touch screen display of the electronic device of the embodiment.
  • FIG. 4 is a diagram for explaining an outline of handwritten document information corresponding to the handwritten document of FIG. 3 stored in the storage medium by the electronic apparatus of the embodiment.
  • FIG. 5 is a block diagram showing a system configuration of the electronic apparatus of the embodiment.
  • FIG. 6 is a view showing a desktop / drawer screen displayed by the electronic apparatus of the embodiment.
  • FIG. 7 is a diagram showing a desktop screen displayed by the electronic apparatus of the embodiment.
  • FIG. 1 is a perspective view illustrating an appearance of an electronic apparatus according to an embodiment.
  • FIG. 2 is a diagram illustrating a cooperative operation between the electronic apparatus and the external device according to the embodiment.
  • FIG. 3 is
  • FIG. 8 is a diagram illustrating a note view screen displayed by the electronic apparatus of the embodiment.
  • FIG. 9 is a diagram showing a search key input dialog displayed by the electronic apparatus of the embodiment.
  • FIG. 10 is a block diagram showing a functional configuration of a handwritten note application program executed by the electronic apparatus of the embodiment.
  • FIG. 11 is a diagram illustrating a data structure of a handwritten document managed by the electronic apparatus of the embodiment.
  • FIG. 12 is a diagram illustrating feature amount information managed by the electronic apparatus of the embodiment.
  • FIG. 13 is a diagram showing character string information managed by the electronic apparatus of the embodiment.
  • FIG. 14 is a diagram for explaining an outline of a handwriting search executed by the electronic apparatus of the embodiment.
  • FIG. 15 is a flowchart illustrating a procedure of processing for storing stroke data, feature amount information, and character string information, which is executed by the electronic apparatus of the embodiment.
  • FIG. 16 is a flowchart showing a procedure of search processing executed by the electronic apparatus of the embodiment.
  • FIG. 1 is a perspective view illustrating an external appearance of an electronic apparatus according to an embodiment.
  • This electronic device is, for example, a pen-based portable electronic device that can be handwritten with a pen or a finger.
  • This electronic device can be realized as a tablet computer, a notebook personal computer, a smartphone, a PDA, or the like.
  • the tablet computer 10 is a portable electronic device also called a tablet or a straight computer, and includes a main body 11 and a touch screen display 17 as shown in FIG.
  • the touch screen display 17 is attached to be superposed on the upper surface of the main body 11.
  • the main body 11 has a thin box-shaped housing.
  • the touch screen display 17 incorporates a flat panel display and a sensor configured to detect a contact position of a pen or a finger on the screen of the flat panel display.
  • the flat panel display may be, for example, a liquid crystal display (LCD).
  • As the sensor for example, a capacitive touch panel, an electromagnetic induction digitizer, or the like can be used. In the following, it is assumed that two types of sensors, a digitizer and a touch panel, are incorporated in the touch screen display 17.
  • the touch screen display 17 can detect not only a touch operation on the screen using a finger but also a touch operation on the screen using the pen 100.
  • the pen 100 may be an electromagnetic induction pen, for example.
  • the user can perform a handwriting input operation on the touch screen display 17 using an external object (the pen 100 or a finger).
  • the trajectory of the movement of the external object (pen 100 or finger) on the screen that is, the stroke handwritten by the handwriting input operation (trajectory of the handwriting stroke) is drawn in real time, and is input by handwriting. Multiple strokes are displayed on the screen.
  • the trajectory of the movement of the external object while the external object is in contact with the screen corresponds to one stroke.
  • a set of many strokes corresponding to handwritten characters and handwritten objects other than characters (handwritten graphics, handwritten tables, etc.) constitute a handwritten document.
  • the handwritten document is stored in the storage medium as time series information (handwritten document information) indicating the order relationship between the coordinate sequence of the trajectory of each stroke and the stroke, instead of image data.
  • This handwritten document information indicates the order in which a plurality of strokes are handwritten, and includes a plurality of stroke data respectively corresponding to the plurality of strokes.
  • the handwritten document information means a set of time-series stroke data corresponding to a plurality of strokes.
  • Each stroke data corresponds to a certain stroke, and includes a plurality of coordinate data (time series coordinates) corresponding to a plurality of points on the stroke trajectory.
  • the order of arrangement of the stroke data corresponds to the order in which the strokes are handwritten.
  • the tablet computer 10 can read existing arbitrary handwritten document information from the storage medium, and can draw a plurality of stroke trajectories indicated by the handwritten document information on the screen.
  • the plurality of strokes indicated by the handwritten document information are also a plurality of strokes input by handwriting.
  • the tablet computer 10 has an editing function.
  • This editing function can be used to select any part (handwritten in the displayed handwritten document selected by the range selection tool in response to an editing operation by the user using the “eraser” tool, the range selection tool, and various other tools. Characters, handwritten marks, handwritten figures, handwritten tables, etc.) can be deleted or moved. Furthermore, an arbitrary part in the handwritten document selected by the range selection tool can be designated as a search key for searching for a handwritten document.
  • the handwritten document can be managed as one or a plurality of pages.
  • a group of handwritten document information that fits on one screen may be recorded as one page by dividing the handwritten document information by an area unit that fits on one screen.
  • the page size may be variable.
  • the page size can be expanded to an area larger than the size of one screen, a handwritten document having an area larger than the screen size can be handled as one page.
  • the page may be reduced, or the display target portion in the page may be moved by vertical and horizontal scrolling.
  • FIG. 2 shows an example of cooperative operation between the tablet computer 10 and an external device.
  • the tablet computer 10 can cooperate with the personal computer 1 and the cloud. That is, the tablet computer 10 includes a wireless communication device such as a wireless LAN, and can execute wireless communication with the personal computer 1. Furthermore, the tablet computer 10 can also execute communication with the server 2 on the Internet.
  • the server 2 may be a server that executes an online storage service and other various cloud computing services.
  • the personal computer 1 includes a storage device such as a hard disk drive (HDD).
  • the tablet computer 10 can transmit handwritten document information to the personal computer 1 via the network and record it on the HDD of the personal computer 1 (upload).
  • the personal computer 1 may authenticate the tablet computer 10 at the start of communication.
  • a dialog prompting the user to input an ID or password may be displayed on the screen of the tablet computer 10, and the ID of the tablet computer 10 and the like are automatically transmitted from the tablet computer 10 to the personal computer 1. May be.
  • the tablet computer 10 can handle a large amount of handwritten document information or a large amount of handwritten document information.
  • the tablet computer 10 reads (downloads) any one or more handwritten document information recorded in the HDD of the personal computer 1, and displays the stroke indicated by the read handwritten document information on the screen of the display 17 of the tablet computer 10. Can be displayed.
  • a list of thumbnails obtained by reducing each page of the plurality of handwritten document information may be displayed on the screen of the display 17, or one page selected from these thumbnails may be displayed on the screen of the display 17. You may display with normal size.
  • the destination to which the tablet computer 10 communicates may be the server 2 on the cloud that provides a storage service or the like, as described above, instead of the personal computer 1.
  • the tablet computer 10 can transmit handwritten document information to the server 2 via the network and record it in the storage device 2A of the server 2 (upload). Furthermore, the tablet computer 10 reads (downloads) arbitrary handwritten document information recorded in the storage device 2A of the server 2, and displays the trajectory of each stroke indicated by the handwritten document information on the screen of the display 17 of the tablet computer 10. Can be displayed.
  • the storage medium in which the handwritten document information is stored may be any one of the storage device in the tablet computer 10, the storage device in the personal computer 1, and the storage device in the server 2.
  • FIG. 3 shows an example of a handwritten document (handwritten character string) handwritten on the touch screen display 17 using the pen 100 or the like.
  • the handwritten character “A” is represented by two strokes (“ ⁇ ” shape trajectory, “ ⁇ ” shape trajectory) handwritten using the pen 100 or the like, that is, two trajectories.
  • the trajectory of the first “ ⁇ ” -shaped pen 100 handwritten is sampled in real time, for example, at equal time intervals, thereby obtaining the time-series coordinates SD11, SD12,... SD1n of the “ ⁇ ” -shaped stroke.
  • the trajectory of the “ ⁇ ” shaped pen 100 to be handwritten next is also sampled in real time at equal time intervals, thereby obtaining the time series coordinates SD21, SD21,... SD2n of the “ ⁇ ” shaped stroke.
  • the handwritten character “B” is represented by two strokes handwritten using the pen 100 or the like, that is, two trajectories.
  • the handwritten character “C” is represented by one stroke handwritten by using the pen 100 or the like, that is, one locus.
  • the handwritten “arrow” is expressed by two strokes handwritten by using the pen 100 or the like, that is, two trajectories.
  • FIG. 4 shows handwritten document information 200 corresponding to the handwritten document of FIG.
  • the handwritten document information 200 includes a plurality of stroke data SD1, SD2,.
  • these stroke data SD1, SD2,..., SD7 are arranged in time series in the order in which these strokes are handwritten.
  • the first two stroke data SD1 and SD2 indicate two strokes of the handwritten character “A”, respectively.
  • the third and fourth stroke data SD3 and SD4 indicate two strokes constituting the handwritten character “B”, respectively.
  • the fifth stroke data SD5 indicates one stroke constituting the handwritten character “C”.
  • the sixth and seventh stroke data SD6 and SD7 indicate two strokes constituting the handwritten “arrow”, respectively.
  • Each stroke data includes a coordinate data series (time series coordinates) corresponding to one stroke, that is, a plurality of coordinates corresponding to a plurality of points on the trajectory of one stroke.
  • a plurality of coordinates are arranged in time series in the order in which the strokes are written.
  • the stroke data SD1 is a coordinate data series (time series coordinates) corresponding to each point on the locus of the stroke of the “ ⁇ ” shape of the handwritten character “A”, that is, n coordinates.
  • Data SD11, SD12,... SD1n are included.
  • the stroke data SD2 includes coordinate data series corresponding to each point on the locus of the stroke of the “ ⁇ ” shape of the handwritten character “A”, that is, n pieces of coordinate data SD21, SD22,... SD2n. Note that the number of coordinate data may be different for each stroke data.
  • Each coordinate data indicates an X coordinate and a Y coordinate corresponding to one point in the corresponding locus.
  • the coordinate data SD11 indicates the X coordinate (X11) and the Y coordinate (Y11) of the start point of the “ ⁇ ” -shaped stroke.
  • SD1n indicates the X coordinate (X1n) and Y coordinate (Y1n) of the end point of the “ ⁇ ” -shaped stroke.
  • each coordinate data may include time stamp information (time information) T corresponding to the time when the point corresponding to the coordinate is handwritten.
  • the handwritten time may be either absolute time (for example, year / month / day / hour / minute / second) or relative time based on a certain time.
  • the absolute time for example, year / month / day / hour / minute / second
  • time information T time stamp information
  • a relative time indicating a difference between the time stamp and the time stamp information (time information) T may be added.
  • the relative time (time information) corresponding to certain coordinate data corresponds to the time interval between the time when the stroke starts to be written and the time when the point corresponding to this coordinate data is handwritten.
  • information (Z) indicating writing pressure may be added to each coordinate data.
  • the handwritten document information 200 having the structure as described in FIG. 4 can represent not only the handwriting of each stroke but also the temporal relationship between the strokes. Therefore, by using this handwritten document information 200, as shown in FIG. 3, the tip of the handwritten “arrow” is written over the handwritten character “A” or close to the handwritten character “A”. However, the handwritten character “A” and the tip of the handwritten “arrow” can be handled as different characters or figures.
  • handwritten document information is not stored as an image or character recognition result, but is stored as a set of time-series stroke data, so that handwritten characters are not dependent on the language of handwritten characters. Can be handled. Therefore, the structure of the handwritten document information 200 of the present embodiment can be commonly used in various countries around the world with different languages.
  • FIG. 5 is a diagram showing a system configuration of the tablet computer 10.
  • the tablet computer 10 includes a CPU 101, a system controller 102, a main memory 103, a graphics controller 104, a BIOS-ROM 105, a nonvolatile memory 106, a wireless communication device 107, an embedded controller (EC) 108, and the like. .
  • the CPU 101 is a processor that controls the operation of various modules in the tablet computer 10.
  • the CPU 101 executes various software loaded into the main memory 103 from the nonvolatile memory 106 that is a storage device.
  • These software include an operating system (OS) 201 and various application programs.
  • the application program includes a handwritten note application program 202.
  • This handwritten note application program 202 has a function for creating and displaying the above-mentioned handwritten document information, a function for editing handwritten document information, handwritten document information including a desired handwritten part, and a desired handwritten part in a certain handwritten document information. It has a handwritten document search function for searching.
  • the handwritten document search function can execute both handwriting search and text search (character string search).
  • the handwriting search is a search method for searching a stroke data group having a handwriting feature amount similar to the handwriting feature amount of the handwritten stroke group which is a search key.
  • Text search is a search method for searching for handwritten characters (stroke data group) corresponding to text (character code) that is a search key.
  • the handwritten document search function further has a function of generating index information for searching for handwritten document information.
  • feature amount information and character string information are generated as index information.
  • the feature amount information includes a handwriting feature amount of each stroke data of each handwritten document information, and is used as index information for searching for a handwritten document by the above-described handwriting search method.
  • the character string information includes a character code corresponding to each handwritten character in each handwritten document information, and is used as index information for searching for a handwritten document by the text search method described above.
  • the CPU 101 also executes a basic input / output system (BIOS) stored in the BIOS-ROM 105.
  • BIOS is a program for hardware control.
  • the system controller 102 is a device that connects between the local bus of the CPU 101 and various components.
  • the system controller 102 also includes a memory controller that controls access to the main memory 103.
  • the system controller 102 also has a function of executing communication with the graphics controller 104 via a PCI EXPRESS serial bus or the like.
  • the graphics controller 104 is a display controller that controls the LCD 17 ⁇ / b> A used as a display monitor of the tablet computer 10.
  • a display signal generated by the graphics controller 104 is sent to the LCD 17A.
  • the LCD 17A displays a screen image based on the display signal.
  • a touch panel 17B and a digitizer 17C are disposed on the LCD 17A.
  • the touch panel 17B is a capacitance type sensor for performing input on the screen of the LCD 17A.
  • the touch position on the screen where the finger is touched and the movement of the touch position are detected by the touch panel 17B.
  • the digitizer 17C is an electromagnetic induction type sensor for inputting on the screen of the LCD 17A.
  • the digitizer 17C detects the contact position on the screen where the pen 100 is touched, the movement of the contact position, and the like.
  • the wireless communication device 107 is a device configured to perform wireless communication such as wireless LAN or 3G mobile communication.
  • the EC 108 is a one-chip microcomputer including an embedded controller for power management.
  • the EC 108 has a function of turning on or off the tablet computer 10 in accordance with the operation of the power button by the user.
  • FIG. 6 shows a desktop / drawer screen displayed by the handwritten note application program 202.
  • the desktop / drawer screen is a basic screen for handling a plurality of handwritten document information.
  • the handwritten document information is referred to as a handwritten note.
  • the desktop / drawer screen includes a desktop screen area 70 and a drawer screen area 71.
  • the desktop screen area 70 is a temporary area for displaying a plurality of note icons 801 to 805 corresponding to a plurality of handwritten notes being worked. Each of the note icons 801 to 805 displays a thumbnail of a page in the corresponding handwritten note.
  • the desktop screen area 70 further displays a pen icon 771, a calendar icon 772, a scrap note icon 773, and a tag icon 774.
  • the pen icon 771 is a graphical user interface (GUI) for switching the display screen from the desktop / drawer screen to a note view screen described later with reference to FIG.
  • the calendar icon 772 is an icon indicating the current date.
  • This calendar icon 772 is a GUI for switching the display screen from the desktop / drawer screen to the timeline note screen associated with the current date.
  • the scrap note icon 773 is a GUI for creating or browsing scrap data. The created scrap data is registered in the strap book.
  • the scrap note icon 773 displays a thumbnail of each scrap data registered in the scrapbook.
  • the tag icon 774 is a GUI for attaching a sticky note (tag) to an arbitrary page in an arbitrary handwritten note.
  • the drawer screen area 71 is a display area for browsing a storage area for storing all created handwritten notes.
  • the drawer screen area 71 displays note icons 80A, 80B, 80C corresponding to some handwritten notes in all handwritten notes.
  • Each of the note icons 80A, 80B, 80C displays a thumbnail of a page in the corresponding handwritten note.
  • the handwritten note application program 202 can detect a gesture (for example, a swipe gesture) on the drawer screen area 71 performed by the user using an external object. In response to detecting this gesture (for example, a swipe gesture), the handwritten note application program 202 scrolls the screen image on the drawer screen area 71 leftward or rightward. Thereby, the note icon corresponding to each arbitrary handwritten note can be displayed in the drawer screen area 71.
  • the handwritten note application program 202 can detect a gesture (for example, a tap gesture) on the note icon in the drawer screen area 71 performed by the user using an external object. In response to detection of a gesture (for example, a tap gesture) on a certain note icon on the drawer screen area 71, the handwritten note application program 202 moves the note icon to the center of the desktop screen area 70. Then, the handwritten note application program 202 selects a handwritten note corresponding to this note icon, and displays the desktop screen shown in FIG. 7 instead of the desktop / drawer screen.
  • the desktop screen of FIG. 7 is a screen on which an arbitrary page in the selected handwritten note can be browsed.
  • the handwritten note application program 202 can also detect a gesture (for example, a tap gesture) on the desktop screen area 70 performed by the user using an external object. In response to detecting a gesture (for example, a tap gesture) on a note icon located at the center of the desktop screen area 70, the handwriting note application program 202 selects a handwritten note corresponding to the note icon located at the center. Then, instead of the desktop / drawer screen, the desktop screen shown in FIG. 7 is displayed.
  • a gesture for example, a tap gesture
  • FIG. 7 shows the desktop screen described above.
  • This desktop screen is a screen on which an arbitrary page in the selected handwritten note can be viewed.
  • a handwritten note corresponding to the note icon 801 is selected.
  • the handwritten note application program 202 can visually recognize a plurality of pages 901, 902, 903, 904, and 905 included in the handwritten note, and at least a part of each of these pages 901, 902, 903, 904, and 905, and These pages 901, 902, 903, 904, and 905 are displayed in an overlapping form.
  • the desktop screen further displays the pen icon 771, the calendar icon 772, the scrap note icon 773, and the tag icon 774 described above.
  • the handwritten note application program 202 can detect various gestures on the desktop screen performed by the user. For example, in response to detection of a certain gesture, the handwritten note application program 202 changes the page to be displayed at the top to an arbitrary page (page advance, page return). Further, in response to detection of a certain gesture (for example, tap gesture) performed on the top page or in response to detection of a certain gesture (for example, tap gesture) performed on the pen icon 771, the handwritten note application The program 202 selects the top page and displays the note view screen shown in FIG. 8 instead of the desktop screen.
  • a certain gesture for example, tap gesture
  • tap gesture for example, tap gesture
  • the note view screen in FIG. 8 is a screen on which a new page (handwritten page) can be created and an existing page can be viewed and edited.
  • the note view screen displays the contents of this page 901 as shown in FIG.
  • the note view screen further displays a black pen button 501, a red pen button 502, a marker button 503, a selection button 504, and an eraser button 505.
  • the handwriting note application program 202 is synchronized with the movement of the pen 100.
  • a black stroke (trajectory) is displayed on the note view screen.
  • FIG. 9 shows an example of a search key input dialog.
  • the handwritten note application program 202 in response to detection of a tap gesture performed on an empty area on the desktop screen, the handwritten note application program 202 includes a search key input area 511, a handwriting search button 512A, a text search button 512B, and a search execution button 512.
  • the handwriting search button 512A is a button for selecting the above-described handwriting search method.
  • the text search button 512B is a button for selecting the text search method described above.
  • the search button 512C is a button for requesting execution of search processing.
  • the search key input area 511 can be used as an input area for handwriting a character string, a figure, a table or the like to be used as a search key.
  • the user can handwrite not only the handwritten character string but also a handwritten figure, a handwritten table, or the like in the search key input area 511.
  • FIG. 9 illustrates the case where the handwritten character string “Determine” is input as a search key in the search key input area 511.
  • a software keyboard is displayed on the screen.
  • the user can input an arbitrary text (character string) into the search key input area 511 as a search key by operating the software keyboard.
  • the search button 512C is selected by the user in a state where text is input as a search key in the search key input area 511, a text search for searching for a handwritten document including a stroke data group corresponding to the text is executed. .
  • the handwritten note application program 202 is a WYSIWYG application capable of handling handwritten document information, and includes a main control unit 300, a drawing module 311, a handwriting management module 312, a handwriting search module 313A, a character recognition module 313B, and a character search module 313C.
  • the main control unit 300 creates, displays, edits, and searches a handwritten document (handwritten page) in cooperation with the drawing module 311, the handwriting management module 312, the handwriting search module 313A, the character recognition module 313B, the character search module 313C, and the like.
  • handwritten document information (a plurality of stroke data) and handwriting feature amount information / character string information are managed using different files.
  • the handwritten document information is managed using a file format corresponding to the markup language.
  • a file format corresponding to the markup language for example, an xml (Extensible Markup Language) file can be used.
  • the plurality of stroke data in the handwritten document information is stored in the first file (xml file) in a hierarchical document structure format described in a markup language.
  • one handwritten page (handwritten page data) may be managed by one xml file. In this case, the number of xml files corresponding to the number of handwritten pages is created.
  • the handwriting feature amount information / character string information corresponding to the handwritten page data is stored in a second file different from the xml file storing a plurality of stroke data of the handwritten page data, for example, a database file.
  • the handwriting feature amount information / character string information is in a state where the handwriting feature amount / character code corresponding to one or more stroke data is associated with the identification information corresponding to the one or more stroke data (for example, in a table format). ) Saved in a second file, such as a database file.
  • handwritten page data (stroke data) and handwriting feature amount information / character string information corresponding to the handwritten page data are managed using the same database, handwriting feature amount information / character string information stored in the database / While the update process is being executed, it may not be possible to save / update stroke data or perform stroke data drawing process. Because in a database, it is usually possible to perform two different read processes at the same time, but two different write processes cannot be performed at the same time, and in order to guarantee data consistency, This is because exclusive control is required. Even if handwritten page data (stroke data) and handwriting feature amount information / character string information are managed in different tables, the same exclusive control is required as long as these tables are tables in the same database file. .
  • the drawing of the handwritten stroke itself may be executed before the stroke data corresponding to this stroke is stored in the database.
  • the electronic device is turned off due to an unexpected error before the stroke data is stored in the database, the stroke data corresponding to this stroke is displayed even though the stroke is drawn and presented to the user. Will disappear. Therefore, while the update process of the handwriting feature amount information / character string information in the database is being executed, actually, not only the storage / update of the stroke data but also the execution of the drawing process is stopped as described above. It will be necessary.
  • handwriting feature amount information / character string information generation process corresponding to the handwritten page may not be executed. However, if this is done, handwriting feature amount information / character string information corresponding to the handwritten page being created does not exist, and there is a possibility that the search for the handwritten page being created cannot be performed at all.
  • handwritten page data (stroke data) is stored in an xml file, and handwriting feature amount information / character string information corresponding to the handwritten page data is stored in another file (database file). Therefore, even if the processing for saving the handwriting feature amount information / character string information corresponding to a certain handwritten page data is being executed in the database file, it does not wait for the end of the saving of the handwriting feature amount information / character string information.
  • the process of saving (adding) new stroke data to the handwritten page data and the process of drawing a stroke corresponding to the new stroke data can be immediately performed.
  • handwritten page data is being created or edited
  • the process of generating and storing handwriting feature amount information / character string information corresponding to the handwritten page data can be performed in almost real time.
  • a new stroke is handwritten
  • the locus of this stroke is drawn and the stroke data corresponding to this stroke is immediately saved in the xml file.
  • the stroke data is read from the xml file, and handwriting feature amount information / character string information corresponding to the stroke data is generated.
  • the generated handwriting feature amount information / character string information is stored in another file such as a database file.
  • the handwritten page data is composed of a set of a plurality of stroke data, and each stroke data is composed of a plurality of coordinate data.
  • the handwritten page data may include time information related to the time when the stroke is handwritten and stroke pressure information.
  • the xml file can manage the relationship between a plurality of elements by a hierarchical document structure. Therefore, the xml file is useful for managing a plurality of stroke data each including a plurality of coordinate data. Since the xml file is text-based data, the specification can be changed more flexibly than the database file. Therefore, by using the xml file, it is possible to flexibly cope with addition of attributes relating to stroke data or addition of attributes relating to coordinate data.
  • the main control unit 300 receives a coordinate sequence corresponding to the locus of movement of the pen 100 from the touch screen display 17 (for example, the digitizer 17C). For example, the main control unit 300 transmits a plurality of coordinate data (a plurality of point data) corresponding to a plurality of points on the locus of this stroke to the handwriting management module 312 in units of one stroke.
  • the handwriting management module 312 functions as a stroke processing unit that stores a plurality of stroke data corresponding to a plurality of strokes handwritten on a certain handwritten page in an xml file.
  • the handwriting management module 312 stores a plurality of coordinate data (a plurality of point data) received from the main control unit 311 in an xml file. Then, the handwriting management module 312 reads the plurality of coordinate data (a plurality of point data) from the xml file, and transmits the read plurality of coordinate data (a plurality of point data) to the drawing module 311.
  • the handwriting management module 312 can immediately store a plurality of coordinate data (a plurality of point data) received from the main control unit 311 in an xml file, so that it is received from the main control unit 300 first.
  • a plurality of coordinate data may be transmitted to the drawing module 311 and then the plurality of coordinate data may be stored in an xml file.
  • the handwriting management module 312 can also read a handwritten page (stroke data group) from an arbitrary xml file and transmit a plurality of coordinate data of each stroke data to the drawing module 311.
  • the drawing module 311 is configured to draw a plurality of trajectories corresponding to a plurality of handwritten strokes on the screen.
  • the drawing module 311 receives a plurality of coordinate data from the handwriting management module 312 and draws a locus corresponding to the stroke based on the coordinate data.
  • the drawing module 311 itself may draw (display) the trajectory corresponding to the stroke on the screen, or the main control unit 300 receives the drawing result (trajectory) from the drawing module 311, and this drawing result ( Based on the (trajectory), a trajectory corresponding to the stroke may be displayed on the screen.
  • the handwriting search module 313A and the character recognition module 313B search the handwritten page for the above-mentioned handwritten feature amount information / character string information corresponding to the handwritten page being created or edited in cooperation with the main control unit 300. It functions as a generating unit that generates as index information. More specifically, the handwriting search module 313A calculates a plurality of handwriting feature amounts corresponding to the plurality of stroke data from the plurality of stroke data in the xml file corresponding to the handwritten page being created or edited. Are generated as index information (handwriting feature amount information) for searching by a handwriting search method. Then, the handwriting search module 313A stores the generated plurality of handwritten feature amounts in the feature amount database 412A in association with the identification information of the plurality of stroke data described above.
  • the stroke data processing by the handwriting search module 313A is executed on the unprocessed stroke data, that is, the stroke data for which the handwriting feature amount has not been generated. That is, the handwriting search module 313A acquires each unprocessed stroke data from the xml file corresponding to the handwritten page being created or edited. Then, the handwriting search module 313A processes each unprocessed stroke data, thereby calculating a handwriting feature amount of each unprocessed stroke data.
  • the handwriting feature amount of the stroke data any information that can express the feature of the stroke data (stroke) can be used. For example, feature amount data representing the shape, stroke direction, inclination, etc. of the stroke can be used as the stroke handwriting feature amount.
  • the feature amount database 412A is a database file for storing handwritten feature amount information.
  • a large number of stroke data identification information (stroke ID) and a large number of handwriting feature amounts corresponding to the large number of stroke data are stored.
  • the handwritten feature amount of each stroke data is not only associated with the identification information (stroke ID) of this stroke data, but also the identification information of the handwritten page containing this stroke data. (Page ID) may also be associated.
  • the character recognition module 313B cooperates with the main control unit 300 to generate a plurality of character codes corresponding to the plurality of stroke data from the plurality of stroke data in the xml file corresponding to the handwritten page being created or edited.
  • a plurality of stroke data is generated as index information (character string information) for searching by a text search method.
  • the character recognition module 313B stores the generated plurality of character codes in the character search database 412B in association with the identification information of the plurality of stroke data described above.
  • the character code corresponding to the character is stored in the character search database 412B in a state associated with the two or more stroke data.
  • the processing of stroke data (character recognition processing) by the character recognition module 313B that is, processing for generating a character code is executed for unprocessed stroke data, that is, stroke data for which no character code has been generated. That is, the character recognition module 313B acquires each unprocessed stroke data from the xml file corresponding to the handwritten page being created or edited. Then, the character recognition module 313B generates a character code for each unprocessed stroke data by recognizing each unprocessed stroke data.
  • the character search database 412B is a database file for storing character string information.
  • the table in the character search database 412B stores a large number of stroke data identification information (stroke ID) and a large number of character codes corresponding to the large number of stroke data. Further, in the table in the character search database 412B, the character code of each stroke data is not only associated with the identification information (stroke ID) of the stroke data, but also the identification information of the handwritten page including the stroke data ( Page ID).
  • the database file of the character search database 412B may be a database file different from the feature amount database 412A.
  • the handwriting search module 313A not only functions as a generation unit that generates handwriting feature quantity information, but also functions as a search unit for executing the above-described handwriting search. That is, the handwriting search module 313A searches for stroke data corresponding to the stroke data that is the search key, using the handwriting feature amount of the stroke data that is the search key and the handwriting feature amount information in the feature amount database 412A.
  • the handwriting search module 313A receives stroke data corresponding to one or more strokes which are search keys from the main control unit 300. Then, the handwriting search module 313A uses the handwriting feature amount information in the feature amount database 412A and the handwriting feature amount (query feature amount) of the stroke data that is the search key to use the stroke data corresponding to the search key ( Search for (handwritten part).
  • the handwriting search module 313A finds a handwriting feature amount similar to the query feature amount from the handwriting feature amount information in the feature amount database 412A, and uses the stroke ID and page ID corresponding to the handwriting feature amount as a search result.
  • feature amount information whose similarity to the query feature amount is greater than or equal to the reference value is acquired from the feature amount database 412A.
  • DP Dynamic programming
  • the main control unit 300 Based on the search results (stroke ID and page ID) received from the handwriting search module 313A, the main control unit 300 displays one or more handwritten pages including stroke data (handwritten portion) corresponding to the search key described above. . In this case, the main control unit 300 may highlight the handwritten portion (hit word) in the one or more handwritten pages.
  • the character search module 313C functions as a search unit for executing the text search described above. That is, the character search module 313C uses the text (one or more character codes) as the search key and the character string information in the character search database 412B to support the text (one or more character codes) as the search key. Search stroke data (handwritten part).
  • the character search module 313C receives one or more character codes corresponding to the text that is the search key from the main control unit 300. Then, the character search module 313C uses the character string information in the character search database 412B and one or more character codes as search keys to search for stroke data (handwritten portion) corresponding to the search key.
  • the character search module 313C finds one or more character codes that are the same as the one or more character codes that are search keys from the character string information in the character search database 412B, and 1 corresponding to the one or more character codes.
  • the above stroke ID and page ID are returned to the main control unit 300 as search results.
  • the main control unit 300 Based on the search results (one or more stroke IDs and page IDs) received from the character search module 313C, the main control unit 300 includes one or more text data corresponding to the search key (handwritten portion). Display a handwritten page. In this case, the main control unit 300 may highlight the handwritten portion (hit word) in the one or more handwritten pages.
  • the meta database 412C is a database for managing a plurality of metadata corresponding to each of a plurality of handwritten pages, for example, page creation date / time, page update date / time, page ID (UUID), page title, and the like.
  • FIG. 11 shows a document structure of an xml file for managing a stroke data group in a handwritten page.
  • the xml instance of the xml file includes a “root” element, a “page_data” element, a “strokes” element, a “stroke” element, a “points” element, and a “point” element.
  • a hierarchical sentence structure is defined by these elements.
  • the “root” element is an element (node) that is the starting point of all elements in the xml instance.
  • the “page_data” element is a child element of the “root” element.
  • the “page_data” element includes three attributes: a “uuid” attribute, a “create_time” attribute, and an “update_time” attribute.
  • the attribute value “ID1” of the “uuid” attribute indicates the page ID of the handwritten page included in the xml file.
  • the attribute value “TIME1” of the “create_time” attribute is time information regarding the creation date and time of this handwritten page. This TIME1 may be an absolute time (year / month / day / hour / minute / second) indicating the creation date / time.
  • the attribute value “TIME2” of the “update_time” attribute is time information regarding the update date and time of this handwritten page. TIME2 may also be an absolute time (year / month / day / hour / minute / second) indicating the update date / time.
  • the “page_data” element has a “width” attribute indicating the width of the handwritten page, a “height” attribute indicating the height of the handwritten page, a “title” attribute indicating the title of the handwritten page, and the like. May be.
  • “Strokes” element is a child element of “page_data” element.
  • the “strokes” element functions as an element (node) for grouping a plurality of “stroke” elements in an xml instance.
  • the “strokes” element includes at least one attribute, eg, a “stroke_count” attribute.
  • the “stroke_count” attribute indicates the number (total number) of stroke data currently included in the xml file. Each time new stroke data is saved in the xml file, the attribute value of the “stroke_count” attribute is updated.
  • FIG. 11 illustrates a case where the attribute value of the “stroke_count” attribute is “2” for the sake of simplicity.
  • a plurality of “stroke” elements are element groups that are siblings of each other.
  • One “stroke” element corresponds to one stroke data.
  • Each “stroke” element functions as an element (node) for grouping a plurality of “point” elements in cooperation with a “points” element that is a child element of the “stroke” element.
  • Each “stroke” element includes at least three attributes: a “stroke_id” attribute, a “time” attribute, and a “color” attribute.
  • the “stroke_id” attribute indicates identification information (stroke ID) of corresponding stroke data.
  • the “time” attribute is time information related to the time when the corresponding stroke data is handwritten.
  • the “time” attribute may be an absolute time (year / month / day / hour / minute / second) when the corresponding stroke data is handwritten.
  • the “color” attribute indicates the color of the locus corresponding to the corresponding stroke data.
  • the “stroke” element has a “width” attribute indicating the width (line width) of the trajectory corresponding to the stroke data, and a line type (eg, solid line, broken line, etc.) of the trajectory corresponding to the stroke data. May have a "type” attribute, etc.
  • the “points” element is a child element of the “stroke” element.
  • the “points” element functions as an element (node) for grouping a plurality of “point” elements that are child elements of the “points” element.
  • the “points” element includes at least one attribute, eg, a “point_count” attribute.
  • the “point_count” attribute indicates the total number of “point” elements included in the “points” element, that is, the total number of coordinate data.
  • a plurality of “point” elements grouped by a certain “points” element correspond to a plurality of coordinate data in a certain stroke.
  • One “point” element corresponds to one coordinate data.
  • each “point” element may be, for example, an empty element that does not include element content.
  • Each “point” element includes, for example, four attributes: an “x” attribute, a “y” attribute, a “duration” attribute, and a “pressure” attribute.
  • the “x” attribute indicates the x coordinate of the corresponding coordinate data (corresponding point).
  • the “y” attribute indicates the y coordinate of corresponding coordinate data (corresponding point).
  • the “duration” attribute is time information regarding a time interval from the handwriting start time of the corresponding stroke data to the time when the corresponding coordinate data is handwritten.
  • the “pressure” attribute indicates the writing pressure of the corresponding coordinate data (corresponding point).
  • individual coordinate data is managed as a tagged “point” element.
  • a plurality of “point” elements corresponding to a plurality of coordinate data belonging to the same stroke are grouped by a “stroke” element including a stroke ID of the stroke data including the plurality of coordinate data.
  • each “stroke” element includes time information, the time when each stroke was handwritten can be easily recognized. Further, since the xml file is a text-based file, for example, the attribute type associated with each element can be easily added. Also, the number of “point” elements that can be registered as child elements in the “stroke” element is not limited.
  • Each of the handwriting search module 313A and the character recognition module 313B easily obtains an unprocessed stroke data group from an xml file based on a plurality of “time” attributes (time information) corresponding to a plurality of “stroke” elements. can do. That is, each of the handwriting search module 313A and the character recognition module 313B determines that the stroke data is unprocessed based on the “time” attribute of the “stroke” element, that is, based on time information related to the time when a certain stroke data is handwritten. It is determined whether or not the stroke data.
  • a “stroke” element (stroke data) having time information later than the time of the previous handwriting feature value / character code generation processing (time when stroke data was last acquired from an xml file) is unprocessed stroke data. It is determined.
  • Each of the handwriting search module 313A and the character recognition module 313B requests time information of each stroke data from the handwriting management module 312 and receives the “time” attribute of each “stroke” element from the handwriting management module 312. Also good.
  • Each of the handwriting search module 313A and the character recognition module 313B may determine unprocessed stroke data and request the determined unprocessed stroke data from the handwriting management module 312.
  • FIG. 12 shows a configuration example of a handwriting feature amount management table stored in the feature amount database 412A.
  • the handwriting feature amount management table includes a plurality of entries corresponding to a plurality of stroke data. Each entry includes, for example, a page ID, a stroke ID, and a feature amount (handwriting feature amount).
  • page ID indicates identification information given to a handwritten page in which the stroke data is handwritten.
  • Stroke ID indicates identification information given to the stroke.
  • Feature amount indicates a feature amount (handwriting feature amount) calculated by analyzing the stroke.
  • feature amount data representing the shape of each stroke or the like can be used.
  • the feature amount is managed for each stroke, but the feature amount of the handwritten object is managed in units of handwritten objects (handwritten blocks) such as handwritten figures, handwritten tables, and handwritten symbols. May be.
  • handwritten objects handwritten blocks
  • any feature amount capable of expressing features such as the shape of the handwritten object can be used.
  • the feature amount of the handwritten object may include information indicating the order in which a plurality of strokes constituting the handwritten object are written, and the like.
  • FIG. 13 shows a configuration example of a character string information management table stored in the character search database 412B.
  • the character string information management table includes a plurality of entries corresponding to a plurality of character blocks. Each entry includes, for example, “page ID”, “stroke ID range”, and “character string”.
  • page ID indicates identification information of a handwritten page in which the character block is handwritten.
  • Stroke ID range indicates a range of identification information assigned to a stroke group in the character block.
  • “Character string” indicates (character code) for the character block. As a character code of a certain character block, a plurality of character codes corresponding to a plurality of character candidates of the character block may be registered.
  • FIG. 14 shows an outline of handwritten document search.
  • a plurality of strokes corresponding to the handwritten character string “Meeting” is handwritten with the pen 100 in the search key input area 511 and the handwriting search is selected by the user.
  • the handwriting search module 313A receives stroke data corresponding to one or more strokes which are search keys from the main control unit 300.
  • the handwriting search module 313A calculates the handwriting feature amount (query feature amount) of the stroke data. Then, the handwriting search module 313A refers to the feature amount base 412A and searches for a handwritten page including a handwritten portion (stroke data) having a handwriting feature similar to the handwriting feature of the handwritten character string “Meeting”. Assume that the handwritten pages 611, 612, and 613 include a handwritten part having handwriting characteristics similar to the handwritten character string “Meeting”.
  • the main control unit 300 displays the thumbnails of the handwritten pages 611, 612, and 613 on the screen based on the search result received from the handwriting search module 313A. Further, the main control unit 300 highlights the hit word (handwritten character string “Meeting”) in the handwritten pages 611, 612, and 613.
  • the flowchart of FIG. 15 shows the procedure of the storage process of stroke data, handwriting feature amount information, and character string information executed by the handwritten note application program 202 during the process of creating / editing a handwritten page.
  • the handwriting management module 312 stores a plurality of stroke data corresponding to a plurality of strokes handwritten on the handwritten page to be created / edited in the first storage area (step S11). In this case, the handwriting management module 312 converts a plurality of stroke data into a first file (xml file) in the first storage area on the storage medium in the form of a hierarchical document structure described in a markup language. Save to.
  • the handwriting search module 313A acquires a plurality of unprocessed stroke data from the xml file during the process of creating / editing the handwritten page. For example, the handwriting search module 313A may acquire unprocessed stroke data when the pen 100 is separated from the screen or when the pen 100 is separated from the screen for a certain period. Then, the handwriting search module 313A stores a plurality of handwriting feature amounts corresponding to the acquired plurality of stroke data in a second storage area different from the first storage area (step S12). In this case, the handwriting search module 313A associates the plurality of handwriting feature amounts with the stroke IDs of the plurality of stroke data described above and stores them in a second file (feature amount database file) different from the xml file.
  • a second file feature amount database file
  • the character recognition module 313B acquires a plurality of unprocessed stroke data from the xml file during the handwritten page creation / editing process. For example, the character recognition module 313B may acquire unprocessed stroke data when the pen 100 is separated from the screen or when the pen 100 is separated from the screen for a certain period. Then, the character recognition module 313B stores a plurality of character codes corresponding to the acquired plurality of stroke data in a third storage area different from the second storage area (step S13). In this case, the character recognition module 313B associates the plurality of character codes with the stroke IDs of the plurality of stroke data described above, and creates third files (character search database files) different from the xml file and the feature amount database file described above. save.
  • the flowchart of FIG. 16 shows the procedure of a handwritten document search process executed by the handwritten note application program 202.
  • the main control unit 300 transmits stroke data as a search key to the handwriting search module 313A.
  • the handwriting search module 313A executes handwriting search (step S23).
  • the handwriting search module 313A performs a handwriting search using the handwriting feature amount of stroke data which is a search key and the feature amount information in the feature amount database 412A.
  • the handwriting search module 313A searches each handwritten page including the handwritten data portion corresponding to the search key, that is, each handwritten page including stroke data having handwriting characteristics similar to the stroke data that is the search key.
  • the main control unit 300 transmits a character code that is a search key to the character search module 313C.
  • the character search module 313C executes text search (character string search) (step S24). In this case, the character search module 313C executes text search using the character code that is the search key and the character search database 412B. Then, the character search module 313C searches for a handwritten page including the character code corresponding to the search key.
  • a plurality of stroke data corresponding to a plurality of handwritten strokes is stored in the first file in a hierarchical document structure format described in a markup language.
  • one or more unprocessed stroke data is acquired, and at least one of the handwriting feature amount corresponding to the one or more stroke data or the character code corresponding to the one or more stroke data is different from the first file. Saved in a file.
  • a plurality of stroke data each including a plurality of coordinate data can be easily managed. be able to.
  • the second file at least one of a handwriting feature amount corresponding to one or more stroke data or a character code corresponding to one or more stroke data is associated with identification information corresponding to the one or more stroke data. ing. Therefore, by using the second file, it is possible to efficiently search for stroke data having a handwriting feature amount similar to the stroke handwriting feature amount as a search key or stroke data corresponding to a character code as a search key. Can do.
  • the hierarchized document structure of the first file includes a plurality of first elements corresponding to a plurality of coordinate data included in one stroke data, and a second information including identification information of the one stroke data. And at least a second element that groups the plurality of first elements. Therefore, the process etc. which acquire the target stroke data from a 1st file can be performed efficiently.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Character Discrimination (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

 実施形態によれば、描画手段は、手書きされる複数のストロークに対応する複数の軌跡を画面上に描画する。ストローク処理手段は、前記複数のストロークに対応する複数のストロークデータを、マークアップ言語によって記述される階層化された文書構造の形式で第1のファイルに保存する。生成手段は、前記複数のストロークデータに対応する複数の筆跡特徴量または前記複数のストロークデータに対応する複数の文字コードの少なくとも一方を生成する。前記生成手段は、未処理の1以上のストロークデータを取得し、前記1以上のストロークデータに対応する筆跡特徴量または前記1以上のストロークデータに対応する文字コードの少なくとも一方を、前記第1のファイルと異なる第2のファイルに保存する。

Description

電子機器および手書き文書処理方法
 本発明の実施形態は、手書き文書を処理する技術に関する。
 近年、タブレット、PDA、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。
 ユーザは、タッチスクリーンディスプレイ上に表示されるメニューまたはオブジェクトを指などでタッチすることにより、これらメニューまたはオブジェクトに関連づけられた機能の実行を電子機器に指示することができる。
 しかし、タッチスクリーンディスプレイを備える既存の電子機器の多くは、画像、音楽、他の各種メディアデータに対する操作性を追求したコンシューマ向け製品であり、会議、商談、商品開発などのビジネスシーンにおける利用については必ずしも適していない場合がある。このため、ビジネスシーンにおいては、いまなお、紙の手帳が広く利用されている。
 最近では、手書き文書を認識することによって得られるテキストを使用して手書き文書を検索するための技術も開発されている。
特開2001-155115号公報
 しかし、従来では、手書き文書の作成中又は編集中にこの手書き文書を検索するための情報を生成する技術については考慮されていないのが現状である。
 本発明の一形態の目的は、手書き文書を効率よく処理することができる電子機器および手書き文書処理方法を提供することである。
 実施形態によれば、電子機器は、描画手段と、ストローク処理手段と、生成手段とを具備する。前記描画手段は、手書きされる複数のストロークに対応する複数の軌跡を画面上に描画する。前記ストローク処理手段は、前記複数のストロークに対応する複数のストロークデータを保存する。前記生成手段は、前記複数のストロークデータから、前記複数のストロークデータに対応する複数の筆跡特徴量または前記複数のストロークデータに対応する複数の文字コードの少なくとも一方を生成する。前記ストローク処理手段は、前記複数のストロークデータを、マークアップ言語によって記述される階層化された文書構造の形式で第1のファイルに保存する。前記生成手段は、未処理の1以上のストロークデータを取得し、前記1以上のストロークデータに対応する筆跡特徴量または前記1以上のストロークデータに対応する文字コードの少なくとも一方を、前記第1のファイルと異なる第2のファイルに保存する。
図1は、実施形態に係る電子機器の外観を示す斜視図である。 図2は、同実施形態の電子機器と外部装置との連携動作を示す図である。 図3は、同実施形態の電子機器のタッチスクリーンディスプレイ上に手書きされる手書き文書の例を示す図である。 図4は、同実施形態の電子機器によって記憶媒体に保存される、図3の手書き文書に対応する手書き文書情報の概要を説明するための図である。 図5は、同実施形態の電子機器のシステム構成を示すブロック図である。 図6は、同実施形態の電子機器によって表示されるデスクトップ/ドロア画面を示す図である。 図7は、同実施形態の電子機器によって表示されるデスクトップ画面を示す図である。 図8は、同実施形態の電子機器によって表示されるノートビュー画面を示す図である。 図9は、同実施形態の電子機器によって表示される検索キー入力ダイアログを示す図である。 図10は、同実施形態の電子機器によって実行される手書きノートアプリケーションプログラムの機能構成を示すブロック図である。 図11は、同実施形態の電子機器によって管理される手書き文書のデータ構造を示す図である。 図12は、同実施形態の電子機器によって管理される特徴量情報を示す図である。 図13は、同実施形態の電子機器によって管理される文字列情報を示す図である。 図14は、同実施形態の電子機器によって実行される筆跡検索の概要を説明するための図である。 図15は、同実施形態の電子機器によって実行される、ストロークデータ、特徴量情報、および文字列情報を保存する処理の手順を示すフローチャートである。 図16は、同実施形態の電子機器によって実行される検索処理の手順を示すフローチャートである。
 以下、実施の形態について図面を参照して説明する。 
 図1は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、PDA等として実現され得る。以下では、この電子機器がタブレットコンピュータ10として実現されている場合を想定する。タブレットコンピュータ10は、タブレットまたはストレートコンピュータとも称される携帯型電子機器であり、図1に示すように、本体11とタッチスクリーンディスプレイ17とを備える。タッチスクリーンディスプレイ17は、本体11の上面に重ね合わせるように取り付けられている。
 本体11は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ17には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置(LCD)であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルの2種類のセンサの双方がタッチスクリーンディスプレイ17に組み込まれている場合を想定する。
 このタッチスクリーンディスプレイ17は、指を使用した画面に対するタッチ操作のみならず、ペン100を使用した画面に対するタッチ操作も検出することができる。ペン100は例えば電磁誘導ペンであってもよい。ユーザは、外部オブジェクト(ペン100又は指)を使用してタッチスクリーンディスプレイ17上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト(ペン100又は指)の動きの軌跡、つまり手書き入力操作によって手書きされるストローク(手書きストロークの軌跡)がリアルタイムに描画され、これによって手書きにより入力された複数のストロークが画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が1つのストロークに相当する。手書きされた文字および文字以外の手書きされたオブジェクト(手書きされた図形、手書きされた表、など)に対応する多数のストロークの集合が手書き文書を構成する。
 本実施形態では、この手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報(手書き文書情報)として記憶媒体に保存される。この手書き文書情報の例は図4を参照して後述するが、この手書き文書情報は、複数のストロークが手書きされた順を示し、且つ複数のストロークにそれぞれ対応する複数のストロークデータを含む。換言すれば、この手書き文書情報は、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある一つのストロークに対応し、このストロークの軌跡上の複数の点それぞれに対応する複数の座標データ(時系列座標)を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序に相当する。
 タブレットコンピュータ10は、記憶媒体から既存の任意の手書き文書情報を読み出し、この手書き文書情報によって示される複数のストロークの軌跡を画面上に描画することができる。手書き文書情報によって示される複数のストロークも、手書きによって入力される複数のストロークである。
 さらに、タブレットコンピュータ10は編集機能を有している。この編集機能は、「消しゴム」ツール、範囲選択ツール、および他の各種ツール等を用いたユーザによる編集操作に応じて、範囲選択ツールによって選択される表示中の手書き文書内の任意の部分(手書き文字、手書きマーク、手書き図形、手書き表、等)を削除または移動することができる。またさらに、範囲選択ツールによって選択される手書き文書内の任意の部分を、手書き文書を検索するための検索キーとして指定することもできる。
 本実施形態では、手書き文書は、1つまたは複数のページとして管理されうる。この場合、手書き文書情報を1つの画面に収まる面積単位で区切ることによって、1つの画面に収まる手書き文書情報のまとまりを1つのページとして記録してもよい。あるいは、ページのサイズを可変できるようにしてもよい。この場合、ページのサイズは1つの画面のサイズよりも大きい面積に広げることができるので、画面のサイズよりも大きな面積の手書き文書を一つのページとして扱うことができる。1つのページ全体をディスプレイに同時に表示できない場合は、そのページを縮小してするようにしてもよいし、縦横スクロールによってページ内の表示対象部分を移動するようにしてもよい。
 図2は、タブレットコンピュータ10と外部装置との連携動作の例を示している。タブレットコンピュータ10は、パーソナルコンピュータ1やクラウドと連携することができる。すなわち、タブレットコンピュータ10は、無線LANなどの無線通信デバイスを備えており、パーソナルコンピュータ1との無線通信を実行することができる。さらに、タブレットコンピュータ10は、インターネット上のサーバ2との通信を実行することもできる。サーバ2はオンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行するサーバであってもよい。
 パーソナルコンピュータ1はハードディスクドライブ(HDD)のようなストレージデバイスを備えている。タブレットコンピュータ10は、手書き文書情報をネットワーク越しにパーソナルコンピュータ1に送信して、パーソナルコンピュータ1のHDDに記録することができる(アップロード)。タブレットコンピュータ10とパーソナルコンピュータ1との間のセキュアな通信を確保するために、通信開始時には、パーソナルコンピュータ1がタブレットコンピュータ10を認証するようにしてもよい。この場合、タブレットコンピュータ10の画面上にユーザに対してIDまたはパスワードの入力を促すダイアログを表示してもよいし、タブレットコンピュータ10のIDなどを自動的にタブレットコンピュータ10からパーソナルコンピュータ1に送信してもよい。
 これにより、タブレットコンピュータ10内のストレージの容量が少ない場合でも、タブレットコンピュータ10が多数の手書き文書情報あるいは大容量の手書き文書情報を扱うことが可能となる。
 さらに、タブレットコンピュータ10は、パーソナルコンピュータ1のHDDに記録されている任意の1以上の手書き文書情報を読み出し(ダウンロード)、その読み出した手書き文書情報によって示されるストロークをタブレットコンピュータ10のディスプレイ17の画面に表示することができる。この場合、複数の手書き文書情報それぞれのページを縮小することによって得られるサムネイルの一覧をディスプレイ17の画面上に表示してもよいし、これらサムネイルから選ばれた1ページをディスプレイ17の画面上に通常サイズで表示してもよい。
 さらに、タブレットコンピュータ10が通信する先はパーソナルコンピュータ1ではなく、上述したように、ストレージサービスなどを提供するクラウド上のサーバ2であってよい。タブレットコンピュータ10は、手書き文書情報をネットワーク越しにサーバ2に送信して、サーバ2のストレージデバイス2Aに記録することができる(アップロード)。さらに、タブレットコンピュータ10は、サーバ2のストレージデバイス2Aに記録されている任意の手書き文書情報を読み出して(ダウンロード)、その手書き文書情報によって示されるストロークそれぞれの軌跡をタブレットコンピュータ10のディスプレイ17の画面に表示することができる。
 このように、本実施形態では、手書き文書情報が保存される記憶媒体は、タブレットコンピュータ10内のストレージデバイス、パーソナルコンピュータ1内のストレージデバイス、サーバ2のストレージデバイスのいずれであってもよい。
 次に、図3および図4を参照して、ユーザによって手書きされたストローク(文字、図形、表など)と手書き文書情報との関係について説明する。図3は、ペン100などを使用してタッチスクリーンディスプレイ17上に手書きされる手書き文書(手書き文字列)の例を示している。
 手書き文書では、一旦手書きによって入力される文字や図形などの上に、さらに別の文字や図形などが手書きによって入力されるというケースが多い。図3においては、「ABC」の手書き文字列が「A」、「B」、「C」の順番で手書きによって入力され、この後に、手書きの矢印が、手書き文字「A」のすぐ近くに手書きによって入力された場合が想定されている。
 手書き文字「A」は、ペン100などを使用して手書きされる2つのストローク(「∧」形状の軌跡、「-」形状の軌跡)によって、つまり2つの軌跡によって表現される。最初に手書きされる「∧」形状のペン100の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標SD11、SD12、…SD1nが得られる。同様に、次に手書きされる「-」形状のペン100の軌跡も等時間間隔でリアルタイムにサンプリングされ、これによって「-」形状のストロークの時系列座標SD21、SD21、…SD2nが得られる。
 手書き文字「B」は、ペン100などを使用して手書きされた2つのストローク、つまり2つの軌跡によって表現される。手書き文字「C」は、ペン100などを使用して手書きされた手書きされた1つのストローク、つまり1つの軌跡によって表現される。手書きの「矢印」は、ペン100などを使用して手書きされた手書きされた2つのストローク、つまり2つの軌跡によって表現される。
 図4は、図3の手書き文書に対応する手書き文書情報200を示している。手書き文書情報200は、複数のストロークデータSD1、SD2、…、SD7を含む。手書き文書情報200内においては、これらストロークデータSD1、SD2、…、SD7は、これらストロークが手書きされた順に時系列に並べられている。
 手書き文書情報200において、先頭の2つのストロークデータSD1、SD2は、手書き文字「A」の2つのストロークをそれぞれ示している。3番目と4番目のストロークデータSD3、SD4は、手書き文字「B」を構成する2つのストロークをそれぞれ示している。5番目のストロークデータSD5は、手書き文字「C」を構成する1つのストロークを示している。6番目と7番目のストロークデータSD6、SD7は、手書き「矢印」を構成する2つのストロークをそれぞれ示している。
 各ストロークデータは、一つのストロークに対応する座標データ系列(時系列座標)、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「A」に関しては、ストロークデータSD1は、手書き文字「A」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)、つまりn個の座標データSD11、SD12、…SD1nを含む。ストロークデータSD2は、手書き文字「A」の「-」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりn個の座標データSD21、SD22、…SD2nを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
 各座標データは、対応する軌跡内のある1点に対応するX座標およびY座標を示す。例えば、座標データSD11は、「∧」形状のストロークの始点のX座標(X11)およびY座標(Y11)を示す。SD1nは、「∧」形状のストロークの終点のX座標(X1n)およびY座標(Y1n)を示す。
 さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報(時間情報)Tを含んでいてもよい。手書きされた時点は、絶対時間(例えば、年月日時分秒)またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間(例えば、年月日時分秒)をタイムスタンプ情報(時間情報)Tとして付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報(時間情報)Tとして付加してもよい。ある座標データに対応する相対時間(時間情報)は、ストロークが書き始められた時間とこの座標データに対応する点が手書きされた時間との間の時間間隔に相当する。
 このように、各ストロークデータにタイムスタンプ情報Tが追加された手書き文書情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。
 さらに、各座標データには、筆圧を示す情報(Z)を追加してもよい。
 図4で説明したような構造を有する手書き文書情報200は、個々のストロークの筆跡だけでなく、ストローク間の時間的関係も表すことができる。したがって、この手書き文書情報200を使用することにより、図3に示すようにたとえ手書き「矢印」の先端部が手書き文字「A」上に重ねてまたは手書き文字「A」に近接して書かれたとしても、手書き文字「A」と手書き「矢印」の先端部とを異なる文字または図形として扱うことが可能となる。
 さらに、本実施形態では、上述したように、手書き文書情報は、イメージまたは文字認識結果ではなく、時系列のストロークデータの集合として記憶されるので、手書き文字の言語に依存せずに手書き文字を扱うことができる。よって、本実施形態の手書き文書情報200の構造は、使用言語の異なる世界中の様々な国で共通に使用できる。
 図5は、タブレットコンピュータ10のシステム構成を示す図である。 
 タブレットコンピュータ10は、図5に示されるように、CPU101、システムコントローラ102、主メモリ103、グラフィクスコントローラ104、BIOS-ROM105、不揮発性メモリ106、無線通信デバイス107、エンベデッドコントローラ(EC)108等を備える。
 CPU101は、タブレットコンピュータ10内の各種モジュールの動作を制御するプロセッサである。CPU101は、ストレージデバイスである不揮発性メモリ106から主メモリ103にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム(OS)201、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、手書きノートアプリケーションプログラム202が含まれている。この手書きノートアプリケーションプログラム202は、上述の手書き文書情報を作成および表示する機能、手書き文書情報を編集する機能、所望の手書き部分を含む手書き文書情報や、ある手書き文書情報内の所望の手書き部分を検索するための手書き文書検索機能を有している。手書き文書検索機能は、筆跡検索およびテキスト検索(文字列検索)の双方を実行することができる。筆跡検索は、検索キーである手書きストローク群の筆跡特徴量と類似する筆跡特徴量を有するストロークデータ群を検索するための検索方式である。テキスト検索(文字列検索)は、検索キーであるテキスト(文字コード)に対応する手書き文字(ストロークデータ群)を検索するための検索方式である。
 手書き文書検索機能は、さらに、手書き文書情報を検索するためのインデックス情報を生成する機能を有している。本実施形態では、特徴量情報と文字列情報とがインデックス情報として生成される。特徴量情報は、各手書き文書情報の各ストロークデータの筆跡特徴量を含み、上述の筆跡検索方式で手書き文書を検索するためのインデックス情報として使用される。文字列情報は、各手書き文書情報内の各手書き文字に対応する文字コードを含み、上述のテキスト検索方式で手書き文書を検索するためのインデックス情報として使用される。
 また、CPU101は、BIOS-ROM105に格納された基本入出力システム(BIOS)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
 システムコントローラ102は、CPU101のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ102は、PCI EXPRESS規格のシリアルバスなどを介してグラフィクスコントローラ104との通信を実行する機能も有している。
 グラフィクスコントローラ104は、本タブレットコンピュータ10のディスプレイモニタとして使用されるLCD17Aを制御する表示コントローラである。このグラフィクスコントローラ104によって生成される表示信号はLCD17Aに送られる。LCD17Aは、表示信号に基づいて画面イメージを表示する。このLCD17A上にはタッチパネル17Bおよびデジタイザ17Cが配置されている。タッチパネル17Bは、LCD17Aの画面上で入力を行うための静電容量式のセンサである。指が接触される画面上の接触位置および接触位置の動き等はタッチパネル17Bによって検出される。デジタイザ17CはLCD17Aの画面上で入力を行うための電磁誘導式のセンサである。ペン100が接触される画面上の接触位置および接触位置の動き等はデジタイザ17Cによって検出される。
 無線通信デバイス107は、無線LANまたは3G移動通信などの無線通信を実行するように構成されたデバイスである。EC108は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。EC108は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ10を電源オンまたは電源オフする機能を有している。
 次に、手書きノートアプリケーションプログラム202によってユーザに提示される幾つかの代表的な画面の例を説明する。
 図6は、手書きノートアプリケーションプログラム202によって表示されるデスクトップ/ドロア画面を示す。デスクトップ/ドロア画面は複数の手書き文書情報を扱うための基本画面である。以下では、手書き文書情報を手書きノートと称する。
 デスクトップ/ドロア画面は、デスクトップ画面領域70とドロア画面領域71とを含む。デスクトップ画面領域70は作業中の複数の手書きノートに対応する複数のノートアイコン801~805を表示するテンポラリ領域である。ノートアイコン801~805の各々は、対応する手書きノート内のあるページのサムネイルを表示する。デスクトップ画面領域70は、さらに、ペンアイコン771、カレンダーアイコン772、スクラップノートアイコン773、タグアイコン774を表示する。
 ペンアイコン771は、表示画面をデスクトップ/ドロア画面から図8で後述するノートビュー画面に切り替えるためのグラフィカルユーザインタフェース(GUI)である。カレンダーアイコン772は現在の日付を示すアイコンである。このカレンダーアイコン772は、表示画面をデスクトップ/ドロア画面から現在の日付に関連付けられたタイムラインノート画面に切り替えるためのGUIである。スクラップノートアイコン773は、スクラップデータを作成または閲覧するためのGUIである。作成されたスクラップデータはストラップブックに登録される。スクラップノートアイコン773は、スクラップブックに登録されている各スクラップデータのサムネイルを表示する。タグアイコン774は、任意の手書きノート内の任意のページに付箋紙(タグ)を貼り付けるためのGUIである。
 ドロア画面領域71は、作成済みの全ての手書きノートを格納するためのストレージ領域を閲覧するための表示領域である。ドロア画面領域71は、全ての手書きノート内の幾つかの手書きノートに対応するノートアイコン80A,80B,80Cを表示する。ノートアイコン80A,80B,80Cの各々は、対応する手書きノート内のあるページのサムネイルを表示する。手書きノートアプリケーションプログラム202は外部オブジェクトを使用してユーザによって行われるドロア画面領域71上のジェスチャ(例えばスワイプジェスチャ等)を検出することができる。このジェスチャ(例えばスワイプジェスチャ等)の検出に応答して、手書きノートアプリケーションプログラム202は、ドロア画面領域71上の画面イメージを左方向または右方向にスクロールする。これにより、ドロア画面領域71に任意の手書きノートそれぞれに対応するノートアイコンを表示することができる。
 さらに、手書きノートアプリケーションプログラム202は外部オブジェクトを使用してユーザによって行われるドロア画面領域71のノートアイコン上のジェスチャ(例えばタップジェスチャ等)を検出することができる。ドロア画面領域71上のあるノートアイコン上のジェスチャ(例えばタップジェスチャ等)の検出に応答して、手書きノートアプリケーションプログラム202は、このノートアイコンをデスクトップ画面領域70の中央部に移動する。そして、手書きノートアプリケーションプログラム202は、このノートアイコンに対応する手書きノートを選択し、そして、デスクトップ/ドロア画面の代わりに、図7に示すデスクトップ画面を表示する。図7のデスクトップ画面は、選択された手書きノート内の任意のページを閲覧可能な画面である。
 さらに、手書きノートアプリケーションプログラム202は外部オブジェクトを使用してユーザによって行われるデスクトップ画面領域70上のジェスチャ(例えばタップジェスチャ等)も検出することができる。デスクトップ画面領域70の中央部に位置するノートアイコン上のジェスチャ(例えばタップジェスチャ等)の検出に応答して、手書きノートアプリケーションプログラム202は、中央部に位置するノートアイコンに対応する手書きノートを選択し、そして、デスクトップ/ドロア画面の代わりに、図7に示すデスクトップ画面を表示する。
 図7は上述のデスクトップ画面を示す。 
 このデスクトップ画面は選択された手書きノート内の任意のページを閲覧可能な画面である。ここでは、ノートアイコン801に対応する手書きノートが選択された場合を想定する。この場合、手書きノートアプリケーションプログラム202は、この手書きノートに含まれる複数のページ901,902,903,904,905を、これらページ901,902,903,904,905それぞれの少なくとも一部分が視認可能で且つこれらページ901,902,903,904,905が重なった形態で表示する。
 デスクトップ画面は、さらに、上述のペンアイコン771、カレンダーアイコン772、スクラップノートアイコン773、タグアイコン774を表示する。
 手書きノートアプリケーションプログラム202はユーザによって行われるデスクトップ画面上の様々なジェスチャを検出することができる。例えば、あるジェスチャの検出に応答して、手書きノートアプリケーションプログラム202は、一番上に表示されるべきページを任意のページに変更する(ページ送り、ページ戻し)。また、一番上のページ上で行われるあるジェスチャ(例えばタップジェスチャ)の検出に応答して、またはペンアイコン771上で行われるあるジェスチャ(例えばタップジェスチャ)の検出に応答して、手書きノートアプリケーションプログラム202は、一番上のページを選択し、そしてデスクトップ画面の代わりに、図8に示すノートビュー画面を表示する。
 図8のノートビュー画面は、ページ(手書きページ)の新規作成、および既存のページの閲覧および編集が可能な画面である。図7のデスクトップ画面上のページ901が選択された場合には、図8に示すように、ノートビュー画面は、このページ901の内容を表示する。
 ノートビュー画面は、さらに、黒ペンボタン501、赤ペンボタン502、マーカーボタン503、選択ボタン504、および消しゴムボタン505を表示する。
 例えば、黒ペンボタン501がユーザによるタップジェスチャによって選択された状態で、ペン100を用いた手書き入力操作がノートビュー画面上で行われると、手書きノートアプリケーションプログラム202は、ペン100の動きに合わせて黒色のストローク(軌跡)をノートビュー画面上に表示する。
 図9は、検索キー入力ダイアログの例を示す。例えば、デスクトップ画面上の空き領域上で行われるタップジェスチャの検出に応答して、手書きノートアプリケーションプログラム202は、検索キー入力領域511、筆跡検索ボタン512A、テキスト検索ボタン512B、および検索実行ボタン512を含む検索キー入力ダイアログをデスクトップ画面上に表示する。筆跡検索ボタン512Aは上述の筆跡検索方式を選択するためのボタンである。テキスト検索ボタン512Bは上述のテキスト検索方式を選択するためのボタンである。検索ボタン512Cは、検索処理の実行を要求するためのボタンである。
 筆跡検索方式が選択された場合においては、検索キー入力領域511は、検索キーとすべき文字列、図形、表などを手書きするための入力領域として使用することができる。ユーザは、手書き文字列に限らず、手書き図形、手書き表などを検索キー入力領域511に手書きすることができる。図9においては、検索キー入力領域511に手書き文字列「Determine」が検索キーとして入力された場合が例示されている。検索キー入力領域511に手書き文字列「Determine」が検索キーとして入力された状態で検索ボタン512Cがユーザによって選択されると、手書き文字列「Determine」の筆跡特徴と類似する筆跡特徴を有するストロークデータ群を含む手書き文書を検索するための筆跡検索が実行される。
 テキスト検索方式が選択された場合においては、例えばソフトウェアキーボードが画面上に表示される。ユーザは、ソフトウェアキーボードを操作することによって任意のテキスト(文字列)を検索キーとして検索キー入力領域511に入力することができる。検索キー入力領域511にテキストが検索キーとして入力された状態で検索ボタン512Cがユーザによって選択されると、このテキストに対応するストロークデータ群を含む手書き文書を検索するためのテキスト検索が実行される。
 次に、図10を参照して、手書きノートアプリケーションプログラム202の機能構成について説明する。
 手書きノートアプリケーションプログラム202は、手書き文書情報を扱うことが可能なWYSIWYGアプリケーションであり、主制御部300、描画モジュール311、筆跡管理モジュール312、筆跡検索モジュール313A、文字認識モジュール313B、及び文字検索モジュール313C等を備える。主制御部300は、描画モジュール311、筆跡管理モジュール312、筆跡検索モジュール313A、及び文字認識モジュール313B、文字検索モジュール313C等と共同して、手書き文書(手書きページ)の作成、表示、編集、検索等を行う。
 本実施形態では、手書き文書情報(複数のストロークデータ)と筆跡特徴量情報/文字列情報とは互いに異なるファイルを用いて管理される。手書き文書情報については、マークアップ言語に対応するファイル形式を使用して管理される。マークアップ言語に対応するファイル形式としては、例えば、xml(Extensible Markup Language)ファイルを使用し得る。この場合、手書き文書情報内の複数のストロークデータは、マークアップ言語によって記述される階層化された文書構造の形式で第1のファイル(xmlファイル)に保存される。例えば1つのxmlファイルで1つの手書きページ(手書きページデータ)を管理しても良い。この場合、手書きページの数に対応する数のxmlファイルが作成される。
 一方、手書きページデータに対応する筆跡特徴量情報/文字列情報は、この手書きページデータの複数のストロークデータを保存するxmlファイルとは別の第2のファイル、例えば、データベースファイルに保存される。この場合、筆跡特徴量情報/文字列情報は、ある1以上のストロークデータに対応する筆跡特徴量/文字コードがこの1以上のストロークデータに対応する識別情報に関連づけられた状態で(例えばテーブル形式)データベースファイルのような第2のファイルに保存される。
 もし手書きページデータ(ストロークデータ)とこの手書きページデータに対応する筆跡特徴量情報/文字列情報とを同一のデータベースを使用して管理すると、データベース内の筆跡特徴量情報/文字列情報の保存/更新処理が実行されている間は、ストロークデータの保存/更新や、ストロークデータの描画処理を行うことができなくなる場合がある。なぜなら、通常、データベースにおいては、2つの異なるリード処理を同時に行うことは可能であるが、2つの異なるライト処理を同時に行うことはできず、データの整合性を保証するためにこれらライト処理間の排他制御を行うことが要求されるからである。手書きページデータ(ストロークデータ)および筆跡特徴量情報/文字列情報がそれぞれ異なるテーブルで管理されていたとしても、これらテーブルが同じデータベースファイル内のテーブル群である限り、同様の排他制御が必要となる。
 手書きされたストロークの描画自体は、このストロークに対応するストロークデータをデータベースに保存する前に実行してもよい。しかし、もしこのストロークデータがデータベースに保存される前に電子機器が予期せぬエラーによって電源断されると、ストロークが描画されてユーザに提示されたにもかかわらず、このストロークに対応するストロークデータが消失してしまうことになる。したがって、データベース内の筆跡特徴量情報/文字列情報の更新処理が実行されている間は、実際には、上述したように、ストロークデータの保存/更新のみならず、描画処理の実行も停止することが必要となる。
 手書きページの作成中はこの手書きページに対応する筆跡特徴量情報/文字列情報の生成処理を実行しないようにしてもよい。しかし、このようにすると、作成中の手書きページに対応する筆跡特徴量情報/文字列情報が存在しなくなり、作成中の手書きページに対する検索が全く実行できなくなるという自体が生じる可能性がある。
 本実施形態では、手書きページデータ(ストロークデータ)はxmlファイルに保存され、この手書きページデータに対応する筆跡特徴量情報/文字列情報は別のファイル(データベースファイル)に保存される。したがって、たとえある手書きページデータに対応する筆跡特徴量情報/文字列情報をデータベースファイルに保存する処理の実行中であっても、この筆跡特徴量情報/文字列情報の保存の終了を待つことなく、この手書きページデータに新たなストロークデータを保存(追加)する処理、およびこの新たなストロークデータに対応するストロークを描画する処理を即座に行うことができる。換言すれば、手書きページデータの作成または編集操作が行われている間に、この手書きページデータに対応する筆跡特徴量情報/文字列情報を生成および保存する処理をほぼリアルタイムに行うことが可能となる。例えば、新たなストロークが手書きされると、このストロークの軌跡が描画されると共に、このストロークに対応するストロークデータがxmlファイルに即座に保存される。そして、このストロークデータはxmlファイルから読み出され、このストロークデータに対応する筆跡特徴量情報/文字列情報が生成される。生成された筆跡特徴量情報/文字列情報はデータベースファイルのような別のファイルに保存される。
 本実施形態では、上述のように、手書きページデータは複数のストロークデータの集合から構成されており、また各ストロークデータは複数の座標データから構成されている。また、手書きページデータは、ストロークが手書きされた時間に関する時間情報やストロークの筆圧情報を含む場合もある。xmlファイルは複数の要素間の関係を、階層化された文書構造によって管理することができる。したがって、xmlファイルは各々が複数の座標データを含む複数のストロークデータの管理に有用である。また、xmlファイルはテキストベースのデータであるので、データベースファイルに比べ、柔軟な仕様変更が可能である。よって、xmlファイルを使用することにより、ストロークデータに関する属性の追加または座標データに関する属性の追加等にも柔軟に対応することができる。
 以下、手書きノートアプリケーションプログラム202内の各部の機能を説明する。 
 主制御部300は、タッチスクリーンディスプレイ17(例えばデジタイザ17C)からペン100の動きの軌跡に対応する座標列を受信する。主制御部300は、例えば、1ストローク単位で、このストロークの軌跡上の複数の点に対応する複数の座標データ(複数のポイントデータ)を筆跡管理モジュール312に送信する。筆跡管理モジュール312は、ある手書きページに手書きされる複数のストロークに対応する複数のストロークデータをxmlファイルに保存するストローク処理部として機能する。より詳しくは、筆跡管理モジュール312は、主制御部311から受信される複数の座標データ(複数のポイントデータ)をxmlファイルに保存する。そして、筆跡管理モジュール312は、これら複数の座標データ(複数のポイントデータ)をxmlファイルから読み出し、読み出した複数の座標データ(複数のポイントデータ)を描画モジュール311に送信する。なお、筆跡管理モジュール312は、主制御部311から受信される複数の座標データ(複数のポイントデータ)をすぐにxmlファイルに保存することができるので、最初に、主制御部300から受信される複数の座標データを描画モジュール311に送信し、次いで、これら複数の座標データをxmlファイルに保存してもよい。さらに、筆跡管理モジュール312は、任意のxmlファイルから手書きページ(ストロークデータ群)を読み出し、各ストロークデータの複数の座標データを描画モジュール311に送信することもできる。
 描画モジュール311は、手書きされる複数のストロークに対応する複数の軌跡を画面上に描画するように構成されている。この描画モジュール311は、筆跡管理モジュール312から複数の座標データを受信し、これら座標データに基づいて、ストロークに対応する軌跡を描画する。この場合、描画モジュール311自体がストロークに対応する軌跡を画面上に描画(表示)してもよいし、主制御部300が、描画モジュール311から描画結果(軌跡)を受信し、この描画結果(軌跡)に基づいてストロークに対応する軌跡を画面上に表示してもよい。
 筆跡検索モジュール313A、および文字認識モジュール313Bは、主制御部300と共同して、作成又は編集中の手書きページに対応する上述の筆跡特徴量情報/文字列情報をこの手書きページを検索するためのインデックス情報として生成する生成部として機能する。より詳しくは、筆跡検索モジュール313Aは、作成又は編集中の手書きページに対応するxmlファイル内の複数のストロークデータから、これら複数のストロークデータに対応する複数の筆跡特徴量を、これら複数のストロークデータを筆跡検索方式で検索するためのインデックス情報(筆跡特徴量情報)として生成する。そして、筆跡検索モジュール313Aは、生成した複数の筆跡特徴量を上述の複数のストロークデータの識別情報と関連づけて特徴量データベース412Aに保存する。
 筆跡検索モジュール313Aによるストロークデータの処理、つまり筆跡特徴量情報を生成する処理は、未処理のストロークデータ、つまり筆跡特徴量が生成されていないストロークデータに対して実行される。すなわち、筆跡検索モジュール313Aは、作成又は編集中の手書きページに対応するxmlファイルから未処理の各ストロークデータを取得する。そして、筆跡検索モジュール313Aは、未処理の各ストロークデータを処理することによって、この未処理の各ストロークデータの筆跡特徴量を計算する。ストロークデータの筆跡特徴量としては、ストロークデータ(ストローク)の特徴を表現可能な任意の情報を使用し得る。例えば、ストロークの筆跡特徴量として、このストロークの形状、筆画方向、傾斜、等を表す特徴量データを使用し得る。
 特徴量データベース412Aは筆跡特徴量情報を保存するためのデータベースファイルである。特徴量データベース412A内のテーブルにおいては、多数のストロークデータの識別情報(ストロークID)とこれら多数のストロークデータに対応する多数の筆跡特徴量とが格納される。さらに、特徴量データベース412A内のテーブルにおいては、各ストロークデータの筆跡特徴量はこのストロークデータの識別情報(ストロークID)に関連付けられるだけでなく、このストロークデータが含まれている手書きページの識別情報(ページID)にも関連付けられていてもよい。
 文字認識モジュール313Bは、主制御部300と共同して、作成又は編集中の手書きページに対応するxmlファイル内の複数のストロークデータから、これら複数のストロークデータに対応する複数の文字コードを、これら複数のストロークデータをテキスト検索方式で検索するためのインデックス情報(文字列情報)として生成する。そして、文字認識モジュール313Bは、生成した複数の文字コードを上述の複数のストロークデータの識別情報と関連づけて文字検索データベース412Bに保存する。2以上のストロークデータによって一つの文字が構成されている場合には、この文字に対応する文字コードはこれら2以上のストロークデータに関連づけられた状態で文字検索データベース412Bに保存される。
 文字認識モジュール313Bによるストロークデータの処理(文字認識処理)、つまり文字コードを生成する処理は、未処理のストロークデータ、つまり文字コードが生成されていないストロークデータに対して実行される。すなわち、文字認識モジュール313Bは、作成又は編集中の手書きページに対応するxmlファイルから未処理の各ストロークデータを取得する。そして、文字認識モジュール313Bは、未処理の各ストロークデータを文字認識することによって、この未処理の各ストロークデータの文字コードを生成する。
 文字検索データベース412Bは文字列情報を保存するためのデータベースファイルである。文字検索データベース412B内のテーブルにおいては、多数のストロークデータの識別情報(ストロークID)とこれら多数のストロークデータに対応する多数の文字コードとが格納される。さらに、文字検索データベース412B内のテーブルにおいては、各ストロークデータの文字コードはこのストロークデータの識別情報(ストロークID)に関連付けられるだけでなく、このストロークデータが含まれている手書きページの識別情報(ページID)にも関連付けられていてもよい。
 この文字検索データベース412Bのデータベースファイルは、特徴量データベース412Aと異なるデータベースファイルであってもよい。これにより、筆跡特徴量情報を保存する処理と同時に文字列情報を保存する処理を実行することができる。
 筆跡検索モジュール313Aは、筆跡特徴量情報を生成する生成部として機能するだけでなく、上述の筆跡検索を実行するための検索部としても機能する。すなわち、筆跡検索モジュール313Aは、検索キーであるストロークデータの筆跡特徴量と特徴量データベース412A内の筆跡特徴量情報とを使用して、検索キーであるストロークデータに対応するストロークデータを検索する。
 筆跡検索が実行される場合においては、筆跡検索モジュール313Aは、主制御部300から検索キーである1以上のストロークに対応するストロークデータを受信する。そして、筆跡検索モジュール313Aは、特徴量データベース412A内の筆跡特徴量情報と検索キーであるストロークデータの筆跡特徴量(クエリー特徴量)とを使用して、上述の検索キーに対応するストロークデータ(手書き部分)を検索する。
 より詳しくは、筆跡検索モジュール313Aは、特徴量データベース412A内の筆跡特徴量情報から、クエリー特徴量と類似する筆跡特徴量を見つけ出し、この筆跡特徴量に対応するストロークIDおよびページIDを検索結果として主制御部300に返す。この場合、クエリー特徴量との類似度が基準値以上である特徴量情報が特徴量データベース412Aから取得される。この類似度を算出するための方法としては、DP(Dynamic Programming)マッチングを使用してもよい。
 主制御部300は、筆跡検索モジュール313Aから受信される検索結果(ストロークIDおよびページID)に基づいて、上述の検索キーに対応するストロークデータ(手書き部分)を含む1以上の手書きページを表示する。この場合、主制御部300は、これら1以上の手書きページ内の手書き部分(ヒットワード)を強調表示してもよい。
 文字検索モジュール313Cは、上述のテキスト検索を実行するための検索部として機能する。すなわち、文字検索モジュール313Cは、検索キーであるテキスト(1以上の文字コード)と文字検索データベース412B内の文字列情報とを使用して、検索キーであるテキスト(1以上の文字コード)に対応するストロークデータ(手書き部分)を検索する。
 テキスト検索が実行される場合においては、文字検索モジュール313Cは、主制御部300から検索キーであるテキストに対応する1以上の文字コードを受信する。そして、文字検索モジュール313Cは、文字検索データベース412B内の文字列情報と検索キーである1以上の文字コードとを使用して、上述の検索キーに対応するストロークデータ(手書き部分)を検索する。
 より詳しくは、文字検索モジュール313Cは、文字検索データベース412B内の文字列情報から、検索キーである1以上の文字コードと同じ1以上の文字コードを見つけ出し、この1以上の文字コードに対応する1以上のストロークIDおよびページIDを検索結果として主制御部300に返す。
 主制御部300は、文字検索モジュール313Cから受信される検索結果(1以上のストロークIDおよびページID)に基づいて、上述の検索キーであるテキスト対応するストロークデータ(手書き部分)を含む1以上の手書きページを表示する。この場合、主制御部300は、これら1以上の手書きページ内の手書き部分(ヒットワード)を強調表示してもよい。
 メタデータベース412Cは、複数の手書きページそれぞれに対応する複数のメタデータ、例えば、ページ作成日時、ページ更新日時、ページID(UUID)、ページタイトル、等、を管理するためのデータベースである。
 なお、ここでは、筆跡特徴量情報および文字列情報の双方を異なるデータベースファイルに保存する例を説明したが、筆跡特徴量情報または文字列情報の少なくとも一方を、ある一つのデータベースファイルに保存してもよい。
 図11は、手書きページ内のストロークデータ群を管理するためのxmlファイルの文書構造を示す。 
 このxmlファイルのxmlインスタンスは、「root」要素、「page_data」要素、「strokes」要素、「stroke」要素、「points」要素、「point」要素を含む。これら要素によって階層化された文章構造が定義される。「root」要素は、xmlインスタンス内の全ての要素の起点となる要素(ノード)である。「page_data」要素は、「root」要素の子要素である。
 この「page_data」要素は、3つの属性、つまり「uuid」属性、「create_time」属性、「update_time」属性を含む。「uuid」属性の属性値“ID1”は、このxmlファイルに含まれる手書きページのページIDを示す。「create_time」属性の属性値“TIME1”は、この手書きページの作成日時に関する時間情報である。このTIME1は、作成日時を示す絶対時間(年月日時分秒)であってもよい。「update_time」属性の属性値“TIME2”は、この手書きページの更新日時に関する時間情報である。TIME2も更新日時を示す絶対時間(年月日時分秒)であってもよい。
 さらに、「page_data」要素は、この手書きページの幅を示す「幅」属性、この手書きページの高さを示す「高さ」属性、この手書きページのタイトルを示す「タイトル」属性、等を有していても良い。
 「strokes」要素は、「page_data」要素の子要素である。この「strokes」要素は、xmlインスタンス内の複数の「stroke」要素をグループ化するための要素(ノード)として機能する。この「stroks」要素は、少なくとも1つの属性、例えば「stroke_count」属性を含む。この「stroke_count」属性は、このxmlファイルに現在含まれているストロークデータの数(総数)を示す。新たなストロークデータがxmlファイルに保存される度に、「stroke_count」属性の属性値は更新される。図11では、説明の簡単化のために、「stroke_count」属性の属性値は“2”である場合が例示されている。
 複数の「stroke」要素は、互いに兄弟関係である要素群である。ある一つの「stroke」要素は、ある一つのストロークデータに対応する。各「stroke」要素は、この「stroke」要素の子要素である「points」要素と共同して、複数の「point」要素をグループ化するための要素(ノード)として機能する。
 各「stroke」要素は、少なくとも3つの属性、つまり「stroke_id」属性、「time」属性、「color」属性を含む。「stroke_id」属性は、対応するストロークデータの識別情報(ストロークID)を示す。「time」属性は、対応するストロークデータが手書きされた時間に関する時間情報である。「time」属性は、対応するストロークデータが手書きされた絶対時間(年月日時分秒)であってもよい。「color」属性は、対応するストロークデータに対応する軌跡の色を示す。
 さらに、「stroke」要素は、このストロークデータに対応する軌跡の幅(線幅)を示す「幅」属性、このストロークデータに対応する軌跡の線種(例えば、実線、破線、等)を示す「タイプ」属性、等を有していても良い。
 「points」要素は、「stroke」要素の子要素である。「points」要素は、この「points」要素の子要素である複数の「point」要素をグループ化するための要素(ノード)として機能する。この「points」要素は、少なくとも1つの属性、例えば「point_count」属性を含む。「point_count」属性は、「points」要素に含まれる「point」要素の総数、つまり座標データの総数を示す。
 ある「points」要素によってグループ化された複数の「point」要素は、あるストローク内の複数の座標データに対応する。一つの「point」要素は、一つの座標データに対応する。
 ここで、各「point」要素は、例えば、要素内容を含まない空き要素であってもよい。各「point」要素は、例えば、4つの属性、つまり「x」属性、「y」属性、「duration」属性、「pressure」属性を含む。「x」属性は、対応する座標データ(対応する点)のx座標を示す。「y」属性は、対応する座標データ(対応する点)のy座標を示す。「duration」属性は、対応するストロークデータの手書き開始時間から対応する座標データが手書きされるまでの時間間隔に関する時間情報である。「pressure」属性は、対応する座標データ(対応する点)の筆圧を示す。
 このように、本実施形態のxmlファイルにおいては、個々の座標データは、タグ付けされた「point」要素として管理される。さらに、同一のストロークに属する複数の座標データに対応する複数の「point」要素は、これら複数の座標データを含むストロークデータのストロークIDを含む「stroke」要素によってグループ化される。
 したがって、ストロークデータ群をデータベースのテーブル形式で管理せずとも、所望のストローク内の全ての座標データまたは所望のストローク内の任意の座標データなどをxmlファイルから容易に取得することができる。
 さらに、個々の「stroke」要素は時間情報を含むので、個々のストロークが手書きされた時間も容易に認識することができる。 
 また、xmlファイルはテキストベースのファイルであるので、例えば、各要素に付随する属性の種類等を容易に追加することもできる。また、「stroke」要素内の子要素として登録可能な「point」要素の数も制限されない。
 筆跡検索モジュール313Aおよび文字認識モジュール313Bの各々は、複数の「stroke」要素それぞれに対応する複数の「time」属性(時間情報)に基づいて、xmlファイルから未処理のストロークデータ群を容易に取得することができる。すなわち、筆跡検索モジュール313Aおよび文字認識モジュール313Bの各々は、「stroke」要素の「time」属性に基づいて、つまりあるストロークデータが手書きされた時間に関する時間情報に基づいて、このストロークデータが未処理のストロークデータであるか否かを判定する。例えば、前回の筆跡特徴量/文字コード生成処理の時間(xmlファィルから最後にストロークデータを取得した時間)よりも遅い時間情報を有する「stroke」要素(ストロークデータ)は未処理のストロークデータであると判定される。筆跡検索モジュール313Aおよび文字認識モジュール313Bの各々は、筆跡管理モジュール312に対して各ストロークデータの時間情報を要求して、各「stroke」要素の「time」属性を筆跡管理モジュール312から受信しても良い。そして、筆跡検索モジュール313Aおよび文字認識モジュール313Bの各々は、未処理のストロークデータを決定し、決定した未処理のストロークデータを筆跡管理モジュール312に要求しても良い。
 図12は、特徴量データベース412Aに格納される筆跡特徴量管理テーブルの構成例を示す。筆跡特徴量管理テーブルは複数のストロークデータに対応する複数のエントリを含む。各エントリは、例えば、ページID、ストロークID、特徴量(筆跡特徴量)を含む。あるストロークデータに対応するエントリにおいて、「ページID」は、そのストロークデータが手書きされた手書きページに付与された識別情報を示す。「ストロークID」は、そのストロークに付与された識別情報を示す。「特徴量」は、そのストロークを解析することによって算出された特徴量(筆跡特徴量)を示す。筆跡特徴量としては、上述したように、各ストロークの形状等を表す特徴量データを使用し得る。
 なお、ここでは、ストローク毎に特徴量を管理する場合を例示したが、手書きの図形、手書きの表、手書きの記号といった手書きオブジェクト(手書きブロック)を単位として、その手書きオブジェクトの特徴量を管理しても良い。手書きオブジェクトの特徴量としては、その手書きオブジェクトの形状等の特徴を表現可能な任意の特徴量を使用し得る。さらに、手書きオブジェクトの特徴量は、この手書きオブジェクトを構成する複数のストロークの書かれた順序、等を表す情報を含んでいてもよい。
 図13は、文字検索データベース412Bに格納される文字列情報管理テーブルの構成例を示す。文字列情報管理テーブルは複数の文字ブロックに対応する複数のエントリを含む。各エントリは、例えば、「ページID」、「ストロークID範囲」、「文字列」を含む。ある文字ブロックに対応するエントリにおいて、「ページID」は、その文字ブロックが手書きされた手書きページの識別情報を示す。「ストロークID範囲」は、その文字ブロック内のストローク群に付与された識別情報の範囲を示す。「文字列」は、その文字ブロックに対する(文字コード)を示す。ある文字ブロックの文字コードとして、この文字ブロックの複数の文字候補それぞれに対応する複数の文字コードが登録されていてもよい。
 図14は、手書き文書検索の概要を示す。ここでは、検索キー入力領域511に手書き文字列「Meeting」に対応する複数のストロークがペン100によって手書きされ、さらにユーザによって筆跡検索が選択された場合を想定する。
 筆跡検索モジュール313Aは、主制御部300から検索キーである1以上のストロークに対応するストロークデータを受信する。筆跡検索モジュール313Aは、このストロークデータの筆跡特徴量(クエリー特徴量)を計算する。そして、筆跡検索モジュール313Aは、特徴量ベース412Aを参照して、手書き文字列「Meeting」の筆記特徴と類似する筆跡特徴を有する手書き部分(ストロークデータ)を含む手書きページを検索する。いま、手書きページ611、612、613が、手書き文字列「Meeting」と類似する筆跡特徴を有する手書き部分を含む場合を想定する。この場合、主制御部300は、筆跡検索モジュール313Aから受信される検索結果に基づき、手書きページ611、612、613それぞれのサムネイルを画面上に表示する。さらに、主制御部300は、手書きページ611、612、613内のヒットワード(手書き文字列「Meeting」)を強調表示する。
 図15のフローチャートは、手書きページの作成/編集処理中に手書きノートアプリケーションプログラム202によって実行される、ストロークデータ、筆跡特徴量情報および文字列情報の保存処理の手順を示す。
 筆跡管理モジュール312は、作成/編集処理対象の手書きページに手書きされる複数のストロークに対応する複数のストロークデータを第1記憶領域に保存する(ステップS11)。この場合、筆跡管理モジュール312は、複数のストロークデータを、マークアップ言語によって記述される階層化された文書構造の形式で、記憶媒体上の第1記憶領域内の第1のファイル(xmlファイル)に保存する。
 筆跡検索モジュール313Aは、手書きページの作成/編集処理中に、xmlファイルから未処理の複数のストロークデータを取得する。たとえば、ペン100が画面から離れた時に、またはペン100が画面から離れている状態が一定期間継続した時に、筆跡検索モジュール313Aは、未処理のストロークデータの取得を行っても良い。そして、筆跡検索モジュール313Aは、これら取得された複数のストロークデータに対応する複数の筆跡特徴量を、第1記憶領域と異なる第2記憶領域に保存する(ステップS12)。この場合、筆跡検索モジュール313Aは、複数の筆跡特徴量を上述の複数のストロークデータのストロークIDと関連づけて、xmlファイルと異なる第2のファイル(特徴量データベースファイル)に保存する。
 文字認識モジュール313Bは、手書きページの作成/編集処理中に、xmlファイルから未処理の複数のストロークデータを取得する。たとえば、ペン100が画面から離れた時に、またはペン100が画面から離れている状態が一定期間継続した時に、文字認識モジュール313Bは、未処理のストロークデータの取得を行っても良い。そして、文字認識モジュール313Bは、これら取得された複数のストロークデータに対応する複数の文字コードを第2記憶領域と異なる第3記憶領域に保存する(ステップS13)。この場合、文字認識モジュール313Bは、複数の文字コードを上述の複数のストロークデータのストロークIDと関連づけて、上述のxmlファイルおよび特徴量データベースファイルとそれぞれ異なる第3のファイル(文字検索データベースファイル)に保存する。
 図16のフローチャートは、手書きノートアプリケーションプログラム202によって実行される手書き文書検索処理の手順を示す。 
 ユーザによって筆跡検索方式が選択されたならば(ステップS21のYES)、主制御部300は、検索キーであるストロークデータを筆跡検索モジュール313Aに送信する。筆跡検索モジュール313Aは、筆跡検索を実行する(ステップS23)。この場合、筆跡検索モジュール313Aは、検索キーであるストロークデータの筆跡特徴量と特徴量データベース412A内の特徴量情報とを使用して、筆跡検索を実行する。そして、筆跡検索モジュール313Aは、検索キーに対応する手書きデータ部分を含む各手書きページ、つまりこの検索キーであるストロークデータと類似する筆跡特徴を有するストロークデータを含む各手書きページを検索する。
 ユーザによってテキスト検索方式が選択されたならば(ステップS22のYES)、主制御部300は、検索キーである文字コードを文字検索モジュール313Cに送信する。文字検索モジュール313Cは、テキスト検索(文字列検索)を実行する(ステップS24)。この場合、文字検索モジュール313Cは、検索キーである文字コードと文字検索データベース412Bとを使用して、テキスト検索を実行する。そして、文字検索モジュール313Cは、検索キーに対応する文字コードを含む手書きページを検索する。
 以上説明したように、本実施形態においては、手書きされる複数のストロークに対応する複数のストロークデータは、マークアップ言語によって記述される階層化された文書構造の形式で第1のファイルに保存される。また未処理の1以上のストロークデータが取得され、この1以上のストロークデータに対応する筆跡特徴量またはこの1以上のストロークデータに対応する文字コードの少なくとも一方が、第1のファイルと異なる第2のファイルに保存される。
 したがって、手書きページデータに対応する筆跡特徴量情報/文字列情報を生成して筆跡特徴量情報/文字列情報をデータベースファイルのような第2のファイルに保存する処理の実行中であっても、この手書きページデータに新たなストロークデータを保存(追加)する処理、およびこの新たなストロークデータに対応するストローク(軌跡)を描画する処理を迅速に行うことができる。換言すれば、手書きページデータの作成または編集操作が行われている間に、この手書きページデータに対応する筆跡特徴量情報/文字列情報を生成および保存する処理を行うことが可能となる。
 また、複数のストロークデータの保存形式として、マークアップ言語によって記述される階層化された文書構造の形式を使用することにより、各々が複数の座標データを含む複数のストロークデータの管理を容易に行うことができる。
 さらに、第2のファイルにおいては、1以上のストロークデータに対応する筆跡特徴量または1以上のストロークデータに対応する文字コードの少なくとも一方が、この1以上のストロークデータに対応する識別情報に関連付けられている。したがって、第2のファイルを使用することにより、検索キーであるストロークの筆跡特徴量に類似する筆跡特徴量を有するストロークデータ、または検索キーである文字コードに対応するストロークデータを効率よく検索することができる。またさらに、第1のファイルの階層化された文書構造は、一つのストロークデータ内に含まれる複数の座標データに対応する複数の第1要素と、この一つのストロークデータの識別情報を含む第2要素であって、複数の第1要素をグループ化する第2要素とを少なくとも含む。したがって、第1のファイルから目的のストロークデータを取得する処理などを効率よく行うことができる。
 なお、本実施形態の手書き文書情報(手書きページ)に対する各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
 本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。

Claims (9)

  1.  手書きされる複数のストロークに対応する複数の軌跡を画面上に描画する描画手段と、
     前記複数のストロークに対応する複数のストロークデータを保存するストローク処理手段と、
     前記複数のストロークデータから、前記複数のストロークデータに対応する複数の筆跡特徴量または前記複数のストロークデータに対応する複数の文字コードの少なくとも一方を生成する生成手段とを具備し、
     前記ストローク処理手段は、前記複数のストロークデータを、マークアップ言語によって記述される階層化された文書構造の形式で第1のファイルに保存し、
     前記生成手段は、未処理の1以上のストロークデータを取得し、前記1以上のストロークデータに対応する筆跡特徴量または前記1以上のストロークデータに対応する文字コードの少なくとも一方を、前記第1のファイルと異なる第2のファイルに保存する電子機器。
  2.  前記階層化された文書構造は、前記第1のファイル内の前記複数のストロークデータが手書きされた時間に関する複数の時間情報を含み、
     前記生成手段は、前記複数の時間情報に基づいて、前記第1のファイルから未処理の1以上のストロークデータを取得する請求項1記載の電子機器。
  3.  前記第2のファイルは、前記1以上のストロークデータに対応する筆跡特徴量または前記1以上のストロークデータに対応する文字コードの少なくとも一方が、前記1以上のストロークデータに対応する識別情報に関連付けられていて、
     前記第1のファイルの階層化された文書構造は、
     一つのストロークデータ内に含まれる複数の座標データに対応する複数の第1要素と、
     前記一つのストロークデータの識別情報を含む第2要素であって、前記複数の第1要素をグループ化する第2要素とを少なくとも含む請求項1記載の電子機器。
  4.  前記第2要素は前記一つのストロークデータが手書きされた時間に関する時間情報を含む請求項3記載の電子機器。
  5.  前記生成手段は、前記第2要素の時間情報に基づいて、前記第2要素に対応するストロークデータが未処理のストロークデータであるか否かを判定する請求項4記載の電子機器。
  6.  検索キーである第1のストロークデータの筆跡特徴量と前記第2のファイル内の複数の筆跡特徴量とを使用して前記第1のストロークデータに対応するストロークデータを検索する筆跡検索、または検索キーである第1の文字コードと前記第2のファイル内の複数の文字コードとを使用して前記第1の文字コードに対応するストロークデータを検索するテキスト検索の少なくとも一方を実行する検索処理手段をさらに具備する請求項1記載の電子機器。
  7.  前記生成手段は、前記1以上のストロークデータに対応する筆跡特徴量を前記1以上のストロークデータに対応する識別情報に関連付けて前記第2のファイルに保存し、前記1以上のストロークデータに対応する文字コードを前記1以上のストロークデータに対応する識別情報に関連付けて前記第2のファイルと異なる第3のファイルに保存する請求項1記載の電子機器。
  8.  手書きされる複数のストロークに対応する複数の軌跡を画面上に描画することと、
     前記複数のストロークに対応する複数のストロークデータを保存することと、
     前記複数のストロークデータから、前記複数のストロークデータに対応する複数の筆跡特徴量または前記複数のストロークデータに対応する複数の文字コードの少なくとも一方を生成することとを具備し、
     前記保存することは、前記複数のストロークデータを、マークアップ言語によって記述される階層構造を有する形式で第1のファイルに保存することを含み、
     前記生成することは、未処理の1以上のストロークデータを取得し、前記1以上のストロークデータに対応する筆跡特徴量または前記1以上のストロークデータに対応する文字コードの少なくとも一方を、前記第1のファイルと異なる第2のファイルに保存することを含む手書き文書処理方法。
  9.  コンピュータによって実行されるプログラムであって、前記プログラムは、
     手書きされる複数のストロークに対応する複数の軌跡を画面上に描画する手順と、
     前記複数のストロークに対応する複数のストロークデータを保存する手順と、
     前記複数のストロークデータから、前記複数のストロークデータに対応する複数の筆跡特徴量または前記複数のストロークデータに対応する複数の文字コードの少なくとも一方を生成する手順とを前記コンピュータに実行させ、
     前記保存する手順は、前記複数のストロークデータを、マークアップ言語によって記述される階層化された文書構造の形式で第1のファイルに保存する手順を含み、
     前記生成する手順は、未処理の1以上のストロークデータを取得し、前記1以上のストロークデータに対応する筆跡特徴量または前記1以上のストロークデータに対応する文字コードの少なくとも一方を、前記第1のファイルと異なる第2のファイルに保存する手順を含むプログラム。
PCT/JP2013/057707 2013-03-18 2013-03-18 電子機器および手書き文書処理方法 WO2014147719A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2013/057707 WO2014147719A1 (ja) 2013-03-18 2013-03-18 電子機器および手書き文書処理方法
JP2015506402A JP5869179B2 (ja) 2013-03-18 2013-03-18 電子機器および手書き文書処理方法
US14/615,379 US20150154443A1 (en) 2013-03-18 2015-02-05 Electronic device and method for processing handwritten document

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/057707 WO2014147719A1 (ja) 2013-03-18 2013-03-18 電子機器および手書き文書処理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/615,379 Continuation US20150154443A1 (en) 2013-03-18 2015-02-05 Electronic device and method for processing handwritten document

Publications (1)

Publication Number Publication Date
WO2014147719A1 true WO2014147719A1 (ja) 2014-09-25

Family

ID=51579454

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/057707 WO2014147719A1 (ja) 2013-03-18 2013-03-18 電子機器および手書き文書処理方法

Country Status (3)

Country Link
US (1) US20150154443A1 (ja)
JP (1) JP5869179B2 (ja)
WO (1) WO2014147719A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8594740B2 (en) 2008-06-11 2013-11-26 Pantech Co., Ltd. Mobile communication terminal and data input method
JP6125333B2 (ja) * 2013-05-31 2017-05-10 株式会社東芝 検索装置、方法及びプログラム
JP6136967B2 (ja) * 2014-02-06 2017-05-31 ソニー株式会社 情報処理システム、情報処理方法、及びプログラム
DE202015006141U1 (de) 2014-09-02 2015-12-14 Apple Inc. Elektronische Touch-Kommunikation
JP6147825B2 (ja) * 2015-09-29 2017-06-14 株式会社東芝 電子機器および方法
JP6977408B2 (ja) * 2017-09-05 2021-12-08 株式会社リコー 情報処理システム、端末装置、情報処理方法及び情報処理プログラム
CN114860094A (zh) * 2022-05-23 2022-08-05 Oppo广东移动通信有限公司 数据的保存方法、装置、电子设备以及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877295A (ja) * 1994-09-05 1996-03-22 Hitachi Ltd 手書き情報検索方法及びそれを用いた手書き入力装置
JP2004139281A (ja) * 2002-10-16 2004-05-13 Fujitsu Ltd オンライン手書き情報認識装置及び方法
JP2007317022A (ja) * 2006-05-26 2007-12-06 Canon Inc 手書文字処理装置及び手書文字処理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3974359B2 (ja) * 2000-10-31 2007-09-12 株式会社東芝 オンライン文字認識装置及び方法並びにコンピュータ読み取り可能な記憶媒体及びオンライン文字認識プログラム
AUPR824301A0 (en) * 2001-10-15 2001-11-08 Silverbrook Research Pty. Ltd. Methods and systems (npw001)
US7262785B2 (en) * 2003-08-21 2007-08-28 Microsoft Corporation Ink editing architecture
US9134947B2 (en) * 2009-03-31 2015-09-15 Ricoh Company, Ltd. Annotating digital files of a host computer using a peripheral device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877295A (ja) * 1994-09-05 1996-03-22 Hitachi Ltd 手書き情報検索方法及びそれを用いた手書き入力装置
JP2004139281A (ja) * 2002-10-16 2004-05-13 Fujitsu Ltd オンライン手書き情報認識装置及び方法
JP2007317022A (ja) * 2006-05-26 2007-12-06 Canon Inc 手書文字処理装置及び手書文字処理方法

Also Published As

Publication number Publication date
JP5869179B2 (ja) 2016-02-24
JPWO2014147719A1 (ja) 2017-02-16
US20150154443A1 (en) 2015-06-04

Similar Documents

Publication Publication Date Title
JP6109625B2 (ja) 電子機器およびデータ処理方法
JP5349645B1 (ja) 電子機器および手書き文書処理方法
JP5869179B2 (ja) 電子機器および手書き文書処理方法
JP5813780B2 (ja) 電子機器、方法及びプログラム
JP5728592B1 (ja) 電子機器および手書き入力方法
JP6092418B2 (ja) 電子機器、方法及びプログラム
JP5395927B2 (ja) 電子機器および手書き文書検索方法
JP2013246633A (ja) 電子機器、手書き文書作成方法、及び手書き文書作成プログラム
JP5925957B2 (ja) 電子機器および手書きデータ処理方法
US20150146986A1 (en) Electronic apparatus, method and storage medium
JP6092462B2 (ja) 電子機器、方法及びプログラム
JP2013238918A (ja) 電子機器、手書き文書表示方法、及び表示プログラム
JP5634617B1 (ja) 電子機器および処理方法
JP2016085512A (ja) 電子機器、方法及びプログラム
US9183276B2 (en) Electronic device and method for searching handwritten document
JP6100013B2 (ja) 電子機器および手書き文書処理方法
JP6223687B2 (ja) 電子機器および手書き文書検索方法
JP2014203393A (ja) 電子機器、手書き文書処理方法、及び手書き文書処理プログラム
JP5330576B1 (ja) 情報処理装置および筆跡検索方法
WO2014174665A1 (ja) システムおよび筆跡検索方法
JP6151005B2 (ja) システムおよび情報提供方法並びに電子機器
WO2014181433A1 (ja) 電子機器、手書き文書検索方法およびプログラム
JP6062487B2 (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: 13879108

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015506402

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

Country of ref document: EP

Kind code of ref document: A1