WO2007105364A1 - 文書処理装置及び文書処理方法 - Google Patents

文書処理装置及び文書処理方法 Download PDF

Info

Publication number
WO2007105364A1
WO2007105364A1 PCT/JP2007/000175 JP2007000175W WO2007105364A1 WO 2007105364 A1 WO2007105364 A1 WO 2007105364A1 JP 2007000175 W JP2007000175 W JP 2007000175W WO 2007105364 A1 WO2007105364 A1 WO 2007105364A1
Authority
WO
WIPO (PCT)
Prior art keywords
annotation
document
document processing
unit
image
Prior art date
Application number
PCT/JP2007/000175
Other languages
English (en)
French (fr)
Inventor
Koji Sasaki
Original Assignee
Justsystems Corporation
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 Justsystems Corporation filed Critical Justsystems Corporation
Priority to JP2008504989A priority Critical patent/JPWO2007105364A1/ja
Publication of WO2007105364A1 publication Critical patent/WO2007105364A1/ja

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • H04N1/3871Composing, repositioning or otherwise geometrically modifying originals the composed originals being of different kinds, e.g. low- and high-resolution originals
    • 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/169Annotation, e.g. comment data or footnotes

Definitions

  • the present invention relates to a document processing technique, and more particularly, to a document processing apparatus and a document processing method for processing a document described in a markup language.
  • XML is attracting attention as a format suitable for sharing data with others over a network, etc., and developments have been developed to create, display, and edit XML documents (for example, (See Patent Document 1).
  • the XML document is created based on the Pocabulary (tag set) defined by the document type definition.
  • Patent Document 1 Japanese Patent Laid-Open No. 2 00 1 _ 2 90 80 4
  • the poch library is allowed to be arbitrarily defined, and in theory there can be an infinite number of pocabularies. It is impractical to provide a dedicated display and editing environment corresponding to all of these Poch libraries. In the past, when editing a document written in a library that does not have a dedicated editing environment, the source of the document composed of text data was directly edited using a text editor or the like.
  • the present invention has been made in view of such circumstances, and an object of the present invention is to provide a technique for improving user convenience when processing data structured in a markup language. is there.
  • One embodiment of the present invention relates to a document processing apparatus.
  • This document processing apparatus when annotating a partial area of an image, sets an area setting receiving unit for receiving the designation of the area, and setting an annotation for the area.
  • An annotation setting accepting unit that accepts information
  • an annotation recording unit that records the information for specifying the area and the accepted annotation setting in a file in association with each other.
  • the annotation setting reception unit may be capable of receiving a common annotation setting for a plurality of areas.
  • the annotation setting receiving unit may receive the annotation type, and the annotation recording unit may further record information for specifying the annotation type in the file.
  • the annotation recording unit may record the annotation in the file using a markup language.
  • the annotation recording unit may record the annotation in the file using a tag set for describing the annotation.
  • the document processing apparatus may further include a definition file acquisition unit that acquires a definition file that describes a tag set processing method for describing the annotation, and the annotation recording unit is described in the definition file. According to the command, an element for describing the annotation may be recorded in the file.
  • Another aspect of the present invention relates to a document processing method.
  • this document processing method when annotating a partial area of an image, a step of accepting designation of the area, a step of accepting an annotation setting for the area, and specifying the area And a step of associating the received information with the received annotation setting in a file in association with each other.
  • the document processing apparatus includes: an image acquisition unit that acquires an image; an annotation acquisition unit that acquires a file in which an annotation attached to a partial region of the image is recorded; and the image display unit And an annotation display unit that displays the annotation in a format that can identify the correspondence between the region and the annotation.
  • the document processing apparatus may further include an annotation recording unit that receives editing of the annotation and records the edited annotation in the file.
  • the annotation display unit may display the annotation attached to the area so that it can be identified.
  • the annotation display unit may further display a list display screen for displaying a list of annotations attached to the image.
  • the annotation display unit may display the annotations in groups according to the types of annotations.
  • the file may record the annotation using a tag set for describing the annotation.
  • the document processing apparatus may further include a definition file acquisition unit that acquires a definition file describing a tag set processing method for describing the annotation, and the annotation display unit is described in the definition file. According to the template, the annotation described in the file may be displayed.
  • Yet another embodiment of the present invention relates to a document processing method.
  • the document processing method includes the steps of: acquiring an image; acquiring a file in which an annotation attached to a partial area of the image is recorded; displaying the image; and Displaying the annotation in a format in which the correspondence with the annotation can be identified.
  • FIG. 1 is a diagram showing a configuration of a document processing apparatus according to a prerequisite technology.
  • FIG. 2 is a diagram showing an example of an XML document to be processed.
  • FIG. 3 is a diagram showing an example of mapping the XML document shown in FIG. 2 to a table described in HTML.
  • FIG. 4 (a) is a diagram showing an example of a definition file for mapping the XML document shown in FIG. 2 into the table shown in FIG.
  • FIG. 4 (b) is a diagram showing an example of a definition file for mapping the XML document shown in FIG. 2 into the table shown in FIG.
  • FIG. 5 is a diagram showing an example of a screen displayed by mapping the XML document described in the grade management vocabulary shown in FIG. 2 to the HTML according to the correspondence shown in FIG.
  • FIG. 6 is a diagram showing an example of a graphical user interface presented to the user by the definition file generation unit in order for the user to generate a definition file.
  • FIG. 7 is a diagram showing another example of the screen layout generated by the definition file generation unit.
  • FIG. 8 is a diagram showing an example of an XML document editing screen by the document processing apparatus.
  • FIG. 9 is a diagram showing another example of an XML document edited by the document processing apparatus.
  • FIG. 10 is a diagram showing an example of a screen displaying the document shown in FIG.
  • FIG. 11 (a) is a diagram showing a basic configuration of a document processing system.
  • FIG. 11 (b) A block diagram of the entire document processing system.
  • FIG. 11 (G) is a diagram showing a block diagram of the entire document processing system.
  • FIG. 12 is a diagram showing details of the document management unit.
  • FIG. 13 is a diagram showing details of the vocabulary connection subsystem.
  • FIG. 14 is a diagram showing details of the relationship between the program starter and other components.
  • FIG. 15 is a diagram showing the details of the structure of the application service loaded by the program startup unit.
  • FIG. 16 is a diagram showing details of the core component bowl.
  • FIG. 17 is a diagram showing details of a document management unit.
  • FIG. 18 is a diagram showing details of an undo framework and an undo command.
  • FIG. 19 is a diagram showing how a document is loaded in the document processing system.
  • FIG. 20 shows an example of a document and its expression.
  • FIG. 21 is a diagram showing a relationship between a model and a controller.
  • FIG. 22 A diagram showing details of the plug-in subsystem, the plug-in library connection, and the connector.
  • FIG. 23 is a diagram showing an example of a V CD file.
  • FIG. 24 is a diagram showing a procedure for reading a compound document in the document processing system.
  • FIG. 25 is a diagram showing a procedure for reading a compound document in the document processing system.
  • FIG. 26 is a diagram showing a procedure for reading a compound document in the document processing system.
  • FIG. 27 is a diagram showing a procedure for reading a compound document in the document processing system.
  • FIG. 28 is a diagram showing a procedure for reading a compound document in the document processing system.
  • FIG. 29 is a diagram showing a command flow.
  • FIG. 30 is a diagram showing a configuration of a document processing apparatus according to an embodiment.
  • FIG. 31 is a diagram showing an example of a document file in which annotations are recorded.
  • FIG. 32 is a diagram showing an example of a screen displayed by an annotation display unit.
  • FIG. 33 is a diagram showing an example of a screen in which an area setting receiving unit receives area settings.
  • FIG. 34 is a diagram showing an example of a screen in which an annotation setting reception unit receives an annotation setting.
  • FIG. 35 is a diagram showing an example of a screen that displays an annotation in which an annotation display section is set.
  • FIG. 36 is a diagram showing an example of a screen when an area where annotation is set is focused. Explanation of symbols
  • DOM unit 32 DOM providing unit, 34 DOM generating unit, 36 output unit, 40 CSS unit, 42 CSS analyzing unit, 44 CSS providing unit, 46 rendering unit, 50 HTML unit, 52, 62 control unit, 54, 64 editing Section, 56, 66 Display section, 60 SVG unit, 70 Annotation unit, 7 1 Area setting reception section, 72 Annotation setting reception section, 73 Annotation recording section, 74 Annotation display section, 75 Search section, 78 Acquisition Section, 80 VC unit, 82 mapping section, 84 definition file acquisition section, 86 definition file generation section, 1 00 document processing Best mode for carrying out the invention
  • FIG. 1 shows the configuration of the document processing apparatus 20 according to the base technology.
  • the document processing device 20 processes a structured document in which data in the document is classified into a plurality of components having a hierarchical structure.
  • the document processing apparatus 20 includes a main control unit 22, an editing unit 24, a DOM unit 30, a CSS unit 40, an HTML unit 50, an SVG unit 60, and a VC unit 80 as an example of a conversion unit.
  • These configurations are, in terms of hardware components, the power that can be realized by the CPU of any computer, memory, programs loaded in memory, etc.
  • functional blocks that are realized by their cooperation are drawn. . Therefore, those skilled in the art will understand that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof.
  • the main control unit 22 provides a framework for loading plug-ins and executing commands.
  • the editing unit 24 provides a framework for editing XML documents. Document display and editing functions in the document processor 20 Is realized by a plug-in, and necessary plug-ins are loaded by the main control unit 22 or the editing unit 24 according to the document type.
  • the main control unit 22 or the editing unit 24 refers to the name space of the XML document to be processed, determines which vocabulary the XML document is described in, and displays or edits corresponding to that vocabulary. Load plug-ins for viewing and editing.
  • the document processing device 20 has a display system and an editing system for each vocabulary (tag set) such as an HTML unit 50 that displays and edits HTML documents and an SVG unit 60 that displays and edits SVG documents. It is implemented as a plug-in.
  • an HTML unit 50 that displays and edits HTML documents
  • an SVG unit 60 that displays and edits SVG documents. It is implemented as a plug-in.
  • the HTML unit is loaded.
  • SVG unit is loaded.
  • both HTML unit 50 and S VG unit 60 are Loaded.
  • the user can select and install only the necessary functions, and can add or delete functions later as appropriate, so that a recording medium such as a hard disk for storing the program can be used. It is possible to effectively use the storage area of the memory, and it is possible to prevent memory from being wasted even during program execution. In addition, it has excellent function expandability, and as a development entity, it is possible to cope with new plug-ins in the form of plug-ins, making development easier, and for users, adding plug-ins makes it easier and less expensive. Function can be added.
  • the editing unit 24 receives an editing instruction event from the user via the user interface, notifies the appropriate plug-in of the event, and re-executes the event or cancels the execution (undo). ) And other processes are controlled.
  • the DOM unit 30 includes a DOM providing unit 32, a DOM generation unit 34, and an output unit 36, and is a document object model defined to provide an access method when an XML document is handled as data.
  • Document Object Model DO Implement functions that comply with M).
  • the 001 ⁇ 1 provider 32 is a DOM implementation that satisfies the interface defined in the editing unit 24.
  • the DOM generation unit 34 generates a DOM tree from the XML document. As will be described later, when the XML document to be processed is mapped to another library by VC Unit 80, it corresponds to the source tree corresponding to the mapping source XML document and the mapping destination XML document. A destination tree is generated.
  • the output unit 36 outputs the DOM tree as an XML document at the end of editing, for example.
  • the CSS unit 40 includes a CSS analysis unit 42, a CSS providing unit 44, and a rendering unit 46, and provides a display function compliant with CSS.
  • the CSS analysis unit 42 has a parser function for analyzing CSS syntax.
  • CSS provider 4 4 is an implementation of CSS objects, which performs CSS power cascading on DOM trees.
  • the rendering unit 46 is a CSS rendering engine, and is used to display a document described in a platform such as HTML that is laid out using CSS.
  • the HTML unit 50 displays or edits a document described in HTML.
  • the SVG unit 60 displays or edits documents described in SVG.
  • These display and editing systems are realized in the form of plug-ins. Each of them is a display unit (Canvas) 56, 66 for displaying a document, and a control unit (Editlet) 52, 62 for sending and receiving events including editing instructions. It has editing sections (Zone) 54 and 64 that receive editing commands and edit the D OM.
  • the control unit 52 or 62 receives a DOM tree editing command from the outside, the editing unit 54 or 64 changes the DOM tree, and the display unit 56 or 66 updates the display.
  • MVC Model-View-Control ler
  • the display units 56 and 66 are set to “View”, and the control units 52 and 62 force ⁇ ⁇ Control lerj.
  • the editing parts 54 and 64 and the DOM entity correspond to “Model”, respectively.
  • the document processing apparatus 20 of the base technology not only edits XML documents in a single display format but also edits according to each vocabulary. Allows collection.
  • the HTML unit 50 provides a user interface for editing an HTML document in a manner similar to a word processor
  • the SVG unit 60 provides a user interface for editing an SVG document in a manner similar to an image drawing tool. Provide a face.
  • the VC unit 80 includes a mapping unit 82, a definition file acquisition unit 84, and a definition file generation unit 86.
  • a mapping unit 82 By mapping a document described in a certain library to another library, the VC library at the mapping destination is mapped.
  • This function is called Vocabulary Connection (V C).
  • V C Vocabulary Connection
  • the definition file acquisition unit 84 acquires a script file describing the mapping definition. This definition file describes the correspondence (connection) between nodes for each node. At this time, whether to edit the element value or attribute value of each node may be specified. Also, an arithmetic expression using the element value or attribute value of the node may be described.
  • the mapping unit 82 refers to the scribble file acquired by the definition file acquisition unit 84, causes the DOM generation unit 34 to generate a destination tree, and manages the correspondence between the source tree and the destination tree.
  • the definition file generator 86 provides a graphical user interface for the user to generate a definition file.
  • the VC unit 80 monitors the connection between the source tree and the destination tree and receives an editing instruction from the user via the user interface provided by the plug-in responsible for display, the VC unit 80 first selects the source tree. Change the corresponding node. DOM unit 30 force When a mutation event is issued to the effect that the source tree has been changed, VC Unit 80 should receive the mutation event and synchronize the destination tree with the source tree change. Change the destination tree node corresponding to the changed node. View destination tree Plug-in to edit, eg HTML unit 50, destination In response to a mutation event indicating that the tree has changed, the display is updated with reference to the changed destination tree. With such a configuration, even a document described by a local vocabulary used by a small number of users can be displayed by converting it to another major vocabulary, and an editing environment can be used. Provided.
  • the DOM generation unit 34 When the document processing apparatus 20 reads a document to be processed, the DOM generation unit 34 generates a DOM tree from the XML document. Further, the main control unit 2 2 or the editing unit 2 4 refers to the name space to determine the vocabulary describing the document. If the plug-in corresponding to the vocabulary is installed in the document processing apparatus 20, the plug-in is loaded and the document is displayed and edited. If the plug-in is not installed, check whether the mapping definition file exists. If the definition file exists, the definition file acquisition unit 84 acquires the definition file, generates a destination tree according to the definition, and displays and edits the document with the plug-in corresponding to the mapping destination library.
  • the corresponding parts of the document are displayed and edited by plug-ins corresponding to each of the PoCabaries. If the definition file does not exist, the source or tree structure of the document is displayed, and editing is performed on the display screen.
  • FIG. 2 shows an example of an XML document to be processed.
  • This XML document is used to manage student performance data.
  • the component “Grade”, which is the top node of the XML document, has multiple components “Student” provided for each student.
  • the component “student” has an attribute value “name” and child elements “national language”, “mathematics”, “science”, and “society”.
  • the attribute value “name” stores the name of the student.
  • Constituent elements “National language”, “Mathematics”, “Science” and “Society” store the results of national language, mathematics, science and society, respectively. For example, a student whose name is “A” is “9 0” for the national language, “5 0” for the math, and “7 5” for the science. Social performance is “6 0”.
  • the pokary library (tag set) used in this document is referred to as the “results management pouch library”.
  • the document processing apparatus 20 of the base technology does not have a plug-in that supports display and editing of the grade management vocabulary, in order to display this document by a method other than source display and tree display,
  • the VC function is used.
  • the user interface for creating a definition file by the user himself will be described later.
  • the explanation will proceed assuming that a definition file has already been prepared.
  • FIG. 3 shows an example of mapping the XML document shown in FIG. 2 to a table described in HTML.
  • the “Student” node in the Grade Management Library is associated with the row (“TR” node) of the table (“TABLE” node) in HTML, and the attribute value “Name” is assigned to the first column of each row.
  • the second column contains the element values of the “National Language” node, the third column the element values of the “Mathematics” node, the fourth column the element values of the “Science” node, and the fifth column “Society”. Associate node element values with each other.
  • the XML document shown in Fig. 2 can be displayed in the HTML table format.
  • the sixth column specifies the formula for calculating the weighted average of national language, mathematics, science, and social performance, and displays the student's average score. In this way, by making it possible to specify an arithmetic expression in the definition file, more flexible display is possible and user convenience during editing can be improved.
  • the sixth column specifies that editing is not possible, so that only the average score cannot be edited individually. In this way, by making it possible to specify whether editing is possible in the mapping definition, it is possible to prevent user misoperation.
  • Fig. 4 (a) and Fig. 4 (b) show the table shown in Fig. 3 for the XML document shown in Fig. 2.
  • An example of a definition file for mapping is shown below. This definition file is described in the script language defined for the definition file.
  • the definition file contains command definitions and display templates.
  • “add student” and “delete student” are defined as commands, and the operation to insert the node “student” into the source tree and the source tree respectively.
  • the operation to delete the node “Student” from the node is associated.
  • FIG. 5 shows an example of a screen displayed by mapping the XML document described in the grade management platform shown in FIG. 2 to HTML according to the correspondence shown in FIG.
  • Table 90 shows, from the left, each student's name, national language grade, math grade, science grade, social grade, and average score.
  • the user can edit the XML document on this screen. For example, if you change the value in row 2 and column 3 to “70”, the element value in the source tree corresponding to this node, that is, the math grade for student “B” is changed to “70”. .
  • the VC unit 80 changes the corresponding part of the destination tree so that the destination tree follows the source tree, and the HTML unit 50 updates the display based on the changed destination tree. Therefore, in the table on the screen, the math grade of student “B” is changed to “70”, and the average score is changed to “55”.
  • the commands "Add Student” and “Delete Student” appear in the menu as defined in the definition file shown in Fig. 4 (a) and (b). Indicated.
  • the node “Student” is added or deleted in the source tree.
  • the document processing apparatus 20 of the base technology can not only edit the element value of the component at the end of the hierarchical structure but also edit the hierarchical structure.
  • Such a tree structure editing function may be provided to the user in the form of a command.
  • a command for adding or deleting a table row may be associated with an operation for adding or deleting a node “student”.
  • commands for embedding other vocabularies may be provided to the user.
  • this table as an input template, you can also add new student grade data in the form of blanks.
  • the VC function makes it possible to edit a document described in the grade management library while using the display editing function of the HTML unit 50.
  • FIG. 6 shows an example of a graphical user interface presented to the user by the definition file generator 86 in order for the user to generate a definition file.
  • the XML document of the mapping source is displayed as a tree.
  • the screen layout of the XML document to be mapped is shown.
  • This screen layout can be edited by the HTML unit 50, and the user creates a screen layout for displaying the document in the area 92 on the right side of the screen. Then, for example, by using a pointing device such as a mouse, drag the XML source node displayed in area 91 on the left side of the screen into the HTML screen layout displayed in area 92 on the right side of the screen.
  • the connection between the mapping source node and the mapping destination node is specified. For example, if you drop “Mathematics”, a child element of the element “Student”, into the first row and third column of Table 90 on the HTML screen, between the “Mathematics” node and the “TD” node in the third column. A connection is stretched over. Each node can be specified for editing. An arithmetic expression can be embedded in the display screen. When the editing of the screen is completed, the definition file generator 86 generates a definition file describing the screen layout and the connection between the nodes.
  • FIG. 7 shows another example of the screen layout generated by the definition file generation unit 86.
  • Table 90 and a pie chart 93 are created on the screen for displaying the XML document described in the grade management vocabulary.
  • This pie chart 93 is described by S V G.
  • the document processing apparatus 20 of the base technology can process a compound document including a plurality of vocabularies in one XML document, so that it is described in HTML as in this example.
  • Table 90 and the pie chart 93 described in SVG can be displayed on one screen.
  • FIG. 8 shows an example of an XML document editing screen by the document processing apparatus 20.
  • one screen is divided into a plurality of areas, and the XML document to be processed is displayed in a plurality of different display formats in each area.
  • the source of the document is displayed in area 94
  • the document structure is displayed in area 95
  • the table described in HTML shown in Fig. 5 is displayed in area 96. Is displayed.
  • Documents can be edited on any of these screens.
  • the source tree is changed, and the plug-in responsible for displaying each screen changes the source. Update the screen to reflect the tree changes.
  • the display part of the plug-in responsible for displaying each editing screen is registered, and either plug-in or VC unit 8 0 is used.
  • the source tree is changed, all the display parts that are displaying the edit screen receive the issued mutation event. Update the screen.
  • the VC unit 80 changes the destination tree following the change of the source tree, and then refers to the changed destination tree. The display unit updates the screen.
  • the source display plug-in and the tree display plug-in do not use the death tree, but directly use the source tree.
  • Browse and display In this case, when editing is performed on any of the screens, the source display plug-in and the tree display plug-in update the screen with reference to the changed source tree, and take charge of the screen in area 96.
  • the HTML unit 50 that is updated follows the source tree change and updates the screen with reference to the changed destination tree.
  • the source display and the single display can also be realized by using the VC function.
  • the source and tree structure may be laid out using HTML, XML documents may be mapped onto the HTML, and displayed using the HTML unit 50.
  • three destination trees are generated: source format, tree format, and tabular format.
  • VC Unit 80 changes the source tree, then changes the three destination trees: source format, tree format, and table format. Refer to those destination trees and update the three screens.
  • a document in a plurality of display formats on one screen, it is possible to improve user convenience.
  • the user can display and edit a document in a visually easy-to-understand format using Table 90 or the like while grasping the hierarchical structure of the document by displaying the source or the tree.
  • one screen can be divided and screens in multiple display formats can be displayed at the same time.
  • One screen can be displayed in one display format, and the display format can be switched according to user instructions.
  • main control unit 2 2 force Accepts a display format switching request from the user and instructs each plug-in to switch the display.
  • FIG. 9 shows another example of an XML document edited by the document processing device 20.
  • the editing unit 24 refers to the name space and distributes the drawing work to an appropriate display system.
  • the editing unit 24 first causes the SVG unit 60 to draw a rectangle, and then causes the HTML unit 50 to draw an XHTML document.
  • MathML unit (not shown) draw the mathematical formula.
  • a compound document including a plurality of vocabularies is appropriately displayed.
  • the display results are shown in Fig. 10.
  • the displayed menu may be switched according to the position of the cursor (carriage). That is, when the cursor exists in the area where the SVG document is displayed, the menu defined by the SVG unit 60 or the command defined in the definition file for mapping SVG documents is displayed.
  • the menu defined by the HT ML unit 50 or the command defined in the definition file for mapping the XH TM L document is displayed. Thereby, an appropriate user interface can be provided according to the editing position.
  • a compound document if there is no appropriate plug-in or mapping definition file corresponding to a certain library, the portion described by the library may be displayed in source or tree.
  • the contents could not be displayed unless an application for displaying the embedded document was installed.
  • the contents can be grasped by displaying the XML document composed of text data in source display or tree display. This is text-based This is a unique feature of documents such as XML.
  • Another advantage of the data being described in the text base is that, for example, in the part described by a certain library in a compound document, the data of the part described by another library in the same document is changed. You may refer to it.
  • character strings embedded in diagrams such as SVG can also be searched.
  • a tag of another library may be used.
  • This XML document is not valid (valid), but can be processed as a valid XML document if it is well-formed.
  • the tags of other inserted vocabulary may be mapped by the definition file. For example, you can use tags such as “Important” and “Most important” in an XH TM L document, and highlight the parts enclosed by these tags, or sort them in order of importance. May be.
  • the plug-in or VC unit 80 responsible for the edited portion changes the source tree.
  • listeners for mutation events can be registered for each node.
  • the plug-in display section or VC unit 80 corresponding to the poker library to which each node belongs is registered as a listener.
  • the 00! ⁇ 1 providing unit 32 traces from the changed node to a higher hierarchy, and if there is a registered listener, issues a mutation event to that listener. For example, in the document shown in Fig.
  • the HUM unit 50 registered as a listener in the ⁇ htm I> node is notified of the mutation event.
  • the SVG unit 60 registered as a listener in the upper ⁇ s V g> node is also notified of the mutation event.
  • the HTML unit 50 updates the display with reference to the changed source tree. The SVG unit 60 ignores the music event because the nodes belonging to its own vocabulary have not changed. May be.
  • the overall layout may change as the display is updated by the HTML unit 50.
  • the layout of the display area for each plug-in is updated by the configuration that manages the layout of the screen, for example, the plug-in responsible for displaying the top node.
  • the HTML unit 50 first draws a part that it is in charge of and determines the size of the display area. Then, notify the configuration that manages the layout of the screen of the size of the display area after the change, and request a layout update.
  • the configuration that manages the screen layout receives the notification and re-lays out the display area for each plug-in. In this way, the display of the edited part is updated appropriately and the layout of the entire screen is updated.
  • the web which forms the core of the Internet, has become a big receptacle for such document data.
  • the Web provides information retrieval systems for such documents.
  • These documents are usually written in a markup language.
  • HTML HyperText Markup Language
  • Such documents further include links to other documents stored elsewhere on the web.
  • XML extensible Markup Language
  • Simple browsers for accessing and browsing web documents have been developed in object-oriented programming languages such as Java (registered trademark).
  • Documents written in markup languages are usually browsers or other applications In the case, it is represented in the form of a tree data structure. This structure corresponds to the tree of the result of parsing the document.
  • the DOM (Document Object Model) is a well-known tree-based data structure model used to represent and manipulate documents.
  • the DOM provides a standard set of objects for representing documents, including HTML and XML documents.
  • the DOM consists of two basic components: a standard model of how objects that represent components in a document are connected, and a standard interface for accessing and manipulating those objects. Including.
  • Application developers can support DOM as an interface to their own data structures and application program interface (API).
  • API application program interface
  • application developers who create documents can use the standard DOM interface rather than their API's own interface.
  • the DOM is effective in facilitating the mutual use of documents in various environments, especially the web.
  • Several versions of the DOM have been defined and are used by different programming environments and applications.
  • a DOM tree is a hierarchical representation of a document based on the contents of the corresponding DOM.
  • the DOM tree contains a “root” and one or more “nodes” that originate from the root. In some cases, the root represents the entire document. Intermediate nodes can represent elements such as a table and the rows and columns in the table, for example.
  • a “leaf” in a DOM tree usually represents text or image-like data that cannot be further decomposed.
  • Each node in the DOM tree may be associated with attributes that describe the parameters of the element represented by the node, such as font, size, color, and indentation.
  • HTML is a language generally used for creating documents, but is a language for format and layout, not a language for data description.
  • the nodes in the DOM tree that represent HTML documents are HTML files.
  • An element that is predefined as a formatting tag, and HTML typically does not provide data detailing or tagging labeling for data, so it formulates queries for data in HTML documents. It is often difficult to convert.
  • XML XML Markup Language
  • HTML HyperText Markup Language
  • XML XML Style Language
  • X path provides common syntax and semantics for specifying the location of parts of an XML document.
  • An example of functionality is traversing the DOM tree corresponding to an XML document. It provides basic functions for manipulating strings, numbers, and Boolean characters associated with various representations of XML documents.
  • X path is the syntax of the appearance of an XML document, for example, a DOM tree or other abstract logical structure, not a grammar such as the number of lines or characters when viewed as text. It works in.
  • the location can be specified through a hierarchical structure in the DOM tree of the XML document, for example.
  • X path is also designed to be used to test whether a node in the DOM tree matches the pattern. More details on XP ath can be found at http: ⁇ www. W3. Org / TR / xpath
  • MVC Model-View-Control Ier
  • M Model
  • V View
  • C Controller
  • the controller interprets input such as mouse and keyboard input from the user and acts to map these user actions to commands sent to the model and / or view to bring about appropriate changes.
  • the model acts to manage one or more data elements, responds to queries about that state, and responds to instructions that change the state.
  • the view acts to manage the rectangular area of the display and has the function of presenting data to the user through a combination of graphics and text.
  • FIG. 11 (a) shows a conventional configuration example of elements that function as the basis of a document processing system of the type described later.
  • Configuration 10 includes a processor of the type such as a CPU or microprocessor 11 connected to memory 12 by communication path 13.
  • Memory 12 may be in the form of any ROM and / or RAM that is available now or in the future.
  • the communication path 13 is typically provided as a bus.
  • the input / output interface 16 for user input devices 14 and display devices 15 (or other user interfaces) such as a mouse, keyboard, voice recognition system, etc. is also a bus for communication between the processor 1 1 and memory 1 2. Connected.
  • This configuration may be a stand-alone, a networked form in which a plurality of terminals and one or more servers are connected, or may be configured by any known method.
  • the present invention is not limited by the placement of these components, the centralized or distributed architecture, or the communication methods of the various components.
  • the system and the embodiments discussed herein are discussed as including several components and sub-components that provide various functionalities. These components and subcomponents can be realized not only by a combination of hardware and software, but also by hardware alone or software alone to provide the noted functionality. Furthermore, the hardware, software, and combinations thereof can be realized by general-purpose computing devices, dedicated hardware, or combinations thereof. Therefore, the configuration of a component or subcomponent IV includes a general purpose computing device that executes specific software to provide the functionality of the component or subcomponent IV.
  • FIG. 11 (b) shows an overall block diagram of an example of a document processing system.
  • a document is generated and edited in such a document processing system.
  • These documents may be described in any language that has the characteristics of a markup language, such as XML.
  • XML markup language
  • the document processing system can be regarded as having two basic configurations.
  • the first configuration is an “execution environment” 1 0 1 which is an environment in which the document processing system operates.
  • the execution environment provides basic utilities and functions that support the system as well as the user during document processing and management.
  • the second configuration is an “application” 1 0 2 composed of applications running in the execution environment. These applications include the document itself and various representations of the document.
  • Program l nvoker (program invoking power: program starter) 1 0 3.
  • Program lvoker 1 0 3 is a basic program accessed to start the document processing system. For example, when a user logs on to a document processing system and starts, Program l nvoker 1 0 3 force is executed.
  • Program l nvoker 1 0 3 can, for example, read and execute functions added as plug-ins to the document processing system, start and execute applications, and read properties related to documents .
  • the functions of Program l nvoker 1 0 3 are not limited to these.
  • Program lvoker 1 0 3 finds the application, launches it, and executes the application.
  • the plug-in subsystem 1 0 4 is used as a highly flexible and efficient configuration for adding functionality to a document processing system.
  • the plug-in subsystem 1 0 4 is also used to modify or delete functions that exist in the document processing system. Can be used for In addition, a wide variety of functions can be added or modified using the plug-in subsystem. For example, you can add an Editlet function that works to support the drawing of a document on the screen. The Ed it let plug-in also supports editing of vocabulary added to the system.
  • the plug-in subsystem 104 includes a Service Broker (service broker: service broker) 1041.
  • ServiceBroker 1 041 mediates services added to the document processing system by managing plug-ins added to the document processing system.
  • Service 1042 Individual functions that achieve the desired functionality are added to the system in the form of Service 1042.
  • Available service types are: Application service, ZoneFactory (zone factory: zone generator) Service, Editlet (editlet): Service, Co country andFactory (command factory: command generator) Part) Service, ConnectXPath (Connect XP ath: XP ath management part) Service CSS Computation (CSS combination: CSS calculation part) Service etc. are included, but it is not limited to these.
  • a plug-in is a unit that can contain one or more ServiceProviders. Each ServiceProvider has one or more classes of Service associated with it. For example, by using a single plug-in with the appropriate software application, one or more services can be added to the system, thereby adding the corresponding functionality to the system.
  • Command subsystem 105 is used to execute commands in the form of commands related to document processing.
  • the user decides to execute a series of instructions
  • operations on the document can be executed.
  • a user edits an XML DOM tree corresponding to an XML document in a document processing system by issuing an instruction in the form of a command, and processes an XML document.
  • These commands may be entered using keystrokes, mouse clicks, or other valid user interface actions.
  • One command may execute more than one instruction.
  • these instructions are wrapped (contained) in one command and executed in succession.
  • a user wants to replace a wrong word with a correct word.
  • the first instruction is to find the wrong word in the document
  • the second instruction is to delete the wrong word
  • the third instruction is to insert the correct word It may be.
  • These three instructions may be wrapped in one command.
  • the command may have an associated function, for example, an “undo” function, described in detail below. These functions may also be assigned to some base classes that are used to create objects.
  • the key component of the command subsystem 1 05 is Co country andlnvoker (command invoking force: command initiating unit) 1 05 1 which selectively gives commands and acts to execute them. Although only one Command Invoker is shown in Fig. 11 (b), one or more Co countries and lnvoker may be used, and one or more commands may be executed simultaneously. Co country andlnvoker 1 05 1 holds functions and classes necessary to execute commands. In operation, Co country and (command: instruction) 1 052 to be executed is loaded into Queue 1 053. Gokoku andlnvoker generates a command thread that runs continuously.
  • Command types executed by CommandlnvokeM 05 1 include Undoab I eCommand (cancellable command) 1 054, AsynchronousCommand (asynchronous command) 1 055, and VCCo country and (VC command) 1 056.
  • UndoableCo country and 1 054 is a command that can cancel the result of the command if the user wishes.
  • Examples of UndoableCo countries include cutting, copying, and inserting text. In operation, when a user selects a portion of a document and applies a cut command to that portion, the cut portion is “not cut” if necessary by using UndoableC 0 and. Can be.
  • VCCommand 1 056 is stored in a Vocabulary Connection Descriptor (VCD) script file.
  • VCD Vocabulary Connection Descriptor
  • These are user-specified commands that can be defined by the programmer.
  • the Command may be, for example, a more abstract Co country and combination for adding an XML fragment, deleting an XML fragment, or setting an attribute. These Co countries and are particularly focused on document editing.
  • AsynchronousCo country and 1 055 are Co country and from the system, such as loading and saving of documents, and are executed asynchronously separately from UndoableCo country and VCCo country and. AsynchronousCommand cannot be canceled because it is not an Undoab leCommand.
  • Resource 109 is an object that provides several functions to various classes. For example, string resources, icons, and default key bindings are examples of resources used in the system.
  • the second major feature of the document processing system is executed in the execution environment 101.
  • Application component 102 includes the actual document and various logical and physical representations of the document in the system.
  • application components 1 02 Contains the configuration of the system used to manage the document.
  • the application component 102 further includes a user application (user application) 106, an application core 108, a user interface 107, and a core component 110.
  • UserApplication 1 06 is loaded on the system together with Program Invoker 1 03.
  • UserApplication 106 is an adhesive that connects a document, various representations of the document, and the user interface required to interact with the document. For example, suppose a user wants to generate a set of documents that are part of a project. When these documents are loaded, an appropriate representation of the document is generated. User interface functionality is added as part of UserApplication 106. In other words, UserApplication 106 holds both the representation of the document that allows the user to interact with the document that forms part of the project, and the various aspects of the document. Once UserApplication 106 is created, the user can easily load UserApplication 106 on the execution environment whenever the user wants to interact with the document that forms part of the project.
  • CoreComponent 1 1 0 provides a way to share documents between multiple panes.
  • Pane displays the DOM tree and handles the physical layout of the screen.
  • a physical screen consists of multiple panes in the screen that depict individual pieces of information.
  • the document that the user sees on the screen is
  • the physical layout of the screen is also in the form of a tree.
  • Pane can be RootPane 1 084 or SubPane 1 085.
  • RootPane 1 084 is a Pane that hits the root of the pane tree
  • SubPane 1 085 is an arbitrary Pane other than RootPane 1 084.
  • CoreComponent 1 1 0 also provides fonts and serves as a source of multiple functional operations for documents, such as toolkits.
  • An example of a task performed by CoreComponent 1 1 0 is moving the mouse cursor between multiple panes.
  • Another example of a task to be performed is to mark a part of a document in one pane and copy it onto another pane that contains a different document.
  • the application component 1 0 2 is composed of documents that are processed and managed by the system. This includes various logical and physical representations of documents within the system.
  • the application core 1 0 8 is a configuration of the application component 1 0 2. Its function is to keep the actual document with all the data it contains.
  • the application core 10 8 includes DocumentManager (document manager: document management unit) 1 0 8 1 and Document (document: document) 1 0 8 2 itself.
  • DocumentManager 1 0 8 1 manages Document 1 0 8 2.
  • DocumentManager 1 0 8 1 is also connected to RootPane 1 0 8 4, SubPane 1 0 8 5, C IpBoard (clipboard) utility 1 0 8 7, and Snapshot (snapshot) utility 1 0 8 8.
  • C I pBoard Utility 1 0 8 7 provides a way to preserve the portion of the document that the user has decided to add to the clip pod. For example, suppose a user wants to cut a part of a document and save it in a new document for later review. In such a case, the clipped part is added to the C i pBoard.
  • the Snapshot utility 1 0 8 8 makes it possible to remember the current state of an application as it transitions from one state to another.
  • d) User interface Another configuration of the application component 1 0 2 is a user interface 1 0 7 that provides a means for the user to physically interact with the system.
  • the user interface is used by users to upload, delete, edit, and manage documents.
  • the user interface includes Frame 1 0 71, MenuBar 1 0 7 2, StatusBar 1 0 7 3, and URLBar 1 0 7 4.
  • Frame 1 0 7 1 is considered to be an active area of the physical screen, as is generally known.
  • MenuBar l 0 7 2 is a screen area that contains menus that provide the user with choices.
  • StatusBar l 0 7 3 is a screen area that displays the execution status of the application.
  • URLBar l 0 7 4 provides an area for entering URL addresses to navigate the Internet.
  • FIG. 12 shows the details of DocumentManager 1 0 8 1. This includes the data structures and structures used to represent the document within the document processing system. For clarity, the configuration described in this subsection is described using the M V C paradigm.
  • DocumentManager 1 0 8 1 includes DoGumentContainer (document container: document container) 2 0 3 that holds and hosts all the documents in the document processing system.
  • the toolkit 2 0 1 that is documented in DocumentManager 1 0 8 1 provides the various tools used by DocumentManager 1 0 8 1.
  • the DomServise DOM service
  • L OManager input / output manager
  • StreamHandler is a tool that handles uploading documents using bitstreams.
  • the model (M) includes a DOM tree model 202 of the document. As mentioned above, all documents are represented as DOM trees in the document processing system. The document also forms part of DocumentContainer 2 03.
  • Zone 209 which is a subset of the DOM tree, contains the associated area of one or more nodes in the DOM tree. For example, only a part of the document can be displayed on the screen, but this part of the visualized document is displayed using Zone209.
  • ZoneFactory zone factory: zone creation unit
  • Zone represents a part of DOM, but one or more “namespaces” may be used.
  • a namespace is a collection of names that are unique within a namespace. In other words, the same name does not exist in the namespace.
  • Facet 2022 is another configuration within the model (M) part of the MVC paradigm. Facet is used to edit Nodes in the Zone. Facet2022 organizes access to the DOM using procedures that can be executed without affecting the contents of the Zone itself. As explained below, these procedures perform important and useful operations related to Node.
  • Each Node has a corresponding Facet. Instead of directly manipulating Nodes in the DOM, the integrity of the DOM is protected by using Facet to perform the operations. If the operation is performed directly on Node, several plugins can modify the DOM at the same time, resulting in inconsistencies.
  • the DOM standard established by W3 C defines a standard interface for operating Nodes. Since there are some operations, it is convenient to prepare these operations as API. In the document processing system, APIs specific to each node are prepared as Facet and attached to each node. This makes it possible to add useful APIs while complying with the DOM standard. Also, instead of implementing a specific DOM for each vocabulary, a variety of vocabularies can be processed uniformly by adding a specific API to the standard DOM implementation later. In both cases, it is possible to properly process a document in which multiple vocabularies are mixed in any combination.
  • a bubbly library is a set of tags (for example, XML tags) belonging to a namespace.
  • a namespace has a set of unique names (here tags).
  • the vocabulary appears as a subtree of the DOM tree that represents the XML document. This subtree contains Zones.
  • the tag set boundary is defined by the Zone.
  • Zone 209 is generated using a service called ZoneFactory 205.
  • Zone 209 is an internal representation of part of the DOM tree that represents the document.
  • a logical representation is required to provide access to some of these documents. This logical representation informs the computer how the document is logically represented on the screen.
  • Canvas 210 is a service that acts to provide a logical layout corresponding to the Zone.
  • the Pane 21 1 is a physical screen layout corresponding to the logical layout provided by the Canvas 210.
  • the user sees only the rendering of the document with characters and images on the display screen. Therefore, the document must be rendered on the screen by the process of drawing characters and images on the screen.
  • the document is drawn on the screen by Canvas 210 based on the physical layout provided by Pane 21 1.
  • a Ganvas 210 corresponding to Zone 209 is generated using Editlet 206.
  • the DOM of the document is edited using Editlet 206 and Canvas 210.
  • Editlet 206 and Canvas 210 are Use Facet that supports 1 or more Nodes in Zone 2 0 9 These services do not directly operate the nodes in the Zone and DOM. Facet is operated using Command 2 0 7.
  • Canvas 2 10 which provides a logical layout on the screen accepts this cursor operation.
  • Canvas 2 1 0 allows Facet to execute the corresponding action. Due to this relationship, the cursor subsystem 20 4 functions as a controller (C) of the M V C paradigm with respect to DocumentManager 1 0 8 1.
  • Canvas 2 1 0 also has a task to handle events. For example, Canvas 2 10 handles events such as mouse clicks, focus movements, and similar actions triggered by the user.
  • Documents in a document processing system can be viewed from at least four perspectives. 1) the data structure used to maintain the content and structure of the document in the document processing system, 2) a means for editing the content of the document without affecting the integrity of the document, 3) on the screen of the document 4) The physical layout of the document on the screen. Zone, Facet, Canvas, and Pane represent components of the document processing system that correspond to the four viewpoints described above.
  • UndoManager Undo Manager 2 1 2 1 holds operations on all documents that can be canceled by the user.
  • UndoManager 21 21 holds the operation of UndoableEdit (Undoable Edit: Undoable Edit) 21 22 like this.
  • the controller portion of the MVC may include a cursor subsystem 204.
  • the cursor subsystem 204 accepts input from the user. These inputs generally have the character of commands and / or editing operations.
  • the cursor subsystem 204 can be thought of as the controller (C) portion of the MVC paradigm associated with DocumentManager 1 081.
  • Canvas 210 represents the logical layout of the document to be presented on the screen.
  • Canvas 210 may include a box tree 208 that logically represents how the document looks on the screen. This box tree 208 will be included in the view (V) portion of the MVC paradigm associated with DocumentManager 1 081.
  • XML documents can be handled by mapping them to other representations, and if the mapped destination representation is edited, the editing is consistent with the original XML document.
  • a document described in a markup language such as XML documents, are created based on the vocabulary defined by the document type definition.
  • a vocabulary is a set of tags.
  • a vocabulary may be defined arbitrarily, so there can be an infinite number of vocabularies. However, it is not practical to provide a dedicated process management environment for each of the many possible libraries. Bocabulary Connection provides a way to solve this problem
  • a document may be described in two or more markup languages.
  • the document may be described in, for example, XH TM L (extensible HyperText Markup Language), SVG (Scalable Vector Graphics), Math ML (Mathematical Markup Language), or other markup languages.
  • the markup language may be found in the same way as a tag set in XML.
  • the vocabulary is processed using the vocabulary rib lagins. Documents described in a vocabulary where plug-ins are not available in the document processing system are displayed by mapping to documents in another vocabulary where plug-ins are available. With this feature, it is possible to properly display a document in a library that does not have a plug-in.
  • the Pobible Library connection includes the ability to obtain a definition file and map between two different vocabularies based on the obtained definition file.
  • a document written in one Poch library can be mapped to another Poch library.
  • the Pokémon Connection makes it possible to display and edit a document by using a display editing plug-in corresponding to the Pocabulary to which the document is mapped.
  • each document is generally described in the document processing system as a DOM tree having a plurality of nodes.
  • the “definition file” describes the correspondence between each node and other nodes. It is specified whether the element value and attribute value of each node can be edited. An arithmetic expression using the element value or attribute value of the node may be described.
  • a destination DOM tree to which the definition file is applied is generated. In this way, the relationship between the source DOM tree and the destination DOM tree is established and maintained.
  • the vocabulary connection monitors the correspondence between the source DOM tree and the destination DOM tree.
  • the vocabulary connection sub-system which is a part of the document processing system provides a function that enables a plurality of expressions of a document.
  • FIG. 13 shows a Vocabulary Connection (VC) subsystem 300.
  • the VC subsystem 300 provides a way to maintain the consistency of two alternative representations of the same document.
  • the two representations may be representations of the same document in two different pockets.
  • one may be the source DOM tree and the other may be the destination DOM.
  • the functions of the power connection subsystem 300 are realized in a document processing system using a plug-in called Vocabulary Connection 301.
  • Vocabulary Connection 301 For each Vocabulary 305 in which the document is represented, a corresponding plug-in is required. For example, if a part of a document is written in HTML and the rest is written in SVG, a vocabulary plug-in corresponding to H TML and S VG is required.
  • Plug-in 301 generates an appropriate VGGanvas (Bocabulary connection canvas) 310 for Zone209 or Pane211, corresponding to the appropriate Vocabulary 305 document.
  • VGGanvas Bocabulary connection canvas
  • Change to Zone 209 in the source DOM tree are propagated to the corresponding Zone in another DOM tree 306 by the conversion rule.
  • conversion Rules are described in the form of a Vocabulary Connection Descriptor (VCD). For each VCD file corresponding to such a conversion between the source DOM and the destination DOM, a corresponding VCManager (Bubble Connection Manager) 302 is generated.
  • VCD Vocabulary Connection Descriptor
  • Connector 304 connects the source node of the source DOM tree and the destination node of the destination DOM tree.
  • Connector 3 04 acts to see modifications (changes) to the source node in the source DOM tree and the source document corresponding to the source node. Then modify the corresponding destination DOM tree node.
  • Gonnector304 is the only object that can modify the destination DOM tree. For example, the user can make modifications only to the source document and the corresponding source DOM tree. Connector 304 then makes the corresponding modifications to the destination DOM tree.
  • Connector 304 is logically linked to form a tree structure.
  • the tree formed by Connector 304 is called ConnectorTree (connector tree).
  • the Connector 304 is generated by using a service called ConnectorFactory (connector factory: connector generation unit) 303.
  • ConnectorFactory 303 creates Connector 304 from the source document and links them to form ConnectorTree.
  • the Vocabu IaryConnection Manager 302 holds a Connector Factory 303.
  • a bubbly library is a set of tags in a namespace.
  • Vocabulary 305 is generated for a document by Vocabu IaryConnection 301. This is done by parsing the document file and generating an appropriate VocabularyConnectionManager 302 for mapping between the source DOM and the destination DOM.
  • ConnectorFactory 303 that generates Connector
  • ZoneFactorv 205 that generates Zone 209
  • Ed it let 206 which creates a Canvas corresponding to the nodes in the Zone.
  • Vocabulary 305 generates VCCanvas3 1 0. Further, a connector 304 and a destination DOM tree 306 are generated correspondingly.
  • Sources DO M and Canvas correspond to model (M) and view (V), respectively.
  • M model
  • V view
  • Bobber rib lagins are offered for major bubbly libraries such as XHTML, SVG, and MathML.
  • the bokeh rib ragins are used in conjunction with the target bubbly library. These provide a way to map between the libraries using the vocabulary connection descriptor.
  • Such mapping is only meaningful if the target Pocabula mapping is possible and the method depicted on the screen is predefined.
  • a rendering method is a standard defined by organizations such as W 3 C, such as X H TM L.
  • VCCanvas is used when a poker library connection is required.
  • the source canvas cannot be generated because the source view cannot be generated directly.
  • VCCanvas is generated using ConnectorTree. This VCCanvas only handles event conversion and does not assist in rendering the document on the screen.
  • the purpose of the vocabulary connection subsystem is to simultaneously generate and maintain two representations of the same document.
  • the second representation is also in the form of a DOM tree, which has already been described as a destination DOM tree.
  • DestinationZone Canv as and Pane.
  • VCCanvas When VCCanvas is created, a corresponding DestinationPane307 is created. In addition, the associated 065 1131 ⁇ 011031 ⁇ 35308 and the corresponding BoxTree 309 are generated. Similarly, VCCanvas3 1 0 is also associated with Pane 2 1 1 and Z one 209 for the source document.
  • DestinationGanvas 308 provides a logical layout of the document in the second representation.
  • DestinationGanvas308 provides user interface features such as cursors and selections to depict documents in the destination representation. Events that occur in DestinationCanvas 308 are supplied to Connector. DestinationCanvas308 notifies Connector 304 of events specific to mouse events, keyboard events, drag-and-drop events, and document destination (second) representations of the library.
  • VCCo country As a component of the POB library connection (VC) subsystem 300, there is a POB library connection (VC) command subsystem 3 1 3.
  • the library connection command subsystem 3 1 3 generates VCCo country a nd (pocket connection command) 3 1 5 which is used for execution of instructions related to the protocol connection subsystem 300.
  • VCCo country and is generated by using the built-in Co country andTemplate (command template) 3 1 8 and / or by generating commands from scratch in the script subsystem 3 1 4 using script language be able to.
  • command templates include "lf” command template, "When” command template, and "Insert” command template. These templates are used to create VGGo country and.
  • Connector 304 generally contains xpath information. As mentioned above, one of the tasks of the Bocabulary Connection One is to reflect changes in the source DOM tree in the destination DOM tree.
  • the xpath information contains one or more xpath expressions that are used to determine the subset of the source DOM tree that should be monitored for changes and modifications.
  • the source DOM tree is a directory or zone that represents a document in a vocabulary before being converted to another vocabulary.
  • the source node node is called the source node.
  • the destination DOM tree is a DOM tree that represents the same document with different vocabularies after being transformed by mapping, as described above in connection with the vocabulary connection. Zone.
  • a node in the destination DOM tree is called a destination node.
  • ConnectorTree is a hierarchical representation based on a Connector that represents the correspondence between a source node and a destination node.
  • the Connector monitors the source node and modifications made to the source document and modifies the destination DOM tree.
  • the Connector is the only object allowed to modify the destination D OM tree.
  • An event is a way to describe and execute a user action executed on a program.
  • programs had to actively gather information to understand user actions and execute them themselves. For example, after a program initializes itself, it enters a loop that repeatedly checks the user's actions to take the appropriate action when the user takes an action on the screen, keyboard, mouse, etc. Means. However, this process is cumbersome. Furthermore, it Requires a program that consumes CPU cycles and loops while waiting for the user to do something.
  • the document processing system defines and uses its own events and how to handle these events.
  • a mouse event is an event that occurs from a user mouse action.
  • User actions including the mouse are passed to the mouse event by Canvas 2 10.
  • Canvas can be said to be at the forefront of interaction by users of the system. If necessary, the canvas at the front passes the content related to the event to the child.
  • the keystroke event flows from Canvas 2 1 0.
  • a single stroke event has immediate focus. That is, it is related to work at any moment.
  • Keystroke events entered on Canvas 2 10 are passed to their parent.
  • Keystrokes are handled by different events that can handle string insertion. Events that handle string insertion occur when a character is inserted using the keyboard.
  • Other “events” include, for example, other events that are treated like drag events, drop events, and mouse events.
  • Dest i nat i onCanvasi the example XHTMLCanvasl 106 is an example of events that occur, such as mouse events, keyboard events, drag-and-drop events, and events specific to vocabularies. receive. These events are notified to the connector 304. More specifically, as shown in Figure 21 (b), the event flow in VocabularyGonnection plug-in 30 1 is as follows: SourcePane 1 1 03, VCCanvas 1 1 04, Dest i nat ionPane 1 1 05 , Destination Canvas which is an example of DestinationGanvas 1 1 06, Destination D OM tree and Connector D
  • Programlnvoker 1 03 is a basic program in the execution environment that is executed to start the document processing system. As shown in Fig. 11 (b), UserApplication 1 06, Service Broker 1 04 1, Commandlnvoker 1 05 1, and Resource 1 09 are all connected to Programlnvoker 1 03. As described above, the application 102 is a component that is executed in the execution environment. Similarly, ServiceBroker 1 04 1 manages plug-ins that add various functions to the system. On the other hand, the Co country and lnvoker 1 05 1 execute the instructions provided by the user and hold the classes and functions used to execute the commands.
  • ServiceBroker 1 04 1 will be described in more detail with reference to Fig. 14 (b). As mentioned above, ServiceBroker 1 04 1 provides various functions to the system. Manage additional plug-ins (and related services). Service 1 042 is the lowest layer that can add or change features to the document processing system. “Ser vicej consists of $ 61 ⁇ 10603 6 ⁇ 0” 401 and $ 61 ⁇ 106 ⁇ “0 1 €
  • the Service is 1) “spot color service” that provides a specific spot color to the document processing system, 2) “ablation service” that is an application executed by the document processing system, and 3) the entire document processing system. It can be classified into three types: “environmental services” that provide the necessary features.
  • FIG 14 An example of Service is shown in Figure 14 (d).
  • the Application Service Cat egory is an example of a ServiceProvider supported by a system utility.
  • Editlet 206 is a Category
  • HTMLEditlet and SVGEdit let are corresponding ServiceProvider
  • 0 ZoneFactory 205 is a Category of Service additional ij, and has a corresponding ServiceProvider (not shown).
  • plug-ins have already been described as adding functionality to a document processing system, they may be considered a unit consisting of several ServiceProviders 402 and their associated classes. Each plug-in has dependencies and ServiceCategory 401 described in the declaration file.
  • Figure 14 (e) shows further details about the relationship between Programlnvoker 1 03 and UserApplication 1 06. Necessary documents and data are loaded from storage. All necessary plug-ins are loaded on ServiceBrokeM 041. ServiceBroker 1 041 holds and manages all plug-ins. Plug-ins can be physically added to the system, and their functions can be loaded from storage. When the contents of a plug-in are loaded, ServiceBroker 1 041 defines the corresponding plug-in. Continue UserApplication 1 06 is generated, loaded into the execution environment 1 0 1, and attached to Prog ramlnvoker 1 03.
  • Figure 15 (a) shows further details about the configuration of the application service loaded on Program Invoker 1103.
  • Command Invoker 1 05 1 which is a component of the command subsystem 1 05 activates or executes Command 1 052 in Program Invoker 1 03.
  • Command 1 052 is a command used to process a document such as XML and edit the corresponding XML DOM tree in the document processing system.
  • Co country and Invoker 1 05 1 holds the classes and functions necessary to execute Comma nd1 052.
  • ServiceBroker 1 04 1 is also executed in Program Invoker 1 03.
  • UserApplication 110 is connected to user interface 107 and CoreComponent 110.
  • CoreComponent 1 1 0 provides a way to share documents between all panes.
  • CoreComponent 1 1 0 also provides fonts and acts as a toolkit for Pane.
  • FIG. 15 (b) shows the relationship between Frame 1 07 1, MenuBar 1 07 2, and StatusBar 1 07 3.
  • Figure 16 (a) provides further explanation of the application core 108 that holds all documents, and parts of documents and data belonging to the documents.
  • Core Component 1 1 0 is attached to DocumentManager 1 08 1 which manages document 1 082.
  • DocumentManager 1 08 1 is the owner of all documents 1 082 stored in the memory associated with the document processing system.
  • DocumentManager 1 08 1 is also connected to Root Pane 1 084 to facilitate the display of the document on the screen.
  • the functions of CI ipBoard 1 087, SnapShot 1 088, Drag & Drop 60 1, and Overlay 602 are also attached to CoreComponent 110.
  • SnapShot 1 088 is used to restore application state The When the user launches Snapshot 1 088, the current state of the application is detected and stored. Then, when the application state changes to another state, the stored state contents are preserved. SnapShotl 088 is illustrated in Figure 16 (b). In operation, when an application moves from one URL to another, SnapShotl 088 remembers the previous state so that it is possible to seamlessly execute the operation of going back and moving forward.
  • Figure 17 (a) shows further explanation of DocumentManager 1 08 1 and how documents are organized and maintained in DocumentManager.
  • DocumentManager 1 08 1 manages document 1 082.
  • one of the documents is RootDocument 701 and the remaining document is SubDocument 702.
  • Do cumentManager 1 081 is connected to RootDocument 701, and RootDocument 7001 is connected to all SubDocuments 702.
  • DocumentManager 1 08 1 is combined with DoGumentContainer 203, which is an object that manages all documents 1 082.
  • Tools that form part of a tool kit 201 eg, XML tool kit
  • D0MService 703 generates a DOM tree based on the document managed by DocumentManager 1081.
  • Each Document 705 is managed by the corresponding DocumentGontainer 203 regardless of whether it is a RootDocument 701 or a SubDocument 702.
  • Figure 17 (b) shows how documents A_E are arranged hierarchically.
  • Document A is a RootDocument.
  • Document B—D is a SubDocument of Document A.
  • Document E is a SubDocument of Document D.
  • the left side of Fig. 17 (b) shows an example of the same document hierarchy displayed on the screen.
  • Document A which is a RootDocument, is displayed as a basic frame.
  • Document B_D which is a SubDocument of Document A, ⁇ ⁇ Displayed as a subframe in A.
  • Document E which is a SubDocument of Document D, is displayed on the screen as a subframe of Subframe D.
  • UndoManager Undo Manager: Undo Manager
  • UndoWrapper 707 are generated for DocumentContainer 203, respectively.
  • UndoWrapper707 is used to execute undoable commands This feature allows you to undo changes made to a document using an edit operation. The undo operation takes into account changes that affect other documents in the hierarchy, eg all documents in a chained hierarchy as shown in Figure 17 (b). To ensure that consistency is maintained.
  • UndoWrapper 707 wraps the undo objects related to SubDocument in DocumentContainer 203 and binds them to the undo objects related to RootDocument. UndoWrapper 707 executes collection of undo objects that can be used in Undoab IeEditAccept or 709.
  • the UndoManager 706 and the UndoWrapper 707 are connected to the Undoab IEEditAcceptor 709 and the UndoableEditSource (Undoable Edit Source) 708.
  • Document 705 may be an Undoab IEEditSource 708 or the source of an editable edit object.
  • Figures 18 (a) and 18 (b) provide further details about the undo framework and undo commands.
  • UndoCommand 80 1, RedoCommand 802, and UndoableEditGommand803 are commands that can be loaded into Co country andlnvokeM 05 1 as shown in Fig. 11 (b). Executed.
  • the UndoableEditCommand 803 is further attacked by an Undoable EditSource 708 and an Undoab IedEditAcceptor 709.
  • “Foo” EditCommand 804 and “bar” EditCommand 805 are examples of UndoableEditCommand.
  • Figure 18 (b) shows the execution of UndoableEditGommand.
  • the UndoableEditAcceptor 709 is attacked in the Document 705 DOM tree 11
  • the command issued by the user Document 705 is edited using the DOM API based on the following:
  • the listener of the mutation event is notified that a change has been made, ie in this step the DOM The listener that monitors all changes in the tree detects the edit operation
  • UndoableEdit is stored as an object of UndoManager 706.
  • UndoableEditAcceptor 709 7b is untouched from UndoableEditSource708.
  • UndoableEditSource708 may be Document705 itself.
  • Figure 19 (a) shows an overview of how a document is loaded into the document processing system. Each step is detailed in relation to a specific example in Figures 24-28.
  • a document processing system generates a DOM from a binary data stream consisting of data contained in a document.
  • ApexNode anapex node
  • the corresponding Pane is identified.
  • the identified Pane generates Zone and Canvas from ApexNode and physical screen surface.
  • the Zone then creates Facets for each node and provides the information needed for them.
  • Canvas generates a data structure for rendering nodes from a DOM tree To do.
  • the document is loaded from storage 901.
  • a DOM tree 902 of the document is generated.
  • a corresponding DocumentContainer 903 is created to hold the document.
  • DocumentContainer 903 is attached to DocumentManager 904.
  • a DOM tree contains a root node and sometimes multiple secondary nodes.
  • a DOM tree may have, for example, an SV G subtree as well as an X H TM L subtree.
  • the XH TM L subtree has ⁇ 905, which is ⁇ 1-1 to 1 ⁇ 11_.
  • the SVG subtree has S V G ApexNode 906.
  • Step 1 ApexNode906 is attached to Pane907, which is the logical layout of the screen.
  • Pane907 requests a ZoneFactory for ApexNode 900 from CoreComponent PaneOwner (Pane Owner: Pane Owner) 908.
  • PaneOwner 908 returns a ZoneFactory and an Editlet that is a CanvasFactory for ApexNode906.
  • Step 4 Pane907 generates Zone909. Zone909 is attached to Pane 907.
  • Zone909 generates a facet for each node and attaches to the corresponding node.
  • ⁇ 8116907 generates 031 ⁇ 359 1 0.
  • Canvas 9 1 0 is attacked by Pane 907.
  • Canvas9 10 includes various commands.
  • step 7 Canvas 9 10 builds a data structure for rendering the document on the screen.
  • this includes a box tree structure.
  • FIG 19 (b) shows an overview of the Zone configuration using the MVC paradigm.
  • Model (M) since Zone and Facet are inputs related to the document, Model (M) includes Zone and Facet.
  • Canvas and data for rendering the document on the screen Since the structure is the output that the user sees on the screen, view (V) corresponds to the Canvas and the data structure. Because Co country and performs control operations on the document and its various relationships, control (c) includes Co country and included in Canvas
  • FIG. 20 An example of a document and its various expressions will be described below using FIG.
  • the document used in this example contains both text and images.
  • Text is represented using X H TM L and images are represented using SVG.
  • Figure 20 details the MVC representation of the relationship between the document components and the corresponding objects.
  • Document 1 00 1 is attached to DocumentContainer 1 002 that holds Document 1 00 1.
  • the document is represented by a DOM tree 1 003.
  • the DOM tree contains ApexNode 1 004.
  • ApexNode is represented by a black circle. Nodes that are not vertices are represented by white circles. The Facet used to edit a node is represented by a triangle and is attached to the corresponding node. Since the document has text and images, the DOM tree for this document contains an XHTML portion and an SVG portion. ApexNode 1 004 is the top node of the XH TM L subtree. This is attacked by XHTMLPanel 005, the top pane for the physical representation of the XHTML portion of the document.
  • ApexNode 1 004 is also attacked by XHTMLZone 1 006, which is part of the document's DOM tree.
  • Facet corresponding to Node 1 004 is also attached to XHTMLZone 1 006.
  • X HTMLZone 1 006 is attached to XHTMLPanel 005.
  • XHTMLEditlet generates XHTMLGanvas 1007, which is a logical representation of the document.
  • XHTMLGanvas 1 007 is attached to XHTMLPanel 005.
  • XHTMLCanvas 1007 generates BoxTree 1 009 for the XHTML component of Document 1001.
  • Various Co and 1 008 necessary to hold and render the X H TM L portion of the document are also added to XHTMLCanvas 1 007.
  • ApexNode 1 0 1 0 in the SVG subtree of the document is the SVG context of the document. It is attached to SVGZone 1 0 1 1 that is a part of the DOM tree of Document 1 00 1 that represents the component. ApexNode 1 0 1 0 is attached to SVGPanel 0 1 3 which is the highest Pane in the physical representation of the SVG part of the document. SVGCanvasl 0 1 2 representing the logical representation of the S VG part of the document is generated by SVGEditlet and attached to SVGPanel 0 1 3.
  • the data structure and commands for rendering the SVG part of the document on the screen are attached to the SVG Canvas. For example, this data structure may include circles, lines, rectangles, etc. as shown.
  • FIG. 21 (a) shows a simplified MV relationship in the XHTML TM component of document 1001.
  • the model is XHTMLZonel 1 0 1 for the X HTML component of Document 1 00 1.
  • the XHTMLZone tree contains several Nodes and their corresponding Facets.
  • the corresponding XHTMLZone and Pane are part of the model (M) part of the MV C paradigm.
  • the View (V) part of the MVC paradigm is the corresponding X HTMLCanvas 1102 and BoxTree of the XHTML component of Document 1001.
  • the X H TM L portion of the document is depicted on the screen using Canvas and Co country and included. Events such as keyboard and mouse input go in the opposite direction, as shown.
  • SourcePane has an additional function: the role as the owner of the DOM.
  • Figure 21 (b) provides a vocabulary connection for the Document 1001 component shown in Figure 21 (a).
  • SourcePane 1 1 03 which acts as a DOM holder, contains the document's source DOM tree.
  • Gonne ctorTree is created by GonnectorFactory and creates DestinationPane 1 1 05 which also functions as the destination DOM holder.
  • Destinatio nPane 1 1 05 is laid out in the form of a box tree as XHTMLDestination on Canvas 1 1 06.
  • Figures 22 (a)-(c) show further details related to the plug-in subsystem, the poker library connection, and the connector, respectively.
  • Plug-in subsystems are used to add or exchange functionality to a document processing system.
  • the plug-in subsystem includes ServiceBroker 1 04 1.
  • ServiceBroker 1 04 1 ⁇ ⁇ l3 ⁇ 4ZoneFactoryService 1 20 1 creates a Zone for the document
  • EditletService 1 202 is also attached to ServiceBroker 1 04 1.
  • EditletService 1 202 generates a canvas corresponding to the node in the zone.
  • ZoneFactory examples are XHTMLZoneF actory 1 2 1 1 and SVGZoneFactory 1 2 1 2 which generate XHTMLZone and SVGZone, respectively.
  • the text component of the document may be represented by generating XHTMLZone, and the image may be represented using SVGZone.
  • EditletService examples include XHTMLEditlet 1 22 1 and SVGEditlet 1 222.
  • FIG 22 (b) shows further details related to the Pocabulary connection.
  • the POB library connection is an important feature of a document processing system, and enables consistent expression and display of documents in two different ways.
  • the VCManager 302 that holds the ConnectorFaGtory 303 is a part of the poker library connection subsystem. ConnectorFaGtory303 generates a connector 304 for the document. As mentioned earlier, the Connector monitors the nodes in the source D OM and modifies the nodes in the destination DOM to maintain consistency between the two representations.
  • Temp late 3 1 7 represents the conversion rules of several nodes.
  • a vocabulary connection descriptor (VCD) file is a list of Temp I ate that represents a number of rules that transform an element or set of elements that satisfy a particular path or rule into another element.
  • Template3 1 7 and GommandTemplate3 1 8 are all attached to VGManager 302.
  • VCManager is an object that manages all sections in a VCD file. 1 for one VCD file Two VCManager objects are created.
  • Figure 22 (c) provides further details related to the Connector.
  • ConnectorF actory303 generates a Connector from the source document.
  • ConnectorFactory 3 03 is attached to Vocabulary ⁇ Template ⁇ and ElementTemplate, and generates Vocabu IaryConnector TemplateConnector ElementGonnector, respectively.
  • the VCManager 302 holds a ConnectorFactory 303.
  • the corresponding VCD file is read to generate the Vocabulary. In this way, Connect orFactory 303 force ⁇ is generated.
  • This ConnectorFactory 303 is related to ZoneFactory that generates Zone and Ed i11 et that generates Canvas.
  • VGGanvas also creates an ApexNode Connect or in the source DOM tree or Zone. Child connectors are recursively generated as needed.
  • a Connec torTree is created by a set of templates in a V CD file.
  • a template is a set of rules for converting elements of a markup language into other elements. For example, each template is matched to the source DOM tree or Zone. If it matches properly, a vertex connector is created. For example, the template “A / * / D” matches all branches that start at node A and end at node D, regardless of what nodes are in between. Similarly, “ ⁇ B” matches all “B” nodes from the root.
  • FIG. 23 shows an example of a VCD script using VCManager and Connect or FactoryTree for the “MySamp I eXML” file. Shows the vocabulary section, template section, and corresponding components in VCManager in the script file.
  • the attribute “matGh” is “sample: rootj
  • ⁇ label” is “MySamp I eXMLj,“ cal temp latej becomes “sample templatej.
  • Vocabulary says "In VCManager of MySamp I eXMLj, the vertex element is included as" sampl e: root j.
  • the corresponding UI label is "MySamp I eXML”.
  • the tag is “vcd: templatej” and the name B'J is “sample: templatej”.
  • FIG. 24 (a) shows a detailed description of loading the document “MySamp I eXML”.
  • the document is loaded from 1405 storages.
  • the DOMService generates a DocumentGontaineM 401 that is paired with the D OM tree and DocumentManager 1 406.
  • DocumentGontaineM 4 01 is attached to DocumentManager 1 406.
  • the document contains XHTML and MySampleXML subtrees.
  • ApHNode 1 403 of XHTML is the top node of XHTML to which the tag rxhtml: htmlJ is attached.
  • ApexNodel 404 of “MySampleXML” is the top node of “MySamp I eXMLj” with tag “sample: rootj force”.
  • step 2 shown in Fig. 24 (b) RootPane generates XHTMLZone, Facet, and Canvas of the document.
  • Panel 407, XHTMLZone 1 408, XHTMLCanvas 1 409, and BoxTreel 410 are generated corresponding to ApexNodel 403.
  • step 3 shown in Fig. 24 (c) a tag "samp le: root” unknown to XHTMLZone is found, and a SubPane is generated from the XHTMLCanvas area.
  • Step 4 shown in Fig. 25 SubPane can handle "sample: root” and obtain a ZoneFactory that can generate an appropriate Zone.
  • This ZoneFactory is in a Vocabulary that can execute Z oneFactory. It includes the contents of “Vobubu IarySect i on MySamp I eXMLj c
  • step 5 shown in FIG. 26 a Vocabulary key ⁇ 06 311 20 ⁇ 1 601 corresponding to "MySampleXML" is generated. A corresponding Ed it let is created and SubPane 1 501 is provided to create the corresponding canvas. Editlet is a VGGanvas Is generated. And it calls TemplateSection. ConnectorFaGtoryTree can be included o ConnectorFaGtoryTree generates all Constructors that become ConnectorTree.
  • each Connector generates a destination DOM object.
  • Some of the connectors contain xpath information.
  • the xpath information contains one or more xpath expressions that are used to determine the subset of the source DOM tree that needs to be monitored for changes and modifications.
  • step 7 shown in FIG. 28 the vocabulary creates a destination D o Mli-state destination pane from the source DOM pane. This is done based on the SourcePane.
  • the ApexNode in the destination tree is attached to the DestinationPane and the corresponding Zone.
  • Destination Pane is provided with its own Editlet that creates a DestinationCanvas and builds the data structure and commands for rendering the document in the destination format.
  • Figure 29 (a) shows the flow when an event occurs on a node that does not have a corresponding source node and exists only in the destination tree.
  • Events acquired by Canvas such as mouse events and keyboard events, are passed to the destination interface and transmitted to the EI ementTemp IateConnector. Since ElementTemplateConnector does not have a corresponding source node, the transmitted event is not an edit operation on the source node.
  • ElementTemplateConnector executes the corresponding action if the transmitted event matches the command described in CommandTemplate. If there is no command that matches, E I ementTemp I ateConnector (i Ignore the transmitted event.
  • Figure 29 (b) shows the flow when an event occurs on a node in the destination tree that is associated with a resource node by TextOfConnector.
  • TextOfConnector gets the text node from the node specified in XP ath of the source DOM tree and maps it to the node of the destination DOM tree. Mouse events, keyboard events, etc. Canva The event acquired by s passes through the destination tree and is transmitted to TextOfConnector.
  • TextOf Connector maps the transmitted event to the corresponding edit command of the source node and puts it in Queue 1 0 5 3.
  • An edit command is a set of DOM API calls that are executed via Facet. When a command placed on the queue is executed, the source node is edited.
  • a technique for adding an annotation to an arbitrary area of an image is proposed.
  • a technique for adding or associating new information such as annotations and notes to a range or area of an image as meta information is proposed.
  • meta-information for the area where each person is shown, it will be more user-friendly and value-added High information.
  • This meta information is preferably provided in a format independent of the particular system.
  • meta information set for an arbitrary area of an image is recorded as XML data.
  • FIG. 30 shows the configuration of the document processing apparatus according to the embodiment.
  • the document processing apparatus 100 includes an annotation unit 70 and an acquisition unit 78 in addition to the configuration of the document processing apparatus 20 of the base technology shown in FIG.
  • the annotation unit 70 is an area setting reception unit 71 that receives the setting of the area of the image to which the annotation is attached, an annotation setting reception part 7 2 that receives the setting of the annotation attached to the area, and records the set annotation.
  • the acquisition unit 78 acquires an image to which annotations are added, a document file in which annotations are recorded, and a definition file for processing the document file in which annotations are recorded.
  • the annotation set for the image area is a dedicated tag set prepared for describing the annotation attached to the image (hereinafter referred to as “image annotation box library”). )
  • image annotation box library To record as an XML document.
  • the processing system for processing the image annotation box library may be prepared as a module such as a hard code plug-in.
  • a method for processing the elements of the image annotation box library is provided.
  • a written definition file is provided. Therefore, each function of the area setting receiving unit 71, the annotation setting receiving unit 72, the annotation recording unit 73, and the annotation display unit 74 is realized by the definition file and the VC unit 80.
  • Fig. 31 shows an example of a document file in which annotations are recorded.
  • the document file is described in the image annotation platform “ia”, and the “ia: images” element is provided as a child element of the root element “ia: portal”.
  • the “ia: image” element for storing image setting information is provided.
  • Multiple “ia: image” elements may be provided, in which case annotations for multiple images are recorded in one document file.
  • the attribute “href” of the “ia: image j element” stores the URL of the image
  • the child element “ia: title” stores the title of the image
  • the child element “ia: description” describes the image. Is stored.
  • the child element “ia: parts” stores annotation information attached to one or more areas of the image.
  • the “ia: parts” element has one or more child elements “ia: part”.
  • Element “ia: part” stores the setting information of each area
  • child element “ia: rectangle” has the coordinates of the upper left and lower right of the rectangular area.
  • the values are stored as attributes “x1”, “y1”, “x2”, “y2”, respectively
  • the child element “ia: descr iptionsj stores the explanatory power of the region ⁇ the“ ia: descr iptionsj element is It has one or more child elements “ia: description”, and each “ia: descriptionj element stores an annotation set for the area.
  • An“ ia: description ”element contains an annotation.
  • annotation format may be text, image, audio, video, XML data, etc.
  • annotations may be set with arbitrary element names.
  • the region setting reception unit 71 displays the image acquired by the acquisition unit 78, and receives a setting request for annotation from the user, and receives the setting of the region to be set for annotation. For example, when the user clicks the mouse at the upper left position of the rectangular area where the user wants to set annotation, drags it to the lower right, and releases it at the lower right position of the rectangular area. Alternatively, the upper left and lower right coordinates of the rectangular area may be acquired to accept the setting of the rectangular area.
  • the area setting accepting unit 71 may accept the setting of an area of a circle, a polygon, or any other shape besides a rectangle. In this case, information that can uniquely identify the shape and position of the area is acquired from the user.
  • the annotation setting reception unit 72 receives the setting of annotations attached to the area received by the region setting reception unit 71.
  • the annotation setting reception unit 72 receives information that can be set as annotations from the user in accordance with the specifications of the image annotation vocabulary shown in FIG.
  • the annotation setting reception unit 72 may receive settable information from the user in a form format, or may receive a dialog screen or the like from the user in a dialog format. Also, ! ⁇ 1 1 1 1 ⁇ 11_ unit 50ya 5 0 unit
  • the WYS IWYG edit may be accepted on the display screen by a processing system such as 60.
  • the annotation setting accepting unit 72 may accept a common annotation setting for a plurality of areas. For example, when an emergency exit position is annotated with respect to an image of a building floor map, a common annotation may be set for a plurality of emergency exits.
  • the area setting accepting unit 7 1 may accept the setting of a plurality of areas continuously, or prepare a command for adding an area to an already set annotation.
  • the annotation recording unit 73 records the information for specifying the region received by the region setting receiving unit 71 and the setting information of the annotation received by the annotation setting receiving unit 72 in association with each other. . As shown in Fig. 31, the annotation recording unit 73 includes the coordinates of the rectangular area in the child element "ia: rectangle" of the element "ia: part", the title of the area in the child element "ia: title”, and the child Record the information about the annotation set in the area in the element “ia: descriptionsj”.
  • the annotation display section 74 displays the set annotation.
  • the annotation display unit 74 maps each element of the image annotation capsule to the XH TM L element according to the template described in the definition file, and converts the mapped XH TM L document to the H TM L unit 50. Is displayed.
  • FIG. 32 shows an example of a screen displayed by the annotation display unit 74.
  • a screen is generated and displayed by the template described in the definition file that defines the processing method of the image annotation platform.
  • the screen is divided into three frames, the left frame displays a list of images that are subject to annotation settings, the center frame displays the selected image, and the right The frame displays a list of annotations set for the currently selected image.
  • the center frame there is a button for switching between "Edit mode" and "Display mode”.
  • the edit mode a screen for setting the annotation for the area and editing the set annotation is presented.
  • a screen displaying the set annotation is presented.
  • the annotation unit 70 accepts the designation of the image, obtains the accepted image by the obtaining unit 78, adds an “ia: image” element to the source DOM tree, The URL of the image is stored in the “href” attribute. Thereafter, a mutation event indicating that the source DOM tree has been changed is issued, and the annotation display unit 74 updates the display to display the added image.
  • annotation unit 70 deletes the “ia: image” element corresponding to the selected image from the source DOM tree.
  • FIG. 33 shows an example of a screen on which the region setting reception unit 71 receives region settings.
  • the annotation recording unit 73 adds an “ia: part” element under the “ia: parts” element of the source DOM tree.
  • the region setting reception unit 71 receives selection of a rectangular region from the user, and the information recording unit 73 stores the received information in the “ia: rectangle” element.
  • the rectangle to select May overlap with rectangles in other areas. Numbers are assigned to the set areas in the order of setting.
  • FIG. 34 shows an example of a screen on which the annotation setting accepting unit 72 accepts an annotation setting.
  • the rectangle of the selected area is displayed, and the area number is displayed on the upper left of the rectangle.
  • a form for setting annotations is displayed, and editing of each item is accepted.
  • a list of set annotations is displayed in the right frame, and the set annotations can be checked on the screen.
  • Each annotation is labeled with a region number.
  • the center frame is provided with a button for adding a description or an image as an annotation.
  • the annotation recording unit 73 reads “ia: descr” in the source DOM tree. Add an "ia: description” element under the iptionsj element.
  • the annotation setting reception unit 72 does not need to present a dialog, etc. Edits can be accepted from the user on-line on the screen.
  • the annotation setting accepting unit 72 may accept editing of annotation information by a mouse operation such as drag and drop.
  • the mapping destination Pocabulary may be any tag set that can be processed by the document processing device 20. For example, when adding a sentence as an annotation, it can be processed by the HTML unit 50 by mapping it to XHTML, and when adding an image or figure as an annotation, S It can be processed by SVG unit 60 by mapping to VG.
  • FIG. 35 shows an example of a screen that displays an annotation in which the annotation display section 74 is set.
  • a rectangle is not displayed, but a mark indicating the number of the area is displayed in the center of the rectangle.
  • the mark is deleted when the pointer enters the rectangular area, and the rectangle and title of that area are displayed.
  • the annotation set in the selected area is displayed in an identifiable manner.
  • Fig. 36 shows an example of a screen when an area where annotation is set is focused.
  • the area rectangle and title are displayed when the mouse pointer enters the rectangle.
  • the background color of the corresponding annotation is changed in the right frame.
  • the correspondence between the area and annotation can be displayed in an easy-to-understand manner.
  • selecting an annotation in the right frame will focus the corresponding area in the center frame. This makes it possible to search information in both directions and provide an interface that is easier to understand and more convenient.
  • the annotation display unit 74 may display only the outline of the focused area, or may always display the outline of all the areas. It is also possible to change the display color, line type, display timing, etc. of the area outline. The mark indicating the area number may be changed in the same manner.
  • the annotation display unit 74 may display the annotation set in the selected area together with the outline of the area on the image of the center frame.
  • the meta information may be managed by grouping.
  • the annotation setting reception unit 72 further receives the type of annotation to be set.
  • the annotation display unit 74 changes the color and display mode according to the annotation type, and displays the annotation type in an identifiable manner. For example, when store information is set as annotations on a map, it may be displayed in different colors depending on the type, such as blue for restaurants and red for banks. This makes it possible to display more easily and conveniently.
  • the annotation display section 74 is set as an annotation when the mouse pointer enters the area.
  • the displayed image may be displayed in the vicinity, and the annotation set for the image may be selected.
  • the image set as annotation may be displayed as a background transparent image of 50 ⁇ 1 ⁇ 2, for example.
  • such a technique can create a help screen for an application.
  • the document processing apparatus 1 0 0 is a document described in another markup language such as SGML or HTML. Can be processed similarly.
  • the present invention is applicable to a document processing apparatus that processes a document including annotations.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Document Processing Apparatus (AREA)

Abstract

 画像にアノーテーションをつける。  文書処理装置100は、文書処理装置20と、アノーテーションユニット70と、取得部78を備える。アノーテーションユニット70は、アノーテーションを付す画像の領域の設定を受け付ける領域設定受付部71と、領域に付すアノーテーションの設定を受け付けるアノーテーション設定受付部72と、設定されたアノーテーションを記録するアノーテーション記録部73と、設定されたアノーテーションを表示するアノーテーション表示部74と、設定されたアノーテーションを検索する検索部75を含む。

Description

明 細 書
文書処理装置及び文書処理方法
技術分野
[0001 ] 本発明は、 文書処理技術に関し、 特に、 マークアップ言語により記述され た文書を処理する文書処理装置及び文書処理方法に関する。
背景技術
[0002] X M Lは、 ネットワークなどを介して他者とデータを共有するのに適した 形式として注目されており、 X M L文書を作成、 表示、 編集するためのアブ リケーシヨンが開発されている (たとえば、 特許文献 1参照) 。 X M L文書 は、 文書型定義などにより定義されたポキヤブラリ (タグセット) に基づい て作成されている。
特許文献 1 :特開 2 0 0 1 _ 2 9 0 8 0 4号公報
発明の開示
発明が解決しょうとする課題
[0003] ポキヤブラリは、 任意に定義することが許されており、 理論上、 無限に多 くのポキャブラリが存在しうる。 これらのポキヤブラリの全てに対応して専 用の表示■編集環境を提供するのは現実的ではない。 従来、 専用の編集環境 が用意されていないポキヤブラリにより記述された文書を編集する場合、 テ キストデータにより構成された文書のソースを直接テキストエディタなどで 編集していた。
[0004] 本発明はこうした状況に鑑みてなされたものであり、 その目的は、 マーク アップ言語により構造化されたデータを処理する際の、 ユーザの利便性を向 上させる技術を提供することにある。
課題を解決するための手段
[0005] 本発明のある態様は、 文書処理装置に関する。 この文書処理装置は、 画像 の一部の領域に対してァノーテーションを付けるときに、 前記領域の指定を 受け付ける領域設定受付部と、 前記領域に対するァノーテーシヨンの設定を 受け付けるァノーテーシヨン設定受付部と、 前記領域を特定するための情報 と、 受け付けたァノーテーシヨンの設定とを対応づけてファイルに記録する ァノーテーシヨン記録部と、 を備えることを特徴とする。
[0006] 前記ァノーテーシヨン設定受付部は、 複数の領域に対して共通のァノーテ ーシヨンの設定を受付可能としてもよい。 前記ァノーテーシヨン設定受付部 は、 前記ァノーテーシヨンの種別を受け付けてもよく、 前記ァノーテーショ ン記録部は、 前記ァノーテーシヨンの種別を特定するための情報を更に前記 ファイルに記録してもよい。 前記ァノーテーシヨン記録部は、 マークアップ 言語を用いて前記ァノーテーシヨンを前記ファイルに記録してもよい。 前記 ァノーテーシヨン記録部は、 前記ァノ亍ーシヨンを記述するためのタグセッ トを用いて前記ァノーテーシヨンを前記ファイルに記録してもよい。 文書処 理装置は、 前記ァノーテーシヨンを記述するためのタグセッ卜の処理方法を 記述した定義ファイルを取得する定義ファイル取得部を更に備えてもよく、 前記ァノーテーシヨン記録部は、 前記定義ファイルに記述されたコマンドに したがって、 前記ファイルに前記ァノーテーシヨンを記述するための要素を 記録してもよい。
[0007] 本発明の別の態様は、 文書処理方法に関する。 この文書処理方法は、 画像 の一部の領域に対してァノーテーションを付けるときに、 前記領域の指定を 受け付けるステップと、 前記領域に対するァノーテーシヨンの設定を受け付 けるステップと、 前記領域を特定するための情報と、 受け付けたァノーテ一 シヨンの設定とを対応づけてファイルに記録するステップと、 を備えること を特徴とする。
[0008] 本発明の更に別の態様は、 文書処理装置に関する。 この文書処理装置は、 画像を取得する画像取得部と、 前記画像の一部の領域に対して付されたァノ 一亍ーシヨンが記録されたファイルを取得するァノーテーシヨン取得部と、 前記画像を表示するとともに、 前記領域と前記ァノーテーシヨンとの対応を 識別可能な形式で前記ァノーテーシヨンを表示するァノーテーシヨン表示部 と、 を備えることを特徴とする。 [0009] 文書処理装置は、 前記ァノーテーシヨンの編集を受け付け、 編集された前 記ァノーテーシヨンを前記ファイルに記録するァノーテーシヨン記録部を更 に備えてもよい。 前記ァノーテーシヨン表示部は、 ポインティングデバイス のポインタが前記画像の前記領域に入ったときに、 その領域に対して付され たァノーテーシヨンを識別可能に表示してもよい。 前記ァノーテーシヨン表 示部は、 前記画像に対して付されたァノーテーシヨンを一覧表示する一覧表 示画面を更に表示してもよく、 前記一覧表示画面において、 あるァノーテ一 シヨンが選択されたときに、 そのァノーテーシヨンに対応する領域を識別可 能に前記画像上に表示してもよい。 前記ァノーテーシヨン表示部は、 前記ァ ノーテーシヨンの種別に応じて、 前記ァノーテーシヨンをグループ分けして 表示してもよい。 前記ファイルは、 前記ァノ亍ーシヨンを記述するためのタ グセットを用いて前記ァノーテーシヨンを記録していてもよい。 文書処理装 置は、 前記ァノーテーシヨンを記述するためのタグセッ卜の処理方法を記述 した定義ファイルを取得する定義ファイル取得部を更に備えてもよく、 前記 ァノーテーシヨン表示部は、 前記定義ファイルに記述されたテンプレー卜に したがって、 前記ファイルに記述された前記ァノーテーシヨンを表示しても よい。
[0010] 本発明の更に別の態様は、 文書処理方法に関する。 この文書処理方法は、 画像を取得するステップと、 前記画像の一部の領域に対して付されたァノー テーシヨンが記録されたファイルを取得するステップと、 前記画像を表示す るとともに、 前記領域と前記ァノーテーシヨンとの対応を識別可能な形式で 前記ァノーテーシヨンを表示するステップと、 を備えることを特徴とする。
[001 1 ] なお、 以上の構成要素の任意の組合せ、 本発明の表現を方法、 装置、 シス テムなどの間で変換したものもまた、 本発明の態様として有効である。 発明の効果
[001 2] 本発明によれば、 利便性の高いユーザインタフェイスを提供することがで さる。
図面の簡単な説明 [図 1 ]前提技術に係る文書処理装置の構成を示す図である。
[図 2]処理対象となる X M L文書の例を示す図である。
[図 3]図 2に示した X M L文書を H T M Lで記述された表にマツビングする例 を示す図である。
[図 4 (a) ]図 2に示した X M L文書を図 3に示した表にマツビングするための 定義ファイルの例を示す図である。
[図 4 (b) ]図 2に示した X M L文書を図 3に示した表にマツビングするための 定義ファイルの例を示す図である。
[図 5]図 2に示した成績管理ボキャプラリで記述された X M L文書を、 図 3に 示した対応により H T M Lにマツビングして表示した画面の例を示す図であ る。
[図 6]ユーザが定義ファィルを生成するために、 定義フアイル生成部がユーザ に提示するグラフィカルユーザインターフェースの例を示す図である。
[図 7]定義ファイル生成部により生成された画面レイァゥ卜の他の例を示す図 である。
[図 8]文書処理装置による X M L文書の編集画面の一例を示す図である。
[図 9]文書処理装置により編集される X M L文書の他の例を示す図である。
[図 10]図 9に示した文書を表示した画面の例を示す図である。
[図 1 1 (a) ]文書処理システムの基本構成を示す図である。
[図 1 1 (b) ]文書処理システム全体のブロック図を示す図である。
[図 1 1 (G) ]文書処理システム全体のブロック図を示す図である。
[図 12]文書管理部の詳細を示す図である。
[図 13]ボキヤブラリコネクションサブシステムの詳細を示す図である。
[図 14]プログラム起動部と他の構成の関係の詳細を示す図である。
[図 15]プログラム起動部によりロードされたアプリケーションサービスの構 造の詳細を示す図である。
[図 16]コアコンポーネン卜の詳細を示す図である。
[図 17]文書管理部の詳細を示す図である。 [図 18]アンドウフレームワークとアンドウコマンドの詳細を示す図である。
[図 19]文書処理システムにおいて文書がロードされる様子を示す図である。
[図 20]文書とその表現の例を示す図である。
[図 21 ]モデルとコントローラの関係を示す図である。
[図 22]プラグインサブシステム、 ボキヤブラリコネクション、 及びコネクタ の詳細を示す図である。
[図 23] V C Dファイルの例を示す図である。
[図 24]文書処理システムにおいて複合文書を口ードする手順を示す図である
[図 25]文書処理システムにおいて複合文書を口ードする手順を示す図である
[図 26]文書処理システムにおいて複合文書を口ードする手順を示す図である
[図 27]文書処理システムにおいて複合文書を口ードする手順を示す図である
[図 28]文書処理システムにおいて複合文書を口ードする手順を示す図である
[図 29]コマンドの流れを示す図である。
[図 30]実施の形態に係る文書処理装置の構成を示す図である。
[図 31 ]ァノーテーシヨンを記録した文書ファイルの例を示す図である。
[図 32]ァノーテーシヨン表示部により表示された画面の例を示す図である。
[図 33]領域設定受付部が領域の設定を受け付ける画面の例を示す図である。
[図 34]ァノーテーション設定受付部がァノーテーションの設定を受け付ける 画面の例を示す図である。
[図 35]ァノーテーション表示部が設定されたァノーテーションを表示する画 面の例を示す図である。
[図 36]ァノーテーシヨンが設定された領域がフォーカスされたときの画面の 例を示す図である。 符号の説明
[0014] 20 文書処理装置、 22 主制御ユニット、 24 編集ユニット、 30
DOMユニット、 32 DOM提供部、 34 DOM生成部、 36 出力 部、 40 CSSユニット、 42 CSS解析部、 44 CSS提供部、 4 6 レンダリング部、 50 HTMLユニット、 52, 62 制御部、 54 , 64 編集部、 56, 66 表示部、 60 SVGユニット、 70 ァノ 一テーシヨンユニット、 7 1 領域設定受付部、 72 ァノーテーシヨン設 定受付部、 73 ァノーテーシヨン記録部、 74 ァノーテーシヨン表示部 、 75 検索部、 78 取得部、 80 VCユニット、 82 マッピング部 、 84 定義ファイル取得部、 86 定義ファイル生成部、 1 00 文書処 発明を実施するための最良の形態
[0015] (前提技術)
図 1は、 前提技術に係る文書処理装置 20の構成を示す。 文書処理装置 2 0は、 文書内のデータが階層構造を有する複数の構成要素に分類された構造 化文書を処理するが、 本前提技術では構造化文書の一例として XM L文書を 処理する例について説明する。 文書処理装置 20は、 主制御ユニット 22、 編集ユニット 24、 DOMユニット 30、 CSSユニット 40、 HTMLュ ニット 50、 SVGユニット 60、 及び変換部の一例である VCユニット 8 0を備える。 これらの構成は、 ハードウェアコンポーネントでいえば、 任意 のコンピュータの CP U、 メモリ、 メモリにロードされたプログラムなどに よって実現される力 ここではそれらの連携によって実現される機能ブロッ クを描いている。 したがって、 これらの機能ブロックがハードウェアのみ、 ソフトウエアのみ、 またはそれらの組合せによっていろいろな形で実現でき ることは、 当業者には理解されるところである。
[0016] 主制御ユニット 22は、 プラグインのロードや、 コマンド実行のフレーム ワークを提供する。 編集ユニット 24は、 XM L文書を編集するためのフレ ームワークを提供する。 文書処理装置 20における文書の表示及び編集機能 は、 プラグインにより実現されており、 文書の種別に応じて必要なプラグィ ンが主制御ュニット 22又は編集ュニット 24によりロードされる。 主制御 ユニット 22又は編集ュニット 24は、 処理対象となる XM L文書の名前空 間を参照して、 XM L文書がいずれのボキャプラリにより記述されているか を判別し、 そのボキヤブラリに対応した表示又は編集用のプラグインをロー ドして表示や編集を実行させる。 例えば、 文書処理装置 20には、 HTML 文書の表示及び編集を行う H TM Lュニット 50、 SVG文書の表示及び編 集を行う SVGユニット 60など、 ボキヤブラリ (タグセット) ごとに表示 系及び編集系がプラグインとして実装されており、 HTML文書を編集する ときは HTMLュニット 50力 S VG文書を編集するときは S VGュニッ ト 60力 それぞれロードされる。 後述するように、 1~1丁1\11_と5 0の双 方の構成要素を含む複合文書が処理対象となっている場合は、 HTMLュニ ット 50と S VGュニット 60の双方がロードされる。
[0017] このような構成によれば、 ユーザは、 必要な機能のみを選択してインスト ールし、 後から適宜機能を追加又は削除することができるので、 プログラム を格納するハードディスクなどの記録媒体の記憶領域を有効に活用すること ができ、 また、 プログラム実行時にも、 メモリの浪費を防ぐことができる。 また、 機能拡張性に優れており、 開発主体としても、 プラグインの形で新た なポキヤブラリに対応することが可能なので開発が容易となり、 ユーザとし ても、 プラグインの追加により容易かつ低コストにて機能を追加することが できる。
[0018] 編集ユニット 24は、 ユーザインターフェースを介してユーザから編集指 示のィベントを受け付け、 そのィベントを適切なプラグインなどに通知する ともに、 イベントの再実行 (リ ドウ) 又は実行の取消 (アンドゥ) などの処 理を制御する。
[0019] DOMユニット 30は、 DOM提供部 32、 D OM生成部 34、 及び出力 部 36を含み、 XM L文書をデータとして扱うときのアクセス方法を提供す るために定められた文書オブジェクトモデル (Document Object Model : DO M) に準拠した機能を実現する。 001\1提供部32は、 編集ユニット 24に 定義されているィンタフェースを満たす DOMの実装である。 DOM生成部 34は、 XML文書から DOMツリーを生成する。 後述するように、 処理対 象となる XML文書が、 VCュニット 80により他のボキヤブラリにマツピ ングされる場合は、 マッピング元の X M L文書に対応するソースツリーと、 マツビング先の XM L文書に対応するデスティネーションッリーが生成され る。 出力部 36は、 例えば編集終了時に、 DOMツリーを XM L文書として 出力する。
[0020] CSSユニット 40は、 CSS解析部 42、 C S S提供部 44、 及びレン ダリング部 46を含み、 CSSに準拠した表示機能を提供する。 CSS解析 部 42は、 CSSの構文を解析するパーザの機能を有する。 CSS提供部 4 4は、 CS Sオブジェクトの実装であり、 DOMツリーに対して CS Sの力 スケード処理を行う。 レンダリング部 46は、 CS Sのレンダリングェンジ ンであり、 CSSを用いてレイァゥ卜される H TM Lなどのポキヤブラリで 記述された文書の表示に用いられる。
[0021] HTMLユニット 50は、 H T M Lにより記述された文書を表示又は編集 する。 SVGユニット 60は、 SVGにより記述された文書を表示又は編集 する。 これらの表示 編集系は、 プラグインの形で実現されており、 それぞ れ、 文書を表示する表示部 (Canvas) 56、 66、 編集指示を含むイベント を送受信する制御部 (Editlet) 52、 62、 編集コマンドを受けて D OMに 対して編集を行う編集部 (Zone) 54、 64を備える。 制御部 52又は 62 が外部から DOMツリーの編集コマンドを受け付けると、 編集部 54又は 6 4が DOMツリーを変更し、 表示部 56又は 66が表示を更新する。 これら は、 MVC (Model -View-Control ler) と呼ばれるフレームワークに類似する 構成をとつており、 概ね、 表示部 56及び 66が 「View」 に、 制御部 52及 び 62力《 Γ Control lerj に、 編集部 54及び 64と DOMの実体が 「Model」 に、 それぞれ対応する。 本前提技術の文書処理装置 20では、 XML文書を ッリ一表示形式で編集するだけでなく、 それぞれのボキャプラリに応じた編 集を可能とする。 例えば、 HTMLユニット 50は、 HTML文書をワード プロセッサに類似した方式で編集するためのユーザインターフェースを提供 し、 SVGユニット 60は、 SVG文書を画像描画ツールに類似した方式で 編集するためのユーザィンターフェースを提供する。
[0022] V Cユニット 80は、 マッピング部 82、 定義ファィル取得部 84、 及び 定義ファイル生成部 86を含み、 あるボキヤブラリにより記述された文書を 、 他のボキヤブラリにマッピングすることにより、 マッピング先のボキヤブ ラリに対応した表示編集用プラグィンで文書を表示又は編集するためのフレ ームワークを提供する。 本前提技術では、 この機能を、 ボキヤブラリコネク シヨン (Vocabulary Connection: V C) と呼ぶ。 定義ファイル取得部 84は 、 マッピングの定義を記述したスクリプトファイルを取得する。 この定義フ アイルは、 ノードごとに、 ノード間の対応 (コネクション) を記述する。 こ のとき、 各ノードの要素値や属性値の編集の可否を指定してもよい。 また、 ノードの要素値や属性値を用いた演算式を記述してもよい。 これらの機能に ついては、 後で詳述する。 マッピング部 82は、 定義ファイル取得部 84が 取得したスクリブトファイルを参照して、 DOM生成部 34にデスティネー シヨンツリーを生成させ、 ソースツリーとデスティネーションツリーの対応 関係を管理する。 定義ファイル生成部 86は、 ユーザが定義ファイルを生成 するためのグラフィカルユーザインターフェースを提供する。
[0023] VCユニット 80は、 ソースツリーとデスティネーションツリーの間のコ ネクシヨンを監視し、 表示を担当するプラグインにより提供されるユーザィ ンタフェースを介してユーザから編集指示を受け付けると、 まずソースッリ 一の該当するノードを変更する。 DOMユニット 30力 ソースツリーが変 更された旨のミュー亍ーションィベントを発行すると、 VCュニット 80は 、 そのミュー亍ーシヨンイベントを受けて、 ソースツリーの変更にデスティ ネーシヨンツリーを同期させるベく、 変更されたノードに対応するデスティ ネーシヨンツリーのノードを変更する。 デスティネーションツリーを表示 編集するプラグイン、 例えば HTMLユニット 50は、 デスティネーション ツリーが変更された旨のミューテーシヨンィベントを受けて、 変更されたデ スティネーシヨンッリ一を参照して表示を更新する。 このような構成により 、 少数のユーザにより利用されるローカルなポキャプラリにより記述された 文書であっても、 他のメジャーなボキヤブラリに変換することで、 文書を表 示することができるとともに、 編集環境が提供される。
[0024] 文書処理装置 2 0により文書を表示又は編集する動作について説明する。
文書処理装置 2 0が処理対象となる文書を読み込むと、 D O M生成部 3 4が 、 その X M L文書から D O Mツリーを生成する。 また、 主制御ユニット 2 2 又は編集ュニット 2 4は、 名前空間を参照して文書を記述しているボキヤブ ラリを判別する。 そのボキャプラリに対応したプラグィンが文書処理装置 2 0にインストールされている場合は、 そのプラグインをロードして、 文書を 表示 編集させる。 プラグインがインストールされていない場合は、 マツピ ングの定義ファイルが存在するか否かを確認する。 定義ファイルが存在する 場合、 定義ファイル取得部 8 4が定義ファイルを取得し、 その定義に従って 、 デスティネーションツリーが生成され、 マッピング先のポキヤブラリに対 応するプラグィンにより文書が表示 編集される。 複数のポキャプラリを含 む複合文書である場合は、 後述するように、 それぞれのポキヤブラリに対応 したプラグインにより、 文書の該当箇所がそれぞれ表示 編集される。 定義 ファイルが存在しない場合は、 文書のソース又はツリー構造を表示し、 その 表示画面において編集が行われる。
[0025] 図 2は、 処理対象となる X M L文書の例を示す。 この X M L文書は、 生徒 の成績データを管理するために用いられる。 X M L文書のトップノードであ る構成要素 「成績」 は、 配下に、 生徒ごとに設けられた構成要素 「生徒」 を 複数有する。 構成要素 「生徒」 は、 属性値 「名前」 と、 子要素 「国語」 、 「 数学」 、 「理科」 、 「社会」 を有する。 属性値 「名前」 は、 生徒の名前を格 納する。 構成要素 「国語」 、 「数学」 、 「理科」 、 「社会」 は、 それぞれ、 国語、 数学、 理科、 社会の成績を格納する。 例えば、 名前が 「A」 である生 徒の国語の成績は 「9 0」 、 数学の成績は 「5 0」 、 理科の成績は 「7 5」 、 社会の成績は 「6 0」 である。 以下、 この文書で使用されているポキヤブ ラリ (タグセット) を、 「成績管理ポキヤブラリ」 と呼ぶ。
[0026] 本前提技術の文書処理装置 2 0は、 成績管理ポキャプラリの表示 編集に 対応したプラグインを有しないので、 この文書をソース表示、 ツリー表示以 外の方法で表示するためには、 前述した V C機能が用いられる。 すなわち、 成績管理ボキヤブラリを、 プラグインが用意された別のボキヤブラリ、 例え ば、 H T M Lや S V Gなどにマツビングするための定義ファイルを用意する 必要がある。 ユーザ自身が定義ファイルを作成するためのユーザインターフ エースについては後述することにして、 ここでは、 既に定義ファイルが用意 されているとして説明を進める。
[0027] 図 3は、 図 2に示した X M L文書を H T M Lで記述された表にマッピング する例を示す。 図 3の例では、 成績管理ボキヤブラリの 「生徒」 ノードを、 H T M Lにおける表 ( 「TABLE」 ノード) の行 ( 「TR」 ノード) に対応づけ、 各行の第 1列には属性値 「名前」 を、 第 2列には 「国語」 ノードの要素値を 、 第 3列には 「数学」 ノードの要素値を、 第 4列には 「理科」 ノードの要素 値を、 第 5列には 「社会」 ノードの要素値を、 それぞれ対応付ける。 これに より、 図 2に示した X M L文書を、 H T M Lの表形式で表示することができ る。 また、 これらの属性値及び要素値は、 編集可能であることが指定されて おり、 ユーザが H T M Lによる表示画面上で、 H T M Lユニット 5 0の編集 機能により、 これらの値を編集することができる。 第 6列には、 国語、 数学 、 理科、 社会の成績の加重平均を算出する演算式が指定されており、 生徒の 成績の平均点が表示される。 このように、 定義ファイルに演算式を指定可能 とすることにより、 より柔軟な表示が可能となり、 編集時のユーザの利便性 を向上させることができる。 なお、 第 6列は、 編集不可であることが指定さ れており、 平均点のみを個別に編集することができないようにしている。 こ のように、 マッピング定義において、 編集の可否を指定可能とすることによ り、 ユーザの誤操作を防ぐことができる。
[0028] 図 4 ( a ) 及び図 4 ( b ) は、 図 2に示した X M L文書を図 3に示した表 にマッピングするための定義ファイルの例を示す。 この定義ファイルは、 定 義ファイル用に定義されたスクリプト言語により記述される。 定義ファイル には、 コマンドの定義と、 表示のテンプレートが記述されている。 図 4 (a ) (b) の例では、 コマンドとして、 「生徒の追加」 と 「生徒の削除」 が定 義されており、 それぞれ、 ソースツリーにノード 「生徒」 を挿入する操作と 、 ソースツリーからノード 「生徒」 を削除する操作が対応付けられている。 また、 テンプレートとして、 表の第 1行に 「名前」 、 「国語」 などの見出し が表示され、 第 2行以降に、 ノード 「生徒」 の内容が表示されることが記述 されている。 ノード 「生徒」 の内容を表示するテンプレート中、 「text-of」 と記述された項は 「編集可能」 であることを意味し、 「value-of」 と記述さ れた項は 「編集不可能」 であることを意味する。 また、 ノード 「生徒」 の内 容を表示する行のうち、 第 6列には、 「(src:国語 + src:数学 + src:理科 + srG:社会) div 4」 という計算式が記述されており、 生徒の成績の平均が表 示されることを意味する。
[0029] 図 5は、 図 2に示した成績管理ポキヤブラリで記述された X ML文書を、 図 3に示した対応により H TM Lにマツビングして表示した画面の例を示す 。 表 90の各行には、 左から、 各生徒の名前、 国語の成績、 数学の成績、 理 科の成績、 社会の成績、 及び平均点が表示されている。 ユーザは、 この画面 上で、 XML文書を編集することができる。 たとえば、 第 2行第 3列の値を 「70」 に変更すると、 このノードに対応するソースツリーの要素値、 すな わち、 生徒 「B」 の数学の成績が 「70」 に変更される。 このとき、 VCュ ニット 80は、 デスティネーションツリーをソースツリーに追従させるベく 、 デスティネーションツリーの該当箇所を変更し、 HTMLユニット 50が 、 変更されたデスティネーションツリーに基づいて表示を更新する。 したが つて、 画面上の表においても、 生徒 「B」 の数学の成績が 「70」 に変更さ れ、 更に、 平均点が 「55」 に変更される。
[0030] 図 5に示した画面には、 図 4 (a) (b) に示した定義ファイルに定義さ れたように、 「生徒の追加」 及び 「生徒の削除」 のコマンドがメニューに表 示される。 ユーザがこれらのコマンドを選択すると、 ソースツリーにおいて 、 ノード 「生徒」 が追加又は削除される。 このように、 本前提技術の文書処 理装置 2 0では、 階層構造の末端の構成要素の要素値を編集するのみではな く、 階層構造を編集することも可能である。 このようなツリー構造の編集機 能は、 コマンドの形でユーザに提供されてもよい。 また、 例えば、 表の行を 追加又は削除するコマンドが、 ノード 「生徒」 を追加又は削除する操作に対 応づけられてもよい。 また、 他のボキヤブラリを埋め込むコマンドがユーザ に提供されてもよい。 この表を入力用テンプレートとして、 穴埋め形式で新 たな生徒の成績データを追加することもできる。 以上のように、 V C機能に より、 H T M Lユニット 5 0の表示 編集機能を利用しつつ、 成績管理ボキ ャブラリで記述された文書を編集することが可能となる。
図 6は、 ユーザが定義ファイルを生成するために、 定義ファイル生成部 8 6がユーザに提示するグラフィカルユーザィンタフヱ一スの例を示す。 画面 左側の領域 9 1には、 マッピング元の X M L文書がツリー表示されている。 画面右側の領域 9 2には、 マッピング先の X M L文書の画面レイァゥ卜が示 されている。 この画面レイアウトは、 H T M Lユニット 5 0により編集可能 となっており、 ユーザは、 画面右側の領域 9 2において、 文書を表示するた めの画面レイアウトを作成する。 そして、 例えば、 マウスなどのポインティ ングデバイスにより、 画面左側の領域 9 1に表示されたマッピング元の X M L文書のノードを、 画面右側の領域 9 2に表示された H T M Lによる画面レ ィァゥト中へドラッグ &ドロップ操作を行うことにより、 マツビング元のノ ードと、 マッピング先のノードとのコネクションが指定される。 例えば、 要 素 「生徒」 の子要素である 「数学」 を、 H T M L画面の表 9 0の第 1行第 3 列にドロップすると、 「数学」 ノードと、 3列目の 「T D」 ノードの間にコ ネクシヨンが張られる。 各ノードには、 編集の可否が指定できるようになつ ている。 また、 表示画面中には、 演算式を埋め込むこともできる。 画面の編 集が終わると、 定義ファイル生成部 8 6は、 画面レイアウトとノード間のコ ネクシヨンを記述した定義ファイルを生成する。 [0032] X H T M L , M a t h M L、 S V Gなどの主要なポキヤブラリに対応した ビューヮゃエディタは既に開発されているが、 図 2に示した文書のようなォ リジナルなポキャブラリで記述された文書に対応したビューヮゃエディタを 開発するのは現実的でない。 しかし、 上記のように、 他のボキヤブラリにマ ッビングするための定義ファイルを作成すれば、 ビューヮゃエディタを開発 しなくても、 V C機能を利用して、 オリジナルなボキヤブラリで記述された 文書を表示■編集することができる。
[0033] 図 7は、 定義ファイル生成部 8 6により生成された画面レイアウトの他の 例を示す。 図 7の例では、 成績管理ボキャプラリで記述された X M L文書を 表示するための画面に、 表 9 0と、 円グラフ 9 3が作成されている。 この円 グラフ 9 3は、 S V Gにより記述される。 後述するように、 本前提技術の文 書処理装置 2 0は、 一つの X M L文書内に複数のボキャプラリを含む複合文 書を処理することができるので、 この例のように、 H T M Lで記述された表 9 0と、 S V Gで記述された円グラフ 9 3とを、 一つの画面上に表示するこ とができる。
[0034] 図 8は、 文書処理装置 2 0による X M L文書の編集画面の一例を示す。 図 8の例では、 一つの画面が複数に分割されており、 それぞれの領域において 、 処理対象となる X M L文書を異なる複数の表示形式により表示している。 領域 9 4には、 文書のソースが表示されており、 領域 9 5には、 文書のッリ 一構造が表示されており、 領域 9 6には、 図 5に示した H T M Lにより記述 された表が表示されている。 これらのいずれの画面上においても、 文書の編 集が可能であり、 いずれかの画面上でユーザが編集を行うと、 ソースツリー が変更され、 それぞれの画面の表示を担当するプラグインが、 ソースツリー の変更を反映すべく画面を更新する。 具体的には、 ソースツリーの変更を通 知するミュー亍ーシヨンィベン卜のリスナーとして、 それぞれの編集画面の 表示を担当するプラグィンの表示部を登録しておき、 いずれかのプラグィン 又は V Cュニット 8 0によりソースツリーが変更されたときに、 編集画面を 表示中の全ての表示部が、 発行されたミュー亍ーシヨンィベントを受け取つ て画面を更新する。 このとき、 プラグインが V C機能により表示を行ってい る場合は、 V Cュニット 8 0がソースツリーの変更に追従してデスティネー シヨンツリーを変更した後、 変更されたデスティネーションツリーを参照し てプラグィンの表示部が画面を更新する。
[0035] 例えば、 ソース表示及びツリー表示を、 専用のプラグインにより実現して いる場合は、 ソース表示用プラグインとツリー表示用プラグインは、 デス亍 イネーシヨンツリーを用いず、 直接ソースツリーを参照して表示を行う。 こ の場合、 いずれかの画面において編集が行われると、 ソース表示用プラグィ ンとツリー表示用プラグインは、 変更されたソースツリーを参照して画面を 更新し、 領域 9 6の画面を担当している H T M Lユニット 5 0は、 ソースッ リ一の変更に追従して変更されたデスティネーシヨンッリーを参照して画面 を更新する。
[0036] ソース表示及びッリ一表示は、 V C機能を利用して実現することもできる 。 すなわち、 ソース、 ツリー構造を H T M Lによりレイアウトし、 その H T M Lに X M L文書をマツビングして、 H T M Lュニット 5 0により表示して もよい。 この場合、 ソース形式、 ツリー形式、 表形式の 3つのデスティネー シヨンツリーが生成されることになる。 いずれかの画面において編集が行わ れると、 V Cユニット 8 0は、 ソースツリーを変更した後、 ソース形式、 ッ リー形式、 表形式の 3つのデスティネーションツリーをそれぞれ変更し、 H T M Lユニット 5 0は、 それらのデスティネーションツリーを参照して、 3 つの画面を更新する。
[0037] このように、 一つの画面上に複数の表示形式で文書を表示することにより 、 ユーザの利便性を向上させることができる。 例えば、 ユーザは、 ソース表 示又はッリ一表示により文書の階層構造を把握しつつ、 表 9 0などを用いて 視覚的に分かりやすい形式で文書を表示し、 編集することができる。 上記の 例では、 一つの画面を分割して複数の表示形式による画面を同時に表示した 力 一つの画面に一つの表示形式による画面を表示し、 表示形式をユーザの 指示により切り替え可能としてもよい。 この場合、 主制御ユニット 2 2力 ユーザから表示形式の切り替え要求を受け付け、 各プラグインに指示して表 示を切り替える。
[0038] 図 9は、 文書処理装置 20により編集される X ML文書の他の例を示す。
図 9に示した XM L文書では、 SVG文書の 「foreignObject」 タグの中に X H TM L文書が埋め込まれており、 さらに、 X H TM L文書の中に M a t h MLで記述された数式が入っている。 このような場合、 編集ユニット 24が 、 名前空間を参照して、 適切な表示系に描画作業を振り分ける。 図 9の例で は、 編集ユニット 24は、 まず、 SVGユニット 60に四角形を描画させ、 つづいて、 H TM Lユニット 50に X H TM L文書を描画させる。 さらに、 図示しない Ma t h MLュニッ卜に、 数式を描画させる。 こうして、 複数の ボキヤブラリを包含する複合文書が適切に表示される。 表示結果を図 1 0に 示す。
[0039] 文書編集中、 カーソル (キャリッジ) の位置に応じて、 表示されるメニュ 一を切り替えてもよい。 すなわち、 カーソルが、 SVG文書が表示された領 域内に存在するときは、 SVGユニット 60が提供するメニュー、 又は SV G文書をマツビングするための定義ファイルに定義されたコマンドを表示し 、 カーソルが、 X H TM L文書が表示された領域内に存在するときは、 HT M Lュニット 50が提供するメニュー、 又は X H TM L文書をマツビングす るための定義ファイルに定義されたコマンドを表示する。 これにより、 編集 位置に応じて適切なユーザインターフェースを提供することができる。
[0040] 複合文書において、 あるポキヤブラリに対応する適切なプラグイン又はマ ッビング定義ファイルがなかった場合は、 そのボキヤブラリにより記述され た部分は、 ソース表示又はツリー表示されてもよい。 従来、 ある文書に他の 文書を埋め込んだ複合文書を開くとき、 埋め込まれた文書を表示するアプリ ケーシヨンがインス I ^一ルされていないと、 その内容を表示することができ なかったが、 本前提技術では、 表示用のアプリケーションが存在しなくても 、 テキストデータにより構成された X ML文書をソース表示又はツリー表示 することにより内容を把握することができる。 これは、 テキストベースであ る XM Lなどの文書ならではの特徴といえる。
[0041] データがテキストベースで記述されることの他の利点として、 例えば、 複 合文書中の、 あるポキヤブラリにより記述される部分において、 同一文書内 の他のボキヤブラリで記述された部分のデータを参照してもよい。 また、 文 書内で検索を実行する時に、 SVGなどの図に埋め込まれた文字列も検索対 象とすることができる。
[0042] あるボキヤブラリにより記述された文書内に、 他のボキヤブラリのタグを 用いてもよい。 この XM L文書は、 妥当 (val id) ではないが、 整形式 (wel l -formed) であれば、 有効な XM L文書として処理可能である。 この場合、 揷 入された他のボキャプラリのタグは、 定義ファイルによりマツビングされて もよい。 例えば、 X H TM L文書中に、 「重要」 、 「最重要」 などのタグを 使用し、 これらのタグで囲まれた部分を強調表示してもよいし、 重要度の順 にソートして表示してもよい。
[0043] 図 1 0に示した編集画面において、 ユーザにより文書が編集されると、 編 集された部分を担当するプラグィン又は V Cュニット 80がソースッリーを 変更する。 ソースツリーには、 ノードごとにミューテーシヨンイベントのリ スナーを登録できるようになつており、 通常は、 各ノードが属するポキヤブ ラリに対応したプラグインの表示部又は VCュニット 80がリスナーとして 登録される。 00!\1提供部32は、 ソースツリーが変更されると、 変更され たノードから上位の階層へたどって、 登録されたリスナーがあれば、 そのリ スナ一へミューテーシヨンイベントを発行する。 例えば、 図 9に示した文書 において、 < h t m I >ノードの下位のノードが変更された場合、 < h t m I >ノードにリスナーとして登録された H TM Lュニット 50にミュー亍ー シヨンィベン卜が通知されるとともに、 その上位の < s V g>ノードにリス ナ一として登録された SVGュニット 60にもミュー亍ーシヨンィベン卜が 通知される。 このとき、 H TM Lユニット 50は、 変更されたソースツリー を参照して表示を更新する。 SVGユニット 60は、 自身のボキヤブラリに 属するノードが変更されていないので、 ミュー亍ーシヨンィベントを無視し てもよい。
[0044] 編集の内容によっては、 HTMLユニット 50による表示の更新に伴って 、 全体のレイアウトが変わる可能性がある。 この場合は、 画面のレイアウト を管理する構成、 例えば最上位のノードの表示を担当するプラグインにより 、 プラグインごとの表示領域のレイアウトが更新される。 例えば、 HTML ュニット 50による表示領域が以前より大きくなつた場合、 HTMLュニッ ト 50は、 まず自身の担当する部分を描画して、 表示領域の大きさを決定す る。 そして、 画面のレイアウトを管理する構成に、 変更後の表示領域の大き さを通知し、 レイアウトの更新を依頼する。 画面のレイアウトを管理する構 成は、 通知を受けて、 プラグインごとの表示領域を再レイアウトする。 こう して、 編集された部分の表示が適切に更新されるとともに、 画面全体のレイ ァゥ卜が更新される。
[0045] つづいて、 前提技術の文書処理装置 20を実現する機能構成について更に 詳細に説明する。 以下の説明では、 クラス名などを記載する際には、 英字を そのまま用いて記載することにする。
[0046] A. 概要
インターネッ卜の出現により、 ユーザによって処理され管理される文書の 数が、 ほぼ指数関数的に増加してきた。 インターネットの核を形成するゥェ ブ (World Wide Web) は、 そのような文書データの大きな受け皿となってい る。 ウェブは、 文書に加えて、 このような文書の情報検索システムを提供す る。 これらの文書は、 通常、 マークアップ言語により記述される。 マークァ ップ言語のシンプルかつポピュラーな例の一つに H TM L (HyperText Marku p Language) がある。 このような文書は、 ウェブの他の位置に格納されてい る他の文書へのリンクをさらに含む。 XM L (extensible Markup Language ) は、 さらに高度でポピュラーなマークアップ言語である。 ウェブ文書にァ クセスし、 閲覧するためのシンプルなブラウザが、 J a v a (登録商標) の ようなオブジェクト指向のプログラミング言語で開発されている。
[0047] マークアップ言語により記述された文書は、 通常、 ブラウザや他のアプリ ケーシヨンの中では、 ツリーデータ構造の形で表現される。 この構造は、 文 書を構文解析した結果のツリーに相当する。 DOM (Document Object Model ) は、 文書を表現し、 操作するために使用される、 よく知られたツリーべ一 スのデータ構造モデルである。 DOMは、 H TM Lや XM L文書などを含む 文書を表現するための標準的なオブジェク卜のセットを提供する。 DOMは 、 文書内のコンポーネントを表現するォブジェク卜がどのようにつながって いるかという標準モデルと、 それらのオブジェク卜にアクセスしたり操作し たりするための標準インタフェイスという、 2つの基本的なコンポーネント を含む。
[0048] アプリケーション開発者は、 独自のデータ構造や A P I (Application Pro gram Interface) へのインタフェイスとして D OMをサポートすることがで きる。 他方、 文書を作成するアプリケーション開発者は、 彼らの AP Iの独 自インタフェイスではなく、 DOMの標準インタフェイスを使用すること力《 できる。 したがって、 標準を提供するというその能力により、 DOMは、 様 々な環境、 特にウェブにおいて、 文書の相互利用を促進させるために有効で ある。 DOMのいくつかのバージョンが定義されており、 異なるプログラミ ング環境及びアプリケーションによって使用されている。
[0049] DOMツリーは、 対応する DO Mの内容に基づいた文書の階層的表現であ る。 DOMツリーは 「根 (ルート) 」 、 及びルートから発生する 1つ以上の 「節 (ノード) 」 を含む。 ルートが文書全体を表す場合もある。 中間のノー ドは、 例えば、 テーブル及びそのテーブル中の行及び列のような要素を表す ことができる。 DOMツリーの 「葉」 は、 通常、 それ以上分解できないテキ ストや画像のようなデータを表す。 DOMツリーの各ノードは、 フォント、 サイズ、 色、 インデントなど、 ノードによって表される要素のパラメータを 記述する属性に関連付けられてもよい。
[0050] HTMLは、 文書を作成するために一般に用いられる言語であるが、 フォ 一マツト及びレイァゥト用の言語であり、 データ記述のための言語ではない 。 H TM Lドキュメントを表現する DOMツリーのノードは、 HTMLのフ ォーマツティングタグとして予め定義されたエレメントであって、 通常、 H TMLは、 データの詳述や、 データのタギングノラべリングのための機能を 提供しないので、 HTMLドキュメント中のデータに対するクエリを定式化 することは多くの場合困難である。
[0051] ネットワーク設計者たちの目指すものは、 ウェブ上の文書がソフトウェア アプリケーションによってクエリされたり処理されたりできるようにするこ とである。 表示方法とは無関係で、 階層的に構造化された言語であれば、 そ のようにクエリされ処理されることができる。 XML (extensible Markup L anguage) のようなマークアップ言語は、 これらの特徴を提供することができ る。
[0052] HTMLとは逆に、 X MLのよく知られた利点は、 文書の設計者が自由に 定義可能な 「タグ」 を使用して、 データ要素にラベルを付けることが可能で ある点である。 このようなデータ要素は、 階層的に構造化することができる 。 さらに、 X ML文書は、 文書内で用いられるタグ及びそれらの相互関係の 「文法」 を記述した文書型定義を含むことができる。 構造化された XML文 書の表示方法を定義するために、 CSS (Cascading Style Sheet) 又は XS L (XML Style Language) が使用される。 DOM、 HTML, XML、 C S S、 XS L及び関連する言語の特徴に関する付加的な情報は、 ウェブからも 得ることができる。 (例えば、 http: //www. w3. org/TR/)
[0053] X p a t hは、 XM L文書の部分の位置を指定するために共通のシンタツ クス及びセマンティクスを提供する。 機能性の例として、 XML文書に対応 する DOMツリーのトラバース (移動) がある。 それは、 XML文書の様々 な表現に関連した文字列、 数、 及びブーリアン文字の操作のための基本的な 機能を提供する。 X p a t hは、 XML文書の見た目のシンタックス、 例え ば、 テキストとしてみたときに何行目であるとか何文字目であるとかといつ た文法ではなく、 DOMツリーなどの抽象的■論理的な構造において動作す る。 X p a t hを使用することにより、 例えば XM L文書の DOMツリー内 の階層的構造を通じて場所を指定することができる。 ァドレシングのための 使用の他に、 X p a t hは、 DOMツリー中のノードがパターンにマッチす るか否かをテストするために使用されるようにも設計されている。 XP a t hに関する更なる詳細は、 http:〃 www. w3. org/TR/xpathで得ることができる
[0054] XMLの既知の利点及び特徴により、 マークアップ言語 (例えば XML) で記述された文書を扱うことができ、 文書を作成及び修正するためのユーザ フレンドリーなインタフェイスを提供することができる、 効果的な文書処理 システムが求められる。
[0055] ここで説明されるシステムの構成のうちのいくつかは、 MVC (Model -Vie w- Control I er) と呼ばれる、 よ <矢卩られた GU I (Graphical User Interfac e) パラダイムを用いて説明される。 MVCパラダイムは、 アプリケーション 又はアプリケーションのインタフェイスの一部を、 3つの部分、 すなわち、 モデル、 ビュー、 コントローラに分割する。 MVCは、 元は、 GU Iの世界 に、 従来の入力、 処理、 出力の役割を割り当てるために開発された。
[入力] → [処理] → [出力]
[コントローラ] → [モデル] → [ビュー]
[0056] MVCパラダイムによれば、 外界のモデリング、 ユーザへの視覚的なフィ ードバック、 及びユーザの入力は、 モデル (M) 、 ビュー (V) 、 及びコン トローラ (C) オブジェクトにより分離されて扱われる。 コントローラは、 ユーザからのマウスとキーポード入力のような入力を解釈し、 これらのユー ザアクションを、 適切な変更をもたらすためにモデル及び 又はビューに送 られるコマンドにマップするように作用する。 モデルは、 1以上のデータ要 素を管理するように作用し、 その状態に関するクエリに応答し、 状態を変更 する指示に応答する。 ビューは、 ディスプレイの長方形の領域を管理するよ うに作用し、 グラフィクスとテキス卜の組合せによりユーザにデータを提示 する機能を有する。
[0057] B. 文書処理システムの全体構成
文書処理システムの実施例は、 図 1 1 _29に関連して明らかにされる。 [0058] 図 1 1 ( a ) は、 後述するタイプの文書処理システムの基礎として機能す る要素の従来の構成例を示す。 構成 1 0は、 通信経路 1 3によりメモリ 1 2 に接続された C P U又はマイクロプロセッサ 1 1などの形式のプロセッサを 含む。 メモリ 1 2は、 現在又は将来に利用可能な任意の R O M及び 又は R A Mの形式であってもよい。 通信経路 1 3は、 典型的にはバスとして設けら れる。 マウス、 キーボード、 音声認識システムなどのユーザ入力装置 1 4及 び表示装置 1 5 (又は他のユーザインタフェイス) に対する入出力インタフ ェイス 1 6も、 プロセッサ 1 1 とメモリ 1 2の通信のためのバスに接続され る。 この構成は、 スタンドアロンであってもよいし、 複数の端末及び 1以上 のサーバが接続されてネットワーク化された形式であってもよいし、 既知の いかなる方式により構成されてもよい。 本発明は、 これらのコンポーネント の配置、 集中又は分散されたアーキテクチャー、 あるいは様々なコンポーネ ン卜の通信方法により制限されない。
[0059] さらに、 本システム及びここで議論される実施例は、 様々な機能性を提供 するいくつかのコンポーネント及びサブコンポーネントを含むものとして議 論される。 これらのコンポーネント及びサブコンポーネントは、 注目された 機能性を提供するために、 ハードウェアとソフトウエアの組合せだけでなく 、 ハードウェアのみ、 ソフトウェアのみによっても実現されうる。 さらに、 ハードウェア、 ソフトウェア、 及びそれらの組合せは、 汎用の計算装置、 専 用のハードウェア、 又はそれらの組合せにより実現されうる。 したがって、 コンポーネント又はサブコンポーネン卜の構成は、 コンポーネント又はサブ コンポーネン卜の機能性を提供するための特定のソフトウエアを実行する汎 用 専用の計算装置を含む。
[0060] 図 1 1 ( b ) は、 文書処理システムの一例の全体のブロック図を示す。 こ のような文書処理システムにおいて文書が生成され編集される。 これらの文 書は、 例えば X M Lなど、 マークアップ言語の特徴を有する任意の言語によ り記述されてもよい。 また、 便宜上、 特定のコンポーネント及びサブコンポ 一ネントの用語及び表題を創造した。 しかしながら、 これらは、 この開示の 一般的な教示の範囲を制限するために解釈されるべきではない。
[0061 ] 文書処理システムは、 2つの基本的な構成を有するものととらえることが できる。 第 1の構成は、 文書処理システムが動作する環境である 「実行環境 」 1 0 1である。 例えば、 実行環境は、 文書の処理中及び管理中に、 ユーザ だけでなくシステムも支援する、 基本的なユーティリティ及び機能を提供す る。 第 2の構成は、 実行環境において走るアプリケーションから構成される 「アプリケーション」 1 0 2である。 これらのアプリケーションは、 文書自 身及び文書の様々な表現を含む。
[0062] 1 . 実行環境
実行環境 1 0 1のキーとなるコンポーネントは Program l nvoker (プログラ ムインボー力 : プログラム起動部) 1 0 3である。 Program l nvoker 1 0 3は 、 文書処理システムを起動するためにアクセスされる基本的なプログラムで ある。 例えば、 ユーザが文書処理システムにログオンして開始するとき、 Pro gram l nvoker 1 0 3力《実行される。 Program l nvoker 1 0 3は、 例えば、 文書処 理システムにプラグインとして加えられた機能を読み出して実行させたり、 アプリケーションを開始して実行させたり、 文書に関連するプロパティを読 み出すことができる。 Program l nvoker 1 0 3の機能はこれらに限定されない 。 ユーザが実行環境内で実行されるように意図されたアプリケーションを起 動したいとき、 Program l nvoker 1 0 3は、 そのアプリケーションを見つけ、 それを起動して、 アプリケーションを実行する。
[0063] Program l nvoker 1 0 3には、 プラグインサブシステム 1 0 4、 コマンドサ ブシステム 1 0 5、 及び Resource (リソース) モジュール 1 0 9などのいく つかのコンポーネントがアタッチされている。 これらの構成については、 以 下に詳述する。
[0064] a ) プラグインサブシステム
プラグインサブシステム 1 0 4は、 文書処理システムに機能を追加するた めの高度に柔軟で効率的な構成として使用される。 プラグインサブシステム 1 0 4は、 また、 文書処理システムに存在する機能を修正又は削除するため に使用することができる。 さらに、 種々様々の機能をプラグインサブシステ 厶を使用して追加又は修正することができる。 例えば、 画面上への文書の描 画を支援するように作用する Editlet (エディットレット :編集部) 機能を追 加することもできる。 Ed it letプラグインは、 システムに追加されるボキヤブ ラリの編集も支援する。
[0065] プラグインサブシステム 1 04は、 ServiceBroker (サービスブローカ :サ 一ビス仲介部) 1 041を含む。 ServiceBroker 1 041は、 文書処理シス亍 ムに加えられるプラグィンを管理することにより、 文書処理システムに加え られるサービスを仲介する。
[0066] 所望の機能性を実現する個々の機能は、 Service (サービス) 1 042の形 でシステムに追加される。 利用可能な Service 1 042のタイプは、 Applicat ion (アプリケーション) サービス、 ZoneFactory (ゾーンファクトリ : ゾー ン生成部) Service、 Editlet (エディツトレット :編集部) Service、 Co國 an dFactory (コマンドファクトリ : コマンド生成部) Service、 ConnectXPath ( コネクト X P a t h : X P a t h管理部) Service CSSComputat i on (CSS コンビユーテーシヨン: CSS計算部) Serviceなどを含むが、 これらに限定 されない。 これらの Service, 及びシステムの他の構成とそれらとの関係は、 文書処理システムについてのよりよい理解のために、 以下に詳述される。
[0067] プラグインと Serviceの関係は以下の通りである。 プラグインは、 1以上の ServiceProvider (サービスプロバイダ:サービス提供部) を含むことができ るュニットである。 それぞれの ServiceProviderは、 それに関連した Service の 1以上のクラスを有する。 例えば、 適切なソフトウェアアプリケーション を有する単一のプラグインを使用することにより、 1以上の Serviceをシス亍 ムに追加することができ、 これにより、 対応する機能をシステムに追加する ことができる。
[0068] b) コマンドサブシステム
コマンドサブシステム 1 05は、 文書の処理に関連したコマンドの形式の 命令を実行するために使用される。 ユーザは、 一連の命令を実行することに より、 文書に対する操作を実行することができる。 例えば、 ユーザは、 コマ ンドの形で命令を発行することにより、 文書処理システム中の XM L文書に 対応する XM Lの DOMツリーを編集し、 XML文書を処理する。 これらの コマンドは、 キーストローク、 マウスクリック、 又は他の有効なユーザイン タフェイスアクションを使用して入力されてもよい。 1つのコマンドにより 1以上の命令が実行されることもある。 この場合、 これらの命令が 1つのコ マンドにラップ (包含) され、 連続して実行される。 例えば、 ユーザが、 誤 つた単語を正しい単語に置換したいとする。 この場合、 第 1の命令は、 文書 中の誤った単語を発見することであり、 第 2の命令は、 誤った単語を削除す ることであり、 第 3の命令は、 正しい単語を挿入することであってもよい。 これらの 3つの命令が 1つのコマンドにラップされてもよい。
[0069] コマンドは、 関連した機能、 例えば、 後で詳述する 「アンドゥ」 機能を有 してもよい。 これらの機能は、 オブジェクトを生成するために使用されるい くつかの基本クラスにも割り当てられてもよい。
[0070] コマンドサブシステム 1 05のキーとなるコンポーネントは、 選択的にコ マンドを与え、 実行するように作用する Co國 andlnvoker (コマンドインボー 力 : コマンド起動部) 1 05 1である。 図 1 1 (b) には、 1つの Command In vokerのみが示されているが、 1以上の Co國 andlnvokerが使用されてもよく、 1以上のコマンドが同時に実行されてもよい。 Co國 andlnvoker 1 05 1は、 コマンドを実行するために必要な機能及びクラスを保持する。 動作において 、 実行されるべき Co國 and (コマンド:命令) 1 052は、 Queue (キュー) 1 053に積まれる。 Go國 andlnvokerは、 連続的に実行するコマンドスレツ ドを生成する。 Gommandlnvoker内で既に実行中の Command力《なければ、 Comman dlnvoker 1 051により実行されるように意図された Co國 and 1 052が実行 される。 Commandlnvokerが既にコマンドを実行している場合、 新しい Command は、 Queuel 053の最後に積まれる。 しかしながら、 それぞれの Go國 and Inv oker 1 05 1では、 一度に 1つの Commandのみが実行される。 指定された Gomm andの実行に失敗した場合、 Go國 andlnvoker 1 05 1は例外処理を実行する。 [0071] CommandlnvokeM 05 1により実行される Commandの型は、 Undoab I eComman d (取消可能コマンド) 1 054、 AsynchronousCommand (非同期コマンド) 1 055、 及び VCCo國 and (VCコマンド) 1 056を含むが、 これらに限定 されない。 UndoableCo國 and 1 054は、 ユーザが望めば、 その Commandの結 果を取り消すことが可能な Commandである。 UndoableCo國 andの例として、 切 り取り、 コピー、 テキストの挿入、 などがある。 動作において、 ユーザが文 書の一部を選択し、 その部分に切り取りコマンドを適用するとき、 UndoableC 0國 andを用いることにより、 切り取られた部分は、 必要であれば、 「切り取 られていない」 ようにすることができる。
[0072] VCCommand 1 056は、 ボキヤブラリコネクション記述子 (Vocabulary Con nection Descriptor : V C D) スクリプトファイルに格納される。 これらは 、 プログラマにより定義されうるユーザ指定の Commandである。 Commandは、 例えば、 XM Lフラグメントを追加したり、 XM Lフラグメントを削除した り、 属性を設定したりするための、 より抽象的な Co國 andの組合せであっても よい。 これらの Co國 andは、 特に、 文書の編集に焦点を合わせている。
[0073] AsynchronousCo國 and 1 055は、 文書のロードゃ保存など、 システムより の Co國 andであり、 UndoableCo國 andや VCCo國 andとは別に、 非同期的に実行さ れる。 AsynchronousCommandは、 Undoab leCommandではなしゝので、 取り消すこ とはできない。
[0074] c) リソース
Resource 1 09は、 様々なクラスに、 いくつかの機能を提供するオブジェ クトである。 例えば、 ストリングリソース、 アイコン、 及びデフォルトキー バインドは、 システムで使用される Resourceの例である。
[0075] 2. アプリケーションコンポーネント
文書処理システムの第 2の主要な特徴であるアプリケーションコンポーネ ント 1 02は、 実行環境 1 01において実行される。 アプリケーションコン ポーネント 1 02は、 実際の文書と、 システム内における文書の様々な論理 的、 物理的な表現を含む。 さらに、 アプリケーションコンポーネント 1 02 は、 文書を管理するために使用されるシステムの構成を含む。 アプリケーシ ヨンコンポーネント 1 02は、 さらに、 UserAppl ication (ユーザアプリケー シヨン) 1 06、 アプリケーションコア 1 08、 ユーザインタフェイス 1 0 7、 及び CoreComponent (コアコンポーネント) 1 1 0を含む。
[0076] a) ユーザアプリケーション
UserAppl ication 1 06は、 Program Invoker 1 03と共にシステム上にロー ドされる。 UserAppl ication 1 06は、 文書と、 文書の様々な表現と、 文書と 対話するために必要なユーザィンタフェイスとをつなぐ接着剤となる。 例え ば、 ユーザが、 プロジェクトの一部である文書のセットを生成したいとする 。 これらの文書がロードされると、 文書の適切な表現が生成される。 ユーザ インタフヱイス機能は、 UserAppl ication 1 06の一部として追加される。 言 いかえれば、 UserAppl ication 1 06は、 ユーザがプロジェク卜の一部を形成 する文書と対話することを可能とする文書の表現と、 文書の様々な態様とを 、 共に保持する。 一旦 UserAppl ication 1 06が生成されると、 ユーザがプロ ジェク卜の一部を形成する文書との対話を望むたびに、 ユーザは簡単に実行 環境上に UserAppl ication 1 06をロードすることができる。
[0077] b) コアコンポーネント
CoreComponent 1 1 0は、 複数の Pane (ペイン) の間で文書を共有する方法 を提供する。 後で詳述するように、 Paneは、 DOMツリーを表示し、 画面の 物理的なレイアウトを扱う。 例えば、 物理的な画面は、 個々の情報の断片を 描写する画面内の複数の Paneからなる。 ユーザから画面上に見える文書は、
1又はそれ以上の Paneに出現しうる。 また、 2つの異なる文書が画面上で 2 つの異なる Paneに現れてもよい。
[0078] 図 1 1 (c) に示されるように、 画面の物理的なレイアウトもツリーの形 式になっている。 Paneは、 RootPane (ルートペイン) 1 084にもなり得る し、 SubPane (サブペイン) 1 085にもなり得る。 RootPane 1 084は、 Pa neのツリーの根に当たる Paneであり、 SubPane 1 085は、 RootPane 1 084 以外の任意の Paneである。 [0079] CoreComponent 1 1 0は、 さらに、 フォントを提供し、 ツールキットなど、 文書のための複数の機能的な操作のソースの役割を果たす。 CoreComponent 1 1 0により実行されるタスクの一例に、 複数の Pane間におけるマウスカーソ ルの移動がある。 実行されるタスクの他の例として、 ある Pane中の文書の一 部をマークし、 それを異なる文書を含む別の Pane上にコピーする。
[0080] c ) アプリケーションコア
上述したように、 アプリケーションコンポーネント 1 0 2は、 システムに より処理され管理される文書から構成される。 これは、 システム内における 文書の様々な論理的及び物理的な表現を含む。 アプリケーションコア 1 0 8 は、 アプリケーションコンポーネント 1 0 2の構成である。 その機能は、 実 際の文書を、 それに含まれる全てのデータとともに保持することである。 ァ プリケーシヨンコア 1 0 8は、 DocumentManager (ドキュメントマネージャ : 文書管理部) 1 0 8 1及び Document (ドキュメント :文書) 1 0 8 2自身を 含む。
[0081 ] DocumentManager 1 0 8 1の様々な態様を以下に詳述する。 DocumentManage r 1 0 8 1は、 Document 1 0 8 2を管理する。 DocumentManager 1 0 8 1は、 R ootPane 1 0 8 4、 SubPane 1 0 8 5、 C I i pBoard (クリップボード) ユーティ リティ 1 0 8 7、 及び Snapshot (スナップショット) ユーティリティ 1 0 8 8にも接続される。 C I i pBoardユーティリティ 1 0 8 7は、 ユーザがクリップ ポードに加えることを決定した文書の部分を保持する方法を提供する。 例え ば、 ユーザが、 文書の一部を切り取り、 後で再考するために新規文書にそれ を保存することを望んだとする。 このような場合、 切り取られた部分が C l i pB oardに追加される。
[0082] つづいて、 Snapshotユーティリティ 1 0 8 8についても説明する。 SnapSho tユーティリティ 1 0 8 8は、 アプリケーションがある状態から別の状態まで 移行するときに、 アプリケーションの現在の状態を記憶することを可能とす る。
[0083] d ) ユーザインタフェイス アプリケーションコンポーネント 1 0 2の別の構成は、 ユーザがシステム と物理的に対話する手段を提供するユーザインタフェイス 1 0 7である。 例 えば、 ユーザインタフェイスは、 ユーザが文書をアップロードしたり、 削除 したり、 編集したり、 管理したりするために使用される。 ユーザインタフエ イスは、 Frame (フレーム) 1 0 7 1、 MenuBar (メニューバー) 1 0 7 2、 S tatusBar (ステータスバー) 1 0 7 3、 及び URLBar ( U R Lバー) 1 0 7 4 を含む。
[0084] Frame 1 0 7 1は、 一般に知られているように、 物理的な画面のアクティブ な領域であるとみなされる。 MenuBar l 0 7 2は、 ユーザに選択を提供するメ ニューを含む画面領域である。 StatusBar l 0 7 3は、 アプリケーションの実 行状態を表示する画面領域である。 URLBar l 0 7 4は、 インターネットをナ ビゲー卜するために U R Lァドレスを入力する領域を提供する。
[0085] C . 文書管理及び関連するデータ構造
図 1 2は、 DocumentManager 1 0 8 1の詳細を示す。 これは、 文書処理シス テム内で文書を表現するために用いられるデータ構造及び構成を含む。 分か りやすくするために、 このサブセクションで説明される構成は、 M V Cパラ ダイ厶を用いて説明される。
[0086] DocumentManager 1 0 8 1は、 文書処理システム内にある全ての文書を保持 しホストする DoGumentConta i ner (ドキュメントコンテナ:文書コンテナ) 2 0 3を含む。 DocumentManager 1 0 8 1にァタツチされたツールキット 2 0 1 は、 DocumentManager 1 0 8 1により使用される様々なツールを提供する。 例 えば、 DomServ i ce ( D O Mサービス) は、 文書に対応する D O Mを生成し、 保持し、 管理するために必要とされる全ての機能を提供するために、 ツール キット 2 0 1により提供されるツールである。 ツールキット 2 0 1によリ提 供される別のツールである l OManager (入出力管理部) は、 システムへの入力 及びシステムからの出力を管理する。 同様に、 StreamHand l er (ストリームハ ンドラ) は、 ビットストリームによる文書のアップロードを扱うツールであ る。 これらのツールは、 図中に特に示さず、 参照番号を割り当てないが、 ッ 一ルキット 201のコンポーネントを形成する。
[0087] MVCパラダイムの表現によれば、 モデル (M) は、 文書の DOMツリー モデル 202を含む。 前述したように、 全ての文書は、 文書処理システムに おいて DOMツリーとして表現される。 文書は、 また、 DocumentContainer 2 03の一部を形成する。
[0088] 1. DOMモデル及びゾーン
文書を表現する DOMツリーは、 Node (ノード) 2021を有するツリー である。 DOMツリーの部分集合である Zone (ゾーン) 209は、 DOMッ リー内の 1以上の Nodeの関連領域を含む。 例えば、 画面上で文書の一部のみ を表示し得るが、 この可視化された文書の一部は Zone209を用いて表示さ れる。 Zoneは、 ZoneFactory (ゾーンファクトリ : ゾーン生成部) 205と呼 ばれるプラグインを用いて、 生成され、 取り扱われ、 処理される。 Zoneは D OMの一部を表現するが、 1以上の 「名前空間」 を使用してもよい。 よく知 られているように、 名前空間は、 名前空間内でユニークな名前の集合である 。 換言すれば、 名前空間内に同じ名前は存在しない。
[0089] 2. Facet及び Facetと Zoneとの関係
Facet (ファセット) 2022は、 MVCパラダイムのモデル (M) 部分内 の別の構成である。 Facetは、 Zoneにおいて Nodeを編集するために使用される 。 Facet2022は、 Zone自身の内容に影響を与えずに実行することができる 手続 (プロシージャ) を使用して、 DOMへのアクセスを編成する。 次に説 明するように、 これらの手続は、 Nodeに関連した重要で有用な操作を実行す る。
[0090] 各 Nodeは、 対応する Facetを有する。 D OMの中の Nodeを直接操作する代わ りに、 操作を実行するために Facetを使用することによって、 DOMの保全性 は保護される。 操作が Node上で直接実行される場合、 いくつかのプラグイン が DOMを同時に変更することができ、 その結果矛盾を引き起こす。
[0091] W3 Cが策定した DOMの標準規格は、 Nodeを操作するための標準的なィ ンタフェイスを定義するが、 実際には、 ボキヤブラリごと又は Nodeごとに特 有の操作があるので、 これらの操作を AP I として用意しておくのが好都合 である。 文書処理システムでは、 このような各 Nodeに特有の A P Iを Facetと して用意し、 各 Nodeにアタッチする。 これにより、 DOMの標準規格に準拠 しつつ、 有用な AP Iを付加することができる。 また、 ボキヤブラリごとに 特有の DOMを実装するのではなく、 標準的な DOMの実装に、 後から特有 の AP Iを付加するようにすることで、 多様なボキヤブラリを統一的に処理 することができるともに、 複数のボキャプラリが任意の組合せで混在した文 書を適切に処理することができる。
[0092] ボキヤブラリは、 名前空間に属するタグ (例えば XMLのタグ) のセット である。 上述したように、 名前空間は、 ユニークな名前 (ここではタグ) の セットを有する。 ボキヤブラリは、 XM L文書を表現する DOMツリーのサ ブツリーとして現れる。 このサブツリーは Zoneを含む。 特定の例においては 、 タグセットの境界は Zoneによって定義される。 Zone209は、 ZoneFactory 205と呼ばれる Serviceを利用して生成される。 上述したように、 Zone 20 9は、 文書を表現する DOMツリーの一部の内部表現である。 このような文 書の一部へのアクセスを提供するために、 論理的な表現が要求される。 この 論理的表現は、 文書が画面上で論理的にどのように表現されるかについてコ ンピュータに通知する。 Canvas (キャンバス) 21 0は、 Zoneに対応する論 理的なレイァゥトを提供するように作用する Serviceである。
[0093] 他方、 Pane 21 1は、 Canvas 21 0により提供される論理的なレイァゥト に対応する物理的な画面レイアウトである。 実際、 ユーザは表示画面上で文 字や画像によって文書のレンダリングのみを見る。 したがって、 文書は、 画 面上に文字や画像を描画するプロセスにより、 画面上に描写されなければな らない。 文書は、 Pane21 1により提供される物理的なレイアウトに基づい て、 Canvas 21 0により画面上に描写される。
[0094] Zone209に対応する Ganvas21 0は、 Editlet 206を使用して生成され る。 文書の DOMは、 Editlet 206及び Canvas 21 0を使用して編集される 。 元の文書の完全性を維持するために、 Editlet 206及び Canvas 21 0は、 Zone 2 0 9における 1以上の Nodeに対応する Facetを使用する。 これらの Serv i ceは、 Zone及び D O M内の Nodeを直接操作しない。 Facetは、 Command 2 0 7 を利用して操作される。
[0095] ユーザは、 一般に、 画面上のカーソルを移動させたり、 コマンドをタイプ したりすることによって、 画面と対話する。 画面上の論理的なレイアウトを 提供する Canvas 2 1 0は、 このカーソル操作を受け付ける。 Canvas 2 1 0は 、 対応するアクションを Facetに実行させることができる。 この関係により、 カーソルサブシステム 2 0 4は、 DocumentManager 1 0 8 1に対して、 M V C パラダイムのコントローラ (C ) として機能する。 Canvas 2 1 0は、 ィベン トを扱うタスクも有する。 例えば、 Canvas 2 1 0は、 マウスクリック、 フォ 一カス移動、 及びユーザにより起こされた同様のアクションなどのィベント を扱う。
[0096] 3 . Zone, Facet, Canvas及び Paneの間の関係の概要
文書処理システム内の文書は、 少なくとも 4つの観点から見ることができ る。 すなわち、 1 ) 文書処理システムにおいて文書の内容及び構造を保持す るために用いられるデータ構造、 2 ) 文書の保全性に影響を与えずに文書の 内容を編集する手段、 3 ) 文書の画面上の論理的なレイアウト、 4 ) 文書の 画面上の物理的なレイアウト、 である。 Zone、 Facet, Canvas及び Paneは、 前 述の 4つの観点に相当する、 文書処理システムのコンポーネントをそれぞれ 表す。
[0097] 4 . アンドゥサブシステム
上述したように、 文書に対するいかなる変更 (例えば編集) も取消可能で あることが望ましい。 例えば、 ユーザが編集操作を実行し、 次に、 その変更 の取消を決定したとする。 図 1 2に関連して、 アンドゥサブシステム 2 1 2 は、 文書管理部の取消可能なコンポーネントを実現する。 UndoManager (アン ドウマネージャ :アンドゥ管理部) 2 1 2 1は、 ユーザによって取り消され る可能性のある全ての文書に対する操作を保持する。
[0098] 例えば、 ユーザが、 文書中の単語を別の単語に置換するコマンドを実行し たとする。 その後、 ユーザは考え直し、 元の単語に戻すことを決定したとす る。 アンドゥサブシステム 21 2は、 このような操作を支援する。 UndoManag er 21 21は、 このような UndoableEd it (アンドゥアプルエディツト :取消 可能な編集) 21 22の操作を保持する。
[0099] 5. カーソルサブシステム
前述したように、 MVCのコントローラ部分は、 カーソルサブシステム 2 04を備えてもよい。 カーソルサブシステム 204は、 ユーザから入力を受 け付ける。 これらの入力は、 一般にコマンド及び 又は編集操作の性格を有 している。 したがって、 カーソルサブシステム 204は、 DocumentManager 1 081に関連した MVCパラダイムのコントローラ (C) 部分であると考え ることができる。
[0100] 6. ビュー
前述したように、 Canvas 21 0は、 画面上に提示されるべき文書の論理的 なレイアウトを表す。 XHTML文書の例では、 Canvas21 0は、 文書が画 面上でいかに見えるかを論理的に表現したボックスツリー 208を含んでも よい。 このボックスツリー 208は、 DocumentManager 1 081に関連した M VCパラダイムのビュー (V) 部分に含まれよう。
[0101] D. ポキヤブラリコネクション
文書処理システムの重要な特徴は、 X ML文書を、 他の表現にマップして 取り扱うことが可能で、 かつ、 マップした先の表現を編集すると、 その編集 が元の X ML文書に整合性を保ちつつ反映される環境を提供することにある
[0102] マークアップ言語により記述された文書、 例えば XML文書は、 文書型定 義により定義されたボキヤブラリに基づいて作成されている。 ボキヤブラリ は、 タグのセットである。 ボキヤブラリは、 任意に定義されてもよいため、 無限に多くのボキヤブラリが存在しうる。 しかしながら、 多数の可能なボキ ャブラリのそれぞれに対して専用の処理 管理環境を提供するのは現実的で はない。 ボキヤブラリコネクションは、 この問題を解決する方法を提供する [0103] 例えば、 文書は 2以上のマークアップ言語により記述されてもよい。 文書 は、 例えば、 X H TM L (extensible HyperText Markup Language) 、 S V G (Scalable Vector Graphics) 、 Ma t h M L (Mathematical Markup Lan guage) 、 その他のマークアップ言語により記述されてもよい。 換言すれば、 マークアップ言語は、 XM Lにおけるボキヤブラリゃタグセッ卜と同様に見 なされてもよい。
[0104] ボキヤブラリは、 ボキヤブラリブラグィンを用いて処理される。 文書処理 システムにおいてプラグインが利用不可能であるボキヤブラリにより記述さ れた文書は、 プラグィンが利用可能である別のボキャプラリの文書にマツピ ングすることにより表示される。 この特徴により、 プラグインが用意されて いないボキヤブラリの文書も適切に表示することができる。
[0105] ポキヤブラリコネクションは、 定義ファイルを取得し、 取得した定義ファ ィルに基づいて 2つの異なるポキャプラリの間でマッビングする能力を含む 。 あるポキヤブラリで記述された文書は、 別のポキヤブラリにマッピングす ることができる。 このように、 ポキヤブラリコネクションは、 文書がマツピ ングされるポキヤブラリに対応した表示 編集プラグインにより文書を表示 し編集することを可能にする。
[0106] 上述したように、 各文書は、 一般に複数のノードを有する DOMツリーと して文書処理システムにおいて記述される。 「定義ファイル」 は、 それぞれ のノードについて、 そのノードと他のノードとの対応を記述する。 各ノード の要素値及び属性値が編集可能か否かが指定される。 ノードの要素値又は属 性値を用いた演算式が記述されてもよい。
[0107] マッピングという特徴を利用して、 定義ファイルを適用したデスティネー シヨン DOMツリーが生成される。 このように、 ソース DOMツリーとデス ティネーシヨン D O Mッリ一の関係が構築され保持される。 ボキヤブラリコ ネクションは、 ソース DOMツリーとデスティネーション DOMツリーの対 応を監視する。 ユーザから編集指示を受けると、 ボキヤブラリコネクション は、 ソース DOMツリーの関連したノードを変更する。 ソース DOMツリー が変更されたことを示す 「ミューテーシヨンイベント」 が発行され、 デステ イネーシヨン D OMッリ一がそれに応じて変更される。
[0108] ボキヤブラリコネクションの使用により、 少数のユーザのみに知られてい た比較的マイナーなボキャプラリを、 別のメジャーなボキャプラリに変換す ることができる。 したがって、 少数のユーザによって利用されるマイナーな ボキヤブラリであっても、 文書を適切に表示し、 望ましい編集環境を提供す ることができる。
[0109] このように、 文書処理システムの一部であるボキヤブラリコネクションサ ブシステムは、 文書の複数の表現を可能にする機能を提供する。
[0110] 図 1 3は、 ボキヤブラリコネクション (VC : Vocabulary Connection) サ ブシステム 300を示す。 V Cサブシステム 300は、 同一の文書の 2つの 代替表現の整合性を維持する方法を提供する。 例えば、 2つの表現は、 同一 文書の、 2つの異なるポキヤブラリによる表現であってもよい。 前述したよ うに、 一方はソース DOMツリーであってもよく、 他方はデスティネーショ ン D O Mッリ一であってもよい。
[0111] 1. ポキヤブラリコネクションサブシステム
ポキャプラリコネクションサブシステム 300の機能は、 VocabularyConne ction301 と呼ばれるプラグインを使用して、 文書処理システムにおいて実 現される。 文書が表現される Vocabulary305ごとに、 対応するプラグイン が要求される。 例えば、 文書の一部が HTMLで記述され、 残りが SVGで 記述されている場合、 H TMLと S VGに対応するボキヤブラリプラグイン が要求される。
[0112] 008131||3 001111601^011プラグィン301は、 適切な Vocabulary 305の文 書に対応した、 Zone209又は Pane21 1のための適切な VGGanvas (ボキヤ ブラリコネクションキャンバス) 31 0を生成する。 VocabularyConnection 301を用いて、 ソース DOMツリー内の Zone209に対する変更は、 変換 ルールにより、 別の DOMツリー 306の対応する Zoneに伝達される。 変換 ルールは、 ポキヤブラリコネクション記述子 (Vocabulary Connection Descr iptor: V C D) の形式で記述される。 このようなソース DOMとデスティネ ーシヨン DOMの間の変換に対応するそれぞれの VC Dファイルについて、 対応する VCManager (ボキヤブラリコネクションマネージャ) 302が生成さ れる。
[0113] 2. Connector
Connector 304は、 ソース DOMツリーのソースノードと、 デスティネー ション DOMツリーのデスティネーションノードとを接続する。 Connector 3 04は、 ソース DOMツリー中のソースノード、 及びソースノードに対応す るソース文書に対する修正 (変更) を見るために作用する。 そして、 対応す るデスティネーション DOMツリーのノードを修正する。 Gonnector304は 、 デスティネーション DOMツリーを修正することができる唯一のオブジェ クトである。 例えば、 ユーザは、 ソース文書、 及び対応するソース DOMッ リーに対してのみ修正を行うことができる。 その後、 Connector 304がデス ティネーシヨン DOMツリーに、 対応する修正を行う。
[0114] Connector 304は、 ツリー構造を形成するために、 論理的にリンクされる 。 Connector 304により形成されたツリーは、 ConnectorTree (コネクタッ リー) と呼ばれる。 Connector 304は、 ConnectorFactory (コネクタファク トリ : コネクタ生成部) 303と呼ばれる Serviceを用いて生成される。 Conn ectorFactory 303は、 ソース文書から Connector 304を生成し、 それらを リンクして ConnectorTreeを形成する。 Vocabu I aryConnect ionManager 302 は、 Connector Factory 303を保持する。
[0115] 前述したように、 ボキヤブラリは名前空間におけるタグのセットである。
図示されるように、 Vocabulary 305は、 Vocabu I aryConnect i on301によ つて文書に対して生成される。 これは、 文書ファイルを解析し、 ソース DO Mとデスティネーシヨン D O Mの間の写像のための適切な Vocabu I aryConnect ionManager 302を生成することにより行われる。 さらに、 Connectorを生成 する ConnectorFactory 303と、 Zone 209を生成する ZoneFactorv 205と 、 Zone内のノードに対応する Canvasを生成する Ed it let 206との間の適切な 関係が作られる。 ユーザがシステムから文書を処分又は削除するとき、 対応 する VocabularyConnectionManager 302が肖 ij除される。
[0116] Vocabulary305は、 VCCanvas3 1 0を生成する。 さらに、 Connector 30 4及びデスティネーション DOMツリー 306が対応して生成される。
[0117] ソース DO M及び Canvasは、 それぞれ、 モデル (M) 及びビュー (V) に 対応する。 しかしながら、 このような表現は、 ターゲットのボキヤブラリが 画面上に描写可能である場合に限って意味がある。 描写は、 ボキヤブラリブ ラグインにより行われる。 ボキヤブラリブラグィンは、 主要なボキヤブラリ 、 例えば、 X H TM L、 SVG, Ma t h M Lについて提供される。 ボキヤ ブラリブラグィンは、 ターゲットのボキヤブラリに関連して使用される。 こ れらは、 ボキヤブラリコネクション記述子を用いてボキヤブラリ間でマッピ ングする方法を提供する。
[0118] このようなマッピングは、 ターゲットのポキヤブラリカ マッピング可能 で、 画面上に描写される方法が予め定義されたものである場合にのみ意味が ある。 このようなレンダリング方法は、 例えば X H TM Lなどのように、 W 3 Cなどの組織により定義された標準規格となっている。
[0119] ポキヤブラリコネクションが必要であるとき、 VCCanvasが使用される。 こ の場合、 ソースのビューを直接生成することができないので、 ソースの Canva sは生成されない。 この場合、 VCCanvasが、 ConnectorTreeを使用して生成さ れる。 この VCCanvasは、 イベントの変換のみを扱い、 画面上の文書の描写を 援助しない。
[0120] 3. DestinationZone、 Pane, 及び Canvas
上述したように、 ボキヤブラリコネクションサブシステムの目的は、 同一 の文書の 2つの表現を同時に生成し保持することである。 第 2の表現も、 D OMツリーの形式であり、 これはデスティネーション DOMツリーとして既 に説明した。 第 2の表現における文書を見るために、 DestinationZone、 Canv as及び Paneが必要である。 [0121] VCCanvasが作成されると、 対応する DestinationPane307が生成される。 さらに、 関連する065 1131^011031^35308と、 対応する BoxTr ee 309が生 成される。 同様に、 VCCanvas3 1 0も、 ソース文書に対する Pane 2 1 1及び Z one 209に関連づけられる。
[0122] DestinationGanvas308は、 第 2の表現における文書の論理的なレイァゥ トを提供する。 特に、 DestinationGanvas308は、 デスティネーション表現 における文書を描写するために、 カーソルや選択のようなユーザインタフエ イス機能を提供する。 DestinationCanvas308に生じたイベントは、 Connec torに供給される。 DestinationCanvas308は、 マウスイベント、 キーボー ドイベント、 ドラッグァンドドロップイベント、 及び文書のデスティネーシ ヨン (第 2) 表現のボキヤブラリに特有なイベントを、 Connector 304に通 知する。
[0123] 4. ポキヤブラリコネクションコマンドサブシステム
ポキヤブラリコネクション (VC) サブシステム 300の要素として、 ポ キヤブラリコネクション (VC) コマンドサブシステム 3 1 3がある。 ポキ ャブラリコネクションコマンドサブシステム 3 1 3は、 ポキヤブラリコネク シヨンサブシステム 300に関連した命令の実行のために使用される VCCo國 a nd (ポキヤブラリコネクションコマンド) 3 1 5を生成する。 VCCo國 andは、 内蔵の Co國 andTemplate (コマンドテンプレート) 3 1 8を使用して、 及び 又は、 スクリプトサブシステム 3 1 4においてスクリプト言語を使用してス クラッチからコマンドを生成することにより、 生成することができる。
[0124] コマンドテンプレートには、 例えば、 「lf」 コマンドテンプレート、 「Whe n」 コマンドテンプレート、 「挿入 (Insert) 」 コマンドテンプレートなどが ある。 これらのテンプレートは、 VGGo國 andを作成するために使用される。
[0125] 5. XP a t hサブシステム
X P a t hサブシステム 3 1 6は、 文書処理システムの重要な構成であり 、 ボキヤブラリコネクションの実現を支援する。 Connector 304は、 一般に xpath情報を含む。 上述したように、 ボキヤブラリコネクションのタスクの 1 つは、 ソース DOMツリーの変化をデスティネーション DOMツリーに反映 させることである。 xpath情報は、 変更 修正を監視されるべきソース DOM ツリーのサブセットを決定するために用いられる 1以上の xpath表現を含む。
[0126] 6. ソース DOMツリー、 デスティネーション DOMツリー、 及び Connect orTreeの概要
ソース DOMツリーは、 別のボキャプラリに変換される前のボキャプラリ で文書を表現した D O Mッリ一又は Zoneである。 ソース D O Mッリ一のノ一 ドは、 ソースノードと呼ばれる。
[0127] それに対して、 デスティネーション DOMツリーは、 ボキヤブラリコネク シヨンに関連して前述したように、 同一の文書を、 マッピングにより変換さ れた後の異なるボキャブラリで表現した D O Mッリ一又は Zoneである。 デス ティネーシヨン DOMツリーのノードは、 デスティネーションノードと呼ば れる。
[0128] ConnectorTreeは、 ソースノードとデスティネーションノードの対応を表す Connectorに基づく階層的表現である。 Connectorは、 ソースノードと、 ソー ス文書になされた修正を監視し、 デスティネーション DOMツリーを修正す る。 Connectorは、 デスティネーション D OMツリーを修正することを許され た唯一のオブジェクトである。
[0129] E. 文書処理システムにおけるイベントフロー
実用のためには、 プログラムはユーザからのコマンドに応答しなければな らない。 イベントは、 プログラム上で実行されたユーザアクションを記述し 実行する方法である。 多くの高級言語、 例えば J a v a (登録商標) は、 ュ 一ザアクションを記述するイベントに頼っている。 従来、 プログラムは、 ュ 一ザアクションを理解し、 それを自身で実行するために、 積極的に情報を集 める必要があった。 これは、 例えば、 プログラムが自身を初期化した後、 ュ 一ザが画面、 キーボード、 マウスなどでアクションを起こしたときに適切な 処理を講じるために、 ユーザのアクションを繰り返し確認するループに入る ことを意味する。 しかしながら、 このプロセスは扱いにくい。 さらに、 それ は、 ユーザが何かをするのを待つ間、 C P Uサイクルを消費してループする プログラムを必要とする。
[0130] 多くの言語が、 異なるパラダイムを採用することにより、 これらの問題を 解決している。 そのうちの一つは、 現代の全てのウィンドウシステムの基礎 となっている、 イベントドリブンプログラミングである。 このパラダイムで は、 全てのユーザアクションは、 「イベント」 と呼ばれる抽象的な事象の集 合に属する。 イベントは、 十分詳細に、 特定のユーザアクションを記述する 。 プログラムがユーザにより生成されたィベントを積極的に収集するのでは なく、 監視すべきイベントが生じたときに、 システムがプログラムに通知す る。 この方法によリューザとの対話を扱うプログラムは 「イベントドリブン 」 であると言われる。
[0131 ] これは、 多くの場合、 全てのユーザにより生成されたイベントの基本特性 を獲得する 「Event (イベント) 」 クラスを使用して扱われる。
[0132] 文書処理システムは、 自身のイベント、 及びこれらのイベントを扱う方法 を定義して使用する。 いくつかの型のイベントが使用される。 例えば、 マウ スイベントは、 ユーザのマウスアクションから起こるイベントである。 マウ スを含むユーザアクションは、 Canvas 2 1 0によって、 マウスイベントに渡 される。 このように、 Canvasは、 システムのユーザによる相互作用の最前部 にあると言える。 必要であれば、 最前部にある Canvasは、 そのイベントに関 連した内容を子へ渡す。
[0133] それに対して、 キーストロークイベントは、 Canvas 2 1 0から流れる。 キ 一ストロークイベントは、 即時的なフォーカスを有する。 すなわち、 それは 、 いかなる瞬間でも作業に関連する。 Canvas 2 1 0上に入力されたキースト ロークイベントは、 その親に渡される。 キー入力は、 文字列挿入を扱うこと が可能な、 異なるイベントによって処理される。 文字列の挿入を扱うィベン トは、 キーボードを使用して文字が挿入されたときに発生する。 他の 「ィべ ント」 は、 例えば、 ドラッグイベント、 ドロップイベント、 マウスイベント と同様に扱われる他のィベントを含む。 [0134] 1. ポキヤブラリコネクション外のイベントの取り扱い
イベントは、 イベントスレッドを用いて渡される。 Canvas2 1 0は、 ィべ ントを受け取ると、 その状態を変更する。 必要であれば、 Co國 and 1 052が Canvas 2 1 0により GommandQueue 1 053にポストされる。
[0135] 2. ボキヤブラリコネクション内のイベントの取り扱い
VocabularyGonnectionプラワイン 30 1を用しゝて、 Dest i nat i onCanvasi — 例である XHTMLCanvasl 1 06は、 発生したイベント、 例えば、 マウスィベン ト、 キーボードイベント、 ドラッグアンドドロップイベント、 及びボキヤブ ラリに特有のイベントなどを受け取る。 これらのイベントは、 コネクタ 30 4に通知される。 より詳細には、 図 2 1 (b) に図示されるように、 Vocabul aryGonnectionプラグイン 30 1内のィべン卜フローは、 SourcePane 1 1 03 、 VCCanvas 1 1 04、 Dest i nat ionPane 1 1 05、 DestinationGanvasの一例 である Dest i nat ionCanvas 1 1 06、 デスティネーション D OMツリー及び Co nnector丁 ree¾r通過する o
[0136] F. Programlnvoker及び Programlnvokerと他の構成との関係
Programlnvoker 1 03及びそれと他の構成との関係は、 図 1 4 (a) に更 に詳細に示される。 Programlnvoker 1 03は、 文書処理システムを開始する ために実行される実行環境中の基本的なプログラムである。 図 1 1 (b) に 図示されるように、 UserAppl i cat ion 1 06、 ServiceBroker 1 04 1、 Comma ndlnvoker 1 05 1、 及び Resource 1 09は、 全て Programlnvoker 1 03に f妾 続される。 前述したように、 アプリケーション 1 02は、 実行環境中で実行 されるコンポーネントである。 同様に、 ServiceBroker 1 04 1は、 システム に様々な機能を加えるプラグインを管理する。 他方、 Co國 andlnvoker 1 05 1は、 ユーザにより提供される命令を実行して、 コマンドを実行するために 使用されるクラス及びファンクションを保持する。
[0137] 1. プラグイン及びサービス
ServiceBroker 1 04 1について、 図 1 4 (b) を参照して更に詳細に説明 する。 前述したように、 ServiceBroker 1 04 1は、 システムに様々な機能を 追加するプラグイン (及び関連するサービス) を管理する。 Service 1 042 は、 文書処理システムに特徴を追加又は変更可能な最も下の層である。 「Ser vicej は、 $61^10603 6§0「 401 と$61^106卩「0 1€|6「402の2っの咅|5分カヽ らなる。 図 1 4 (c) に図示されるように、 1っの561^10603 680 401は 、 複数の関連する ServiceProvider402を持ちうる。 それぞれの ServicePro viderは、 特定の ServiceCategoryの一部または全部を実行するように作用す る。 ServiceGategory401は、 他方では、 Serviceの型を定義する。
[0138] Serviceは、 1 ) 文書処理システムに特定の特色を提供する 「特色サービス 」 、 2) 文書処理システムにより実行されるアプリケーションである 「アブ リケーシヨンサービス」 、 3) 文書処理システムの全体にわたって必要な特 色を提供する 「環境サービス」 、 の 3つの型に分類することができる。
[0139] Serviceの例は、 図 1 4 (d) に示される。 アプリケーション Serviceの Cat egoryにおいては、 システムユーティリティが対応する ServiceProviderの例 である。 同様に、 Editlet206は Categoryであり、 HTMLEditlet及び SVGEdit letは対応する ServiceProviderである 0 ZoneFactory 205は、 Serviceの另 ij の Categoryであり、 対応する ServiceProvider (図示せず) を有する。
[0140] プラグインは、 文書処理システムに機能性を加えると既に説明したが、 い くつかの ServiceProvider 402及びそれらに関連するクラスからなるュニッ 卜と見なされてもよい。 各プラグインは、 宣言ファイルに記述された依存性 及び ServiceCategory401を有する。
[0141] 2. Programlnvokerとアプリケーションとの関係
図 1 4 ( e ) は、 Programlnvoker 1 03と UserAppl ication 1 06との関係 についての更なる詳細を示す。 必要な文書やデータなどは、 ストレージから ロードされる。 必要なプラグインは、 全て ServiceBrokeM 041上にロード される。 ServiceBroker 1 041は、 全てのプラグインを保持し管理する。 プ ラグインは、 システムに物理的に追加することができ、 又、 その機能はスト レージからロードすることができる。 プラグインの内容がロードされると、 S erviceBroker 1 041は、 対応するプラグインを定義する。 つづいて、 対応 する UserAppl ication 1 06が生成され、 実行環境 1 0 1にロードされ、 Prog ramlnvoker 1 03にアタッチされる。
[0142] G. アプリケーションサービスと環境との関係
図 1 5 (a) は、 Program Invoker 1 03上にロードしたアプリケーション サービスの構成についての更なる詳細を示す。 コマンドサブシステム 1 05 のコン不一ネン卜である Command Invoker 1 05 1は、 Program Invoker 1 03 内の Command 1 052を起動又は実行する。 Command 1 052は、 文書処理シ ステムにおいて、 XM Lなどの文書を処理し、 対応する XM L DOMツリー を編集するために用いられる命令である。 Co國 and Invoker 1 05 1は、 Comma nd1 052を実行するために必要なクラス及びファンクションを保持する。
[0143] ServiceBroker 1 04 1も、 Program Invoker 1 03内で実行される。 UserAp pi ication 1 06は、 ユーザインタフェイス 1 07及び CoreComponent 1 1 0 に接続される。 CoreComponent 1 1 0は、 全ての Paneの間で文書を共有する方 法を提供する。 CoreComponent 1 1 0は、 さらにフォントを提供し、 Paneのた めのツールキッ卜の役割を果たす。
[0144] 図 1 5 ( b ) は、 Frame 1 07 1、 MenuBar 1 07 2、 及び StatusBar 1 07 3の関係を示す。
[0145] H. アプリケーションコア
図 1 6 (a) は、 全ての文書、 及び文書の一部及び文書に属するデータを 保持するアプリケーションコア 1 08についての更なる説明を提供する。 Cor eComponent 1 1 0は、 文書 1 082を管理する DocumentManager 1 08 1にァ タツチされる。 DocumentManager 1 08 1は、 文書処理システムに関連づけら れたメモリに格納される全ての文書 1 082の所有者である。
[0146] 画面上の文書の表示を容易にするために、 DocumentManager 1 08 1は Root Pane 1 084にも接続される。 CI ipBoard 1 087、 SnapShot 1 088、 Drag &Drop60 1、 及び Over lay 602の機能も、 CoreComponent 1 1 0にアタッチ される。
[0147] SnapShot 1 088は、 アプリケーションの状態を元に戻すために使用され る。 ユーザが Snapshot 1 088を起動したとき、 アプリケーションの現状が 検知され、 格納される。 その後、 アプリケーションの状態が別の状態に変わ るとき、 格納された状態の内容は保存される。 SnapShotl 088は、 図 1 6 (b) に図示される。 動作において、 アプリケーションがある U R Lから他 へ移動するときに、 前に戻る動作及び先に進む動作をシームレスに実行可能 とするために、 SnapShotl 088は以前の状態を記憶する。
[0148] I . DocumentManager内における文書の構成
図 1 7 ( a ) は、 DocumentManager 1 08 1の更なる説明と、 DocumentMana gerにおいて文書が構成され保持される様子を示す。 図 1 1 (b) に示したよ うに、 DocumentManager 1 08 1は、 文書 1 082を管理する。 図 1 7 (a) に示される例において、 複数の文書のうちの 1つは RootDocument (ルート文 書) 701であり、 残りの文書は SubDocument (サブ文書) 702である。 Do cumentManager 1 081は、 RootDocument 701に接 され、 RootDocument 7 01は、 全ての SubDocument 702に接続される。
[0149] 図 1 2及び図 1 7 (a) に示すように、 DocumentManager 1 08 1は、 全て の文書 1 082を管理するォブジェクトである DoGumentContainer 203に結 合される。 D0MService703及び lOManager 704を含むツールキット 201 (例えば XM Lツールキット) の一部を形成するツールも、 DocumentManager 1 081に供給される。 再び図 1 7 (a) を参照して、 D0MService703は 、 DocumentManager 1 081により管理される文書に基づいた D OMツリーを 生成する。 各 Document 705は、 それが RootDocument 701であっても SubDo cument 702であっても、 対応する DocumentGonta iner203によって管理さ れる。
[0150] 図 1 7 (b) は、 文書 A_Eが階層的に配置される様子を示す。 文書 Aは R ootDocumentである。 文書 B— Dは、 文書 Aの SubDocumentである。 文書 Eは 、 文書 Dの SubDocumentである。 図 1 7 (b) の左側は、 これと同じ文書の階 層が画面上に表示された例を示す。 RootDocumentである文書 Aは、 基本フレ ームとして表示される。 文書 Aの SubDocumentである文書 B_Dは、 基本フレ ー厶 Aの中のサブフレームとして表示される。 文書 Dの SubDocumentである文 書 Eは、 サブフレーム Dのサブフレームとして画面に表示される。
[0151] 再び図 1 7 (a) を参照して、 UndoManager (アンドゥマネージャ :アンド ゥ管理部) 706及び UndoWrapper (アンドゥラッパ一) 707は、 それぞれ ( DocumentContainer 203に対して生成される。 UndoManager 706及び Und oWrapper707は、 取消可能なコマンドを実行するために使用される。 この 特徴を使用することにより、 編集操作を使用して文書に対して実行された変 更を取り消すことができる。 SubDocumentの変更は、 RootDocumentとも密接な 関係を有する。 アンドゥ操作は、 階層内の他の文書に影響する変更を考慮に 入れて、 例えば、 図 1 7 (b) に示されるような連鎖状の階層における全て の文書の間で整合性が維持されることを保証する。
[0152] UndoWrapper 707は、 DocumentContainer 203内の SubDocumentに関連す るアンドゥオブジェクトをラップし、 それらを RootDocumentに関連するアン ドウオブジェクトに結合させる。 UndoWrapper 707は、 Undoab I eEd itAccept or (アンドウアプルエディットァクセプタ :アンドウ可能編集受付部) 70 9に利用可能なアンドウオブジェク卜の収集を実行する。
[0153] UndoManager 706及び UndoWrapper 707は、 Undoab I eEd i tAcceptor 70 9及び UndoableEditSource (アンドゥァブルエディットソース) 708に接 続される。 当業者には理解されるように、 Document 705が Undoab I eEd i tSou rce708であってもよく、 取消可能な編集オブジェク卜のソースであっても よい。
[0154] J. アンドゥコマンド及びアンドゥフレームワーク
図 1 8 (a) 及び図 1 8 (b) は、 アンドゥフレームワーク及びアンドゥ コマンドについて更なる詳細を提供する。 図 1 8 (a) に示されるように、 U ndoCommand 80 1、 RedoCommand 802、 及び UndoableEditGommand803は 、 図 1 1 (b) に示したように Co國 andlnvokeM 05 1に積むことができる コマンドであり、 順に実行される。 UndoableEditCommand803は、 Undoab le EditSource708及び Undoab I eEd i tAcceptor 709に更にァタツチされる。 「foo」 EditCommand804及び 「bar」 EditCommand805は、 UndoableEditC ommandの例である。
[0155] 1. UndoableEditCo國 andの実行
図 1 8 (b) は、 UndoableEditGommandの実行を示す。 まず、 ユーザが編集 コマンドを使用して Document 705を編集すると仮定する。 第 1ステップ S 1では、 UndoableEditAcceptor 709が、 Document 705の D OMツリーで ぁる11|^0313|6£(1 501^06708にァタツチされる。 第 2ステップ S 2では、 ユーザにより発行されたコマンドに基づいて、 Document 705が DOMの A P Iを用いて編集される。 第 3ステップ S 3では、 ミュー亍ーシヨンィベン 卜のリスナーが、 変更がなされたことを通知される。 すなわち、 このステツ プでは、 DOMツリーの全ての変更を監視するリスナーが編集操作を検知す る。 第 4ステップ S 4では、 UndoableEditが UndoManager 706のォブジェク トとして格納される。 第 5ステップ S 5では、 UndoableEditAcceptor 709 7b UndoableEditSource708からデタツチされる。 UndoableEditSource70 8は、 Document705自身であってもよい。
[0156] K. システムへの文書のロードに関する手順
上記のサブセクションでは、 システムの様々なコンポーネント及びサブコ ンポーネントについて説明した。 以下、 これらのコンポーネントの使用に関 する方法論について説明する。 図 1 9 (a) は、 文書処理システムに文書が ロードされる様子の概要を示す。 それぞれのステップは、 図 24— 28にお いて、 特定の例に関連して詳述される。
[0157] 簡単には、 文書処理システムは、 文書に含まれるデータからなるバイナリ データストリームから DOMを生成する。 ApexNode (エイペックスノード: 頂点ノード) 力 注目対象であり Zoneに属する文書の一部のために生成され る。 つづいて、 対応する Paneが同定される。 同定された Paneは、 ApexNode及 び物理的な画面表面から Zone及び Canvasを生成する。 Zoneは、 次に、 それぞ れのノードに Facetを生成し、 それらに必要とされる情報を提供する。 Canvas は、 DOMツリーから、 ノードをレンダリングするためのデータ構造を生成 する。
[0158] より詳細には、 文書はストレージ 90 1からロードされる。 文書の DOM ツリー 902が生成される。 文書を保持するための、 対応する DocumentConta i ner 903が生成される。 DocumentConta iner 903は、 DocumentManager 9 04にアタッチされる。 DOMツリーは、 ルートノードと、 ときには複数の セカンダリノードを含む。
[0159] 一般に、 このような文書は、 テキスト及びグラフィクスの双方を含む。 し たがって、 DOMツリーは、 例えば、 X H TM Lサブツリーだけでなく SV Gサブツリーを有してもよい。 X H TM Lサブツリーは、 乂1~1丁1\11_の 卩6乂 ode905を有する。 同様に、 SVGサブツリーは、 S V Gの ApexNode 906 を有する。
[0160] ステップ 1では、 ApexNode906が、 画面の論理的なレイァゥトである Pan e907にアタッチされる。 ステップ 2では、 Pane907は、 PaneOwner (ぺ ィンオーナー:ペインの所有者) 908である CoreComponentに、 ApexNode 9 06のための ZoneFactoryを要求する。 ステップ 3では、 PaneOwner 908は 、 ZoneFactoryと、 ApexNode906のための CanvasFactoryである Editletとを 返す。
[0161] ステップ 4では、 Pane907が Zone909を生成する。 Zone909は Pane 907にアタッチされる。 ステップ 5では、 Zone909がそれぞれのノード に対して Facetを生成し、 対応するノードにアタッチする。 ステップ 6では、 卩8116907が031^359 1 0を生成する。 Canvas 9 1 0は Pane 907にァタツ チされる。 Canvas9 1 0には様々な Commandが含まれる。 ステップ 7では、 Ca nvas9 1 0が文書を画面にレンダリングするためのデータ構造を構築する。
X H TM Lの場合、 これはボックスツリー構造を含む。
[0162] 1. Zoneの MV C
図 1 9 (b) は、 MVCパラダイムを用いて Zoneの構成の概要を示す。 こ の場合、 Zone及び Facetは文書に関連した入力であるから、 モデル (M) は Zo ne及び Facetを含む。 Canvasと、 文書を画面にレンダリングするためのデータ 構造体は、 ユーザが画面上に見る出力であるから、 ビュー (V) は Canvas及 びデータ構造体に対応する。 Co國 andは、 文書とその様々な関係に対して制御 操作を実行するので、 コントロール (c) は Canvasに含まれる Co國 andを含む
[0163] し 文書の表現
図 20を用いて、 文書及びその様々な表現の例について以下に説明する。 この例で使用される文書は、 テキストと画像の双方を含む。 テキストは、 X H TM Lを用いて表され、 画像は、 SVGを用いて表される。 図 20は、 文 書のコンポーネント及び対応するォブジェク卜の関係の MVC表現を詳細に 示す。 この例において、 Document 1 00 1は、 Document 1 00 1を保持する D ocumentContainer 1 002にアタッチされる。 文書は DOMツリー 1 003 により表現される。 DOMツリーは、 ApexNode 1 004を含む。
[0164] ApexNodeは、 黒丸で表される。 頂点でないノードは、 白丸で表される。 ノ ードを編集するために用いられる Facetは、 三角形で表され、 対応するノード にアタッチされる。 文書がテキストと画像を有するので、 この文書の DOM ツリーは、 X H TM L部分と SVG部分を含む。 ApexNode 1 004は、 X H TM Lサブツリーの最上のノードである。 これは、 文書の X H TM L部分の 物理的な表現のための最上 Paneである XHTMLPanel 005にァタツチされる。
ApexNode 1 004は、 文書の D OMツリーの一部である XHTMLZone 1 006に もァタツチされる。
[0165] Node 1 004に対応する Facetも、 XHTMLZone 1 006にアタッチされる。 X HTMLZone 1 006は、 XHTMLPanel 005にアタッチされる。 XHTMLEditletは 、 文書の論理的な表現である XHTMLGanvas 1 007を生成する。 XHTMLGanvas 1 007は、 XHTMLPanel 005にアタッチされる。 XHTMLCanvas 1 007は 、 Document 1 00 1の X H TM Lコンポーネン卜のための BoxTree 1 009を 生成する。 文書の X H TM L部分を保持し描画するために必要な様々な Co國 a nd 1 008も、 XHTMLCanvas 1 007に追加される。
[0166] 同様に、 文書の SVGサブツリーの ApexNode 1 0 1 0は、 文書の SVGコ ンポーネントを表現する Document 1 00 1の D OMツリーの一部である SVGZo ne 1 0 1 1にアタッチされる。 ApexNode 1 0 1 0は、 文書の SVG部分の物 理的な表現の最上の Paneである SVGPanel 0 1 3にアタッチされる。 文書の S VG部分の論理的な表現を表す SVGCanvasl 0 1 2は、 SVGEditletにより生成 され、 SVGPanel 0 1 3にアタッチされる。 画面上に文書の S V G部分をレン ダリングするためのデータ構造及びコマンドは、 SVGCan vasにアタッチされる 。 例えば、 このデータ構造は、 図示されるように、 円、 線、 長方形などを含 んでもよい。
[0167] 図 20に関連して説明された文書例の表現の一部について、 図 21 (a) に関連して、 前述した MVCパラダイムを用いて更に説明する。 図 2 1 (a ) は、 文書 1 00 1の X H TM Lコンポーネントにおける MVの関係を簡略 ィ匕して示す。 モデルは、 Document 1 00 1の X H T M Lコンポーネントのた めの XHTMLZonel 1 0 1である。 XHTMLZoneのツリーには、 いくつかの Node及 びそれらに対応する Facetが含まれる。 対応する XHTMLZone及び Paneは、 MV Cパラダイムのモデル (M) 部分の一部である。 MVCパラダイムのビュー (V) 部分は、 Document 1 00 1の X H T M Lコンポーネントの、 対応する X HTMLCanvas 1 1 02及び BoxTreeである。 文書の X H TM L部分は、 Canvasと 、 それに含まれる Co國 andを使用して画面に描写される。 キーボードやマウス 入力などのイベントは、 図示されるように、 逆方向へ進む。
[0168] SourcePaneは、 更なる機能、 すなわち、 D OMの保有者としての役割を有 する。 図 2 1 (b) は、 図 2 1 (a) に示した Document 1 00 1のコンポ一 ネントに対するボキヤブラリコネクションを提供する。 DOMホルダーとし て機能する SourcePane 1 1 03は、 文書のソース D OMツリーを含む。 Gonne ctorTreeは、 GonnectorFactoryにより生成され、 デスティネーション DOM の保有者としても機能する DestinationPane 1 1 05を生成する。 Destinatio nPane 1 1 05は、 XHTMLDest i nat i onCanvas 1 1 06としてボックスツリーの 形式でレイァゥ卜される。
[0169] M. プラグインサブシステム、 ボキヤブラリコネクション、 及びコネクタの 関係
図 22 (a) - ( c) は、 それぞれ、 プラグインサブシステム、 ポキヤブ ラリコネクション、 及び Connectorに関連する更なる詳細を示す。 プラグイン サブシステムは、 文書処理システムに機能を追加又は交換するために用いら れる。 プラグインサブシステムは、 ServiceBroker 1 04 1を含む。 ServiceB roker 1 04 1 ^^^†l¾ZoneFactoryService 1 20 1は、 文書の一咅 |5 に対する Zoneを生成する。 EditletService 1 202も、 ServiceBroker 1 04 1にアタッチされる。 EditletService 1 202は、 Zone中の Nodeに対応する C anvasを生成する。
[0170] ZoneFactoryの例は、 XHTMLZone及び SVGZoneをそれぞれ生成する XHTMLZoneF actory 1 2 1 1及び SVGZoneFactory 1 2 1 2である。 文書例に関連して前述 したように、 文書のテキストコンポーネントは、 XHTMLZoneを生成することに より表現されてもよいし、 画像は SVGZoneを用いて表現されてもよい。 Editle tServiceの例は、 XHTMLEditlet 1 22 1及び SVGEditlet 1 222を含む。
[0171] 図 22 (b) は、 ポキヤブラリコネクションに関連する更なる詳細を示す 。 ポキヤブラリコネクションは、 前述したように、 文書処理システムの重要 な特徴であり、 2つの異なる方法で文書の整合のとれた表現及び表示を可能 とする。 ConnectorFaGtory303を保持する VCManager 302は、 ポキヤブラ リコネクションサブシステムの一部である。 ConnectorFaGtory303は、 文 書の Connector 304を生成する。 前述したように、 Connectorは、 ソース D OM中のノードを監視し、 2つの表現の間の整合性を維持するために、 デス ティネーション DOM中のノードを修正する。
[0172] Temp late 3 1 7は、 いくつかのノードの変換ルールを表す。 ボキヤブラリ コネクション記述子 (VCD) ファイルは、 特定のパス又はルールを満たす 要素又は要素の集合を他の要素に変換するいくつかのルールを表す Temp I ate のリストである。 Template3 1 7及び GommandTemplate3 1 8は、 全て VGMana ger 302にアタッチされる。 VCManagerは、 V C Dファイル中の全てのセク シヨンを管理するオブジェクトである。 1つの VCDファイルに対して、 1 つの VCManagerオブジェク卜が生成される。
[0173] 図 22 (c) は、 Connectorに関連する更なる詳細を提供する。 ConnectorF actory303は、 ソース文書から Connectorを生成する。 ConnectorFactory 3 03は、 Vocabulary^ Template^ 及び ElementTemplateにアタッチされ、 それ ぞれ、 Vocabu I aryConnector TemplateConnector ElementGonnectorを生成 ずる。
[0174] VCManager 302は、 ConnectorFactory 303を保持する。 Vocabularyを生 成するために、 対応する V CDファイルが読み込まれる。 こうして、 Connect orFactory 303力《生成される。 この ConnectorFactory 303は、 Zoneを生成 する ZoneFactor y及び Canvasを生成する Ed i 11 etに関連する。
[0175] つづいて、 ターゲットボキャブラリの£ 1:161561^106が、 003^33を生成 する。 VGGanvasも、 ソース D OMツリー又は Zoneにおける ApexNodeの Connect orを生成する。 必要に応じて、 子の Connectorが再帰的に生成される。 Connec torTreeは、 V C Dファイル中のテンプレー卜の集合により生成される。
[0176] テンプレートは、 マークアップ言語の要素を他の要素に変換するためのル ールの集合である。 例えば、 各テンプレートは、 ソース DOMツリー又は Zon eにマッチされる。 適切にマッチした場合には、 頂点 Connectorが生成される 。 例えば、 テンプレート 「A/*/D」 は、 間にどんなノードがあるかに関係なく 、 ノード Aで始まりノード Dで終わる全ての枝に合致する。 同様に、 「〃B」 は、 ルートからの全ての 「B」 ノードに一致する。
[0177] N. ConnectorTreeに関係する VCDファイルの例
特定の文書と関係する処理を説明する例を続ける。 ドキュメントタイ トル のある 「MySampleXML」 というタイ トルの文書が文書処理システムにロードさ れる。 図 23は、 「MySamp I eXML」 ファイルのための、 VCManager及び Connect orFactoryTreeを用いた V C Dスクリプ卜の例を示す。 スクリプトファイル中 のボキヤブラリセクシヨン、 テンプレートセクションと、 VCManagerにおける 対応するコンポーネントが示される。 タグ 「vcd: vocabu laryj において、 属 性 「matGh」 は 「sample: rootj 、 Γ label」 は 「MySamp I eXMLj 、 「calト temp latej は 「sample templatej となってしゝる。
[0178] この例では、 Vocabularyは、 「MySamp I eXMLj の VCManagerにおいて 「sampl e: root j として頂点要素を含む。 対応する U Iラベルは、 「MySamp I eXML」 で ある。 テンプレートセクションにおいて、 タグは 「vcd: templatej であり、 名 B'Jは 「sample: templatej でめる。
[0179] O. ファイルがシステムにロードされる方法の詳細な例
図 24— 28は、 文書 「MySamp I eXML」 のロードについての詳細な記述を示 す。 図 24 (a) に示されるステップ 1では、 文書がストレージ 1 405カヽ らロードされる。 DOMServiceは、 D OMツリー及び DocumentManager 1 406 と対 Ji、する DocumentGontaineM 401を生成する。 DocumentGontaineM 4 01は、 DocumentManager 1 406にアタッチされる。 文書は、 XHTML及 び MySampleXMLのサブツリーを含む。 X H T M Lの ApexNode 1 403は、 タグ rxhtml: html J が付された X H T M Lの最上のノードである。 「MySampleXML 」 の ApexNodel 404は、 タグ 「sample: rootj 力《付された 「MySamp I eXMLj の最上ノードである。
[0180] 図 24 (b) に示されるステップ 2では、 RootPaneが文書の XHTMLZone、 Fa cet、 及び Canvasを生成する。 Panel 407、 XHTMLZone 1 408、 XHTMLCanv as 1 409、 及び BoxTreel 41 0が、 ApexNodel 403に対応して生成され る。
[0181] 図 24 (c) に示されるステップ 3では、 XHTMLZoneが知らないタグ 「samp le:root」 を発見し、 XHTMLCanvasの領域から SubPaneを生成する。
[0182] 図 25に示されるステップ 4では、 SubPaneが 「sample: root」 を扱うこと ができ、 適切な Zoneを生成可能な ZoneFactoryを得る。 この ZoneFactoryは、 Z oneFactoryを実行可肯 な Vocabulary内にある。 それは、 「MySamp I eXMLj の Vo cabu I arySect i onの内容を含む c
[0183] 図 26に示されるステップ 5では、 「MySampleXML」 に対応する Vocabulary カ《06 311 20^1 601を生成する。 対応する Ed it letが生成され、 対応する C anvasを生成するために SubPane 1 501が提供される。 Editletは、 VGGanvas を生成する。 そして、 それは TemplateSectionを呼ぶ。 ConnectorFaGtoryTree も含まれてしゝる o ConnectorFaGtoryTreeは、 ConnectorTreeとなる全ての Conn ectorを生成する。
[0184] 図 27に示されるステップ 6では、 各 Connectorがデスティネーション DO Mオブジェクトを生成する。 コネクタのうちのいくつかは xpath情報を含んで いる。 xpath情報は、 変更 修正を監視する必要のあるソース DOMツリーの 部分集合を決定するために使用される 1以上の xpath表現を含む。
[0185] 図 28に示されるステップ 7では、 ボキヤブラリは、 ソース DOMのペイ ンからデスティネーシヨン D O Mッリ一の Dest i nat i onPaneを作成する。 これ は、 SourcePaneに基づいてなされる。 デスティネーションツリーの ApexNode は、 DestinationPane及び对 j心する Zoneにアタッチされる。 Dest i nat ionPane は、 DestinationCanvasを生成し、 文書をデスティネーションのフォーマット でレンダリングするためのデータ構造及びコマンドを構築する、 自身の Editl etを提供される。
[0186] 図 29 (a) は、 対応するソースノードを持たず、 デスティネーションッ リーにのみ存在するノード上でィベン卜が発生したときのフローを示す。 マ ウスイベント、 キーボードイベントなど、 Canvasが取得したイベントは、 デ スティネーシヨンッリ一を通過して、 E I ementTemp I ateConnectorに伝達され る。 ElementTemplateConnectorは対応するソースノードを持たないので、 伝 達されたィベントはソースノードに対する編集操作ではない。 ElementTempla teConnectorは、 伝達されたィベン卜が CommandTemplateに記述されたコマン ドに合致すれば、 それに対応する Actionを実行する。 合致するコマンドがな ければ、 E I ementTemp I ateConnector (i 伝達されたィベン卜を無視する。
[0187] 図 29 (b) は、 TextOfConnectorによリソースノードに対応づけられてい るデスティネーションツリーのノード上でィベン卜が発生したときのフロー を示す。 TextOfConnectorは、 ソース DOMツリーの X P a t hで指定された ノードからテキストノードを取得して、 デスティネーション DOMツリーの ノードにマッピングする。 マウスイベント、 キーボードイベントなど、 Canva sが取得したイベントは、 デスティネーションツリーを通過して、 TextOfConn ectorに伝達される。 TextOf Connectorは、 伝達されたイベントを、 対応する ソースノードの編集コマンドにマッピングし、 Queue 1 0 5 3に積む。 編集コ マンドは、 Facetを介して実行される D O Mの A P Iコールの集合である。 キ ユーに積まれたコマンドが実行されると、 ソースノードが編集される。 ソー スノードが編集されると、 ミュー亍ーシヨンイベントが発行され、 リスナー として登録された TextOfConnectorにソースノードの変更が通知される。 Text Of Connectorは、 ソースノードの変更を、 対応するデスティネーションノード に反映させるように、 デスティネーションツリーを再構築する。 このとき、 T extOf Connectorを含むテンプレー卜に、 「for eachj や 「for l oopj などの 制御文が含まれている場合、 ConnectorFactoryがこの制御文を再評価し、 Tex tOf Connectorを再構築した後、 デスティネーションツリーが再構築される。
[0188] (実施の形態)
実施の形態では、 画像の任意の領域にァノーテーシヨンをつける技術を提 案する。 すなわち、 画像のある範囲又はある領域に対して、 注釈やメモなど の新たな情報をメタ情報として付加する、 又は関連づける技術を提案する。
[0189] 例えば、 ある写真に複数の人物が写っている場合に、 それぞれの人物が写 つている領域に対して氏名や説明などの情報がメタ情報として提供されれば 、 よりユーザフレンドリで付加価値の高い情報となる。 このメタ情報は、 特 定のシステムに依存しない形式で提供されるのが好ましい。 本実施の形態で は、 画像の任意の領域に対して設定されたメタ情報を X M Lデータとして記 録する。
[0190] 図 3 0は、 実施の形態に係る文書処理装置の構成を示す。 本実施の形態の 文書処理装置 1 0 0は、 図 1に示した前提技術の文書処理装置 2 0の構成に 加えて、 ァノーテーシヨンユニット 7 0及び取得部 7 8を備える。 ァノーテ ーシヨンュニット 7 0は、 ァノーテーシヨンを付す画像の領域の設定を受け 付ける領域設定受付部 7 1、 領域に付すァノーテーシヨンの設定を受け付け るァノーテーシヨン設定受付部 7 2、 設定されたァノーテーシヨンを記録す るァノーテーシヨン記録部 73、 設定されたァノーテーシヨンを表示するァ ノーテーシヨン表示部 74、 設定されたァノーテーシヨンを検索する検索部 75を含む。
[0191] 取得部 78は、 ァノーテーシヨンをつける対象となる画像と、 ァノーテ一 シヨンを記録した文書ファイルと、 ァノーテーシヨンを記録した文書フアイ ルを処理するための定義ファイルとを取得する。 本実施の形態では、 画像の 領域に対して設定されたァノーテーシヨンは、 画像に付されたァノーテーシ ヨンを記述するために用意された専用のタグセット (以下、 「画像ァノーテ ーシヨンボキヤブラリ」 という) を用いて、 XM L文書として記録される。 画像ァノーテーシヨンボキヤブラリを処理するための処理系は、 ハードコー ドプラグィンなどのモジュールとして用意されてもよいが、 本実施の形態で は、 画像ァノーテーシヨンボキヤブラリの要素を処理する方法が記述された 定義ファイルが用意されている。 したがって、 領域設定受付部 7 1、 ァノー テーシヨン設定受付部 72、 ァノーテーシヨン記録部 73、 ァノーテーショ ン表示部 74の各機能は、 定義ファイルと VCュニット 80により実現され る。
[0192] 図 31は、 ァノーテーシヨンを記録した文書ファイルの例を示す。 文書フ アイルは、 画像ァノーテーシヨンポキヤブラリ 「ia」 で記述されており、 ル ート要素 「ia:portal」 の子要素として 「ia:images」 要素が設けられており 、 更にその子要素として、 画像の設定情報を格納する 「ia:image」 要素が設 けられている。 「ia:image」 要素は複数設けられてもよく、 その場合、 1つ の文書ファイルに複数の画像に対するァノーテーシヨンが記録される。 「ia: image j 要素の属性 「href」 には画像の U R Lが格納され、 子要素 「ia:title 」 には画像のタイ トルが格納され、 子要素 「ia:description」 には画像の説 明が格納される。 また、 子要素 「ia:parts」 には画像の 1以上の領域に対し て付されたァノーテーシヨンの情報が格納される。 「ia:parts」 要素は、 1 以上の子要素 「ia:part」 を有する。 要素 「ia:part」 は、 各領域の設定情報 を格納しており、 子要素 「ia:rectangle」 には矩形領域の左上と右下の座標 値がそれぞれ属性 「x1」 、 「y1」 、 「x2」 、 「y2」 として格納され、 子要素 「ia:descr iptionsj には領域の説明力《格納される。 「ia:descr iptionsj 要 素は、 1以上の子要素 「ia:descr iption」 を有しており、 それぞれの 「ia:de scriptionj 要素には、 領域に対して設定されたァノーテーシヨンが格納され る。 「ia:description」 要素は、 ァノーテーシヨンの形式を格納する 「type 」 属性、 ァノーテーシヨンのタイ トルを格納する 「title」 属性、 ァノーテ一 シヨンの主題を格納する 「subject」 属性を有しており、 必要に応じて柔軟に ァノーテーシヨンを設定可能としている。 ァノーテーシヨンの形式は、 テキ スト、 画像、 音声、 動画、 XMLデータ、 などであってもよい。 また、 任意 の要素名を付けてァノーテーシヨンを設定できるようにしてもよい。 画像を ァノーテーシヨン情報として設定した場合、 さらにその画像にァノーテーシ ヨンをつけて、 ァノーテーシヨンをネストさせてもよい。
[0193] 領域設定受付部 7 1は、 取得部 78により取得された画像を表示し、 ユー ザからァノーテーシヨンの設定要求を受け付けると、 ァノーテーシヨンの設 定対象となる領域の設定を受け付ける。 領域設定受付部 7 1は、 例えば、 ュ 一ザがァノーテーシヨンを設定したい矩形領域の左上の位置でマウスをクリ ックし、 右下方向へドラッグして矩形領域の右下の位置で放したときに、 矩 形領域の左上と右下の座標を取得し、 矩形領域の設定を受け付けてもよい。 領域設定受付部 7 1は、 矩形以外にも、 円、 多角形、 その他任意の形状の領 域の設定を受け付けてもよい。 その場合、 領域の形状と位置を一意に特定で きる情報をユーザから取得する。
[0194] ァノーテーシヨン設定受付部 72は、 領域設定受付部 7 1が受け付けた領 域に対して付されるァノーテーシヨンの設定を受け付ける。 ァノーテーショ ン設定受付部 72は、 図 31に示した画像ァノーテーシヨンボキヤブラリの 仕様に沿って、 ァノーテーシヨンとして設定可能な情報をユーザから受け付 ける。 ァノーテーシヨン設定受付部 72は、 設定可能な情報をフォーム形式 でユーザから受け付けてもよいし、 ダイァ口グ画面などを提示して対話形式 でユーザから受け付けてもよい。 また、 !~1丁1\11_ュニット50ゃ5 0ュニ ット 60などの処理系により、 表示画面において WYS IWYG編集を受け 付けてもよい。
[0195] ァノーテーシヨン設定受付部 72は、 複数の領域に対して共通のァノーテ ーシヨンの設定を受け付けてもよい。 例えば、 ビルのフロアマップの画像に 対して、 非常口の位置をァノーテーシヨンする場合に、 複数存在する非常口 に対して共通のァノーテーシヨンを設定できるようにしてもよい。 この場合 、 領域設定受付部 7 1力 複数の領域の設定を連続して受け付けてもよいし 、 既に設定されたァノーテーシヨンに領域を追加するコマンドを用意しても よい。
[0196] ァノーテーシヨン記録部 73は、 領域設定受付部 7 1が受け付けた領域を 特定するための情報と、 ァノーテーシヨン設定受付部 72が受け付けたァノ 一亍ーシヨンの設定情報とを対応付けて記録する。 ァノーテーシヨン記録部 73は、 図 31に示したように、 要素 「ia:part」 の子要素 「ia:rectangle」 に矩形領域の座標を、 子要素 「ia:title」 に領域のタイ トルを、 子要素 「ia: descriptionsj に領域に設定されたァノーテーシヨンの情報を、 それぞれ対 応づけて記録する。
[0197] ァノーテーシヨン表示部 74は、 設定されたァノーテーシヨンを表示する 。 ァノーテーシヨン表示部 74は、 定義ファイルに記述されたテンプレート にしたがって画像ァノーテーシヨンポキャプラリの各要素を X H TM Lの要 素にマツビングし、 マツビングされた X H TM L文書を H TM Lュニット 5 0により表示する。
[0198] 検索部 75は、 設定されたァノーテーシヨンを検索する。 図 31に示した ように、 ァノーテーシヨンは XM L形式で記録されるので、 テキスト情報と して設定されたァノーテーシヨンは簡単に検索することができる。 また、 画 像や音声などの情報がァノーテーシヨンとして設定された場合であっても、 キーワードなどを設定しておくことにより、 検索が可能である。 設定された 情報を RSS出力することにより、 外部の検索エンジンなどを用いてァノ一 亍ーシヨンの検索を可能としてもよい。 [0199] 図 32は、 ァノーテーシヨン表示部 74により表示された画面の例を示す 。 画像ァノーテーシヨンポキヤブラリの処理方法を規定する定義ファイルに 記述されたテンプレートにより画面が生成されて表示されている。 画面は 3 つのフレームに分割されており、 左側のフレームにはァノーテーシヨンの設 定対象となる画像の一覧が表示されており、 中央のフレームには選択中の画 像が表示されており、 右側のフレームには選択中の画像に設定されたァノー 亍ーシヨンの一覧が表示されている。 中央のフレームには、 「編集モード」 と 「表示モード」 を切り替えるボタンが用意されており、 編集モードでは領 域に対してァノーテーシヨンを設定したり、 設定されたァノーテーシヨンを 編集するための画面が提示され、 表示モードでは設定されたァノーテーショ ンを表示する画面が提示される。
[0200] 左側のフレームにおいて、 ユーザがマウスで画像をクリックすると、 その 画像が選択されて中央のフレームに表示される。 また、 左側のフレームには 、 対象となる画像を新たに追加するポタンと、 画像を削除するポタンが用意 されている。 ユーザが画像の追加を要求すると、 ァノーテーシヨンユニット 70は、 画像の指定を受け付け、 受け付けた画像を取得部 78により取得す るとともに、 ソース DOMツリーに 「ia:image」 要素を追加し、 「href」 属 性にその画像の U R Lを格納する。 この後、 ソース DOMツリーが変更され たことを示すミューテーシヨンィベン卜が発行され、 ァノーテーシヨン表示 部 74が表示を更新することにより、 追加された画像が表示される。 ユーザ が画像の削除を要求すると、 ァノーテーシヨンユニット 70は、 選択された 画像に該当する 「ia:image」 要素をソース DOMツリーから削除する。
[0201] 図 33は、 領域設定受付部 7 1が領域の設定を受け付ける画面の例を示す 。 編集モードにおいて、 「新規パーツ」 ボタンをユーザがクリックすると、 ァノーテーシヨン記録部 73は、 ソース DOMツリーの 「ia:parts」 要素の 下に 「ia:part」 要素を追加する。 このとき、 図 33に示すように、 領域設定 受付部 7 1がユーザから矩形領域の選択を受け付け、 受け付けた情報をァノ 一亍ーシヨン記録部 73が 「ia:rectangle」 要素に格納する。 選択する矩形 は他の領域の矩形と重なってもよい。 設定された領域には、 設定順に番号が 振られる。
[0202] 図 34は、 ァノーテーシヨン設定受付部 72がァノーテーシヨンの設定を 受け付ける画面の例を示す。 中央のフレームの画像上には、 選択中の領域の 矩形が表示されるとともに、 矩形の左上に領域の番号が表示されている。 中 央のフレームの下方には、 ァノーテーシヨンを設定するためのフォームが表 示されており、 それぞれの項目の編集を受け付ける。 右側のフレームには設 定されたァノーテーシヨンの一覧が表示されており、 設定したァノーテーシ ョンを画面上で確認することができる。 それぞれのァノーテーシヨンには領 域の番号が表示されている。
[0203] 中央のフレームには、 説明文や画像をァノーテーシヨンとして追加するボ タンが設けられており、 ユーザがァノーテーシヨンの追加を要求すると、 ァ ノーテーシヨン記録部 73は、 ソース DOMツリーの 「ia:descr iptionsj 要 素の下に 「ia:description」 要素を追加する。 前提技術で説明したように、
「ia:description」 要素の要素値や各属性値を 「text-of」 コネクタを用いて 編集可能にマッピングしておけば、 ァノーテーシヨン設定受付部 72は、 ダ ィァログなどを提示する必要はなく、 表示画面においてィンラインでユーザ から編集を受け付けることができる。 この場合、 ァノーテーシヨン設定受付 部 72は、 ドラッグ &ドロップなどのマウス操作によるァノーテーシヨン情 報の編集を受け付けてもよい。 マッピング先のポキヤブラリは、 文書処理装 置 20が処理可能な任意のタグセットであってよい。 例えば、 ァノーテーシ ョンとして文章を付す場合には、 XHTMLにマッピングすることにより H TMLュニット 50で処理するようにすればよいし、 画像や図形などをァノ 一亍ーシヨンとして付す場合には、 S VGにマツビングすることにより S V Gユニット 60で処理するようにすればよい。 このように、 用意された処理 系により編集可能な任意の情報をァノーテーシヨンとして付すことができ、 かつ、 表示画面においてァノーテーシヨンを WY S IWYG編集することが できる。 [0204] 図 3 5は、 ァノーテーシヨン表示部 7 4が設定されたァノーテーシヨンを 表示する画面の例を示す。 中央フレームの画像には、 矩形が表示されておら ず、 矩形の中央に領域の番号を示すマークが表示されている。 ユーザがマウ スポインタをマークに近づけると、 ポインタが矩形領域に入ったときにマー クを消去し、 その領域の矩形とタイ トルを表示する。 このとき、 右側のフレ ームにおいても、 選択中の領域に設定されたァノーテーシヨンが識別可能に 表示される。
[0205] 図 3 6は、 ァノーテーシヨンが設定された領域がフォーカスされたときの 画面の例を示す。 マウスポインタが矩形に入ったことにより、 領域の矩形と タイ トルが表示されている。 また、 右側のフレームにおいても、 該当するァ ノーテーシヨンの背景色が変更されている。 これにより、 領域とァノーテ一 シヨンの対応関係を分かりやすく表示することができる。 逆に、 右側のフレ ー厶においてァノーテーシヨンを選択すると、 中央のフレームにおいて対応 する領域がフォーカスされる。 これにより、 双方向の情報検索が可能となり 、 より分かりやすく利便性の高いィンタフェイスを提供することができる。
[0206] ァノーテーシヨン表示部 7 4は、 フォーカスされた領域の輪郭のみを表示 してもよいし、 全ての領域の輪郭を常時表示してもよい。 また、 領域の輪郭 の表示色、 線種、 表示タイミングなどを変更可能としてもよい。 また、 領域 の番号を示すマークについても、 同様に変更可能としてもよい。 ァノーテ一 シヨン表示部 7 4は、 選択された領域に設定されたァノーテーシヨンを、 中 央のフレームの画像上に領域の輪郭とともに表示してもよい。
[0207] メタ情報をグループ分けして管理可能としてもよい。 この場合、 ァノーテ ーシヨン設定受付部 7 2は、 設定するァノーテーシヨンの種別を更に受け付 ける。 ァノーテーシヨン表示部 7 4は、 ァノーテーシヨンの種別に応じて、 色や表示態様などを変更し、 ァノーテーシヨンの種別を識別可能に表示する 。 例えば、 地図に商店の情報をァノーテーシヨンとして設定する場合に、 飲 食店は青色、 銀行は赤色など、 種別に応じて色分けして表示してもよい。 こ れにより、 より分かりやすく利便性の高い表示が可能となる。 [0208] ある領域に対するァノーテーシヨンとして画像が設定されており、 さらに その画像の領域にァノーテーシヨンが設定されている場合、 ァノーテーショ ン表示部 7 4は、 領域にマウスポインタが入ったときに、 ァノーテーシヨン として設定されている画像を近傍に表示し、 更にその画像に設定されている ァノーテーシヨンを選択できるようにしてもよい。 このとき、 ァノーテーシ ョンとして設定されている画像は、 例えば 5 0 <½の背景透過画像として表示 されてもよい。 これにより、 より直感的で操作しやすいユーザインタフェイ スを実現することができる。
[0209] このような技術は、 例えば、 アプリケーションのヘルプ画面を作成したり
、 仕様書等を作成する場合に利用することができる。 また、 ニュース記事や 日記などのコンテンッに利用することができる。 画像の領域とメタ情報の対 応を視覚的に分かりやすく提示することができるので、 ユーザの利便性を格 段に向上させることができる。 また、 ネットワークなどを介して複数のユー ザが画像を介したコミュニケーションを図る手段として、 掲示板やチヤット システムなどにも利用できる。 ウェブコンテンツとして画像ァノーテーショ ンポキヤブラリを用いる場合、 前提技術で説明したように、 本実施の形態の 文書処理装置 1 0 0によれば、 複数のポキヤブラリで記述された複合文書も 適切に処理することができるので、 より応用の範囲が広がる。
[0210] 以上、 本発明を実施の形態をもとに説明した。 この実施の形態は例示であ り、 それらの各構成要素や各処理プ口セスの組合せにいろいろな変形例が可 能なこと、 またそうした変形例も本発明の範囲にあることは当業者に理解さ れるところである。
[021 1 ] 実施の形態では、 X M L文書を処理する例について説明したが、 本実施の 形態の文書処理装置 1 0 0は、 他のマークアップ言語、 例えば、 S G M L、 H T M Lなどで記述された文書も同様に処理可能である。
産業上の利用可能性
[0212] 本発明は、 ァノーテーシヨンを含む文書を処理する文書処理装置に利用可 能である。

Claims

請求の範囲
[1 ] 画像の一部の領域に対してァノーテーシヨンを付けるときに、 前記領域の 指定を受け付ける領域設定受付部と、
前記領域に対するァノーテーシヨンの設定を受け付けるァノーテーシヨン 設定受付部と、
前記領域を特定するための情報と、 受け付けたァノーテーシヨンの設定と を対応づけてフアイルに記録するァノーテーション記録部と、
を備えることを特徴とする文書処理装置。
[2] 前記ァノーテーシヨン設定受付部は、 複数の領域に対して共通のァノーテ ーションの設定を受付可能とすることを特徴とする請求項 1に記載の文書処 理装置。
[3] 前記ァノーテーシヨン設定受付部は、 前記ァノーテーシヨンの種別を受け 付け、
前記ァノーテーシヨン記録部は、 前記ァノーテーシヨンの種別を特定する ための情報を更に前記ファイルに記録することを特徴とする請求項 1又は 2 に記載の文書処理装置。
[4] 前記ァノーテーシヨン記録部は、 マークアップ言語を用いて前記ァノーテ ーションを前記ファイルに記録することを特徴とする請求項 1から 3のいず れかに記載の文書処理装置。
[5] 前記ァノーテーシヨン記録部は、 前記ァノ亍ーシヨンを記述するためのタ グセットを用いて前記ァノ一亍ーションを前記ファィルに記録することを特 徵とする請求項 4に記載の文書処理装置。
[6] 前記ァノーテーシヨンを記述するためのタグセッ卜の処理方法を記述した 定義ファイルを取得する定義ファイル取得部を更に備え、
前記ァノーテーシヨン記録部は、 前記定義ファイルに記述されたコマンド にしたがって、 前記ファイルに前記ァノーテーシヨンを記述するための要素 を記録することを特徴とする請求項 1から 5のいずれかに記載の文書処理装 置。
[7] 画像の一部の領域に対してァノーテーシヨンを付けるときに、 前記領域の 指定を受け付けるステップと、
前記領域に対するァノーテーシヨンの設定を受け付けるステップと、 前記領域を特定するための情報と、 受け付けたァノーテーシヨンの設定と を対応づけてファイルに記録するステップと、
を備えることを特徴とする文書処理方法。
[8] 画像の一部の領域に対してァノーテーシヨンを付けるときに、 前記領域の 指定を受け付ける機能と、
前記領域に対するァノーテーシヨンの設定を受け付ける機能と、 前記領域を特定するための情報と、 受け付けたァノーテーシヨンの設定と を対応づけてフアイルに記録する機能と、
をコンピュータに実現させることを特徴とする文書処理プログラム。
[9] 画像を取得する画像取得部と、
前記画像の一部の領域に対して付されたァノーテーションが記録されたフ アイルを取得するァノーテーシヨン取得部と、
前記画像を表示するとともに、 前記領域と前記ァノーテーシヨンとの対応 を識別可能な形式で前記ァノーテーシヨンを表示するァノーテーシヨン表示 部と、
を備えることを特徴とする文書処理装置。
[10] 前記ァノーテーシヨンの編集を受け付け、 編集された前記ァノーテーショ ンを前記ファイルに記録するァノーテーション記録部を更に備えることを特 徵とする請求項 9に記載の文書処理装置。
[1 1 ] 前記ァノ一亍ーション表示部は、 ボイン亍ィングデバイスのボインタが前 記画像の前記領域に入ったときに、 その領域に対して付されたァノーテーシ ョンを識別可能に表示することを特徴とする請求項 9又は 1 0に記載の文書 処理装置。
[12] 前記ァノーテーシヨン表示部は、 前記画像に対して付されたァノーテーシ ョンを一覧表示する一覧表示画面を更に表示し、 前記一覧表示画面において、 あるァノーテーシヨンが選択されたときに、 そのァノーテーションに対応する領域を識別可能に前記画像上に表示するこ とを特徴とする請求項 9から 1 1のいずれかに記載の文書処理装置。
[13] 前記ァノーテーシヨン表示部は、 前記ァノーテーシヨンの種別に応じて、 前記ァノーテーションをグループ分けして表示することを特徴とする請求項 9から 1 2のいずれかに記載の文書処理装置。
[14] 前記ファイルは、 前記ァノ亍ーシヨンを記述するためのタグセットを用い て前記ァノーテーシヨンを記録していることを特徴とする請求項 9から 1 3 のいずれかに記載の文書処理装置。
[15] 前記ァノーテーシヨンを記述するためのタグセッ卜の処理方法を記述した 定義ファイルを取得する定義ファイル取得部を更に備え、
前記ァノーテーシヨン表示部は、 前記定義ファイルに記述されたテンプレ 一卜にしたがって、 前記ファイルに記述された前記ァノーテーシヨンを表示 することを特徴とする請求項 1 4に記載の文書処理装置。
[16] 画像を取得するステップと、
前記画像の一部の領域に対して付されたァノーテーションが記録されたフ アイルを取得するステップと、
前記画像を表示するとともに、 前記領域と前記ァノーテーシヨンとの対応 を識別可能な形式で前記ァノーテーシヨンを表示するステップと、
を備えることを特徴とする文書処理方法。
[17] 画像を取得する機能と、
前記画像の一部の領域に対して付されたァノーテーシヨンが記録されたフ アイルを取得する機能と、
前記画像を表示するとともに、 前記領域と前記ァノーテーシヨンとの対応 を識別可能な形式で前記ァノーテーシヨンを表示する機能と、
をコンピュータに実現させることを特徴とする文書処理プログラム。
PCT/JP2007/000175 2006-03-06 2007-03-06 文書処理装置及び文書処理方法 WO2007105364A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008504989A JPWO2007105364A1 (ja) 2006-03-06 2007-03-06 文書処理装置及び文書処理方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006060353 2006-03-06
JP2006-060353 2006-03-06

Publications (1)

Publication Number Publication Date
WO2007105364A1 true WO2007105364A1 (ja) 2007-09-20

Family

ID=38509205

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/000175 WO2007105364A1 (ja) 2006-03-06 2007-03-06 文書処理装置及び文書処理方法

Country Status (2)

Country Link
JP (1) JPWO2007105364A1 (ja)
WO (1) WO2007105364A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012069065A (ja) * 2010-09-27 2012-04-05 Nintendo Co Ltd 情報処理プログラム、情報処理装置および方法
JPWO2012042599A1 (ja) * 2010-09-28 2014-02-03 富士通株式会社 情報付加方法、情報処理装置及びプログラム
JP2015118591A (ja) * 2013-12-19 2015-06-25 富士通株式会社 データ特定プログラム、データ特定方法および情報処理装置
CN113849102A (zh) * 2021-09-26 2021-12-28 网易(杭州)网络有限公司 一种文档处理方法、装置、计算机设备及存储介质
JP2022515462A (ja) * 2018-12-26 2022-02-18 ピージェー ファクトリー カンパニー リミテッド イメージ処理方法及びプログラム
US20230335259A1 (en) * 2018-11-09 2023-10-19 Lunit Inc. Method for managing annotation job, apparatus and system supporting the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004246454A (ja) * 2003-02-12 2004-09-02 Minolta Co Ltd 画像形成プログラム及び画像形成装置
WO2004104862A1 (ja) * 2003-05-20 2004-12-02 Victor Company Of Japan, Limited 電子化サービスマニュアル表示制御装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004246454A (ja) * 2003-02-12 2004-09-02 Minolta Co Ltd 画像形成プログラム及び画像形成装置
WO2004104862A1 (ja) * 2003-05-20 2004-12-02 Victor Company Of Japan, Limited 電子化サービスマニュアル表示制御装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012069065A (ja) * 2010-09-27 2012-04-05 Nintendo Co Ltd 情報処理プログラム、情報処理装置および方法
JPWO2012042599A1 (ja) * 2010-09-28 2014-02-03 富士通株式会社 情報付加方法、情報処理装置及びプログラム
JP2015118591A (ja) * 2013-12-19 2015-06-25 富士通株式会社 データ特定プログラム、データ特定方法および情報処理装置
US20230335259A1 (en) * 2018-11-09 2023-10-19 Lunit Inc. Method for managing annotation job, apparatus and system supporting the same
JP2022515462A (ja) * 2018-12-26 2022-02-18 ピージェー ファクトリー カンパニー リミテッド イメージ処理方法及びプログラム
JP7229587B2 (ja) 2018-12-26 2023-02-28 ピージェー ファクトリー カンパニー リミテッド イメージ処理方法及びプログラム
CN113849102A (zh) * 2021-09-26 2021-12-28 网易(杭州)网络有限公司 一种文档处理方法、装置、计算机设备及存储介质
CN113849102B (zh) * 2021-09-26 2023-08-08 网易(杭州)网络有限公司 一种文档处理方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
JPWO2007105364A1 (ja) 2009-07-30

Similar Documents

Publication Publication Date Title
WO2006137530A1 (ja) 文書処理装置
WO2006051715A1 (ja) 文書処理装置及び文書処理方法
WO2007034858A1 (ja) データ管理装置、データ編集装置、データ閲覧装置、データ管理方法、データ編集方法およびデータ閲覧方法
WO2006137565A1 (ja) 文書処理装置及び文書処理方法
JPWO2006051870A1 (ja) データ処理装置、文書処理装置及び文書処理方法
JPWO2006051975A1 (ja) 文書処理装置
WO2006051964A1 (ja) データ処理システム、データ処理方法、及び管理サーバ
WO2006046666A1 (ja) 文書処理装置および文書処理方法
WO2006051713A1 (ja) 文書処理装置及び文書処理方法
WO2006051960A1 (ja) 文書処理装置及び文書処理方法
WO2006051969A1 (ja) 文書処理装置及び文書処理方法
WO2006051954A1 (ja) 文書処理装置及び文書処理方法
WO2006120926A1 (ja) 入力フォーム設計装置および入力フォーム設計方法
WO2007105364A1 (ja) 文書処理装置及び文書処理方法
WO2006051712A1 (ja) 文書処理装置及び文書処理方法
WO2006051959A1 (ja) 文書処理装置及び文書処理方法
WO2006051955A1 (ja) サーバ装置及び名前空間発行方法
WO2006051716A1 (ja) 文書処理装置及び文書処理方法
WO2006051966A1 (ja) 文書管理装置及び文書管理方法
WO2006051956A1 (ja) サーバ装置及び検索方法
JPWO2007007529A1 (ja) 文書処理装置および文書処理モジュール
WO2006051717A1 (ja) 文書処理装置及び文書処理方法
WO2007032460A1 (ja) データ処理装置
WO2006051714A1 (ja) 文書処理装置及び文書処理方法
WO2006051868A1 (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: 07713557

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2008504989

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07713557

Country of ref document: EP

Kind code of ref document: A1