WO2005101210A1 - Data analysis device, data analysis method, data analysis program, and recording medium containing the data analysis program - Google Patents

Data analysis device, data analysis method, data analysis program, and recording medium containing the data analysis program Download PDF

Info

Publication number
WO2005101210A1
WO2005101210A1 PCT/JP2005/002201 JP2005002201W WO2005101210A1 WO 2005101210 A1 WO2005101210 A1 WO 2005101210A1 JP 2005002201 W JP2005002201 W JP 2005002201W WO 2005101210 A1 WO2005101210 A1 WO 2005101210A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
unit
analysis
buffer
area
Prior art date
Application number
PCT/JP2005/002201
Other languages
French (fr)
Japanese (ja)
Inventor
Hiroaki Zaima
Kentarou Sakakura
Original Assignee
Sharp Kabushiki Kaisha
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 Sharp Kabushiki Kaisha filed Critical Sharp Kabushiki Kaisha
Priority to JP2006512276A priority Critical patent/JPWO2005101210A1/en
Publication of WO2005101210A1 publication Critical patent/WO2005101210A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management

Definitions

  • Data analysis apparatus data analysis method, data analysis program, and recording medium recording data analysis program
  • the present invention relates to a data analysis apparatus, a data analysis method, a data analysis program, and a recording medium recording the data analysis program, and in particular, data analysis that can reduce the usage of a storage device at the time of data analysis.
  • the present invention relates to an apparatus, a data analysis method, a data analysis program, and a recording medium recording the data analysis program.
  • a storage area is provided with a data expansion area sufficient to expand all compressed data, and all compressed data is expanded there. Analyze. In other words, if the data size after expansion is 1 Kbyte, it is necessary to prepare a data expansion area for 1 K noot in the storage unit. Therefore, when large data after expansion are handled in the portable information terminal, the capacity of the storage device of the portable information terminal may be insufficient.
  • the data to be analyzed includes headers 1101, 1103, and 1105 for each data block 1102, 1104, and 1106.
  • the headers 1101, 1103 and 1105 contain information on the size of the subsequent data block 1102, 1104 and 1106, respectively, or the size after expansion.
  • data to be analyzed includes a header 1201 for each data as shown in FIG.
  • the header 1201 contains information on the length of all subsequent data blocks 1202, 1203, 12 04 or the length after expansion.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 5-265781
  • the data to be analyzed does not have completely independent data blocks and the data having a data structure is compressed or encoded, as described above, the data to be analyzed is There is also a problem that a very large data expansion area must be prepared relative to the data volume to be analyzed in order to perform analysis completely by decompression or decoding o
  • the present invention has been made to solve the above-mentioned problems, and an area where the analysis target data is stored as described above is released to release a part where analysis is completed.
  • Data analysis by making it possible to use it as a region or analyzing it in a smaller or smaller size than the data volume after expansion as a data expansion region of compressed or encoded data to be analyzed It is an object of the present invention to provide a data analysis device, a data analysis method, a data analysis program, and a recording medium recording the data analysis program, which can reduce the amount of use of a storage device at the time.
  • a data analysis apparatus generates intermediate data of analysis target data, and analyzes the intermediate data and a data expansion unit that expands the data to a predetermined data expansion area.
  • the data expanding unit generates intermediate data in sequence using part of each of the data to be analyzed, and the data analyzing unit analyzes the generated intermediate data in sequence.
  • the data to be analyzed is data having a data structure such that the length of the data block is not specified
  • the data to be analyzed or the data is Of the area where intermediate data obtained by expansion is stored, the part for which analysis has been completed is released and can be used as a work area. Therefore, even if the data to be analyzed is data obtained by compressing or coding data of a data structure in which the length of the data block is not clearly specified, it is less than the data capacity after expansion as a data expansion area. The size can be analyzed, and the amount of storage used at the time of data analysis can be reduced.
  • the data expansion unit preferably decodes intermediate data to be analyzed to generate intermediate data.
  • the encoded data to be analyzed is preferably compressed data.
  • the data expansion unit specifies the size on the storage unit to secure the data expansion area, and the analysis target data is allocated according to the size of the data expansion area. It is preferable to generate intermediate data by decoding part of the data.
  • the data expansion unit stores the data position at which expansion of the analysis object data is completed, and the stored data position force of the analysis object data is also decoded. It is preferable to generate intermediate data.
  • the data expansion unit determines whether it is necessary to expand the data expansion area and when it is determined that the data expansion area is expanded. .
  • the data expansion unit sets an area adjacent to the data expansion area as a data expansion area to be expanded prior to other areas. . Further, in the data analysis device according to the present invention, the data expansion unit may set an area adjacent to the rear of the data expansion area as a data expansion area to be expanded with priority over other areas. preferable.
  • the data analysis device further includes a data block extraction unit that extracts data blocks as well as intermediate data strength, and the data analysis unit is a data block extracted by the data block extraction unit. It is preferable to analyze
  • the data block extraction unit preferably stores the position of the remaining data from which the data block is extracted among the intermediate data.
  • the data expansion unit move the remaining data to the beginning of the data expansion area according to the position of the remaining stored data. .
  • the data expansion unit generates and expands next intermediate data following the intermediate data after the remaining data in the data expansion area.
  • the data block extraction unit preferably extracts the next data block of the data block from the start position of the stored remaining data.
  • the data block extraction unit preferably stores the extraction status of the data block.
  • the data analysis unit preferably determines a data block analysis method according to the extraction status of the stored data block.
  • the data analysis unit preferably stores the analysis status of the data block.
  • the data block extraction unit preferably determines a data block extraction method according to the analysis status of the stored data block.
  • the analysis target data is data in which character string data of a character code is encoded
  • the data expansion unit generates data from intermediate data It is preferable to detect the code, convert the detected character code to string data, and expand the converted string data into a data expansion area.
  • the analysis target data is data in which character string data of a fixed-length character code is encoded
  • the data expansion unit detects It is preferable to secure the data development area by specifying the fixed length of the character code and the size on the storage unit as the minimum unit.
  • the analysis target data is data in which character string data of a variable-length character code is coded
  • the data expansion unit detects It is preferable to convert the character code into character string data of a fixed length character code.
  • the fixed-length character code converted by the data expansion unit is a fixed-length Unicode.
  • a data analysis method generates intermediate data of data to be analyzed, and performs a data expansion step of expanding the data into a predetermined data expansion area, and data analysis of analyzing the intermediate data. And the data expansion step generates intermediate data sequentially by using a part of the analysis object data, and the data analysis step analyzes the generated intermediate data sequentially.
  • a data analysis program is a program that causes a computer to execute analysis of data, and generates intermediate data of analysis target data in the computer to generate a predetermined data expansion area.
  • the data expansion step executes the data expansion step to expand the data and the data analysis step to analyze the intermediate data, and the data expansion step sequentially generates intermediate data using a part of the analysis target data, and the data analysis step It is characterized by sequentially analyzing the generated intermediate data.
  • a computer readable recording medium stores a data analysis program as described above.
  • a data analysis device is a data analysis device that processes data described in a compressed markup language, comprising a storage unit, and the storage unit is a buffer memory.
  • a data expanding unit for expanding data described in the compressed markup language into a first buffer the data expanding unit including a first and a second cookies used as Also, a first data analysis unit that extracts data blocks from the data power expanded in the browser, and a second data analysis unit that generates an abstract syntax tree from the data blocks extracted by the first data analysis unit, and
  • the first data analysis unit stores the extracted data block in one continuous storage area of the second buffer, and the second data analysis unit transmits the first buffer or the second data analysis unit.
  • An abstract syntax tree is generated using data stored in the buffer.
  • a first buffer of fixed capacity and a second buffer of which capacity is changed as necessary to form one continuous storage area force are used.
  • the analysis of is done.
  • the capacity of the first buffer can be made smaller compared to the prior art.
  • the second buffer is used only when a capacitively involuntary data block appears in the first buffer, the storage area of the storage unit can be efficiently used.
  • the second data analysis unit generates an abstract syntax tree using an analysis result by the first data analysis unit of the extracted data block. Is preferred.
  • the data expansion unit stores the data described in the compressed mark-up language in the first buffer, for each capacity less than the capacity of the first buffer. It is preferable to expand into
  • the first data analysis unit performs the first phrase analysis by performing lexical analysis on the data expanded to the first template. It is preferable to extract data blocks from the data power developed in the buffer.
  • the first data analysis unit preferably performs lexical analysis in accordance with the XML grammar.
  • the first data analysis unit preferably determines the capacity of the second buffer according to the XML grammar.
  • the second data analysis unit preferably analyzes the data according to the SVG grammar.
  • the second data analysis unit It is preferable to analyze the expanded data in the state of being expanded to the first buffer.
  • the first data analysis unit preferably includes a schema language change unit that changes a schema language used for character analysis.
  • the second data analysis unit semantically analyze the data expanded in the first buffer.
  • the second data analysis unit causes the first data analysis unit to extract the block data based on the analysis result of the first data analysis unit. Preferred to be changed,.
  • the first data analysis unit may
  • the first data analysis unit preferably stores a part of the data block in the first buffer in the second buffer.
  • the first data analysis unit is configured to transmit part of the data block in the first buffer and part of the same data block in the second buffer. It is preferable to combine and store in the second buffer.
  • the first data analysis unit is a part of the data block in the first buffer and a part of the same data block in the second buffer.
  • the first data analysis unit Preferably, combine with and store in a third buffer.
  • the first data analysis unit may
  • a data analysis method is a data analysis method in an apparatus for processing data described in a compressed markup language, which is described in a compressed markup language. Extracting the extracted data into the first buffer, extracting the data block expanded into the first buffer and extracting the data block, and extracting the extracted data And storing the data block in one continuous storage area of the second buffer, and generating the extraction syntax tree using the data of the first and second cookies. It is characterized by
  • a data analysis program is a data analysis program for causing a device processing data described in a compressed markup language to analyze data, and a computer , Expanding the data described in the compressed markup language into the first buffer, extracting the data block expanded into the first buffer, and extracting the extracted data block And storing the data in one continuous storage area of the buffer and generating the extraction syntax tree using the data of the first or second buffer.
  • a computer readable recording medium stores the data analysis program described above.
  • FIG. 1 is a view showing a specific example of the configuration of a data analysis apparatus according to a first embodiment of the present invention.
  • FIG. 2 A flowchart specifically showing data analysis processing in the data analysis device of FIG.
  • FIG. 3 is a view showing a specific example in the case where intermediate data of analysis target data in the data analysis device of FIG. 1 is data described in SVG (Scalable Vector Graphics) language.
  • SVG Scalable Vector Graphics
  • FIG. 4 A diagram showing a specific example of status information generated by the data block extraction unit of FIG. 1.
  • FIG. 5 is a diagram showing changes in the state of data expansion processing of the data expansion area in the storage unit of FIG. 1;
  • FIG. 6 is a view showing a specific example of a DOM (Docume nt Object Model) tree generated when the data analysis unit of FIG. 1 executes data analysis.
  • DOM Docume nt Object Model
  • FIG. 7 is a view for explaining a method of securing a data development area in the storage unit of FIG. 1;
  • FIG. 8 is a flow chart specifically showing contents of data block extraction processing and status information update executed in the data block extraction unit of FIG. 1;
  • FIG. 9 A flow chart specifically showing the contents of data block extraction processing and status information update in the data block extraction unit of FIG. 1.
  • FIG. 10 is a diagram showing a specific example of intermediate data of analysis target data when the intermediate data of analysis target data in the data analysis device of FIG. 1 is data described in SVG language.
  • FIG. 11 is a view showing a specific example of intermediate data of analysis target data when the intermediate data of analysis target data in the data analysis device of FIG. 1 is binary.
  • FIG. 12 A diagram showing a specific example of the binary data structure of FIG.
  • FIG. 13 A diagram showing a specific example of the binary data structure of FIG.
  • FIG. 14 A diagram showing a specific example of correspondence between instruction types and data Neute numbers regarding the binary in FIG.
  • FIG. 15 is a view for explaining the case where, in the data analysis processing executed in the data analysis device of FIG. 1, data whose data format becomes binary as shown in FIG. 12 when expanded are expanded; .
  • FIG. 16 A diagram specifically showing an example of the data structure of data to be analyzed with the data size specified.
  • FIG. 17 A diagram specifically showing another example of the data structure of the data to be analyzed, the data size of which is clearly specified.
  • FIG. 20 is a view schematically showing a storage state of data in the continuous buffer area for coupling of the data analysis device according to the second embodiment of the present invention.
  • FIG. 21 A diagram schematically showing a storage state of data in a continuous buffer area for coupling of the data analysis apparatus according to the second embodiment of the present invention.
  • FIG. 22 is a view schematically showing a storage state of data in a continuous buffer area for coupling of the data analysis system according to the second embodiment of the present invention.
  • FIG. 23 is a view for explaining the overall content of data analysis processing in the data analysis apparatus of the second embodiment of the present invention.
  • FIG. 24 is a diagram showing a modification of the configuration of the storage unit shown in FIG. 23.
  • 1 data analysis device 101 control unit, 102 input unit, 103 storage unit, 103A expansion buffer area, 103B continuous buffer area for connection, 103C continuous buffer area, 104 data expansion unit, 105 data block extraction 106, Data analysis unit, 107 output unit, 1001-1009 memory area, 1101, 1103, 1105, 1201 header, 1102, 1104, 1106, 1202-1204 data block.
  • the data analysis device 1 is configured by a central processing unit (CPU) and configured as a control unit 101 that controls the entire device, and communicates with other devices to receive data, and a CD-ROM (Compact
  • the control unit consists of an input unit 102 for reading data recorded on a recording medium such as a Disc-Read Only Memory) and inputting the data, a ROM (Read Only Memory), a RAM (Random Access Memory), etc.
  • Storage unit 103 for storing the program to be executed in 101, data to be analyzed, etc.
  • data development unit 104 for expanding data input via input unit 102 in storage unit 103, and storage unit 103.
  • a data block extraction unit 105 that performs lexical analysis of the extracted data
  • a data analysis unit 106 that performs semantic analysis based on the result of the lexical analysis in the data block extraction unit 105
  • a display device such as a display
  • a transmission unit and an output unit 107 such as an audio output device such as a speaker are included.
  • the above-described data development unit 104, data block extraction unit 105, and data analysis unit 106 may be configured by dedicated hardware such as a dedicated circuit or the like, or a storage device or In a data analysis apparatus comprising an apparatus for reading and writing information recorded in a recording medium, and an information processing apparatus, the information processing apparatus includes a specific program recorded in the storage apparatus or the recording medium. It may be configured to be realized by execution. In addition to the data input through the input unit 102, the data expansion unit 104 can also expand data stored in the storage unit 103 or the like.
  • the input unit 102 inputs data to be analyzed, and passes the input data to the data expansion unit 104.
  • the data to be analyzed by the data analysis apparatus 1 which is input from the input unit 102, is an HTML (Hypertext Markup Language) document or XML tagged in a markup language. (Extensible Markup Language) is composed of several blocks, and each block is not necessarily completely independent. Such data or such data may be GZIP or LZH. Etc. and data converted by a code method such as Base64.
  • HTML Hypertext Markup Language
  • XML tagged in a markup language is composed of several blocks, and each block is not necessarily completely independent.
  • Such data or such data may be GZIP or LZH. Etc. and data converted by a code method such as Base64.
  • the data expansion unit 104 secures a predetermined amount of data expansion area in the storage unit 103, and expands the data expansion area as necessary.
  • Data expanding section 104 expands a part or all of the data to be analyzed input from input section 102 into the data expansion area secured in storage section 103 so as to be able to be analyzed and obtain intermediate data. .
  • the input data is compressed, it is decompressed and expanded, and if encoded, it is decoded and expanded. Also, if it is raw (unanalyzable) data that is not compressed or encoded, it may be copied and expanded as it is.
  • a block of data that is easy to analyze (hereinafter, this data block is referred to as a data block) is extracted from the intermediate data that is the expanded data, and the data analysis unit 106 is extracted. Passed to Also, the data block extraction unit 105 generates status information indicating the extraction status of the data block in the data block extraction unit 105, and stores the status information in the storage unit 103. The data block extraction unit 105 stores the data in the storage unit 103. Data block extraction proceeds with reference to the stored status information.
  • the data input from the input unit 102 may be passed directly to the data expansion unit 104, and subsequent analysis processing may be performed.
  • the power stored in the storage unit 103 may also be transferred to the data development unit 104, and the subsequent analysis processing may be performed.
  • data analysis unit 106 analyzes data as it is without executing processing in data expansion unit 104 or data block extraction unit 105.
  • the input data in the storage unit 103 is used for the portion analyzed by the data analysis unit 106.
  • the area corresponding to the analyzed part of the storage area of may be released sequentially.
  • the data analysis unit 106 analyzes the data block passed from the data block extraction unit 105 with reference to the status information stored in the storage unit 103, and passes the analysis result to the output unit 107.
  • the analysis is, for example, to generate a DOM tree when the intermediate data is data in HTML format. Then, the output unit 107 outputs the analysis result received from the data analysis unit 106.
  • the data analysis result output from the output unit 107 is a tree of the content of the document. It is data constructed as a DOM tree expressed by a structure.
  • the output unit 107 may either store the analysis result received from the data analysis unit 106 in the storage unit 103 or may output it directly to the outside.
  • step S201 part of the data to be analyzed is expanded in the data expansion area secured in storage section 103.
  • step S201 part of the data to be analyzed is When expanding, how much the amount of input data is expanded from the beginning of the data expansion unit 104 may be determined depending on the size of the prepared data expansion area, or after the data expansion. If the capacity of the data can be obtained from the header information etc., it may be determined depending on the size or may be determined depending on the capacity of the input data itself. Further, the size of the data development area may be determined in advance without depending on the input data.
  • a data block of a size suitable for analysis is extracted from the data expanded in the data expansion area (S203).
  • status information indicating the extraction status of the data block by the data block extraction unit 105 is generated, and the force stored in the storage unit 103 or the status information stored in the storage unit 103 is updated.
  • the data block extraction unit 105 executes the extraction of the data block in step S203.
  • the process of extracting data blocks in step S203 will be described later using a specific example.
  • the data block extraction unit 105 preferably stores in the storage unit 103 up to which position of the expanded data the data block has been extracted. By so doing, when the process of step S203 is repeated next, it is possible to extract a data block from the next position (at the position where the previous process was performed).
  • the size suitable for analysis of the data block extracted in step S203 is determined depending on the unit analyzed by the data analysis unit 106.
  • the unit to be analyzed by the data analysis unit 106 is a unit such as a tag and a part surrounded by tags such as a start tag, an end tag, and an empty element tag.
  • tags such as tag names, attribute names, and attribute values that exist in tags correspond.
  • the data analysis unit 106 ignores tags, tag names, etc. that are not to be analyzed and discards them, and extracts data blocks for tags, tag names, etc. that require analysis. This is preferable.
  • the data block extraction unit 105 determines whether the data block extraction has succeeded (S 205). As a result, if it is determined that the data block extraction has succeeded (YES in S205), the data analysis unit 106 analyzes the data of the data block extracted in step S203 (S207). Then, the process is returned to step S203 again. In tap S203, position force data blocks after the position where the data block was extracted in step S203 last time are extracted.
  • step S205 If it is determined in step S205 that the data block extraction has failed (NO in SDOM tree 205), it is determined whether there is an unexpanded portion in the data to be analyzed. It is determined (S209). In step S205, in addition to an error that occurs when the expanded data itself is incorrect data, extraction of the data block has been executed and completed to the end of the expanded data, or the data to be analyzed is If it is detected that the data of the data block is cut off because there is an unexpanded part among them, it is judged that the data block extraction has failed. If it is detected in step S205 that the data itself is correct, the process may be ended immediately.
  • step S209 when it is determined that there is no unexpanded data among the data to be analyzed (NO in S209), that is, the data block is extracted until the end of the data to be analyzed If it is determined in step S 205 that the extraction of the data block has failed because the analysis has been completed, this processing ends.
  • step S 209 when it is determined that there is unexpanded data among the data to be analyzed (YES in S 209), data of the data block is cut off halfway because there is unexpanded data. Since it is determined in step S205 that the extraction of the data block has failed, it is necessary to further expand and analyze the data. Therefore, next, the data block extraction unit 105 determines whether or not there is data that can not be discarded in the data expansion area (S211).
  • step S211 As a result of the determination in step S211, it can not be discarded! /, If the data is not in the data expansion area (NO in S211), that is, if all the data expanded in the data expansion area can be discarded.
  • the data development unit 104 discards all the data in the data development area, and the process returns to step S201, and in step S201, the subsequent data developed in step S201 in the previous data expansion area is emptied. Is expanded.
  • step S211 the data can not be discarded! /
  • data block extraction unit 105 further displays the data in the data development area. It is determined whether all data can not be discarded or not, or some data can not be discarded (S213). If it is determined in step S213 that some of the data expanded in the data expansion area can not be discarded, the data expanded in the data expansion area is broken halfway and can not be extracted as a data block. If there is a case (NO at S213), the data expansion unit 104 discards the remaining portion except the portion that can not be extracted as the data block, and continues the portion after the remaining portion. By expanding the data, it becomes possible to extract the data block as a data block even if the data has been cut halfway. Therefore, in this case, the data development unit 104 moves the portion that can not be discarded to the top of the data development area (S215). This is a preprocessing to expand data behind data that can not be discarded.
  • step S213 If it is determined in step S213 that all the data expanded in the data expansion area can not be discarded (YES in S213), the size of the current data expansion area is smaller than the data block. As it is conceivable, the size of the data expansion area is expanded in the data expansion unit 104 (S217).
  • step S213 it is determined whether the data can not be discarded or not, but it can not be discarded.
  • the data exceeds 80% of the size of the data deployment area. In the case of! /, It may be determined whether or not the predetermined condition is satisfied!,.
  • step S219 the data is continuously expanded in the data expansion area, so that the data block extraction unit 105 can extract it as a block of data blocks, which is passed to the data analysis unit 106.
  • FIG. 1 A specific example of intermediate data obtained by expanding data to be analyzed in the data analysis device 1 according to the present embodiment is shown in FIG.
  • the data to be analyzed in this specific example is assumed to be the intermediate data shown in FIG.
  • the data to be analyzed, or the intermediate data of the data is described below as being described in the SVG language, which is a subset of the XML language. In fact, it consists of several such blocks. It is assumed that each intermediate data is not completely independent of each other, or the intermediate data is encoded data or compressed data. For example, as shown in FIG. 3, data obtained by compressing such intermediate data as LZH or GZIP without using only data described in text may be input to the data analysis device 1.
  • the end tag is expressed by a tag name sandwiched between the character “ku Z” and the character “>”. Also, an empty tag is represented by a tag name sandwiched between the character "K” and the character "Z>”. If the empty tag contains an attribute, it is described between the tag name and "Z>" in the same way as the start tag.
  • the data block extraction unit 105 sets "tag name”, “attribute name 'attribute value”, and “content (character between start tag and end tag)" to one. It shall be extracted as one data block.
  • the data block extraction unit 105 generates an extraction when extracting a data block.
  • the storage unit 103 stores status information indicating the situation.
  • FIG. 4 shows a specific example of the details of the status information generated by the data block extraction unit 105 and stored in the storage unit 103 when the intermediate data is analyzed as data to be analyzed as shown in FIG.
  • the data block extraction unit 105 generates status information as represented by, for example, Status 1-Status 12 as status information representing the extraction status of the data block, and stores the status information in the storage unit 103. .
  • the extraction status of the data block is any of the extracted data block power start tag name, end tag name, empty tag, content, and attribute name 'attribute value', and extraction of the data block fails. If you are extracting what kind of data block and if you are searching for the start position of the data block, etc.
  • the state of the data block extraction unit 105 is represented.
  • the expansion size when expanding the data expansion area in the data expansion unit 104 may be a fixed size for each data analysis device, but the data size of the analysis target, the size after expansion, and the decryption It may be changed according to the later data size. For example, it may be determined to be 1/10 of the data size to be analyzed, or the ratio may be changed depending on the compression method or the coding method. Also, the size may be determined depending on the size and state of the current data expansion area, the size of unexpanded data of the data to be analyzed, and the like. For example, it may be expanded by the same amount as the current data expansion area, or may be expanded by 10% of the size of unexpanded data. Also, if the extracted data block is an "attribute", it may be expanded significantly as compared to the "tag".
  • the size of the data expansion area prepared first may be similarly changed.
  • the data size after expansion and decoding can be determined accordingly only when stored in the header.
  • a data analysis apparatus is not limited to this. Even when the data size after expansion is unknown, prepare a data expansion area of a size determined by a predetermined size or input data size, and expand the data little by little in the area. Therefore, in the data analysis device according to the present embodiment, the storage area of the storage unit can be effectively used.
  • the data developing unit 104 prepares a 10-character data developing area for 10 characters prepared in advance in the storage unit 103.
  • the first force of is also shown in a state where 10 characters are expanded.
  • the data analysis unit 106 analyzes the contents with the data block “svg” passed from the data block extraction unit 105 as the start tag name, and adds the object of the svg element to the DOM tree.
  • the data block extraction unit 105 determines that the character string following the character “ ⁇ ” is the start tag name and the character following the character string “ ⁇ Z” is the end tag name, or the character “>” after the tag name.
  • status information indicating the current status is generated and stored in the storage unit 103, such as "attribute name ⁇ attribute value" until the character string "Z>" appears. It will Then, the data block extraction unit 105 determines the type of data block to be extracted using the status information, and transmits the determination result to the data analysis unit 106.
  • the status information stored in the storage unit 103 may be passed from the data block extraction unit 105 to the data analysis unit 106 together with the extracted data block or at a predetermined timing.
  • the second>rect> tag in Figure 3 is an empty tag with no content. Therefore, when the character string “ ⁇ rect” is extracted, the status information indicating that the extracted data block is the start tag to the data analysis unit 106 from the data block extraction unit 105 via the storage unit 103 is displayed. Passed, it is determined that this tag is an empty tag when the string "Z>" is extracted. In this case, the data block extraction unit 105 passes the character string “Z>” as a data block to the data analysis unit 106 and sets the data analysis unit 106 as an empty tag. Alternatively, the data block extraction unit 105 may pass status information to the data analysis unit 106 that the previous data block is the content of the empty tag.
  • the data block which is the start tag name is passed from the data block extraction unit 105 to the data analysis unit 106, and the data block extraction unit 105 is fed back according to the analysis result in the data analysis unit 106.
  • the status information managed by the data block extraction unit 105 may be changed.
  • the extraction method of the data block of the attribute in the data block extraction unit 105 may be changed based on the status information, particularly when rect> tag and te xt> tag.
  • step S205 when the block extraction unit 105 advances the search, the data expansion area ends behind the character string “width”, and the block extraction unit 105 is in the “attribute name 'attribute value” searching state and the data is Since the end of the data development area has been reached without completion of the block extraction, it is determined in step S205 that the data block extraction has failed (NO in S205).
  • step S215 As shown as state (B) in FIG.
  • the column "width” is moved (copied) to the beginning of the data expansion area.
  • step S219 As shown as state (C) in FIG.
  • the string " " 240 ", which is the subsequent data, is expanded.
  • the data developing unit 104 store in the storage unit 103 how far the data has been expanded in the data expanding unit 104 since the intermediate power of the data to be analyzed is also expanded in step S219. Also, in order to move (copy) data that can not be discarded in step S215, the data block extraction unit 105 counts the length from the start position of the data that can not be discarded or the start position of the data to the current search location. Preferably, the storage unit 103 stores the position and length of the data to be discarded. Furthermore, after the data that can not be discarded in step S215 is moved (copied), the storage unit 1 in the data block extraction unit 105
  • the data expansion unit 104 stores the position and length of the data to be discarded by counting the length from the start position of the data to the location currently being searched for, or the start position of the non-discardable data stored in 03. It is preferable to be updated.
  • step S205 Since extraction of the data block has not been completed and the end of the data development area has been reached, it is determined in step S205 that extraction of the data block has failed (NO in S205).
  • Part 104 expands the data expansion area by five characters as shown as state (D) in FIG. Then, in step S219, the data expanding unit 104 expands the data for the expanded data expanding area as shown in FIG. 5 as state (E), and again in steps S203 to S207, the data block extracting unit 105.
  • the data is analyzed sequentially for each data block until unexplored data in the analysis target data disappears, that is, until the end of the analysis target data.
  • FIG. Figure 6 shows the intermediate data generated when the data shown in Figure 3 is analyzed. Show a concrete example of the DOM tree created!
  • the DOM tree includes SV g element (element), rect element, text element, and svg element and rect element, svg element and text element have a parent-child relationship. I am being scolded. Also, it is shown that content exists in the text element. Furthermore, in each element, width attribute, height attribute, viewBox attribute in svg element, width attribute, height attribute, style attribute in rect element, x attribute and y attribute in text element are represented. ing.
  • the output unit 107 can easily extract the parent-child relationship or sibling relationship between such elements and content, the attribute included in each element, and the attribute value thereof in the data output from the data analysis device 1. Output possible data as an analysis result.
  • the condition that the data development area is expanded in step S 217 is determined above as being expanded in the data development area in step S 213 and all data can not be discarded. For example, as described above, in step S213, 80% or more of the data expanded in the data expansion area is determined to be data that can not be discarded. It is also good. Furthermore, depending on whether the type of data block currently being extracted is a tag name or an attribute, the condition for whether the data expansion area is expanded when the percentage of data that can not be discarded becomes greater changes. May be In addition, the condition may be changed depending on whether the tag name, attribute, or content is currently extracted.
  • the data expansion unit 104 prepares a data expansion area expanded in an area completely different from the current data expansion area of the storage unit 103 by the data expansion unit 104 in step S 217, the data that can not be discarded in step S 215.
  • the processing time will be longer when moving (copying) to a new data development area. Further, even if the data development area currently in use is released after copying the data that can not be discarded after copying the new data development area, the usage of the storage unit 103 is temporarily doubled during the copy processing. Therefore, when the data expansion area is expanded at step S217, it is preferable that the area immediately after the current data expansion area be expanded.
  • the current data Preferably, the area immediately before the data development area is expanded.
  • the storage unit is more than when the expanded data development area is prepared to an area which is significantly different from the current data development area. The amount of 103 used can be reduced.
  • the truncated block represents the memory area in use, and the truncated block represents the memory area unused.
  • step S 217 memory which is the data expansion area by data expansion unit 104.
  • the area after the memory area adjacent to the area 1006 is searched. If the unused memory area adjacent to the memory area 1006 which is the data expansion area can be secured by the data expansion area extension, the data expansion area is expanded behind the memory area 1006 in step S217. Ru. That is, the memory area 1007 is searched and the size thereof is searched if it is unused, and the memory area 1007 is secured as an expanded data expansion area if the size is sufficient compared with the size to be expanded.
  • the memory area 1008 is further searched, and if the size of the memory area 1007 and the size of the memory area 1008 are not used and the size required for the expansion is sufficient, those memory areas are expanded. It is secured as a designated data development area. In this way, the memory sizes up to the memory area in use are sequentially searched and compared with the size required for expansion.
  • the memory area in use is similarly used in the forward direction.
  • the memory size up to the memory area is searched in order, and the size required for expansion Compared with. For example, when memory area 1003 is secured as a data expansion area, and the data expansion area is further expanded in step S217, memory area 1004 after memory area 1003 is in use, so memory area 1002 is searched. If the size required for expansion is sufficient, the memory area 1002 is secured as the expanded data expansion area.
  • the memory area on one side forward or backward of the memory area secured as the data expansion area, if the size required for expansion is insufficient, the size obtained by adding both the forward and backward empty memory areas If the size is sufficient for the expansion, the memory area in both directions is secured as the expanded data expansion area.
  • a continuous memory area is secured as an expanded data expansion area. This is because, as described above, the amount of use of the storage unit 103 can be reduced compared to the case where a data expansion area expanded to an area completely different from the current data expansion area is prepared. That is, if the size of the current data expansion area is 00 bytes and 200 bytes are further expanded, if it is expanded to a memory area adjacent to the data expansion area, the size is adjusted to the current data expansion area. It is sufficient to reserve 600 bytes, but if the expanded data expansion area is secured elsewhere, it is newly added until data that can not be discarded is copied to the newly secured memory area. A total of 1000 bytes of memory is required, including the reserved 600 bytes of memory and the currently used 400 bytes of memory.
  • the data expansion area is expanded behind the data expansion area to expand the subsequent data, It is not necessary to shift the data to the beginning of the data expansion area, which can not be discarded. If the data expansion area is expanded ahead of the data expansion area or if the expanded data expansion area is secured in a completely different memory area, copy the data that can not be discarded to the beginning of the new data expansion area. The processing time is longer than in the former case because processing is required.
  • the process shown in the flowchart in FIG. 8 refers to the status information and refers to the data block when the extraction status of the data block in the current data block extraction unit 105 is “Status 1” shown in FIG.
  • the process is performed until the character “K” that is the start of the element is extracted.
  • the extraction status represented by "Statusl” is initially set if the data to be analyzed (or its intermediate data) is an SVG document such as an XML declaration, DOCTY PE declaration or comment statement. It is the extraction situation.
  • the status information is "Status 1", for example, when the character " ⁇ " appears during the data block extraction of the element content (content). It is set.
  • the data block extraction unit 105 first determines the character at the reading start position, and the character to be read is another character that is neither a character nor a space (space). In the case (NO in S401 and NO in S403), this processing ends and an error is returned as the extraction result.
  • the next character is determined (YES in S403, 5405), and if the character is the character “ ⁇ ” (YES in S401), the next character is It is determined. Then, if the character following the character " ⁇ " is not the character "Z” (NO in S409), "to detect the data block start position and end position of the extraction status start tag name" The status information is updated to “Status 2”. Then, the extraction process of the data pattern in the extraction situation is continued.
  • the extraction status is to detect the data block start position and end position of the end tag name. Migrate to "Stat usl2" and update the status information. Then, the extraction process of the data block in the extraction situation is continued.
  • step S405 or S407 determines that the next character is determined and the end of the data expanded in the data expansion area is exceeded.
  • step S205 it is determined that the extraction of the data block has failed.
  • step S211 the data development area It is determined that data can not be discarded, but data is expanded to a data expansion area, and all data can be discarded.
  • the first position of the tag name (the start position of the data block) is stored (S601), and if the following character is a character to be used as the tag name, then The character is determined (YES in S603, S605). Then, when the character is no longer used as the character name tag name (NO at S603), the position is stored as the last position of the tag name (the end position of the data block) (S607).
  • the extraction status is subsequently transferred to “Status 3” for detecting the attribute name, and the status information is Information is updated. Then, the extraction process of the data block in the extraction situation is continued. If the character at that position is the character ">" (NO in S609, YES in S611), the extraction status is "Status 7" for subsequently detecting the content of the element (content). And the status information is updated. Then, the extraction process of the data pattern in the extraction situation is continued.
  • the extraction status is “Statusl l” for detecting the end of the tag. And the status information is updated. Then, the extraction process of the data block in the extraction situation is continued. Also, if the character at that position is other than that (S609-S613 NO), this processing is ended and an error is returned as the extraction result.
  • the data block Preferably, information indicating the first position and the last position of the tag name or information indicating the length of the tag name is passed from the extraction unit 105 to the data analysis unit 106.
  • the data analysis unit 106 can analyze data blocks including tag names.
  • step S 605 when the next character is to be determined, in the data development area, If it exceeds the end of the expanded data, the interrupt processing returns the processing to the processing shown in FIG. 2 which is the main routine, and it is determined in step S205 that the data block extraction has failed. Then, in step S211, it is determined that all data that can not be discarded in the data expansion area can be discarded! /, That is, expanded in the data expansion area.
  • data block extraction unit 105 while the status information is updated every moment according to the extraction status of the data block, the intermediate data force expanded in the data expansion area based on the status information
  • the block extraction processing is advanced, and the extracted data block is delivered to the data analysis unit 106. Also, together with the data block (or at a timing different from the timing when the data block is passed), information on the data block is passed from the data block extraction unit 105 to the data analysis unit 106.
  • the data block extraction unit 105 extracts up to the end of the content as one data block. Instead, it may be extracted as a data block in units of one character and passed to the data analysis unit 106. Also, in the extraction processing when the extraction status is “Status 8”, when the next character is determined and the end of the data expanded in the data expansion area is exceeded, the data block extraction unit 105 determines that state. To the data analysis unit 106, and after the subsequent intermediate data is expanded, extraction of the data block is continued, and the data block previously transferred to the data analysis unit 106 is As a continuation of, let 's pass an extracted data block.
  • data analysis device 1 analyzes data by extracting data blocks as shown in FIG. The case will be described.
  • the image element is included in the second line and the fourth line, and the image data encoded with the base64 in the xlin k: href attribute is described as an attribute value. .
  • the data analysis unit 106 resolves the attribute name of the xlink: href attribute of the image element.
  • the data block extraction unit 105 specifies the data block extraction unit 105 to pass the data block of the attribute value in units of, for example, 20 characters. You may be able to change the behavior such as how to pass.
  • Encoding method base 64 is an encoding method that can start conversion without having all the encoded data complete.
  • the data analysis unit 106 can analyze the character string “data :; base64,” at the beginning of the data block and detect that the encoding method of the image data is base64, such small data It is possible to receive block units from the data block extraction unit 105 and execute analysis.
  • the above-described specific example is an example when the data analysis apparatus 1 is data obtained by coding the character string data of the data character code of the analysis target.
  • the character code is the international character set defined as ISOZ IEC 10646-1: UCS (Universal multi-octet coded Character Set)-2 or UCS-4, the conversion method UTF (UCS Transform Format-8) conversion Character codes, etc.
  • UCS-2 and UCS-4 are character codes in which one character is represented by a 2-byte and 4-byte fixed-length byte string, respectively.
  • the intermediate data is data consisting of a character code represented by such a fixed-length byte string
  • the data expansion unit 104 the data expansion unit 104 The character code is detected from the intermediate data, and the detected character code is converted into a byte string of a predetermined fixed length.
  • the character code converted by UTF-8 is a character code represented by a variable-length byte string of 1 to 16 bytes. If the data block extraction unit 105 and the data analysis unit 106 treat data as a variable-length character code such as a character code converted to UTF-8, the character code may only be read by one character. However, processing becomes difficult because the number of bytes is different. Therefore, when the data expansion unit 104 expands data to be analyzed into intermediate data, if the intermediate data is data consisting of such a variable-length character code, the data expansion unit 104 also converts the intermediate data power. It is preferable to detect the character code and convert the detected character code to a fixed-length byte string.
  • the data development unit 104 determines the size of the data development area as the minimum length of the data development area as the fixed length of the byte string for converting the character code . Also, if there is an unexpanded portion in the data to be analyzed, the data expansion unit 104 detects that the intermediate data has a character code less than one character data, a character code less than the one character data. It is preferable to move to the beginning of the data expansion area, expand the continuation of the data to be analyzed, and convert these character codes into fixed-length byte strings as one-character data. Also, one character of data may be regarded as one data block. In this case, the data analysis device analyzes data in units of one character and changes the current analysis state.
  • the encoded data whose intermediate data is data described in the SVG language, which is a subset of the XML language, is an analysis target
  • the intermediate data may be binary as shown in FIG.
  • the analysis processing can be performed as in the case where the data to be analyzed is text data. Therefore, the case of analyzing data in which the intermediate data is binary as shown in FIG. 11 by the data analysis device according to the present embodiment will be specifically described below.
  • the binary which is intermediate data is an instruction which is a data structure as shown in FIG. 12 or an instruction which is a data structure as shown in FIG. 13 and FIG. .
  • the instruction which is a data structure shown in FIG. 12, is the first 1 byte of the instruction, the number of bytes of data attached to this instruction is stored, and the attached data follow.
  • An instruction that is a data structure shown in FIG. 13 is an instruction whose first byte is an instruction followed by data attached to this instruction, but as shown in FIG.
  • the number of bytes of data is predetermined. For example, it is determined in advance that 5 bytes of data must always be attached to the “0 ⁇ 12” instruction, and that “0 ⁇ 12” instructions must always be attached with 6 bytes of data.
  • step S 201 As the state (A), the data processing unit 104 is used in step S 201 described above.
  • the first data force of 5 bytes is shown expanded.
  • the data block extraction unit 105 transmits data to the data expansion unit 104 in steps S203 to S207. Request to further expand the data.
  • step S217 as shown in state (B) in FIG. 15, the data expansion unit 104 expands the data expansion area by 5 bytes.
  • step S 219 as shown as state (C) in FIG. 15, the data expanding unit 104 expands subsequent data after the already expanded data in the expanded data expansion area. . Then, in step S205, the data block extraction unit 105 succeeds in extracting six bytes as a data block at the head force, and is passed to the data analysis unit 106 in step S207.
  • step S203 the data block extraction unit 105 extracts data blocks from the seventh byte onwards. Since the first and seventh bytes of the data are “0 ⁇ 230 ⁇ 05”, the data block extraction unit 105 determines that 5 bytes of data are to be attached. However, since the data is cut off by only 2 bytes after this, it is determined that the 7th and subsequent bytes in the data expansion area are data that can not be discarded (YES in S209, YES in S211, NO in S213). ). Therefore, as shown in FIG. 15 as state (D) in step S215, the 7th-10th byte data is moved to the beginning of the data development area, and in step S219 the state in FIG. Subsequent data are expanded as indicated by (E).
  • step S203 the data block extraction unit 105 extracts 7 bytes from the top of the data development area as a data block, and is passed to the data analysis unit 106 in step S207.
  • step S207 the data analysis unit 106 receives the data from the data block extraction unit 105.
  • the instruction and attached data are analyzed from the data block, and the contents are constructed as output data.
  • FIG. 15 shows, as state (A), a state in which the initial power of the data is also expanded by 5 bytes by the data expansion unit 104 in the above-mentioned step S201.
  • state (A) since the beginning of the data is “0 ⁇ 12”, it is determined by the data block extraction unit 105 that 5 bytes of data are to be attached based on the rules shown in FIG. It is done. Therefore, the data block extraction unit 105 further expands the data in the data expansion unit 104 in steps S203 to S207 because there is only a data strength byte following “0 ⁇ 12” expanded in the data expansion area at present. To request.
  • step S217 the data development area is expanded by 5 bytes as shown as state (B) in FIG.
  • step S219 as shown as state (C) in FIG. 15, the data expanding unit 104 expands the subsequent data after the already expanded data in the expanded data expanding area. . Then, in step S205, the data block extraction unit 105 succeeds in extracting six bytes as a data block at the head force, and is passed to the data analysis unit 106 in step S207.
  • step S203 the data block extraction unit 105 extracts data blocks from the seventh byte onwards. Since the first byte of the data is “0 ⁇ 23”, it is determined that 6 bytes of data are to be added, based on the rules shown in FIG. After that, since the data is cut off with only 3 bytes, it is judged that the 7th and subsequent bytes in the data development area are data that can not be discarded (YES in S209, Y ES in S211). No in S213). Therefore, in step S215, as shown in state (D) in FIG. 15, the 7th to 10th bytes of data are moved to the top of the data development area, and step S2 At 19, the following data is expanded, as shown as state (E) in FIG.
  • step S203 the data block extraction unit 105 extracts 7 bytes from the top of the data development area as a data block, and is passed to the data analysis unit 106 in step S207.
  • the data to be analyzed has a clear data block length. Even in the case of data having a data structure that is not shown, in the area where the data to be analyzed or the intermediate data obtained by expanding the data is stored, the portion for which analysis is completed is released. Can be used as a work area. Therefore, even if the data to be analyzed is data in which the length of the data block is explicitly specified, the data of the data structure is compressed! /, The data after coding is expanded as a data expansion area. Analysis can be performed in a smaller size than the data capacity, and the amount of storage used at the time of data analysis can be reduced.
  • the basic configuration of the data analysis device of the present embodiment can be the same as the configuration of the data analysis device described with reference to FIG. 1 and the like in the first embodiment. Therefore, hereinafter, data analysis device 1 shown in FIG. 1 will be described as a data analysis device of the present embodiment.
  • the data analysis device of the present embodiment decompresses compressed markup language data (for example, compressed SVG data (SVGZ data)), and internal data structure of the decompressed data. It is characterized by the aspect of processing (data analysis processing) for analyzing
  • FIG. 18 is a flowchart of data analysis processing performed in the data analysis device of the present embodiment. Referring to FIG. 18, the operation of the data analysis device of the present embodiment. The process shown in the flowchart of FIG. 18 is realized, for example, by the control unit 101 reading and executing a program stored in the storage unit 103 and controlling each unit shown in FIG.
  • data is input via input unit 102.
  • the data is expanded in the data expansion area (the expansion buffer area 103A in FIG. 23, which will be described later) secured as a continuous buffer in the storage unit 103 by the SVGZ data force data expansion unit 104 (S2001).
  • the data decompression unit 104 decompresses SVGZ data of a capacity according to the size of the above-mentioned buffer area for decompression.
  • 100 K bytes of SVG data can be obtained by completely expanding 10 K bytes of SVGZ data
  • the capacity of the development knocker area is 50 Kbytes and the force is not secured, the data expansion unit 104 sets the capacity of SVGZ data to be expanded at one time to 5 Kbytes.
  • the data block extraction unit 105 performs lexical analysis of the expanded data, and detects a data block determined according to the XML grammar (S2003).
  • the SVG language follows the XML grammar because it is a subset of the XML language.
  • “detection of data block according to XML grammar” in S2003 means “white space (white space) consisting of one or more space characters, carriage return, line feed, and tab. e) ”or a method of detecting the beginning or end of a data block by the appearance of a markup delimiter.
  • the beginning or the end of the block may be detected by the occurrence of an equal sign, a single quotation mark, or a double quotation mark.
  • the data block extraction unit 105 sets a flag or the like, and the end of the data block. Indicates that does not exist in the deployment area at that time. Then, the subsequent data processing in the data block is expanded in the expansion buffer area by the data expansion unit 104 in the processing of the next S2001, and the data block extraction unit 105 is expanded in the processing of the next S2003. The presence or absence of data constituting the end (last) of the last disconnected data block in the buffer area for expansion is detected last time.
  • the data block extraction unit 105 may be configured to analyze data blocks in accordance with grammar rules described in a schema language such as XML Schema and Relax. For example, a part surrounded by element A can contain two elements B. If there is a limit, the number of element B present in the part surrounded by element A is fed back based on the analysis result from data analysis unit 106, and the third element B attribute name, attribute value, and content are data Do not perform block extraction.
  • a schema language such as XML Schema and Relax.
  • the data block extraction unit 105 can analyze the data block according to a plurality of schema languages, and is used for analysis of the data block based on the type of the data block, the setting of the user, etc. You can also change the schema language.
  • the data block extraction unit 105 notifies the data analysis unit 106 of the type of data block (S2004).
  • the information obtained by XML analysis is notified, such as the content of the detected data block is the start tag name or attribute name.
  • Specific examples of the process actually performed as the notification in this case include setting a flag that causes the start of the process for semantic analysis in the data analysis unit 106, and the like. Further, in the notification here, the status information is used as described in the first embodiment using FIG.
  • the data block extraction unit 105 notifies the control unit 101 whether the extracted data block is in the above-described expansion buffer area from the beginning to the end (S2005).
  • the data analysis unit 106 performs semantic analysis of the data with respect to the data block in the expansion area (see FIG. S2007). Note that the semantic analysis of S 2007 is performed on the data block as SVG, for example, whereby the generation of the DOM tree and the transition of the current analysis state are performed.
  • the data analysis unit 106 determines the type and unit (size) of the data block at the time of detection of the next data block by the data block extraction unit 105.
  • S2008 For example, if a comment is not extracted as a data block, data will be read and discarded until the end of the comment "->" appears if the comment start " ⁇ !-” Appears. Is possible. Conversely, when extracting a comment as a data block, you may treat the character string enclosed by "!--" And "-->" as one data block, but treat it as a data block in one-character units. Well! ,.
  • the data analysis unit 106 performs semantic analysis on data of a size sufficient to determine whether it is a file name or data. Specifically, first, for example, only 100 bytes may be analyzed semantically, and only when encoded in base 64, it may be analyzed and decoded in units of one character.
  • the coupling continuous buffer area is a storage area defined in the storage unit 103, and is a continuous storage area defined separately from the above-mentioned expansion buffer area.
  • the capacity of the continuous buffer area for combination for extracting the next data block of the data block from the start position of the stored remaining data is, for example, according to the character analysis mode of the data block extraction unit 105. Be determined. That is, for example, when the data block extraction unit 105 performs character analysis according to the XML grammar, Will be decided. For example, in XML grammar, element names must always be blank (including line feed) or ">" or "Z" immediately after "ku”, such as "ku text""kutext>"”ku text Z>" When it appears, there is a rule, and until it appears, it is decided to be an element name, and so on.
  • the capacity of the contiguous buffer area is 50 bytes, and if the attribute name is 100 bytes, the capacity of the contiguous buffer area can not be sufficient. For example, the capacity of the continuous buffer area for coupling may be increased as needed at any time.
  • the data block extraction unit 105 determines whether or not the capacity of the continuous buffer area for coupling is sufficient for joining data as described above, and if it is determined that it is small, the size is sufficiently large.
  • a continuous buffer area for combining data may be separately secured in the storage unit 103 as shown as a continuous buffer area 103C in FIG. In this case, the data block extraction unit 105 joins data in the newly secured connection continuous buffer area 103C. In this case, the newly reserved continuous buffer area 103C constitutes the third buffer of the present invention.
  • the copy of the data in S2011 is the data block extraction unit in S2003.
  • the end of the data block or the end of the buffer area for expansion is detected by 105, it may be performed in block units, or data block in smaller units, such as 1-character units or 1-byte units. May be performed sequentially until the end of the can be detected
  • the data block extraction unit 105 checks whether the data from the beginning to the end of the data block exist in the continuous buffer area for connection (S2 013), and the data block If there is only a part of, proceed to S2009. On the other hand, if all exist, the data analysis unit 106 semantically analyzes the data block present in the continuous buffer area for coupling (S2015), and advances the process to S2008.
  • the process proceeds to S2009, and detection of the data block is performed until the end of the expansion buffer area. Therefore, when processing proceeds from S 2009 to S 2017, it should always be judged that there is unexpanded data. From this, in the data analysis device, when it is determined that only part of the data of the data block is present in the continuous buffer area for coupling (when NO in S2013), unexpanded data is not present in S2017. If it is determined that (S2017 NO), error processing is performed.
  • the error process is, for example, a process in which a process related to analysis of data is stopped and a notification that an error has occurred is issued.
  • the buffer area force areas 2104 2105 2106 2107 for expansion are shown. These may be expanded into different buffer areas, but may be expanded into the same storage area as an expansion noffer area at different timings. That is, for example, after data is expanded in area 2104 and processing such as analysis of the data expanded in area 2104 is completed, if data is expanded next in the same area, the same area strength area 2105 is generated. It is assumed. Also, in the case of the area 2106, for example, if the same area as the area 2105 and data is overwritten to the area designated as the area 2105, the same area after being overwritten is regarded as the area 2106. Also for area 2107, For example, if data is overwritten in the same area as the area 2106 and the area 2106, the same area after being overwritten is made the area 2107.
  • the expanded data 2100 is assumed to include three data blocks such as data blocks 2101, 2102, and 2103.
  • the data that make up each data block is hatched differently for convenience.
  • FIG. 19 is expanded to the area 2104 in the first S2001, and is expanded to the area 2105 in the second S2001, and the area 2106 in the third S2001. It is shown that it is expanded to the area 2107 in the fourth S2001.
  • the entire data block 2101 and a part of the data block 2102 are expanded in the area 2104 which is a buffer area for expansion.
  • Region 2104 contains the beginning of data block 2102.
  • Region 2105 includes the middle portion of data block 2102.
  • the end portion of the data block 2 102 and the first half of the data block 2103 are expanded in the area 2106 which is a buffer area for expansion.
  • the second half of the data block 2103 is expanded in the area 2107 which is a buffer area for expansion.
  • Data block 2101 has its first and last data expanded in its buffer area for expansion by one expansion process. For this reason, with respect to the data block 2101, after the processing of S2005, processing power is advanced as in S2007, S2008, S2009! In the area 2104 (buffer area for expansion), even if the lexical analysis is performed to the end of the data block 2101, the lexical analysis is not performed to the end of the area 2104. It is returned to S2003.
  • FIG. 20 to FIG. 22 schematically show the storage state of data in the continuous buffer area for coupling.
  • each is shown as a continuous buffer area force area 2300 for coupling, and part or all of the data block 2102 is copied to / from areas 2300, 2301 and 2302. Forced, shown to be applied.
  • the buffer area force secured at least at that time is represented by a solid line.
  • the areas 2300, 2301 and 2302 may have the same position and capacity of the buffer area, or may be different buffer areas having different positions and capacities.
  • the data block 2102 in which only the top portion is expanded in the area 2104 which is a buffer area for expansion is, as shown in FIG. It is copied to the area.
  • the area 2104 is performed.
  • the data may be overwritten as the area 2105.
  • the area 2105 can also be defined in an area in the storage unit 103 that is different from the area set as the area 2104.
  • the same storage unit 103 is also used for the construction of a DOM tree of data analysis results and data analysis, it may be difficult in some cases to secure a continuous knocker in the storage unit 103. It is desirable that the data expansion unit 104 use the same continuous buffer in the storage unit 103 as an expansion buffer area until analysis of all data input through the input unit 102 is completed.
  • the data block 2102 partially expanded in the expansion buffer area 2105 is the data of the portion expanded in the area 2105 by the processing of S2011 executed again. As shown at 21, the data is copied to the area 2300. At this time, in the area 2300, the data at the beginning of the data block 2102, which has been copied first, and the area developed in the area 2105 are joined.
  • the data block 2102 whose rear end is expanded in the area 2106 which is a buffer area for expansion is the data of the part expanded in the area 2106 by the processing of S2011 executed again. It is copied to area 2300 as shown in FIG. At this time, area 23 At 00, the data at the head and middle of the data block 2102, which was previously copied, and the rear end developed in the area 2106 are joined.
  • the data block extraction unit 105 notifies the data analysis unit 106 of the type and the like of the data block in S2004.
  • the data block extraction unit 105 transmits a start tag, an end tag, an empty tag, an attribute name, an attribute value, and a content to the data block according to the XML grammar. (Contents sandwiched by tags), comments, etc. can be detected by lexical analysis. Then, the data block extraction unit 105 notifies the data analysis unit 106 of the data block type and the data block that are the element name, the attribute name, and the attribute value as a result of the lexical analysis.
  • the data block extraction unit 105 uses attribute values “text” as element names, “x” as attribute names, and attribute values of X. It is possible to detect a certain “10”, “abc (blank) (blank) (blank) def” of the content, and for the data analysis unit 106, whether the detected data block is an element or not Can communicate information such as whether there is.
  • the data analysis unit 106 semantically analyzes the contents of the data block detected by the data block extraction unit 105 by the lexical analysis, and as a result of the semantic analysis, the data block extraction unit 105 performs the lexical analysis. As a result of the above, it is possible to notify a data block unit that is notified to the data analysis unit 106 that is a unit of data block suitable for semantic analysis.
  • the data analysis unit 106 analyzes the meaning of the element name "text", and the content of the content contains a character string. Notice. Note that if the attribute value of the attribute "xml: space” is either 6561 ⁇ 6 or "(16 £ &1111;” and the attribute value is "preserve”, keep the space in the content. Applied to the above example in the sense that there are three spaces between abc and def Be explained. On the other hand, when the attribute value is "default”, consecutive blanks in the content are interpreted as one. As described above, as in the case where the attribute is "xml: space", etc., if the types of attributes that can be possessed are always finite types, one data block is extracted by the data block extraction unit 105. The size and strength of the data determined to be
  • the data is data representing a file name or data representing an image and subjected to processing such as encoding with base 64 as described below.
  • the data analysis unit 106 is present.
  • nref filename
  • ⁇ image xlink: href "data: image / jpeg; base64, / 9j / 4AAQSkZJRgAB AQEAYABgAAD /
  • the data analysis unit 106 determines whether the attribute value is a file name from the element name “image” and its attribute name “xlink: href”. For this reason, the data analysis unit 106 passes the first several dozens of hundreds of bytes to the data block extraction unit 105 (as it stores the data in the continuous buffer area for coupling at one time). Give notice. Then, the portion “data: imageZjpeg; base64,” included in the data encoded by the above base64 appears in the data to be analyzed by the data analysis unit 106, so that the object of interpretation is generated. The data in question is determined to be base64 encoded data, and the data block extraction unit 105 is notified that the attribute value thereafter can be subjected to semantic analysis in units of one character. Based on such notification, the data block extraction unit 105 changes the size of the data block to be extracted.
  • FIG. 23 is a block diagram of the data analysis apparatus according to the second embodiment of the present invention described above. The figure for demonstrating the content of data analysis entirely is shown. FIG. 23 shows a state in which the above-mentioned expansion buffer area 103A and coupling continuous buffer area 103B are defined and stored in the storage unit 103! / ⁇ .
  • SVGZ data force input via input unit 102 causes data expansion unit 104 to respond to the size of expansion buffer area 103 A.
  • SVG data is expanded in the expansion buffer area 103A.
  • the data block extraction unit 105 performs lexical analysis according to the XML grammar for the expanded data, and notifies the data analysis unit 106 of the result.
  • the data analysis unit 106 sequentially generates a DOM tree based on the SVG data expanded in the expansion buffer area 103A in response to such notification.
  • the data block extraction unit 105 uses the interrupted portion as the coupling block. Copy to the continuous buffer area 103B of Such work is sequentially performed, and the interrupted data blocks are combined in the combining continuous buffer area 103 B and used by the data analysis unit 106 to generate a DOM tree.
  • DOM tree generated in the present embodiment is an example of an abstract syntax tree for SVG data, and the abstract syntax tree in the present invention is not limited to this.
  • the data analysis device Data analysis methods can also be provided as a program.
  • a program may be recorded as a computer readable recording medium such as a flexible disk, a CD-ROM, a ROM, a RAM and a memory card attached to the computer, and may be provided as a program product.
  • the program can also be provided by recording on a recording medium such as a built-in hard disk.
  • the program can also be provided by downloading via a network.
  • the provided program product is installed in a program storage unit such as a hard disk and executed.
  • the program product includes the program itself and a recording medium in which the program is recorded.

Abstract

In a data analysis device, intermediate data of the data to be analyzed is spread in a data spread area on a memory little by little (S201). From the intermediate data which has been spread, a data block of a unit which can be analyzed is acquired (S203) and the data block is subjected to data analysis (S207). When the data spread area has a size smaller than the data block of the unit which can be analyzed, the data spread area size is extended (S217) and subsequently, the data is spread.

Description

明 細 書  Specification
データ解析装置、データ解析方法、データ解析プログラム、およびデータ 解析プログラムを記録した記録媒体  Data analysis apparatus, data analysis method, data analysis program, and recording medium recording data analysis program
技術分野  Technical field
[0001] この発明はデータ解析装置、データ解析方法、データ解析プログラム、およびデー タ解析プログラムを記録した記録媒体に関し、特に、データ解析時の、記憶装置の使 用量を削減することができるデータ解析装置、データ解析方法、データ解析プロダラ ム、およびデータ解析プログラムを記録した記録媒体に関する。  The present invention relates to a data analysis apparatus, a data analysis method, a data analysis program, and a recording medium recording the data analysis program, and in particular, data analysis that can reduce the usage of a storage device at the time of data analysis. The present invention relates to an apparatus, a data analysis method, a data analysis program, and a recording medium recording the data analysis program.
背景技術  Background art
[0002] 近年、携帯電話などの携帯情報端末は高機能化かつ多機能化に向力つており、従 来パーソナルコンピュータで扱っていたような複雑で大容量のデータを処理する能力 が求められている。し力しながら、このようなデータを解析して処理しょうとすると、携 帯電話などの携帯情報端末に備えられた記憶装置の容量は不足する傾向にある。  [0002] In recent years, mobile information terminals such as mobile phones have been promoted to be highly functional and multifunctional, and the ability to process complex, large-volume data as was conventionally handled with personal computers is required. There is. If you try to analyze and process such data, you will tend to run out of storage capacity in portable information terminals such as mobile phones.
[0003] データ解析装置である従来の携帯電話などの携帯情報端末では、圧縮データをす ベて展開できるだけのデータ展開領域を記憶部に用意して、そこに圧縮データのす ベてを展開して解析する。つまり、展開後のデータサイズが 1Kバイトであれば、 1K ノイト分のデータ展開領域を記憶部に用意しなくてはならない。そのため、携帯情報 端末において展開後のサイズの大きなデータが扱われる場合には、当該携帯情報 端末の記憶装置の容量が不足する場合がある。  [0003] In a conventional portable information terminal such as a mobile phone, which is a data analysis device, a storage area is provided with a data expansion area sufficient to expand all compressed data, and all compressed data is expanded there. Analyze. In other words, if the data size after expansion is 1 Kbyte, it is necessary to prepare a data expansion area for 1 K noot in the storage unit. Therefore, when large data after expansion are handled in the portable information terminal, the capacity of the storage device of the portable information terminal may be insufficient.
[0004] なお、データサイズが明示された解析対象のデータの、データ構造の具体例として は、図 16や図 17に示されるデータ構造が挙げられる。つまり、解析対象のデータに は、図 16に示すように、データブロック 1102, 1104, 1106ごとのヘッダ 1101, 110 3, 1105を含むもの力ある。ヘッダ 1101, 1103, 1105は、それぞれ、続くデータブ ロック 1102, 1104, 1106のサイズ、または、展開後のサイズに関する情報を含むも のがある。また、解析対象のデータには、図 17に示すように、データごとにヘッダ 12 01を含むもの力ある。ヘッダ 1201は、続くすべてのデータブロック 1202, 1203, 12 04の長さ、または、展開後の長さに関する情報を含む。 [0005] このような問題点を解決するために、たとえば特許文献 1では、連続で大量のデー タを伝送することを可能とするマルチメディアデータ ·処理システムを開示して ヽる。 上記システムは、データ'ストリーミングを制御し、実時間による連続的なストリーミング を提供する。 Note that, as a specific example of the data structure of the data to be analyzed, the data size of which is specified, there are data structures shown in FIG. 16 and FIG. That is, as shown in FIG. 16, the data to be analyzed includes headers 1101, 1103, and 1105 for each data block 1102, 1104, and 1106. The headers 1101, 1103 and 1105 contain information on the size of the subsequent data block 1102, 1104 and 1106, respectively, or the size after expansion. In addition, data to be analyzed includes a header 1201 for each data as shown in FIG. The header 1201 contains information on the length of all subsequent data blocks 1202, 1203, 12 04 or the length after expansion. [0005] In order to solve such problems, for example, Patent Document 1 discloses a multimedia data processing system capable of transmitting a large amount of data continuously. The system controls data streaming and provides continuous streaming in real time.
特許文献 1:特開平 5- 265781号公報  Patent Document 1: Japanese Patent Application Laid-Open No. 5-265781
発明の開示  Disclosure of the invention
発明が解決しょうとする課題  Problem that invention tries to solve
[0006] 特許文献 1に開示されているようなストリーミングで使用されるデータは、データのす ベてを受信しなくても再生を開始できるように、データの中の解析が終わった部分が 削除できるように、解析対象のデータブロックが完全に独立したデータ構造になって いる。 [0006] Data used in streaming as disclosed in Patent Document 1 is deleted from the analyzed part of the data so that playback can be started without receiving all the data. As you can, the data block to be analyzed has a completely independent data structure.
[0007] し力しながら、このような完全に独立したデータブロックを持たないデータ構造のデ ータを解析する場合、すべてのデータの解析を終えるまで解析対象のすべてのデー タをまったく削除できないため、解析対象のデータ容量が大きいと、記憶領域がすぐ に不足するようという問題があった。  However, when analyzing data in a data structure that does not have such completely independent data blocks, all data to be analyzed can not be deleted at all until analysis of all data is complete. Therefore, if the data volume to be analyzed is large, there is a problem that the storage area runs out quickly.
[0008] また、解析対象のデータが、完全に独立したデータブロックを持たな 、データ構造 を有するデータが圧縮または符号化されたものであった場合、上述のように、解析対 象のデータをすベて解凍または復号ィ匕して解析を行なうために、解析対象のデータ 容量に比して非常に大きなデータ展開領域を用意しなくてはならないという問題もあ つた o  Also, if the data to be analyzed does not have completely independent data blocks and the data having a data structure is compressed or encoded, as described above, the data to be analyzed is There is also a problem that a very large data expansion area must be prepared relative to the data volume to be analyzed in order to perform analysis completely by decompression or decoding o
[0009] 本発明は、上述の問題点を解決するためになされたものであって、上記のような解 析対象のデータが記憶されている領域のうち解析が終了した部分を解放して作業領 域として使用できるようにすることや、圧縮または符号化された解析対象のデータの データ展開領域として展開後のデータ容量に比して少な 、大きさで解析できるように することによって、データ解析時の記憶装置の使用量を削減することができるデータ 解析装置、データ解析方法、データ解析プログラム、およびデータ解析プログラムを 記録した記録媒体を提供することを目的とする。  The present invention has been made to solve the above-mentioned problems, and an area where the analysis target data is stored as described above is released to release a part where analysis is completed. Data analysis by making it possible to use it as a region or analyzing it in a smaller or smaller size than the data volume after expansion as a data expansion region of compressed or encoded data to be analyzed It is an object of the present invention to provide a data analysis device, a data analysis method, a data analysis program, and a recording medium recording the data analysis program, which can reduce the amount of use of a storage device at the time.
課題を解決するための手段 [0010] 本発明の或る局面に従ったデータ解析装置は、解析対象データの中間データを生 成して、所定のデータ展開領域に展開するデータ展開部と、中間データを解析する データ解析部とを備え、データ展開部は、解析対象データの一部ずつを利用して順 次中間データを生成し、データ解析部は、生成された中間データを順次解析するこ とを特徴とする。 Means to solve the problem A data analysis apparatus according to an aspect of the present invention generates intermediate data of analysis target data, and analyzes the intermediate data and a data expansion unit that expands the data to a predetermined data expansion area. The data expanding unit generates intermediate data in sequence using part of each of the data to be analyzed, and the data analyzing unit analyzes the generated intermediate data in sequence.
[0011] 本発明の或る局面によると、解析対象のデータが、データブロックの長さが明示さ れていないようなデータ構造のデータであった場合でも、解析対象のデータ、または 該データが展開されて得られる中間データが記憶されている領域のうち、解析が終 了した部分が解放されて作業領域として使用できる。そのため、解析対象のデータが 、データブロックの長さが明示されていないデータ構造のデータを圧縮ないし符号ィ匕 されたデータであっても、データ展開領域として展開後のデータ容量に比して少な 、 大きさで解析でき、データ解析時の記憶装置の使用量を削減することができる。  According to an aspect of the present invention, even if the data to be analyzed is data having a data structure such that the length of the data block is not specified, the data to be analyzed or the data is Of the area where intermediate data obtained by expansion is stored, the part for which analysis has been completed is released and can be used as a work area. Therefore, even if the data to be analyzed is data obtained by compressing or coding data of a data structure in which the length of the data block is not clearly specified, it is less than the data capacity after expansion as a data expansion area. The size can be analyzed, and the amount of storage used at the time of data analysis can be reduced.
[0012] また、本発明に従ったデータ解析装置では、データ展開部は、符合化された解析 対象データを復号化して中間データを生成することが好ま 、。  Further, in the data analysis device according to the present invention, the data expansion unit preferably decodes intermediate data to be analyzed to generate intermediate data.
[0013] また、本発明に従ったデータ解析装置では、符合化された解析対象データは、圧 縮されたデータであることが好ま 、。 Further, in the data analysis apparatus according to the present invention, the encoded data to be analyzed is preferably compressed data.
[0014] また、本発明に従ったデータ解析装置では、データ展開部は、記憶部上に大きさを 指定してデータ展開領域を確保し、データ展開領域の大きさに応じて、解析対象デ ータの一部を復号ィ匕して中間データを生成することが好ま 、。 Further, in the data analysis device according to the present invention, the data expansion unit specifies the size on the storage unit to secure the data expansion area, and the analysis target data is allocated according to the size of the data expansion area. It is preferable to generate intermediate data by decoding part of the data.
[0015] また、本発明に従ったデータ解析装置では、データ展開部は、解析対象データのう ちの展開が完了したデータ位置を記憶し、解析対象データのうちの記憶されたデー タ位置力も復号ィ匕して中間データを生成することが好ま 、。 Further, in the data analysis apparatus according to the present invention, the data expansion unit stores the data position at which expansion of the analysis object data is completed, and the stored data position force of the analysis object data is also decoded. It is preferable to generate intermediate data.
[0016] また、本発明に従ったデータ解析装置では、データ展開部は、データ展開領域の 拡張の要否を判定し、必要であると判定しときに、データ展開領域を拡張することが 好ましい。 Further, in the data analysis device according to the present invention, it is preferable that the data expansion unit determines whether it is necessary to expand the data expansion area and when it is determined that the data expansion area is expanded. .
[0017] また、本発明に従ったデータ解析装置では、データ展開部は、データ展開領域に 隣接した領域を、他の領域よりも優先して、拡張するデータ展開領域とすることが好 ましい。 [0018] また、本発明に従ったデータ解析装置では、データ展開部は、データ展開領域の 後方に隣接した領域を、他の領域よりも優先して、拡張するデータ展開領域とするこ とが好ましい。 Further, in the data analysis device according to the present invention, it is preferable that the data expansion unit sets an area adjacent to the data expansion area as a data expansion area to be expanded prior to other areas. . Further, in the data analysis device according to the present invention, the data expansion unit may set an area adjacent to the rear of the data expansion area as a data expansion area to be expanded with priority over other areas. preferable.
[0019] また、本発明に従ったデータ解析装置は、中間データ力もデータブロックを抽出す るデータブロック抽出部をさらに備え、データ解析部は、データブロック抽出部によつ て抽出されたデータブロックを解析することが好ましい。  In addition, the data analysis device according to the present invention further includes a data block extraction unit that extracts data blocks as well as intermediate data strength, and the data analysis unit is a data block extracted by the data block extraction unit. It is preferable to analyze
[0020] また、本発明に従ったデータ解析装置では、データブロック抽出部は、中間データ のうちデータブロックが抽出された残りのデータの位置を記憶することが好ましい。 Further, in the data analysis device according to the present invention, the data block extraction unit preferably stores the position of the remaining data from which the data block is extracted among the intermediate data.
[0021] また、本発明に従ったデータ解析装置では、データ展開部は、記憶された残りのデ ータの位置に応じて、残りのデータをデータ展開領域の先頭に移動させることが好ま しい。 Further, in the data analysis device according to the present invention, it is preferable that the data expansion unit move the remaining data to the beginning of the data expansion area according to the position of the remaining stored data. .
[0022] また、本発明に従ったデータ解析装置では、データ展開部は、データ展開領域の、 残りのデータの後ろに、中間データに続く次の中間データを生成して展開することが 好ましい。  In the data analysis device according to the present invention, preferably, the data expansion unit generates and expands next intermediate data following the intermediate data after the remaining data in the data expansion area.
[0023] また、本発明に従ったデータ解析装置では、データブロック抽出部は、記憶された 残りのデータの開始位置から、データブロックの次のデータブロックを抽出することが 好ましい。  Further, in the data analysis device according to the present invention, the data block extraction unit preferably extracts the next data block of the data block from the start position of the stored remaining data.
[0024] また、本発明に従ったデータ解析装置では、データブロック抽出部は、データプロ ックの抽出状況を記憶することが好ましい。  Further, in the data analysis device according to the present invention, the data block extraction unit preferably stores the extraction status of the data block.
[0025] また、本発明に従ったデータ解析装置では、データ解析部は、記憶されたデータブ ロックの抽出状況に応じて、データブロックの解析方法を決定することが好ま 、。 Further, in the data analysis device according to the present invention, the data analysis unit preferably determines a data block analysis method according to the extraction status of the stored data block.
[0026] また、本発明に従ったデータ解析装置では、データ解析部は、データブロックの解 析状況を記憶することが好まし 、。 In the data analysis device according to the present invention, the data analysis unit preferably stores the analysis status of the data block.
[0027] また、本発明に従ったデータ解析装置では、データブロック抽出部は、記憶された データブロックの解析状況に応じて、データブロックの抽出方法を決定することが好 ましい。 Further, in the data analysis device according to the present invention, the data block extraction unit preferably determines a data block extraction method according to the analysis status of the stored data block.
[0028] また、本発明に従ったデータ解析装置では、解析対象データは、文字コードの文 字列データが符号ィ匕されたデータであって、データ展開部は、中間データから文字 コードを検出し、検出された文字コードを文字列データに変換し、変換された文字列 データをデータ展開領域に展開することが好まし 、。 Further, in the data analysis device according to the present invention, the analysis target data is data in which character string data of a character code is encoded, and the data expansion unit generates data from intermediate data It is preferable to detect the code, convert the detected character code to string data, and expand the converted string data into a data expansion area.
[0029] また、本発明に従ったデータ解析装置では、解析対象データは、固定長の文字コ ードの文字列データが符号ィ匕されたデータであって、データ展開部は、検出された 文字コードの固定長を、最小単位として記憶部上に大きさを指定してデータ展開領 域を確保することが好まし ヽ。  Further, in the data analysis apparatus according to the present invention, the analysis target data is data in which character string data of a fixed-length character code is encoded, and the data expansion unit detects It is preferable to secure the data development area by specifying the fixed length of the character code and the size on the storage unit as the minimum unit.
[0030] また、本発明に従ったデータ解析装置では、解析対象データは、可変長の文字コ ードの文字列データが符号ィ匕されたデータであって、データ展開部は、検出された 文字コードを、固定長の文字コードの文字列データに変換することが好ましい。  Further, in the data analysis device according to the present invention, the analysis target data is data in which character string data of a variable-length character code is coded, and the data expansion unit detects It is preferable to convert the character code into character string data of a fixed length character code.
[0031] また、本発明に従ったデータ解析装置では、データ展開部によって変換される固定 長の文字コードは、固定長の Unicodeであることが好ましい。  Further, in the data analysis device according to the present invention, it is preferable that the fixed-length character code converted by the data expansion unit is a fixed-length Unicode.
[0032] 本発明の或る局面に従ったデータ解析方法は、解析対象データの中間データを生 成して、所定のデータ展開領域に展開するデータ展開ステップと、中間データを解 析するデータ解析ステップとを備え、データ展開ステップは、解析対象データの一部 ずつを利用して順次中間データを生成し、データ解析ステップは、生成された中間 データを順次解析することを特徴とする。  A data analysis method according to an aspect of the present invention generates intermediate data of data to be analyzed, and performs a data expansion step of expanding the data into a predetermined data expansion area, and data analysis of analyzing the intermediate data. And the data expansion step generates intermediate data sequentially by using a part of the analysis object data, and the data analysis step analyzes the generated intermediate data sequentially.
[0033] 本発明の或る局面に従ったデータ解析プログラムは、コンピュータにデータの解析 を実行させるプログラムであって、コンピュータに、解析対象データの中間データを生 成して、所定のデータ展開領域に展開するデータ展開ステップと、中間データを解 析するデータ解析ステップとを実行させ、データ展開ステップは、解析対象データの 一部ずつを利用して順次中間データを生成し、データ解析ステップは、生成された 中間データを順次解析することを特徴とする。  [0033] A data analysis program according to an aspect of the present invention is a program that causes a computer to execute analysis of data, and generates intermediate data of analysis target data in the computer to generate a predetermined data expansion area. The data expansion step executes the data expansion step to expand the data and the data analysis step to analyze the intermediate data, and the data expansion step sequentially generates intermediate data using a part of the analysis target data, and the data analysis step It is characterized by sequentially analyzing the generated intermediate data.
[0034] 本発明の或る局面に従ったコンピュータ読取可能な記録媒体は、上記したようなデ ータ解析プログラムを記録して 、る。  [0034] A computer readable recording medium according to one aspect of the present invention stores a data analysis program as described above.
[0035] 本発明の他の局面に従ったデータ解析装置は、圧縮されたマークアップ言語で記 述されたデータを処理するデータ解析装置であって、記憶部を備え、記憶部は、バッ ファメモリとして利用される第 1のノ ッファと第 2のノ ッファとを含み、圧縮されたマーク アップ言語で記述されたデータを、第 1のバッファに展開するデータ展開部と、第 1の ノ ッファに展開されたデータ力もデータブロックを抽出する第 1のデータ解析部と、第 1のデータ解析部が抽出したデータブロックから、抽象構文木を生成する、第 2のデ ータ解析部とを備え、第 1のデータ解析部は、抽出したデータブロックを、第 2のバッ ファの連続する 1つの記憶領域に格納し、第 2のデータ解析部は、第 1のバッファまた は第 2のバッファに記憶されたデータを利用して、抽象構文木を生成することを特徴 とする。 [0035] A data analysis device according to another aspect of the present invention is a data analysis device that processes data described in a compressed markup language, comprising a storage unit, and the storage unit is a buffer memory. A data expanding unit for expanding data described in the compressed markup language into a first buffer, the data expanding unit including a first and a second cookies used as Also, a first data analysis unit that extracts data blocks from the data power expanded in the browser, and a second data analysis unit that generates an abstract syntax tree from the data blocks extracted by the first data analysis unit, and And the first data analysis unit stores the extracted data block in one continuous storage area of the second buffer, and the second data analysis unit transmits the first buffer or the second data analysis unit. An abstract syntax tree is generated using data stored in the buffer.
[0036] 本発明の他の局面によると、一定容量の第 1のバッファと、必要に応じて容量を変 更され連続した 1つの記憶領域力もなる第 2のノ ッファとが用いられて、データの解析 が行なわれる。これにより、第 1のバッファの容量を、従来と比較して小さいものとする ことができる。また、第 1のバッファにおいて容量的に入りきらな力つたデータブロック が出てきたときにのみ、第 2のバッファが利用されるため、記憶部の記憶領域を効率 良く利用できる。  [0036] According to another aspect of the present invention, a first buffer of fixed capacity and a second buffer of which capacity is changed as necessary to form one continuous storage area force are used. The analysis of is done. As a result, the capacity of the first buffer can be made smaller compared to the prior art. In addition, since the second buffer is used only when a capacitively involuntary data block appears in the first buffer, the storage area of the storage unit can be efficiently used.
[0037] また、本発明に従ったデータ解析装置では、第 2のデータ解析部は、抽出されたデ 一タブロックの第 1のデータ解析部による解析結果を利用して、抽象構文木を生成す ることが好ましい。  Further, in the data analysis device according to the present invention, the second data analysis unit generates an abstract syntax tree using an analysis result by the first data analysis unit of the extracted data block. Is preferred.
[0038] また、本発明に従ったデータ解析装置では、データ展開部は、圧縮されたマークァ ップ言語で記述されたデータを、第 1のバッファに、第 1のバッファの容量以下の容量 ごとに展開することが好ましい。  Further, in the data analysis device according to the present invention, the data expansion unit stores the data described in the compressed mark-up language in the first buffer, for each capacity less than the capacity of the first buffer. It is preferable to expand into
[0039] また、本発明に従ったデータ解析装置では、第 1のデータ解析部は、第 1のノ ッフ ァに展開されたデータに対して、字句解析を行なうことにより、第 1のノ ッファに展開さ れたデータ力もデータブロックを抽出することが好ましい。 Further, in the data analysis device according to the present invention, the first data analysis unit performs the first phrase analysis by performing lexical analysis on the data expanded to the first template. It is preferable to extract data blocks from the data power developed in the buffer.
[0040] また、本発明に従ったデータ解析装置では、第 1のデータ解析部は、 XML文法に 従って、字句解析を行なうことが好ましい。 In the data analysis device according to the present invention, the first data analysis unit preferably performs lexical analysis in accordance with the XML grammar.
[0041] また、本発明に従ったデータ解析装置では、第 1のデータ解析部は、第 2のノ ッフ ァの容量を、 XML文法に従って決定することが好まし 、。 Further, in the data analysis device according to the present invention, the first data analysis unit preferably determines the capacity of the second buffer according to the XML grammar.
[0042] また、本発明に従ったデータ解析装置では、第 2のデータ解析部は、 SVG文法に 従って、データの解析を行なうことが好ましい。 Further, in the data analysis device according to the present invention, the second data analysis unit preferably analyzes the data according to the SVG grammar.
[0043] また、本発明に従ったデータ解析装置では、第 2のデータ解析部は、第 1のノ ッフ ァに展開されたデータを、第 1のバッファに展開された状態で、解析することが好まし い。 Further, in the data analysis device according to the present invention, the second data analysis unit It is preferable to analyze the expanded data in the state of being expanded to the first buffer.
[0044] また、本発明に従ったデータ解析装置では、第 1のデータ解析部は、文字解析に 利用するスキーマ言語を変更するスキーマ言語変更部を含むことが好ましい。  Further, in the data analysis device according to the present invention, the first data analysis unit preferably includes a schema language change unit that changes a schema language used for character analysis.
[0045] また、本発明に従ったデータ解析装置では、第 2のデータ解析部は、第 1のノ ッフ ァに展開されたデータを、意味的に解析することが好ましい。 Further, in the data analysis device according to the present invention, it is preferable that the second data analysis unit semantically analyze the data expanded in the first buffer.
[0046] また、本発明に従ったデータ解析装置では、第 2のデータ解析部は、第 1のデータ 解析部に、第 1のデータ解析部の解析結果に基づいて、ブロックデータの抽出態様 を変更させることが好ま 、。 Further, in the data analysis device according to the present invention, the second data analysis unit causes the first data analysis unit to extract the block data based on the analysis result of the first data analysis unit. Preferred to be changed,.
[0047] また、本発明に従ったデータ解析装置では、第 1のデータ解析部は、或る時点で第In the data analysis device according to the present invention, the first data analysis unit may
1のバッファに展開されたデータの中の或るデータブロックの一部のデータの容量に 基づ 、て、記憶部にお 、て第 2のバッファを確保することが好ま 、。 It is preferable to reserve a second buffer in the storage unit based on the capacity of part of data of a certain data block in the data expanded into one buffer.
[0048] また、本発明に従ったデータ解析装置では、第 1のデータ解析部は、第 1のノ ッフ ァにあるデータブロックの一部を第 2のバッファに格納することが好ま U、。 Further, in the data analysis device according to the present invention, the first data analysis unit preferably stores a part of the data block in the first buffer in the second buffer. .
[0049] また、本発明に従ったデータ解析装置では、第 1のデータ解析部は、第 1のノ ッフ ァにあるデータブロックの一部と第 2のバッファにある同じデータブロックの一部とを結 合させて、第 2のバッファに格納することが好ま 、。 Further, in the data analysis device according to the present invention, the first data analysis unit is configured to transmit part of the data block in the first buffer and part of the same data block in the second buffer. It is preferable to combine and store in the second buffer.
[0050] また、本発明に従ったデータ解析装置では、第 1のデータ解析部は、第 1のノ ッフ ァにあるデータブロックの一部と第 2のバッファにある同じデータブロックの一部とを結 合させて、第 3のバッファに格納することが好ま 、。 Further, in the data analysis device according to the present invention, the first data analysis unit is a part of the data block in the first buffer and a part of the same data block in the second buffer. Preferably, combine with and store in a third buffer.
[0051] また、本発明に従ったデータ解析装置では、第 1のデータ解析部は、或る時点で第In the data analysis device according to the present invention, the first data analysis unit may
1のバッファに展開されたデータの中の或るデータブロックの一部のデータの容量と、 第 2のバッファの容量とに基づいて、記憶部において、第 3のバッファを確保すること が好ましい。 It is preferable to reserve a third buffer in the storage unit based on the capacity of part of data of a certain data block in the data expanded into one buffer and the capacity of the second buffer.
[0052] 本発明の他の局面に従ったデータ解析方法は、圧縮されたマークアップ言語で記 述されたデータを処理する装置における、データ解析方法であって、圧縮されたマ ークアップ言語で記述されたデータを、第 1のバッファに展開するステップと、第 1の ノ ッファに展開されたデータ力もデータブロックを抽出するステップと、抽出したデー タブロックを、第 2のバッファの連続する 1つの記憶領域に格納するステップと、第 1ま たは第 2のノ ッファのデータを利用して、抽出構文木を生成するステップとを備えるこ とを特徴とする。 A data analysis method according to another aspect of the present invention is a data analysis method in an apparatus for processing data described in a compressed markup language, which is described in a compressed markup language. Extracting the extracted data into the first buffer, extracting the data block expanded into the first buffer and extracting the data block, and extracting the extracted data And storing the data block in one continuous storage area of the second buffer, and generating the extraction syntax tree using the data of the first and second cookies. It is characterized by
[0053] 本発明の他の局面に従ったデータ解析プログラムは、圧縮されたマークアップ言語 で記述されたデータを処理する装置に、データ解析させるための、データ解析プログ ラムであって、コンピュータに、圧縮されたマークアップ言語で記述されたデータを、 第 1のバッファに展開するステップと、第 1のバッファに展開されたデータ力 データ ブロックを抽出するステップと、抽出したデータブロックを、第 2のバッファの連続する 1つの記憶領域に格納するステップと、第 1または第 2のバッファのデータを利用して 、抽出構文木を生成するステップとを実行させることを特徴とする。  A data analysis program according to another aspect of the present invention is a data analysis program for causing a device processing data described in a compressed markup language to analyze data, and a computer , Expanding the data described in the compressed markup language into the first buffer, extracting the data block expanded into the first buffer, and extracting the extracted data block And storing the data in one continuous storage area of the buffer and generating the extraction syntax tree using the data of the first or second buffer.
[0054] 本発明の他の局面に従ったコンピュータ読取可能な記録媒体は、上記したデータ 解析プログラムを記録して 、る。  [0054] A computer readable recording medium according to another aspect of the present invention stores the data analysis program described above.
[0055] この発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連し て理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。  The above and other objects, features, aspects and advantages of the present invention will be apparent from the following detailed description of the present invention which is understood in conjunction with the accompanying drawings.
図面の簡単な説明  Brief description of the drawings
[0056] [図 1]本発明の第 1の実施の形態に力かるデータ解析装置の構成の具体例を示す図 である。  FIG. 1 is a view showing a specific example of the configuration of a data analysis apparatus according to a first embodiment of the present invention.
[図 2]図 1のデータ解析装置でのデータ解析処理を具体的に示すフローチャートであ る。  [FIG. 2] A flowchart specifically showing data analysis processing in the data analysis device of FIG.
[図 3]図 1のデータ解析装置での解析対象データの中間データが SVG (Scalable Vector Graphics)言語で記述されたデータである場合の具体例を示す図である。  FIG. 3 is a view showing a specific example in the case where intermediate data of analysis target data in the data analysis device of FIG. 1 is data described in SVG (Scalable Vector Graphics) language.
[図 4]図 1のデータブロック抽出部で生成されるステータス情報の具体例を示す図で ある。  4] A diagram showing a specific example of status information generated by the data block extraction unit of FIG. 1. [FIG.
[図 5]図 1の記憶部の中のデータ展開領域のデータ展開処理における状態の変化を 示す図である。  FIG. 5 is a diagram showing changes in the state of data expansion processing of the data expansion area in the storage unit of FIG. 1;
[図 6]図 1のデータ解析部がデータ解析を実行する際に生成された DOM (Docume nt Object Model)ツリーの具体例を示す図である。  6 is a view showing a specific example of a DOM (Docume nt Object Model) tree generated when the data analysis unit of FIG. 1 executes data analysis.
[図 7]図 1の記憶部においてデータ展開領域を確保する方法を説明する図である。 [図 8]図 1のデータブロック抽出部において実行されるデータブロックの抽出処理およ びステータス情報の更新の内容を具体的に示すフローチャートである。 7 is a view for explaining a method of securing a data development area in the storage unit of FIG. 1; FIG. 8 is a flow chart specifically showing contents of data block extraction processing and status information update executed in the data block extraction unit of FIG. 1;
[図 9]図 1のデータブロック抽出部でのデータブロックの抽出処理およびステータス情 報の更新の内容を具体的に示すフローチャートである。 [FIG. 9] A flow chart specifically showing the contents of data block extraction processing and status information update in the data block extraction unit of FIG. 1.
[図 10]図 1のデータ解析装置での解析対象データの中間データが SVG言語で記述 されたデータである場合の、解析対象データの中間データの具体例を示す図である  FIG. 10 is a diagram showing a specific example of intermediate data of analysis target data when the intermediate data of analysis target data in the data analysis device of FIG. 1 is data described in SVG language.
[図 11]図 1のデータ解析装置での解析対象データの中間データがバイナリである場 合の、解析対象データの中間データの具体例を示す図である。 11 is a view showing a specific example of intermediate data of analysis target data when the intermediate data of analysis target data in the data analysis device of FIG. 1 is binary.
[図 12]図 11のバイナリのデータ構造の具体例を示す図である。  [FIG. 12] A diagram showing a specific example of the binary data structure of FIG.
[図 13]図 11のバイナリのデータ構造の具体例を示す図である。  [FIG. 13] A diagram showing a specific example of the binary data structure of FIG.
[図 14]図 13のバイナリに関する、命令の種類とデータのノイト数との対応の具体例を 示す図である。  [FIG. 14] A diagram showing a specific example of correspondence between instruction types and data Neute numbers regarding the binary in FIG.
[図 15]図 1のデータ解析装置において実行されるデータ解析処理において、展開す るとデータの形式が図 12に示されたようなバイナリとなるデータが展開される場合を 説明する図である。  FIG. 15 is a view for explaining the case where, in the data analysis processing executed in the data analysis device of FIG. 1, data whose data format becomes binary as shown in FIG. 12 when expanded are expanded; .
[図 16]データサイズが明示された解析対象のデータの、データ構造の一例を具体的 に示す図である。  [FIG. 16] A diagram specifically showing an example of the data structure of data to be analyzed with the data size specified.
[図 17]データサイズが明示された解析対象のデータの、データ構造の他の例を具体 的に示す図である。  [FIG. 17] A diagram specifically showing another example of the data structure of the data to be analyzed, the data size of which is clearly specified.
圆 18]本発明の第 2の実施の形態のデータ解析装置において実行されるデータ解 析処理のフローチャートである。 {Circle around (18)} A flowchart of data analysis processing executed in the data analysis apparatus according to the second embodiment of this invention.
圆 19]本発明の第 2の実施の形態のデータ解析装置の展開用のノ ッファ領域におけ る、展開されるデータと、それに含まれるデータブロックとの関係を示す図である。 圆 20]本発明の第 2の実施の形態のデータ解析装置の結合用の連続バッファ領域 における、データの記憶状態を模式的に示す図である。 圆 19] A diagram showing a relationship between data to be expanded and a data block included in the area of the expansion for use in the data analysis device according to the second embodiment of the present invention. FIG. 20 is a view schematically showing a storage state of data in the continuous buffer area for coupling of the data analysis device according to the second embodiment of the present invention.
圆 21]本発明の第 2の実施の形態のデータ解析装置の結合用の連続バッファ領域 における、データの記憶状態を模式的に示す図である。 [図 22]本発明の第 2の実施の形態のデータ解析装置の結合用の連続バッファ領域 における、データの記憶状態を模式的に示す図である。 21] A diagram schematically showing a storage state of data in a continuous buffer area for coupling of the data analysis apparatus according to the second embodiment of the present invention. FIG. 22 is a view schematically showing a storage state of data in a continuous buffer area for coupling of the data analysis system according to the second embodiment of the present invention.
[図 23]本発明の第 2の実施の形態のデータ解析装置におけるデータ解析処理の全 体的な内容を説明するための図である。  FIG. 23 is a view for explaining the overall content of data analysis processing in the data analysis apparatus of the second embodiment of the present invention.
[図 24]図 23に示された記憶部の構成の変形例を示す図である。  FIG. 24 is a diagram showing a modification of the configuration of the storage unit shown in FIG. 23.
符号の説明  Explanation of sign
[0057] 1 データ解析装置、 101 制御部、 102 入力部、 103 記憶部、 103A 展開用 のバッファ領域、 103B 結合用の連続バッファ領域、 103C 連続バッファ領域、 10 4 データ展開部、 105 データブロック抽出部、 106 データ解析部、 107 出力部 、 1001— 1009 メモリ領域、 1101, 1103, 1105, 1201 ヘッダ、 1102, 1104, 1106, 1202—1204 データブロック。  1 data analysis device, 101 control unit, 102 input unit, 103 storage unit, 103A expansion buffer area, 103B continuous buffer area for connection, 103C continuous buffer area, 104 data expansion unit, 105 data block extraction 106, Data analysis unit, 107 output unit, 1001-1009 memory area, 1101, 1103, 1105, 1201 header, 1102, 1104, 1106, 1202-1204 data block.
発明を実施するための最良の形態  BEST MODE FOR CARRYING OUT THE INVENTION
[0058] 以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明 では、同一の部品および構成要素には同一の符号を付してある。それらの名称およ び機能も同じである。したがってそれらにっ 、ての詳細な説明は繰返さな 、。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the following description, the same parts and components are denoted by the same reference numerals. Their names and functions are also the same. Therefore, their detailed description is not repeated.
[0059] [第 1の実施の形態] First Embodiment
まず、図 1を参照して、本発明の第 1の実施の形態に力かるデータ解析装置の構成 を具体的に説明する。  First, with reference to FIG. 1, the configuration of a data analysis apparatus according to the first embodiment of the present invention will be specifically described.
[0060] データ解析装置 1は、 CPU (Central Processing Unit)等力 構成され装置全 体の制御を行なう制御部 101と、他の装置と通信を行なってデータを受信したり、 CD -ROM (Compact Disc-Read Only Memory)などの記録媒体に記録されて いるデータを読出したりしてデータを入力する入力部 102と、 ROM (Read Only Memory)や RAM (Random Access Memory)等から構成され、制御部 101で 実行されるプログラムや解析対象のデータ等を記憶する記憶部 103と、入力部 102 を介して入力されるデータを記憶部 103に展開するデータ展開部 104と、記憶部 10 3に展開されたデータの字句解析を行なうデータブロック抽出部 105と、データブロッ ク抽出部 105における字句解析の結果に基づいて意味解析を行なうデータ解析部 1 06と、ディスプレイなどの表示装置や、他の装置と通信を行なってデータを送信する 送信部や、スピーカなどの音声出力装置などの出力部 107とを含む。 The data analysis device 1 is configured by a central processing unit (CPU) and configured as a control unit 101 that controls the entire device, and communicates with other devices to receive data, and a CD-ROM (Compact The control unit consists of an input unit 102 for reading data recorded on a recording medium such as a Disc-Read Only Memory) and inputting the data, a ROM (Read Only Memory), a RAM (Random Access Memory), etc. Storage unit 103 for storing the program to be executed in 101, data to be analyzed, etc., data development unit 104 for expanding data input via input unit 102 in storage unit 103, and storage unit 103. With a data block extraction unit 105 that performs lexical analysis of the extracted data, a data analysis unit 106 that performs semantic analysis based on the result of the lexical analysis in the data block extraction unit 105, a display device such as a display, and other devices. Communicate and make data Send A transmission unit and an output unit 107 such as an audio output device such as a speaker are included.
[0061] 上記したデータ展開部 104、データブロック抽出部 105、および、データ解析部 10 6は、専用の回路等のように、専用のハードウェアによって構成されても良いし、また 、記憶装置または記録媒体に記録された情報の読み書きを行なう装置と、情報処理 装置とを備えるようなデータ解析装置において、当該情報処理装置が上記の記憶装 置または上記の記録媒体に記録された特定のプログラムを実行することにより、実現 されるように、構成されても良い。また、データ展開部 104は、入力部 102を介して入 力されたデータの他に、記憶部 103等に記憶されたデータを、展開することもできる。 The above-described data development unit 104, data block extraction unit 105, and data analysis unit 106 may be configured by dedicated hardware such as a dedicated circuit or the like, or a storage device or In a data analysis apparatus comprising an apparatus for reading and writing information recorded in a recording medium, and an information processing apparatus, the information processing apparatus includes a specific program recorded in the storage apparatus or the recording medium. It may be configured to be realized by execution. In addition to the data input through the input unit 102, the data expansion unit 104 can also expand data stored in the storage unit 103 or the like.
[0062] 入力部 102は、解析対象のデータを入力し、入力したデータをデータ展開部 104 に渡す。 The input unit 102 inputs data to be analyzed, and passes the input data to the data expansion unit 104.
[0063] なお、入力部 102から入力される、本実施の形態に力かるデータ解析装置 1が解析 対象とするデータは、マークアップ言語でタグ付けされた HTML (Hypertext Mar kup Language)文書や XML (Extensible Markup Language)文書のようにい くつかのブロックを含んで構成されて 、て、それぞれのブロックが必ずしも完全に独 立して 、な 、ようなデータや、このようなデータを GZIPや LZHなどの圧縮方法や Ba se64などの符号ィ匕方法で変換されたデータである。  The data to be analyzed by the data analysis apparatus 1 according to the present embodiment, which is input from the input unit 102, is an HTML (Hypertext Markup Language) document or XML tagged in a markup language. (Extensible Markup Language) is composed of several blocks, and each block is not necessarily completely independent. Such data or such data may be GZIP or LZH. Etc. and data converted by a code method such as Base64.
[0064] データ展開部 104は、記憶部 103に、所定量のデータ展開領域を確保し、また、必 要に応じて、そのデータ展開領域を拡張する。  The data expansion unit 104 secures a predetermined amount of data expansion area in the storage unit 103, and expands the data expansion area as necessary.
[0065] データ展開部 104は、入力部 102から入力された解析対象のデータの一部または すべてを、記憶部 103に確保されたデータ展開領域領域に解析可能に展開し、中 間データを得る。このとき、入力されたデータが圧縮されていれば解凍して展開し、 符号化されていれば復号化して展開する。また、圧縮や符号ィ匕などされていない生 の(そのまま解析可能な)データであれば、そのまま複製して展開してもよい。  Data expanding section 104 expands a part or all of the data to be analyzed input from input section 102 into the data expansion area secured in storage section 103 so as to be able to be analyzed and obtain intermediate data. . At this time, if the input data is compressed, it is decompressed and expanded, and if encoded, it is decoded and expanded. Also, if it is raw (unanalyzable) data that is not compressed or encoded, it may be copied and expanded as it is.
[0066] そして、データブロック抽出部 105において、展開されたデータである中間データ から、解析しやすいデータの固まり(以下、このデータの固まりをデータブロックと称す る)が抽出され、データ解析部 106に渡される。また、データブロック抽出部 105は、 データブロック抽出部 105におけるデータブロックの抽出状況を表わすステータス情 報を生成し、記憶部 103に格納する。データブロック抽出部 105では、記憶部 103に 格納されたステータス情報を参照してデータブロックの抽出を進める。 Then, in the data block extraction unit 105, a block of data that is easy to analyze (hereinafter, this data block is referred to as a data block) is extracted from the intermediate data that is the expanded data, and the data analysis unit 106 is extracted. Passed to Also, the data block extraction unit 105 generates status information indicating the extraction status of the data block in the data block extraction unit 105, and stores the status information in the storage unit 103. The data block extraction unit 105 stores the data in the storage unit 103. Data block extraction proceeds with reference to the stored status information.
[0067] なお、本実施の形態に力かるデータ解析装置 1では、入力部 102から入力された データが、直接データ展開部 104に渡されて、以降の解析処理が実行されてもよい し、また、ー且記憶部 103に記憶されて力もデータ展開部 104に渡されて、以降の解 析処理が実行されてもよい。  In the data analysis device 1 according to the present embodiment, the data input from the input unit 102 may be passed directly to the data expansion unit 104, and subsequent analysis processing may be performed. In addition, the power stored in the storage unit 103 may also be transferred to the data development unit 104, and the subsequent analysis processing may be performed.
[0068] また、記憶部 103にすでに生のデータが記憶されている場合には、データ展開部 1 04やデータブロック抽出部 105での処理を実行することなぐそのまま、データ解析 部 106でデータ解析するようにしてもよいし、さらに、データブロック抽出部 105によつ てデータブロックが抽出された後、データ解析部 106による解析が済んだ部分につ いては、記憶部 103のうち、入力データの記憶領域の中の解析が済んだ部分に対応 する領域を、順次解放するようにしてもよい。  Further, when raw data is already stored in storage unit 103, data analysis unit 106 analyzes data as it is without executing processing in data expansion unit 104 or data block extraction unit 105. Alternatively, after the data block is extracted by the data block extraction unit 105, the input data in the storage unit 103 is used for the portion analyzed by the data analysis unit 106. The area corresponding to the analyzed part of the storage area of may be released sequentially.
[0069] データ解析部 106は、データブロック抽出部 105から渡されたデータブロックを、記 憶部 103に記憶されるステータス情報を参照して解析し、その解析結果を出力部 10 7に渡す。ここでの解析は、たとえば、中間データが HTML形式のデータである場合 には DOMツリーを生成する、などが挙げられる。そして、出力部 107は、データ解析 部 106から渡された解析結果を出力する。  The data analysis unit 106 analyzes the data block passed from the data block extraction unit 105 with reference to the status information stored in the storage unit 103, and passes the analysis result to the output unit 107. The analysis here is, for example, to generate a DOM tree when the intermediate data is data in HTML format. Then, the output unit 107 outputs the analysis result received from the data analysis unit 106.
[0070] 出力部 107において出力されるデータ解析結果は、入力部 102から入力された解 析対象のデータが XML文書やこれを圧縮または符号ィ匕したデータである場合では 、文書の内容を木構造で表現する DOMツリーとして構築したデータである。出力部 107は、データ解析部 106から渡された解析結果をー且記憶部 103へ記録してもよ いし、直接外部へ出力してもよい。  When the data to be analyzed input from the input unit 102 is an XML document or data obtained by compressing or encoding the data, the data analysis result output from the output unit 107 is a tree of the content of the document. It is data constructed as a DOM tree expressed by a structure. The output unit 107 may either store the analysis result received from the data analysis unit 106 in the storage unit 103 or may output it directly to the outside.
[0071] 図 2に基づいて、本実施の形態に力かるデータ解析装置 1でのデータ解析処理を 説明する。図 2のフローチャートに示される処理は、制御部 101が、記憶部 103に記 憶されているプログラムを読出し、そして、図 1に示される各部を制御して実行するこ とによって、実現される。  Based on FIG. 2, data analysis processing in the data analysis device 1 according to the present embodiment will be described. The process shown in the flowchart of FIG. 2 is realized by the control unit 101 reading out the program stored in the storage unit 103 and controlling and executing each unit shown in FIG.
[0072] 図 2を参照して、始めに、データ展開部 104において、入力部 102から入力された 解析対象のデータの一部またはすべてが、記憶部 103に確保されたデータ展開領 域に展開される(S201)。なお、ステップ S201において解析対象のデータの一部が 展開される場合、データ展開部 104に入力データの最初からどの程度の量を展開さ せるかは、用意されたデータ展開領域の大きさに依存して決定されてもよいし、デー タ展開後の容量がヘッダ情報などから取得できる場合は、その大きさに依存して決 定されてもよいし、入力データ自体の容量に依存して決定されてもよい。また、入力 データに依存せず、予め、データ展開領域の大きさが定められていてもよい。 Referring to FIG. 2, first, in data expansion section 104, a part or all of the data to be analyzed input from input section 102 is expanded in the data expansion area secured in storage section 103. (S201). In step S201, part of the data to be analyzed is When expanding, how much the amount of input data is expanded from the beginning of the data expansion unit 104 may be determined depending on the size of the prepared data expansion area, or after the data expansion. If the capacity of the data can be obtained from the header information etc., it may be determined depending on the size or may be determined depending on the capacity of the input data itself. Further, the size of the data development area may be determined in advance without depending on the input data.
[0073] 次に、データブロック抽出部 105において、データ展開領域に展開されたデータか ら、解析に適した大きさのデータブロックが抽出される(S203)。この際、データブロッ ク抽出部 105によるデータブロックの抽出状況を表わすステータス情報が生成されて 、記憶部 103に記憶される力、または、記憶部 103に記憶されているステータス情報 が更新される。そして、そのステータス情報を参照しながら、データブロック抽出部 10 5は、ステップ S203でのデータブロックの抽出を実行する。なお、ステップ S203にお けるデータブロックの抽出処理については、後に具体例を挙げて説明する。  Next, in the data block extraction unit 105, a data block of a size suitable for analysis is extracted from the data expanded in the data expansion area (S203). At this time, status information indicating the extraction status of the data block by the data block extraction unit 105 is generated, and the force stored in the storage unit 103 or the status information stored in the storage unit 103 is updated. Then, while referring to the status information, the data block extraction unit 105 executes the extraction of the data block in step S203. The process of extracting data blocks in step S203 will be described later using a specific example.
[0074] このとき、データブロック抽出部 105は、展開済みデータのどの位置までデータブロ ックを抽出したかについて記憶部 103に記憶しておくことが好ましい。そうすることで、 次にステップ S203の処理が繰返されるときに、(前回処理を行なった位置の)次の位 置からデータブロックを抽出することができる。ステップ S203で抽出されるデータブロ ックの解析に適した大きさとは、データ解析部 106が解析する単位に依存して決定さ れる。たとえば、解析対象のデータが XML文書である場合は、データ解析部 106が 解析する単位としては、開始タグ、終了タグ、および空要素タグなどの、タグ、および タグで囲まれた部分といった単位、さらに細かなブロックとして、タグ内に存在するタ グ名、属性名、および属性値といった単位が該当する。なお、ステップ S203では、デ ータ解析部 106において解析対象としないタグやタグ名などは無視するなどして読 捨てて、解析を必要とするタグやタグ名などを対象としてデータブロックを抽出するこ とが好ましい。  At this time, the data block extraction unit 105 preferably stores in the storage unit 103 up to which position of the expanded data the data block has been extracted. By so doing, when the process of step S203 is repeated next, it is possible to extract a data block from the next position (at the position where the previous process was performed). The size suitable for analysis of the data block extracted in step S203 is determined depending on the unit analyzed by the data analysis unit 106. For example, when the data to be analyzed is an XML document, the unit to be analyzed by the data analysis unit 106 is a unit such as a tag and a part surrounded by tags such as a start tag, an end tag, and an empty element tag, As further detailed blocks, units such as tag names, attribute names, and attribute values that exist in tags correspond. In step S203, the data analysis unit 106 ignores tags, tag names, etc. that are not to be analyzed and discards them, and extracts data blocks for tags, tag names, etc. that require analysis. This is preferable.
[0075] 次に、データブロック抽出部 105によって、データブロックの抽出が成功したか否か が判断される(S205)。その結果、データブロックの抽出が成功したと判断された場 合は(S205で YES)、データ解析部 106は、ステップ S203で抽出されたデータブロ ックのデータを解析する(S207)。そして、再度ステップ S203に処理が戻されて、ス テツプ S203において、前回、ステップ S203でデータブロックが抽出された位置以降 の位置力 データブロックが抽出される。 Next, the data block extraction unit 105 determines whether the data block extraction has succeeded (S 205). As a result, if it is determined that the data block extraction has succeeded (YES in S205), the data analysis unit 106 analyzes the data of the data block extracted in step S203 (S207). Then, the process is returned to step S203 again. In tap S203, position force data blocks after the position where the data block was extracted in step S203 last time are extracted.
[0076] ステップ S205での判断の結果、データブロックの抽出が失敗したと判断された場 合は(SDOMツリー 205で NO)、解析対象のデータのうち、未展開の部分があるか 否かが判断される(S209)。ステップ S205では、展開されたデータ自身が正しくない データである場合に発生するエラーなど以外に、データブロックの抽出が展開済み データの最後に至るまで実行されて完了したことや、解析対象のデータのうち未展開 の部分があるためにデータブロックのデータが途中で切れていることが検出された場 合に、データブロックの抽出が失敗したと判断される。なお、ステップ S205で、デー タ自身が正しくな 、ことが検出された場合には、ただちに処理を終了するようにしても よい。 If it is determined in step S205 that the data block extraction has failed (NO in SDOM tree 205), it is determined whether there is an unexpanded portion in the data to be analyzed. It is determined (S209). In step S205, in addition to an error that occurs when the expanded data itself is incorrect data, extraction of the data block has been executed and completed to the end of the expanded data, or the data to be analyzed is If it is detected that the data of the data block is cut off because there is an unexpanded part among them, it is judged that the data block extraction has failed. If it is detected in step S205 that the data itself is correct, the process may be ended immediately.
[0077] ステップ S209での判断の結果、解析対象のデータのうち未展開データがないと判 断された場合 (S209で NO)、つまり、解析対象のデータの最後までデータブロック が抽出されてデータ解析が終了しているためにステップ S 205でデータブロックの抽 出が失敗したと判断されている場合、本処理を終了する。  [0077] As a result of the determination in step S209, when it is determined that there is no unexpanded data among the data to be analyzed (NO in S209), that is, the data block is extracted until the end of the data to be analyzed If it is determined in step S 205 that the extraction of the data block has failed because the analysis has been completed, this processing ends.
[0078] ステップ S209での判断の結果、解析対象のデータのうち未展開データがあると判 断された場合は(S209で YES)、未展開データがあるためにデータブロックのデータ が途中で切れてステップ S205でデータブロックの抽出が失敗したと判断されている ので、さらにデータを展開して解析する必要がある。そこで、次に、データブロック抽 出部 105において、データ展開領域に破棄できないデータがある力否かが判断され る(S211)。  As a result of the determination in step S 209, when it is determined that there is unexpanded data among the data to be analyzed (YES in S 209), data of the data block is cut off halfway because there is unexpanded data. Since it is determined in step S205 that the extraction of the data block has failed, it is necessary to further expand and analyze the data. Therefore, next, the data block extraction unit 105 determines whether or not there is data that can not be discarded in the data expansion area (S211).
[0079] ステップ S211での判断の結果、破棄できな!/、データがデータ展開領域になけれ ば(S211で NO)、つまり、データ展開領域に展開されているすべてのデータが破棄 できる場合には、データ展開部 104によってデータ展開領域内のデータがすべて破 棄されて処理がステップ S201に戻り、ステップ S201において、空になったデータ展 開領域に、前回、ステップ S201で展開された続きのデータが展開される。  [0079] As a result of the determination in step S211, it can not be discarded! /, If the data is not in the data expansion area (NO in S211), that is, if all the data expanded in the data expansion area can be discarded. The data development unit 104 discards all the data in the data development area, and the process returns to step S201, and in step S201, the subsequent data developed in step S201 in the previous data expansion area is emptied. Is expanded.
[0080] ステップ S211での判断の結果、破棄できな!/、データがデータ展開領域にある場合  [0080] As a result of the determination in step S211, the data can not be discarded! / When the data is in the data expansion area
(S211で YES)、さらに、データブロック抽出部 105において、データ展開領域に展 開されて 、るすべてのデータが破棄できな 、のか、一部のデータが破棄できな 、の かが判断される(S213)。ステップ S213において、データ展開領域に展開されてい る一部のデータが破棄できないと判断される場合とは、データ展開領域に展開され たデータが途中で切れていてデータブロックとして抽出できな力つた部分がある場合 であって、その場合(S213で NO)、データ展開部 104によって、そのデータブロック として抽出できな力つた部分を残してそれ以外の部分が破棄され、残した部分の後ろ に続きのデータが展開されることで、先程までデータが途中で切れていた部分につ いてもデータブロックとして抽出可能となる。そこで、この場合、データ展開部 104に よって、破棄できない部分がデータ展開領域の先頭へ移動される(S215)。これは、 破棄できないデータの後ろにデータを展開するための前処理である。 (YES in S211), data block extraction unit 105 further displays the data in the data development area. It is determined whether all data can not be discarded or not, or some data can not be discarded (S213). If it is determined in step S213 that some of the data expanded in the data expansion area can not be discarded, the data expanded in the data expansion area is broken halfway and can not be extracted as a data block. If there is a case (NO at S213), the data expansion unit 104 discards the remaining portion except the portion that can not be extracted as the data block, and continues the portion after the remaining portion. By expanding the data, it becomes possible to extract the data block as a data block even if the data has been cut halfway. Therefore, in this case, the data development unit 104 moves the portion that can not be discarded to the top of the data development area (S215). This is a preprocessing to expand data behind data that can not be discarded.
[0081] ステップ S213において、データ展開領域に展開されているすべてのデータが破棄 できないと判断される場合 (S213で YES)、現在のデータ展開領域の大きさではデ 一タブロックに対して小さいと考えられるため、データ展開部 104において、データ展 開領域のサイズが拡大される(S217)。  If it is determined in step S213 that all the data expanded in the data expansion area can not be discarded (YES in S213), the size of the current data expansion area is smaller than the data block. As it is conceivable, the size of the data expansion area is expanded in the data expansion unit 104 (S217).
[0082] なお、ステップ S213では、破棄できな 、データがデータ展開領域のデータすベて であるか否かが判定されたが、破棄できな 、データがデータ展開領域のサイズの 80 %を超えた場合と!/、うような所定条件を満たすか否力が判定されてもよ!、。  In step S213, it is determined whether the data can not be discarded or not, but it can not be discarded. The data exceeds 80% of the size of the data deployment area. In the case of! /, It may be determined whether or not the predetermined condition is satisfied!,.
[0083] 次に、データ展開部 104において、ステップ S213で破棄できないとされたデータの 後ろに、前回展開したデータの続きのデータが展開される(S219)。ステップ S219 において、データ展開領域に連続してデータが展開されることで、データブロック抽 出部 105では一塊のデータブロックとして抽出することができ、データ解析部 106に 渡される。  Next, in the data expanding unit 104, subsequent to the data expanded last time is expanded after the data which can not be discarded in step S213 (S219). In step S219, the data is continuously expanded in the data expansion area, so that the data block extraction unit 105 can extract it as a block of data blocks, which is passed to the data analysis unit 106.
[0084] この後、処理はステップ S203に戻され、上述の処理が繰返される。  After that, the process returns to step S203, and the above-described process is repeated.
[0085] 以降、解析対象のデータの具体例を挙げて、上述のデータ解析処理につ!、て具体 的に説明する。 Hereinafter, the above-mentioned data analysis processing will be specifically described by way of specific examples of data to be analyzed.
[0086] 本実施の形態に力かるデータ解析装置 1において解析対象とされるデータが展開 されて得られる中間データの具体例を図 3に示す。この具体例での解析対象のデー タは、図 3に示される中間データが圧縮などの符合ィ匕されたものとする。なお、ここで は、解析対象とされるデータ、またはそのデータの中間データが、 XML言語のサブ セットである SVG言語で記述されたものとして以下説明する力 実際は、このようない くつかのブロックを含んで構成されて 、て、それぞれのブロック必ずしも完全に独立し ていないような中間データゃ該中間データが符号ィ匕または圧縮されたデータである ものとする。たとえば、図 3のようにテキストで記述されるデータだけでなぐこのような 中間データが LZHや GZIPによって圧縮されたデータがデータ解析装置 1に入力さ れてもよい。 A specific example of intermediate data obtained by expanding data to be analyzed in the data analysis device 1 according to the present embodiment is shown in FIG. The data to be analyzed in this specific example is assumed to be the intermediate data shown in FIG. In addition, here The data to be analyzed, or the intermediate data of the data, is described below as being described in the SVG language, which is a subset of the XML language. In fact, it consists of several such blocks. It is assumed that each intermediate data is not completely independent of each other, or the intermediate data is encoded data or compressed data. For example, as shown in FIG. 3, data obtained by compressing such intermediate data as LZH or GZIP without using only data described in text may be input to the data analysis device 1.
[0087] ここで、 SVG言語での記述における基本的な構文ルールについて説明する。  Here, basic syntax rules in the description in the SVG language will be described.
[0088] SVG言語で記述されるデータにおいて、開始タグは、文字「く」と文字「>」とで挟 まれるタグ名で表現される。開始タグに属性が含まれる場合、タグ名と文字「>」との 間に、空白(スペース、タブ、または改行)、属性名、文字「 、および属性値の順番 で、 1つまたは複数の属性が記述される。なお、属性名と文字「=」との間、および文 字「 =」と属性値との間にも空白があってもよ!/ヽ。  [0088] In data described in the SVG language, the start tag is expressed by a tag name sandwiched by the character "ku" and the character ">". If the start tag contains an attribute, one or more attributes in the following order: blank (space, tab, or newline), attribute name, character "," and attribute value in between the tag name and the character ">" In addition, there may be spaces between the attribute name and the character “=”, and also between the character “=” and the attribute value! / ヽ.
[0089] 終了タグは、文字「く Z」と文字「>」とで挟まれるタグ名で表現される。また、空タグ は、文字「く」と文字「Z>」とで挟まれるタグ名で表現される。空タグに属性が含まれ る場合、タグ名と「Z>」との間に、開始タグと同様に記述される。  The end tag is expressed by a tag name sandwiched between the character “ku Z” and the character “>”. Also, an empty tag is represented by a tag name sandwiched between the character "K" and the character "Z>". If the empty tag contains an attribute, it is described between the tag name and "Z>" in the same way as the start tag.
[0090] なお、本具体例では、簡便のために、取扱われる中間データに、文字列「く?」と 文字列「? >」で囲まれる XML宣言文や、文字列「 < ! DOCTYPE」と文字「 >」で 囲まれる DOCTYPE宣言や、文字列「< !——」と文字列「—— >」で囲まれるコメント 文や、文字列「< ! (CDATA[ ]」と文字列「]] >」で囲まれる CDATAセクションな どのタグがないことを前提とする力 これらのタグを含む中間データを扱う場合であつ ても、ステータス情報に適切にその状況を表わすステータス情報を追加し、データブ ロック抽出部 105およびデータ解析部 106においてそのステータス情報に応じた処 理とを可能とすることで対応できる。  In this specific example, for convenience, in the intermediate data to be handled, an XML declaration sentence surrounded by the character string “ku?” And the character string “?>” Or the character string “<! DOCTYPE” A DOCTYPE declaration enclosed by the character ">", a comment statement enclosed by the character string "<!-" And the character string "->", a character string "<! (CDATA []" and the character string "]] Force that assumes that there is no tag such as a CDATA section enclosed in> Even when handling intermediate data including these tags, add status information that appropriately indicates the status to the status information, and use the data block. This can be coped with by enabling the processing according to the status information in the extraction unit 105 and the data analysis unit 106.
[0091] このようなデータが扱われる場合、データブロック抽出部 105は、「タグ名」、「属性 名 '属性値」、および「内容(開始タグと終了タグとの間の文字)」を 1つのデータブロッ クとして抽出するものとする。  [0091] When such data is handled, the data block extraction unit 105 sets "tag name", "attribute name 'attribute value", and "content (character between start tag and end tag)" to one. It shall be extracted as one data block.
[0092] なお、データブロック抽出部 105は、データブロックを抽出した際に生成する抽出 状況を表わすステータス情報を記憶部 103に記憶する。図 4に、中間データが図 3に 示されるような解析対象のデータを解析する際に、データブロック抽出部 105で生成 されて記憶部 103に記憶されるステータス情報の詳細の具体例を示す。図 4に示さ れるように、データブロック抽出部 105では、データブロックの抽出状況を表わすステ 一タス情報として、たとえば Statusl— Statusl2に表わされるようなステータス情報 を生成して、記憶部 103に記憶する。 Note that the data block extraction unit 105 generates an extraction when extracting a data block. The storage unit 103 stores status information indicating the situation. FIG. 4 shows a specific example of the details of the status information generated by the data block extraction unit 105 and stored in the storage unit 103 when the intermediate data is analyzed as data to be analyzed as shown in FIG. As shown in FIG. 4, the data block extraction unit 105 generates status information as represented by, for example, Status 1-Status 12 as status information representing the extraction status of the data block, and stores the status information in the storage unit 103. .
[0093] 図 4にその詳細が示されるようなステータス情報は、抽出したデータブロックと共に データ解析部 106に渡されてもよい。なお、ここで言うデータブロックの抽出状況とは 、抽出されたデータブロック力 開始タグ名、終了タグ名、空タグ、内容、および属性 名 '属性値のいずれであるとか、データブロックの抽出に失敗した場合にどのようなデ 一タブロックを抽出中であると力、データブロックの開始位置をサーチ中であるなどのStatus information as shown in detail in FIG. 4 may be passed to the data analysis unit 106 together with the extracted data block. In addition, the extraction status of the data block said here is any of the extracted data block power start tag name, end tag name, empty tag, content, and attribute name 'attribute value', and extraction of the data block fails. If you are extracting what kind of data block and if you are searching for the start position of the data block, etc.
、データブロック抽出部 105の状態を表わすものとする。 The state of the data block extraction unit 105 is represented.
[0094] また、この具体例においては、予め、データ展開領域として 10文字分の 20バイト(2 ノイト文字の場合 10文字で 20バイト必要)が用意されているものとする。なお、力か るデータ展開領域は、必要に応じて、 5文字分の 10バイトずつ拡張されるものとする Further, in this specific example, it is assumed that 20 bytes for 10 characters (10 characters for 20 characters and 20 bytes for 2 Neut characters are required) are prepared in advance as a data expansion area. In addition, the powerful data expansion area shall be expanded by 10 bytes for 5 characters as needed.
[0095] データ展開部 104においてデータ展開領域を拡張するときの拡張サイズは、デー タ解析装置ごとに固定のサイズであってもよいが、解析対象のデータサイズやその展 開後や復号ィ匕後のデータサイズに応じて変更されてもよい。たとえば、解析対象デ ータサイズの 10分の 1と定められてもよいし、圧縮方法や符号化方法によってその割 合が変更されてもよい。また、現在のデータ展開領域のサイズや状態、解析対象デ ータのうちの未展開のデータのサイズなどに依存して決定されてもよい。たとえば、現 在のデータ展開領域と同じ分だけ拡大するようにしてもよいし、未展開データのサイ ズの 10%だけ拡張するなどしてもよい。また、抽出されたデータブロックが「属性」で ある場合は、「タグ」の場合に比べて大きく拡張するなどしてもょ 、。 The expansion size when expanding the data expansion area in the data expansion unit 104 may be a fixed size for each data analysis device, but the data size of the analysis target, the size after expansion, and the decryption It may be changed according to the later data size. For example, it may be determined to be 1/10 of the data size to be analyzed, or the ratio may be changed depending on the compression method or the coding method. Also, the size may be determined depending on the size and state of the current data expansion area, the size of unexpanded data of the data to be analyzed, and the like. For example, it may be expanded by the same amount as the current data expansion area, or may be expanded by 10% of the size of unexpanded data. Also, if the extracted data block is an "attribute", it may be expanded significantly as compared to the "tag".
[0096] 最初に用意されるデータ展開領域のサイズも同様にして変更されてもよい。 The size of the data expansion area prepared first may be similarly changed.
[0097] なお、展開後や復号ィ匕後のデータサイズについてはヘッダに記憶されている場合 のみそれに応じて決定できるものである力 本実施の形態に力かるデータ解析装置 1 は、展開後のデータサイズが不明な場合についても、予め定められたサイズや入力 データサイズにより決定されるサイズのデータ展開領域を用意し、該領域に少しずつ データを展開していく。このため、本実施の形態に力かるデータ解析装置では、記憶 部の記憶領域を有効に使用できる。 The data size after expansion and decoding can be determined accordingly only when stored in the header. A data analysis apparatus according to the present embodiment is not limited to this. Even when the data size after expansion is unknown, prepare a data expansion area of a size determined by a predetermined size or input data size, and expand the data little by little in the area. Therefore, in the data analysis device according to the present embodiment, the storage area of the storage unit can be effectively used.
[0098] ここで、図 5を参照して、データが展開される際のデータ展開領域の状態の変化を 説明する。  Here, with reference to FIG. 5, the change in the state of the data development area when data is expanded will be described.
[0099] 図 5には、状態 (A)として、上述のステップ S201で、データ展開部 104によって、 記憶部 103の中の予め用意されている 10文字分の 20バイトのデータ展開領域に、 データの最初力も 10文字分が展開された状態が示されている。  In FIG. 5, as the state (A), in the above-described step S 201, the data developing unit 104 prepares a 10-character data developing area for 10 characters prepared in advance in the storage unit 103. The first force of is also shown in a state where 10 characters are expanded.
[0100] このとき、ステップ S203— S207で、データブロック抽出部 105は、最初の文字列「 < svg 」から文字列「svg」を開始タグ名のデータブロックとして抽出に成功すれば、 データ解析部 106に渡す。  At this time, if the data block extraction unit 105 succeeds in extracting the character string “svg” from the first character string “<svg” as the data block of the start tag name in step S203—S207, the data analysis unit Pass to 106.
[0101] データ解析部 106は、データブロック抽出部 105より渡されたデータブロック「svg」 を開始タグ名としてその内容を解析して、 DOMツリーに svg要素のオブジェクトを追 加する。データブロック抽出部 105は、文字「<」の次に来る文字列は開始タグ名で 文字列「< Z」の次に来るのは終了タグ名であるとか、タグ名の後は文字「 >」または 文字列「Z>」が出現するまでは「属性名 ·属性値」であるといったように、現在のどの ような状況であるかを表わすステータス情報を生成して記憶部 103に記憶し、管理す る。そして、データブロック抽出部 105は、ステータス情報を用いて抽出するデータブ ロックの種類を判定して、判定結果をデータ解析部 106に伝える。  The data analysis unit 106 analyzes the contents with the data block “svg” passed from the data block extraction unit 105 as the start tag name, and adds the object of the svg element to the DOM tree. The data block extraction unit 105 determines that the character string following the character “<” is the start tag name and the character following the character string “<Z” is the end tag name, or the character “>” after the tag name. Alternatively, status information indicating the current status is generated and stored in the storage unit 103, such as "attribute name · attribute value" until the character string "Z>" appears. It will Then, the data block extraction unit 105 determines the type of data block to be extracted using the status information, and transmits the determination result to the data analysis unit 106.
[0102] また、データブロック抽出部 105からデータ解析部 106に対して、抽出されたデー タブロックと共に、または所定のタイミングで、記憶部 103に記憶されたステータス情 報が渡されてもよい。たとえば、図 3の第 2行のく rect>タグは内容を持たない空タグ である。そこで、文字列「<rect」が抽出されたときには、データブロック抽出部 105か ら記憶部 103を介してデータ解析部 106に対して、抽出されたデータブロックが開始 タグであるとのステータス情報が渡され、文字列「Z>」が抽出されたときにこのタグ が空タグであることが判定される。この場合、データブロック抽出部 105が文字列「Z >」をデータブロックとしてデータ解析部 106に渡してデータ解析部 106に空タグとし て処理させてもょ 、し、データブロック抽出部 105からデータ解析部 106に対して、 今までのデータブロックが空タグの内容であつたと!/、うステータス情報が渡されてもよ い。 Further, the status information stored in the storage unit 103 may be passed from the data block extraction unit 105 to the data analysis unit 106 together with the extracted data block or at a predetermined timing. For example, the second>rect> tag in Figure 3 is an empty tag with no content. Therefore, when the character string “<rect” is extracted, the status information indicating that the extracted data block is the start tag to the data analysis unit 106 from the data block extraction unit 105 via the storage unit 103 is displayed. Passed, it is determined that this tag is an empty tag when the string "Z>" is extracted. In this case, the data block extraction unit 105 passes the character string “Z>” as a data block to the data analysis unit 106 and sets the data analysis unit 106 as an empty tag. Alternatively, the data block extraction unit 105 may pass status information to the data analysis unit 106 that the previous data block is the content of the empty tag.
[0103] また、データブロック抽出部 105からデータ解析部 106に対して、開始タグ名である データブロックが渡され、データ解析部 106において解析された結果によって、デー タブロック抽出部 105へフィードバックされて、データブロック抽出部 105で管理され るステータス情報が変更されるようにしてもよい。たとえば、く rect>タグのときとく te xt>タグのときとで、ステータス情報に基づいてデータブロック抽出部 105における 属性のデータブロックの抽出方法が変更されてもよい。  Also, the data block which is the start tag name is passed from the data block extraction unit 105 to the data analysis unit 106, and the data block extraction unit 105 is fed back according to the analysis result in the data analysis unit 106. Thus, the status information managed by the data block extraction unit 105 may be changed. For example, the extraction method of the data block of the attribute in the data block extraction unit 105 may be changed based on the status information, particularly when rect> tag and te xt> tag.
[0104] 図 5に状態 (A)として示されたように、データが展開されて、ブロック抽出部 105から データ解析部 106に、開始タグ名であるデータブロックデータ「svg」が渡された後、 ブロック抽出部 105は、該開始タグ名に続く「属性名 ·属性値」のサーチ開始状態に なる。上述のステップ S203— S207では、文字列「く svg」に続く空白までサーチさ れているので、その次の文字は、文字「w」となる。そこで、ブロック抽出部 105は、「 属性名 ·属性値」のサーチ中状態になる。もし、その次の文字として文字「Z」や文字 「>」が出現した場合には、データ解析部 106において、この svg要素は、空タグや開 始タグの終わりとして処理される。  As shown as state (A) in FIG. 5, after the data is expanded and data block data “svg” which is a start tag name is passed from block extraction unit 105 to data analysis unit 106. The block extraction unit 105 enters a search start state of "attribute name · attribute value" following the start tag name. In the above-described steps S203 to S207, since the space following the character string "k svg" is searched, the next character becomes the character "w". Therefore, the block extraction unit 105 is in a search-in-progress state of "attribute name · attribute value". If the character "Z" or the character ">" appears as the next character, the data analysis unit 106 processes this svg element as the end of the empty tag or the start tag.
[0105] さらに、ブロック抽出部 105においてサーチが進められると、文字列「width」の後ろ でデータ展開領域が終了し、ブロック抽出部 105が「属性名 '属性値」サーチ中状態 であってデータブロックの抽出が完了せずにデータ展開領域の最後に達してしまつ たので、ステップ S205でデータブロックの抽出に失敗したと判断される(S205で NO Furthermore, when the block extraction unit 105 advances the search, the data expansion area ends behind the character string “width”, and the block extraction unit 105 is in the “attribute name 'attribute value” searching state and the data is Since the end of the data development area has been reached without completion of the block extraction, it is determined in step S205 that the data block extraction has failed (NO in S205).
) o ) o
[0106] さらに、まだ未展開のデータがあることが判断され、かつ、データ展開領域に、デー タ解析部 106に渡して 、なくて破棄できな 、一部のデータである文字列「width」が あることが判断されるので(S209で YES、力つ S211で YES、かつ S213で NO)、ス テツプ S215において、図 5に状態(B)として示されるように、展開されたデータである 文字列「width」が、データ展開領域の先頭に移動(コピー)される。さらに、ステップ S219において、図 5に状態(C)として示されるように、移動された文字列「width」の 後ろに続きのデータである文字列「 = "240」が展開される。 Furthermore, it is determined that there is still unexpanded data, and is passed to the data analysis unit 106 in the data expansion area, and can not be discarded. A character string “width” that is a part of data. Because it is determined that there is a (YES at S209, YES at S211, and S213 at NO), at step S215, as shown as state (B) in FIG. The column "width" is moved (copied) to the beginning of the data expansion area. Furthermore, in step S219, as shown as state (C) in FIG. The string "=" 240 ", which is the subsequent data, is expanded.
[0107] このように、ステップ S219で解析対象のデータの途中力も展開されるために、デー タ展開部 104において、現在どこまで展開したかが記憶部 103に記憶されることが好 ましい。また、ステップ S215で破棄できないデータを移動(コピー)するために、デー タブロック抽出部 105において、破棄できないデータの先頭位置、または、データの 先頭位置力 現在サーチ中の場所までの長さをカウントして破棄するデータの位置と 長さとが記憶部 103に記憶されることが好ましい。さらに、ステップ S215で破棄でき ないデータが移動(コピー)された後に、データブロック抽出部 105において記憶部 1 As described above, it is preferable that the data developing unit 104 store in the storage unit 103 how far the data has been expanded in the data expanding unit 104 since the intermediate power of the data to be analyzed is also expanded in step S219. Also, in order to move (copy) data that can not be discarded in step S215, the data block extraction unit 105 counts the length from the start position of the data that can not be discarded or the start position of the data to the current search location. Preferably, the storage unit 103 stores the position and length of the data to be discarded. Furthermore, after the data that can not be discarded in step S215 is moved (copied), the storage unit 1 in the data block extraction unit 105
03に記憶された破棄できないデータの先頭位置、または、データの先頭位置から現 在サーチ中の場所までの長さをカウントして破棄するデータの位置と長さとが、デー タ展開部 104にお 、て更新されることが好ま 、。 The data expansion unit 104 stores the position and length of the data to be discarded by counting the length from the start position of the data to the location currently being searched for, or the start position of the non-discardable data stored in 03. It is preferable to be updated.
[0108] ブロック抽出部 105においてサーチが進められると、文字列「width= "240」の後 ろでデータ展開領域が終了し、ブロック抽出部 105が「属性名 '属性値」サーチ中状 態であってデータブロックの抽出が完了せずにデータ展開領域の最後に達してしま つたので、ステップ S 205でデータブロックの抽出に失敗したと判断される(S205で N 0)。 When the block extraction unit 105 proceeds with the search, the data development area ends after the character string “width =“ 240 ”, and the block extraction unit 105 searches for“ attribute name 'attribute value ”. Since extraction of the data block has not been completed and the end of the data development area has been reached, it is determined in step S205 that extraction of the data block has failed (NO in S205).
[0109] このとき、まだ未展開のデータがあることが判断され、かつ、データ展開領域のデー タはすべて破棄できないことが判断されるので(S209— S213で YES)、ステップ S2 17でデータ展開部 104によって、図 5に状態 (D)として示されるように、データ展開 領域が 5文字分拡張される。そして、ステップ S219でデータ展開部 104によって、図 5に状態 (E)として示されるように、拡張されたデータ展開領域分のデータが展開さ れ、再び、ステップ S203— S207でデータブロック抽出部 105において抽出された データブロック「width= "240"」が、データ解析部 106において「属性名 +属性値」 として解析されて、 DOMツリーに解析結果が反映される。以下、同様に、解析対象 データのうち未展開のデータがなくなるまで、つまり解析対象データの最後まで、デ 一タブロックごとに順にデータが解析される。  At this time, it is determined that there is still unexpanded data, and it is determined that all data in the data expansion area can not be discarded (YES in S209-S213). Part 104 expands the data expansion area by five characters as shown as state (D) in FIG. Then, in step S219, the data expanding unit 104 expands the data for the expanded data expanding area as shown in FIG. 5 as state (E), and again in steps S203 to S207, the data block extracting unit 105. The data block “width =“ 240 ”” extracted in is analyzed as “attribute name + attribute value” in the data analysis unit 106, and the analysis result is reflected in the DOM tree. Likewise, the data is analyzed sequentially for each data block until unexplored data in the analysis target data disappears, that is, until the end of the analysis target data.
[0110] このようにして、データ解析部 106によって解析され、生成された DOMツリーの具 体例を図 6に示す。図 6は、中間データが図 3に示されるデータが解析された際に生 成される DOMツリーの具体例を示して!/、る。 An example of the DOM tree analyzed and generated by the data analysis unit 106 in this way is shown in FIG. Figure 6 shows the intermediate data generated when the data shown in Figure 3 is analyzed. Show a concrete example of the DOM tree created!
[0111] 図 6を参照して、 DOMツリーには、 SVg要素(エレメント), rect要素, text要素が含 まれ、 svg要素および rect要素、 svg要素および text要素は親子関係であることが表 わされている。また、 text要素内にはコンテンツが存在することが表されている。さら に、各エレメントには、 svg要素には width属性, height属性, viewBox属性、 rect 要素には width属性, height属性, style属性、 text要素には x属性, y属性が存在 することが表されている。出力部 107は、データ解析装置 1の出力するデータは、こ のようなエレメント同士とコンテンツとの親子関係や兄弟関係、それぞれの要素に含 まれる属性とその属性値とを容易に取出すことができるデータを解析結果として出力 する。 [0111] Referring to FIG. 6, the DOM tree includes SV g element (element), rect element, text element, and svg element and rect element, svg element and text element have a parent-child relationship. I am being scolded. Also, it is shown that content exists in the text element. Furthermore, in each element, width attribute, height attribute, viewBox attribute in svg element, width attribute, height attribute, style attribute in rect element, x attribute and y attribute in text element are represented. ing. The output unit 107 can easily extract the parent-child relationship or sibling relationship between such elements and content, the attribute included in each element, and the attribute value thereof in the data output from the data analysis device 1. Output possible data as an analysis result.
[0112] なお、ステップ S217でデータ展開領域が拡張される条件は、上記では、ステップ S 213にお 、てデータ展開領域に展開されて 、るすべてのデータが破棄できな 、と判 断される場合であるものとされた力 その他の条件として、たとえば、上述のように、ス テツプ S213において、データ展開領域に展開済みのデータの 80%以上が破棄でき ないデータであると判断された場合としてもよい。さら〖こ、現在抽出しているデータブ ロックの種類がタグ名なのか属性なのかなどによって、破棄できないデータが何%以 上となったときにデータ展開領域が拡張されるかの条件が変更されてもよい。また、 現在タグ名、属性、内容のいずれを抽出しているかによって、その条件が変更される ようにしてもよい。  It should be noted that the condition that the data development area is expanded in step S 217 is determined above as being expanded in the data development area in step S 213 and all data can not be discarded. For example, as described above, in step S213, 80% or more of the data expanded in the data expansion area is determined to be data that can not be discarded. It is also good. Furthermore, depending on whether the type of data block currently being extracted is a tag name or an attribute, the condition for whether the data expansion area is expanded when the percentage of data that can not be discarded becomes greater changes. May be In addition, the condition may be changed depending on whether the tag name, attribute, or content is currently extracted.
[0113] なお、ステップ S217でデータ展開部 104によって、記憶部 103の、現在のデータ 展開領域とはまったく異なる領域に拡張されたデータ展開領域が用意されると、ステ ップ S215で破棄できないデータを新たなデータ展開領域に移動 (コピー)する際に その処理時間が長くなる。また、現在使用中のデータ展開領域を、破棄できないデ ータを新たなデータ展開領域コピーした後に解放するとしても、コピー処理中は、一 時的に、記憶部 103の使用量が倍増する。そのため、ステップ S217でデータ展開領 域が拡張される際には、現在のデータ展開領域の直後の領域が拡張されることが好 ましい。  When the data expansion unit 104 prepares a data expansion area expanded in an area completely different from the current data expansion area of the storage unit 103 by the data expansion unit 104 in step S 217, the data that can not be discarded in step S 215. The processing time will be longer when moving (copying) to a new data development area. Further, even if the data development area currently in use is released after copying the data that can not be discarded after copying the new data development area, the usage of the storage unit 103 is temporarily doubled during the copy processing. Therefore, when the data expansion area is expanded at step S217, it is preferable that the area immediately after the current data expansion area be expanded.
[0114] または、現在のデータ展開領域の直後の領域が拡張できない場合には、現在のデ ータ展開領域の直前の領域が拡張されることが好ましい。このようにすることで、コピ 一処理に記憶部 103の所定領域が用いられるものの、現在のデータ展開領域とはま つたく異なる領域に拡張されたデータ展開領域が用意される場合よりも記憶部 103の 使用量を低下させることができる。 [0114] Alternatively, if the area immediately after the current data expansion area can not be expanded, the current data Preferably, the area immediately before the data development area is expanded. By doing this, although the predetermined area of the storage unit 103 is used for copy processing, the storage unit is more than when the expanded data development area is prepared to an area which is significantly different from the current data development area. The amount of 103 used can be reduced.
[0115] ここで、図 7を用いて、記憶部 103においてデータ展開部 104がデータ展開領域を 確保する方法について詳しく説明する。図 7において、ノ、ツチングされたブロックは使 用中であるメモリ領域を表わし、ノ、ツチングされて ヽな 、ブロックは未使用であるメモ リ領域を表わしている。 Here, with reference to FIG. 7, a method of securing the data development area by the data expansion unit 104 in the storage unit 103 will be described in detail. In FIG. 7, the truncated block represents the memory area in use, and the truncated block represents the memory area unused.
[0116] データブロック抽出部 105でデータブロックを抽出する際や、データ解析部 106で データの解析する際には、通常、先頭のメモリ番地およびその長さ、または最後のメ モリ番地が渡されるためデータ展開領域として、記憶部 103において連続したメモリ 領域が確保されなくてはならな ヽ。  When data blocks are extracted by the data block extraction unit 105 or when data analysis is performed by the data analysis unit 106, usually, the first memory address and its length, or the last memory address is passed. Therefore, a continuous memory area must be secured in the storage unit 103 as a data expansion area.
[0117] いま、記憶部 103上のメモリ領域 1006がデータ展開領域として確保されており、ス テツプ S217においてさらに同じだけデータ展開領域を拡張する場合、データ展開部 104によって、データ展開領域であるメモリ領域 1006に隣接する後ろのメモリ領域以 降がサーチされる。データ展開領域であるメモリ領域 1006の後ろに隣接する未使用 なメモリ領域がデータ展開領域拡張分だけ確保可能であるならば、ステップ S217に おいてメモリ領域 1006の後ろ方向にデータ展開領域が拡張される。つまり、メモリ領 域 1007がサーチされて未使用であればそのサイズがサーチされて、拡張するサイズ と比べて足りていればメモリ領域 1007が拡張されたデータ展開領域として確保され る。足りなければ、さらにメモリ領域 1008がサーチされて、同様に未使用でメモリ領 域 1007のサイズとメモリ領域 1008のサイズとを加えて拡張に要するサイズに足りて いれば、それらのメモリ領域が拡張されたデータ展開領域として確保される。このよう に、使用中のメモリ領域までのメモリサイズが順にサーチされ、拡張に要するサイズと 比較される。  Now, when memory area 1006 on storage unit 103 is secured as a data expansion area, and the data expansion area is further expanded by the same amount in step S 217, memory which is the data expansion area by data expansion unit 104. The area after the memory area adjacent to the area 1006 is searched. If the unused memory area adjacent to the memory area 1006 which is the data expansion area can be secured by the data expansion area extension, the data expansion area is expanded behind the memory area 1006 in step S217. Ru. That is, the memory area 1007 is searched and the size thereof is searched if it is unused, and the memory area 1007 is secured as an expanded data expansion area if the size is sufficient compared with the size to be expanded. If not enough, the memory area 1008 is further searched, and if the size of the memory area 1007 and the size of the memory area 1008 are not used and the size required for the expansion is sufficient, those memory areas are expanded. It is secured as a designated data development area. In this way, the memory sizes up to the memory area in use are sequentially searched and compared with the size required for expansion.
[0118] さらに、現在データ展開領域として確保されているメモリ領域の後ろ方向に、空いて いるメモリ領域が拡張に要するサイズだけ確保できない場合には、その前方向に、同 様に、使用中のメモリ領域までのメモリサイズが順にサーチされ、拡張に要するサイズ と比較される。たとえば、メモリ領域 1003がデータ展開領域として確保されており、ス テツプ S217においてさらにデータ展開領域を拡張する場合、メモリ領域 1003の後 ろのメモリ領域 1004は使用中であるので、メモリ領域 1002がサーチされて、拡張に 要するサイズに足りていればメモリ領域 1002が拡張されたデータ展開領域として確 保される。 Furthermore, if it is not possible to reserve only the size required for the expansion of the free memory area behind the memory area currently reserved as the data expansion area, the memory area in use is similarly used in the forward direction. The memory size up to the memory area is searched in order, and the size required for expansion Compared with. For example, when memory area 1003 is secured as a data expansion area, and the data expansion area is further expanded in step S217, memory area 1004 after memory area 1003 is in use, so memory area 1002 is searched. If the size required for expansion is sufficient, the memory area 1002 is secured as the expanded data expansion area.
[0119] また、データ展開領域として確保されているメモリ領域の前方向または後ろ方向の 片側のメモリ領域では拡張に要するサイズに足りない場合、前方向および後方向の 両空きメモリ領域を加えたサイズが拡張に要するサイズに足りていれば、その両方向 のメモリ領域が拡張されたデータ展開領域として確保される。  In addition, in the memory area on one side forward or backward of the memory area secured as the data expansion area, if the size required for expansion is insufficient, the size obtained by adding both the forward and backward empty memory areas If the size is sufficient for the expansion, the memory area in both directions is secured as the expanded data expansion area.
[0120] このようにデータ展開領域を拡張する場合、連続するメモリ領域が拡張されたデー タ展開領域として確保されることが好ましい。これは、上述のように、現在のデータ展 開領域とはまったく異なる領域に拡張されたデータ展開領域が用意される場合よりも 記憶部 103の使用量を低下させることができるためである。つまり、現在のデータ展 開領域のサイズ力 00バイトであってさらに 200バイト分拡張しょうとした場合、デー タ展開領域に隣接するメモリ領域へ拡張されると、現在のデータ展開領域のサイズと 合わせて 600バイト分確保されれば足りるが、それ以外の場所に拡張されたデータ 展開領域が確保された場合には、破棄できないデータが新たに確保されるメモリ領 域にコピーされるまで、新たに確保される 600バイト分のメモリ領域と現在使用してい る 400バイト分のメモリ領域との合計 1000バイト分のメモリ領域が必要になる。  When the data development area is expanded as described above, it is preferable that a continuous memory area is secured as an expanded data expansion area. This is because, as described above, the amount of use of the storage unit 103 can be reduced compared to the case where a data expansion area expanded to an area completely different from the current data expansion area is prepared. That is, if the size of the current data expansion area is 00 bytes and 200 bytes are further expanded, if it is expanded to a memory area adjacent to the data expansion area, the size is adjusted to the current data expansion area. It is sufficient to reserve 600 bytes, but if the expanded data expansion area is secured elsewhere, it is newly added until data that can not be discarded is copied to the newly secured memory area. A total of 1000 bytes of memory is required, including the reserved 600 bytes of memory and the currently used 400 bytes of memory.
[0121] また、現在のデータ展開領域に展開されているすべてのデータが破棄できないデ ータである場合、データ展開領域の後ろにデータ展開領域を拡張して続きのデータ を展開することで、破棄できな 、データをデータ展開領域の先頭へシフトする処理が 不要となる。もしも、データ展開領域の前方へデータ展開領域が拡張された場合や、 まったく異なるメモリ領域に拡張されたデータ展開領域が確保された場合には、破棄 できないデータを新たなデータ展開領域の先頭へコピーする処理が必要になるため 、前者の場合よりも処理時間が長くなつてしまう。  Also, if all the data expanded in the current data expansion area can not be discarded, the data expansion area is expanded behind the data expansion area to expand the subsequent data, It is not necessary to shift the data to the beginning of the data expansion area, which can not be discarded. If the data expansion area is expanded ahead of the data expansion area or if the expanded data expansion area is secured in a completely different memory area, copy the data that can not be discarded to the beginning of the new data expansion area. The processing time is longer than in the former case because processing is required.
[0122] さらに、図 8および図 9を用いて、データブロック抽出部 105による要素(エレメント) のタブ名であるデータブロックの抽出処理およびステータス情報の更新について具 体的に説明する。 Furthermore, with reference to FIGS. 8 and 9, the extraction process of the data block which is the tab name of the element by the data block extraction unit 105 and the update of the status information Explain it physically.
[0123] 図 8にフローチャートに示される処理は、ステータス情報が参照されて、現在のデー タブロック抽出部 105でのデータブロックの抽出状況が図 4に示される「Statusl」で ある場合にデータブロック抽出部 105によって行なわれる処理で、エレメントの始まり である文字「く」が抽出されるまで処理である。「Statusl」で表わされる抽出状況は、 上述のように、解析対象のデータ(またはその中間データ)が XML宣言や DOCTY PE宣言やコメント文がな 、ような SVG文書の場合、最初に設定される抽出状況であ る。また、抽出状況が「Status7」「Status8」である場合の処理において、エレメント の内容 (コンテンツ)のデータブロック抽出中に文字「<」が出現した場合などに、ステ 一タス情報が「Statusl」に設定される。  The process shown in the flowchart in FIG. 8 refers to the status information and refers to the data block when the extraction status of the data block in the current data block extraction unit 105 is “Status 1” shown in FIG. In the process performed by the extraction unit 105, the process is performed until the character “K” that is the start of the element is extracted. As described above, the extraction status represented by "Statusl" is initially set if the data to be analyzed (or its intermediate data) is an SVG document such as an XML declaration, DOCTY PE declaration or comment statement. It is the extraction situation. Also, in the processing when the extraction status is "Status 7" and "Status 8", the status information is "Status 1", for example, when the character "<" appears during the data block extraction of the element content (content). It is set.
[0124] 図 8を参照して、この場合、始め、データブロック抽出部 105によって読取開始位置 の文字が判別され、力かる文字が文字「く」でも空白(スペース)でもない他の文字で ある場合には(S401で NO、かつ S403で NO)、本処理を終了して抽出結果として エラーが返される。  Referring to FIG. 8, in this case, the data block extraction unit 105 first determines the character at the reading start position, and the character to be read is another character that is neither a character nor a space (space). In the case (NO in S401 and NO in S403), this processing ends and an error is returned as the extraction result.
[0125] 力かる文字がスペースである場合には次の文字が判別されて(S403で YES, S40 5)、その文字が文字「<」であると(S401で YES)、さらに次の文字が判別される。そ して、文字「<」の次の文字が文字「Z」でない場合には(S409で NO)、その抽出状 況カ 開始タグ名のデータブロック開始位置と終了位置とを検出するための「Status 2」へと移行され、ステータス情報が更新される。そして、該抽出状況でのデータプロ ックの抽出処理が続行される。  If the target character is a space, the next character is determined (YES in S403, 5405), and if the character is the character “<” (YES in S401), the next character is It is determined. Then, if the character following the character "<" is not the character "Z" (NO in S409), "to detect the data block start position and end position of the extraction status start tag name" The status information is updated to “Status 2”. Then, the extraction process of the data pattern in the extraction situation is continued.
[0126] 一方、文字「<」の次の文字が文字「Z」である場合には(S409で YES)、その抽出 状況が、終了タグ名のデータブロック開始位置と終了位置とを検出するための「Stat usl2」へと移行され、ステータス情報が更新される。そして、該抽出状況でのデータ ブロックの抽出処理が続行される。  On the other hand, if the character following the character “<” is the character “Z” (YES in S409), the extraction status is to detect the data block start position and end position of the end tag name. Migrate to "Stat usl2" and update the status information. Then, the extraction process of the data block in the extraction situation is continued.
[0127] なお、ステップ S405や S407において、次の文字の判別が行なわれる場合にデー タ展開領域に展開されたデータの終わりを超える場合には、割込み処理で本処理を メインルーチンである図 2の処理に戻し、ステップ S205において、データブロックの 抽出が失敗したものと判断される。そして、ステップ S211において、データ展開領域 に破棄できな 、データはな 、、つまりデータ展開領域に展開されて 、るすべてのデ ータが破棄できると判断される。 Note that if it is determined in step S405 or S407 that the next character is determined and the end of the data expanded in the data expansion area is exceeded, the main processing shown in FIG. In step S205, it is determined that the extraction of the data block has failed. Then, in step S211, the data development area It is determined that data can not be discarded, but data is expanded to a data expansion area, and all data can be discarded.
[0128] 上述のように、データブロック抽出部 105でのデータブロックの抽出状況が「Status 2」となったときに実行される処理を、図 9を用いて説明する。  As described above, processing executed when the extraction status of the data block in the data block extraction unit 105 becomes “Status 2” will be described using FIG.
[0129] 図 9を参照して、始めに、タグ名の最初の位置 (データブロックの開始位置)が記憶 されて(S601)、続く文字がタグ名として用いられる文字である場合には、順にその 文字が判別される(S603で YES, S605)。そして、続く文字力タグ名として用いられ る文字でなくなると(S603で NO)、その位置がタグ名の最後の位置(データブロック の終了位置)として記憶される (S607)。  Referring to FIG. 9, first, the first position of the tag name (the start position of the data block) is stored (S601), and if the following character is a character to be used as the tag name, then The character is determined (YES in S603, S605). Then, when the character is no longer used as the character name tag name (NO at S603), the position is stored as the last position of the tag name (the end position of the data block) (S607).
[0130] なお、その位置の文字が空白(スペース)である場合には(S609で YES)、その抽 出状況が、続いて属性名を検出するための「Status3」へと移行され、ステータス情 報が更新される。そして、該抽出状況でのデータブロックの抽出処理が続行される。 また、その位置の文字が文字「>」である場合には(S609で NO、力つ S611で YES )、その抽出状況が、続いてエレメントの内容 (コンテンツ)を検出するための「Status 7」へと移行され、ステータス情報が更新される。そして、該抽出状況でのデータプロ ックの抽出処理が続行される。また、その位置の文字が文字「Z」である場合には(S 609で NO、 S611で NO、かつ S613で YES)、その抽出状況が、続いてタグの終了 を検出するための「Statusl l」へと移行され、ステータス情報が更新される。そして、 該抽出状況でのデータブロックの抽出処理が続行される。また、その位置の文字が それ以外である場合には(S609— S613で NO)、本処理を終了して抽出結果として エラーが返される。  If the character at that position is blank (space) (YES at S 609), the extraction status is subsequently transferred to “Status 3” for detecting the attribute name, and the status information is Information is updated. Then, the extraction process of the data block in the extraction situation is continued. If the character at that position is the character ">" (NO in S609, YES in S611), the extraction status is "Status 7" for subsequently detecting the content of the element (content). And the status information is updated. Then, the extraction process of the data pattern in the extraction situation is continued. If the character at that position is the character “Z” (NO in S609, NO in S611, and YES in S613), the extraction status is “Statusl l” for detecting the end of the tag. And the status information is updated. Then, the extraction process of the data block in the extraction situation is continued. Also, if the character at that position is other than that (S609-S613 NO), this processing is ended and an error is returned as the extraction result.
[0131] 上述のように、そのステータス情報が更新されて、データブロック抽出部 105での抽 出状況が「Status2」から「Status3」、または「Status2」から「Status7」に変化した ときには、データブロック抽出部 105からデータ解析部 106には、タグ名の最初の位 置および最後の位置を示す情報、またはタグ名の長さを示す情報が渡されることが 好ましい。このようにすることで、データ解析部 106では、タグ名を含むデータブロック を解析が可能となる。  As described above, when the status information is updated and the extraction status in data block extraction section 105 changes from “Status 2” to “Status 3” or “Status 2” to “Status 7”, the data block Preferably, information indicating the first position and the last position of the tag name or information indicating the length of the tag name is passed from the extraction unit 105 to the data analysis unit 106. By doing this, the data analysis unit 106 can analyze data blocks including tag names.
[0132] なお、ステップ S605において、次の文字の判別を行なう場合にデータ展開領域に 展開されたデータの終わりを超える場合には、割込み処理で本処理をメインルーチ ンである図 2に示された処理に戻し、ステップ S205において、データブロックの抽出 が失敗したものと判断される。そして、ステップ S211において、データ展開領域に破 棄できな 、データはな!/、、つまりデータ展開領域に展開されて 、るすべてのデータ が破棄できると判断される。 In step S 605, when the next character is to be determined, in the data development area, If it exceeds the end of the expanded data, the interrupt processing returns the processing to the processing shown in FIG. 2 which is the main routine, and it is determined in step S205 that the data block extraction has failed. Then, in step S211, it is determined that all data that can not be discarded in the data expansion area can be discarded! /, That is, expanded in the data expansion area.
[0133] このようにして、データブロック抽出部 105では、ステータス情報がデータブロックの 抽出状況に応じて刻々と更新されながら、そのステータス情報に基づいてデータ展 開領域に展開された中間データ力 データブロックの抽出処理が進められ、抽出さ れたデータブロックがデータ解析部 106に渡される。また、データブロックと共に(また はデータブロックが渡されるタイミングとは異なったタイミングで)、データブロックに関 する情報がデータブロック抽出部 105からデータ解析部 106に渡される。  In this manner, in data block extraction unit 105, while the status information is updated every moment according to the extraction status of the data block, the intermediate data force expanded in the data expansion area based on the status information The block extraction processing is advanced, and the extracted data block is delivered to the data analysis unit 106. Also, together with the data block (or at a timing different from the timing when the data block is passed), information on the data block is passed from the data block extraction unit 105 to the data analysis unit 106.
[0134] なお、現在の抽出状況が「Status7」となって図 3の第 3行に存在するコンテンツ(「 内容」)であるデータブロックの抽出を開始する場合、その内容には文字列が含まれ るだけなので、抽出状況が「Status8」(「内容」のデータブロックを抽出中)である際 の抽出処理では、データブロック抽出部 105は、該内容の最後までを 1つのデータブ ロックとして抽出せずに、 1文字単位でデータブロックとして抽出してデータ解析部 10 6に渡すようにしてもよい。また、抽出状況が「Status8」であるときの抽出処理におい て、次の文字の判別が行なわれる場合にデータ展開領域に展開されたデータの終 わりを超えるとき、データブロック抽出部 105ではその状態を維持して、データ解析部 106にそれまでの「内容」のデータブロックを渡し、続きの中間データが展開されてか らデータブロックの抽出を続行してデータ解析部 106に先程渡したデータブロックの 続きとして続 、て抽出されたデータブロックを渡すようにしてもょ 、。  When the current extraction status is “Status 7” and extraction of a data block which is content (“content”) present in the third line of FIG. 3 is started, a character string is included in the content. In the extraction processing when the extraction status is “Status 8” (during extraction of the data block of “content”), the data block extraction unit 105 extracts up to the end of the content as one data block. Instead, it may be extracted as a data block in units of one character and passed to the data analysis unit 106. Also, in the extraction processing when the extraction status is “Status 8”, when the next character is determined and the end of the data expanded in the data expansion area is exceeded, the data block extraction unit 105 determines that state. To the data analysis unit 106, and after the subsequent intermediate data is expanded, extraction of the data block is continued, and the data block previously transferred to the data analysis unit 106 is As a continuation of, let 's pass an extracted data block.
[0135] さらに、 XML言語のサブセットである SVG言語で記述された中間データの他の具 体例として、データ解析装置 1において図 10に示されるような中間データ力もデータ ブロックを抽出して解析を行なう場合について説明する。  Furthermore, as another concrete example of intermediate data described in SVG language, which is a subset of XML language, data analysis device 1 analyzes data by extracting data blocks as shown in FIG. The case will be described.
[0136] 図 10に示される中間データは、第 2行一第 4行に image要素が含まれて、その xlin k: href属性に base64で符合ィ匕された画像データが属性値として記述されて 、る。こ のような場合に、データ解析部 106は、 image要素の xlink: href属性の属性名を解 析すると、次に、データブロック抽出部 105に対して、属性値のデータブロックをたと えば 20文字単位で渡すように指定するなど、データブロック抽出部 105でのデータ ブロックの抽出方法、データブロックの渡し方などの挙動を変更できるようにしてもよ い。符合ィ匕方法 base64は、符号ィ匕されたすベてのデータがそろわなくても変換を開 始することが可能である符号ィ匕方法である。そのため、データ解析部 106は、データ ブロックの先頭にある文字列「data :; base64,」を解析して画像データの符合ィ匕方 法が base64であることが検出できると、このように小さなデータブロックの単位をデー タブロック抽出部 105から受取って解析を実行することが可能となる。 In the intermediate data shown in FIG. 10, the image element is included in the second line and the fourth line, and the image data encoded with the base64 in the xlin k: href attribute is described as an attribute value. . In such a case, the data analysis unit 106 resolves the attribute name of the xlink: href attribute of the image element. Next, the data block extraction unit 105 specifies the data block extraction unit 105 to pass the data block of the attribute value in units of, for example, 20 characters. You may be able to change the behavior such as how to pass. Encoding method base 64 is an encoding method that can start conversion without having all the encoded data complete. Therefore, if the data analysis unit 106 can analyze the character string “data :; base64,” at the beginning of the data block and detect that the encoding method of the image data is base64, such small data It is possible to receive block units from the data block extraction unit 105 and execute analysis.
[0137] 上述の具体例は、データ解析装置 1において解析対照のデータ力 文字コードの 文字列データを符号ィ匕したデータであるときの例である。文字コードとしては、 ISOZ IEC 10646— 1として定められた国際文字集合である UCS (Universal multi— oc tet coded Character Set)—2や UCS— 4、変換方法 UTF (UCS Transforma tion Format)—8で変換された文字コード、などがある。  The above-described specific example is an example when the data analysis apparatus 1 is data obtained by coding the character string data of the data character code of the analysis target. The character code is the international character set defined as ISOZ IEC 10646-1: UCS (Universal multi-octet coded Character Set)-2 or UCS-4, the conversion method UTF (UCS Transform Format-8) conversion Character codes, etc.
[0138] UCS— 2および UCS— 4は、 1文字がそれぞれ 2バイトおよび 4バイトの固定長のバ イト列で表現される文字コードである。中間データがこのような固定長のバイト列で表 現される文字コードからなるデータである場合、データ展開部 104によって解析対象 のデータが中間データに展開される際に、データ展開部 104は、中間データから文 字コードを検出し、検出した文字コードを所定の固定長のバイト列へ変換する。  [0138] UCS-2 and UCS-4 are character codes in which one character is represented by a 2-byte and 4-byte fixed-length byte string, respectively. When the intermediate data is data consisting of a character code represented by such a fixed-length byte string, when the data to be analyzed is expanded into intermediate data by the data expansion unit 104, the data expansion unit 104 The character code is detected from the intermediate data, and the detected character code is converted into a byte string of a predetermined fixed length.
[0139] 一方、 UTF— 8で変換された文字コードは、 1文字が 1一 6バイトの可変長なバイト列 で表現される文字コードである。データブロック抽出部 105およびデータ解析部 106 にお 、て、 UTF— 8で変換された文字コードのような可変長な文字コードのままデー タが扱われると、文字コードを 1文字分読進めるだけでもバイト数が異なるため処理が 困難になる。そこで、データ展開部 104が解析対象のデータを中間データに展開す る際に、中間データがそのような可変長の文字コードからなるデータである場合、デ ータ展開部 104は、中間データ力も文字コードを検出し、検出した文字コードを固定 長のバイト列へ変換することが好まし 、。  On the other hand, the character code converted by UTF-8 is a character code represented by a variable-length byte string of 1 to 16 bytes. If the data block extraction unit 105 and the data analysis unit 106 treat data as a variable-length character code such as a character code converted to UTF-8, the character code may only be read by one character. However, processing becomes difficult because the number of bytes is different. Therefore, when the data expansion unit 104 expands data to be analyzed into intermediate data, if the intermediate data is data consisting of such a variable-length character code, the data expansion unit 104 also converts the intermediate data power. It is preferable to detect the character code and convert the detected character code to a fixed-length byte string.
[0140] さらにこのとき、データ展開部 104は、データ展開領域の大きさを、文字コードを変 換するバイト列の固定長をデータ展開領域の最小単位として決定することが好ましい 。また、データ展開部 104は、解析対象のデータに未展開な部分があることによって 、中間データに 1文字のデータに満たない文字コードが含まれる場合、その 1文字の データに満たない文字コードをデータ展開領域の先頭に移動して、その後ろに解析 対象のデータの続きを展開して、 1文字のデータとしてこれらの文字コードを固定長 のバイト列へ変換することが好ましい。また、 1文字のデータを 1つのデータブロックと してもよい。この場合、データ解析装置は 1文字単位でデータを解析して現在の解析 状態を変更する。 Furthermore, at this time, it is preferable that the data development unit 104 determines the size of the data development area as the minimum length of the data development area as the fixed length of the byte string for converting the character code . Also, if there is an unexpanded portion in the data to be analyzed, the data expansion unit 104 detects that the intermediate data has a character code less than one character data, a character code less than the one character data. It is preferable to move to the beginning of the data expansion area, expand the continuation of the data to be analyzed, and convert these character codes into fixed-length byte strings as one-character data. Also, one character of data may be regarded as one data block. In this case, the data analysis device analyzes data in units of one character and changes the current analysis state.
[0141] 上述の具体例では、図 3や図 10に示されたような、中間データが XML言語のサブ セットである SVG言語で記述されたデータである符号ィ匕されたデータが解析対象の データとしたが、解析対象のデータは、中間データが図 11に示されるようなバイナリと なるものであってもよい。この場合であっても、本実施の形態に力かるデータ解析装 置では、解析対象のデータがテキストデータである場合と同様にして解析処理を実 行することができる。そこで、本実施の形態に力かるデータ解析装置で中間データが 図 11に示されるようなバイナリであるデータを解析する場合について、以下に具体的 に説明する。  In the above-described specific example, as shown in FIG. 3 and FIG. 10, the encoded data whose intermediate data is data described in the SVG language, which is a subset of the XML language, is an analysis target Although data is used as the data, the intermediate data may be binary as shown in FIG. Even in this case, in the data analysis device according to the present embodiment, the analysis processing can be performed as in the case where the data to be analyzed is text data. Therefore, the case of analyzing data in which the intermediate data is binary as shown in FIG. 11 by the data analysis device according to the present embodiment will be specifically described below.
[0142] ここで、具体的に、中間データであるバイナリは、図 12に示されるようなデータ構造 である命令、または図 13および図 14に示されるようなデータ構造である命令であると する。  Here, specifically, it is assumed that the binary which is intermediate data is an instruction which is a data structure as shown in FIG. 12 or an instruction which is a data structure as shown in FIG. 13 and FIG. .
[0143] 図 12に示されるデータ構造である命令とは、最初の 1バイトが命令で、この命令に 付属するデータのバイト数が格納され、その後に付属するデータが続く。  The instruction, which is a data structure shown in FIG. 12, is the first 1 byte of the instruction, the number of bytes of data attached to this instruction is stored, and the attached data follow.
[0144] 図 13に示されるデータ構造である命令とは、最初の 1バイトが命令で、その後にこ の命令に付属するデータが続くが、図 14に示されるように、命令の種類によってデー タのバイト数は予め定められている。たとえば、「0 X 12」命令には 5バイトのデータが 必ず付属することが予め定められており、「O X 23」命令は 6バイトのデータが必ず付 属することが予め定められている。  [0144] An instruction that is a data structure shown in FIG. 13 is an instruction whose first byte is an instruction followed by data attached to this instruction, but as shown in FIG. The number of bytes of data is predetermined. For example, it is determined in advance that 5 bytes of data must always be attached to the “0 × 12” instruction, and that “0 × 12” instructions must always be attached with 6 bytes of data.
[0145] まず、展開すると図 12の形式であるバイナリとなるデータを解析する場合について 、図 15を用いて説明する。  First, the case of analyzing data that will be expanded into the form of FIG. 12 will be described with reference to FIG.
[0146] 図 15には、状態 (A)として、上述のステップ S201で、データ展開部 104によって、 データの最初力 5バイト分が展開された状態が示されている。 In FIG. 15, as the state (A), the data processing unit 104 is used in step S 201 described above. The first data force of 5 bytes is shown expanded.
[0147] このとき、データの最初が「O X 12 O X 04」であることから、データブロック抽出部 1 05によって、この後に 4バイトのデータが付属することが判断される。そこで、データ ブロック抽出部 105は、現在データ展開領域に展開されている「0 X 12 0 X 04」に 続くデータが 3バイトしかないので、ステップ S203— S207において、データ展開部 1 04に対してさらにデータを展開するように要求する。 At this time, since the beginning of the data is “O X 12 O X 04”, it is determined by the data block extraction unit 105 that 4-byte data is to be attached after this. Therefore, since the data block extraction unit 105 has only 3 bytes of data following “0 X 12 0 X 04” currently expanded in the data expansion area, the data block extraction unit 105 transmits data to the data expansion unit 104 in steps S203 to S207. Request to further expand the data.
[0148] なお、現在データブロック抽出部 105が抽出しようとしているデータブロックは、デ ータの最初の 1バイトからであるため、データ展開領域にある最初の 1バイトから破棄 できないデータであることが判断される(S209— S213で YES)。そこで、ステップ S2 17において、図 15に状態(B)として示されるように、データ展開部 104によって、デ ータ展開領域が 5バイト分拡張される。 It should be noted that, since the data block currently to be extracted by data block extraction section 105 is from the first 1 byte of data, it can not be discarded from the first 1 byte in the data expansion area. It is judged (S209--YES in S213). Therefore, in step S217, as shown in state (B) in FIG. 15, the data expansion unit 104 expands the data expansion area by 5 bytes.
[0149] ステップ S219でデータ展開部 104によって、図 15に状態(C)として示されるように 、拡張されたデータ展開領域に、すでに展開されているデータの後ろに続きのデー タが展開される。そして、ステップ S205で、データブロック抽出部 105は先頭力も 6バ イトをデータブロックとして抽出に成功して、ステップ S207でデータ解析部 106に渡 される。 At step S 219, as shown as state (C) in FIG. 15, the data expanding unit 104 expands subsequent data after the already expanded data in the expanded data expansion area. . Then, in step S205, the data block extraction unit 105 succeeds in extracting six bytes as a data block at the head force, and is passed to the data analysis unit 106 in step S207.
[0150] 次に、ステップ S203でデータブロック抽出部 105によって、 7バイト目以降からデー タブロックが抽出される。データの最初から 7, 8バイト目は「0 X 23 0 X 05」であるこ とから、データブロック抽出部 105によって、この後に 5バイトのデータが付属すること が判断される。しかし、この後 2バイトのみでデータが切れているため、データ展開領 域にある 7バイト目以降が破棄できないデータであることが判断される(S209で YES 、 S211で YES、力つ S213で NO)。そこで、ステップ S215にお!/ヽて、図 15に状態( D)として示されるように、 7— 10バイト目のデータがデータ展開領域の先頭に移動さ れ、ステップ S219において、図 15に状態 (E)として示されるように、その後に続くデ ータが展開される。  Next, in step S203, the data block extraction unit 105 extracts data blocks from the seventh byte onwards. Since the first and seventh bytes of the data are “0 × 230 × 05”, the data block extraction unit 105 determines that 5 bytes of data are to be attached. However, since the data is cut off by only 2 bytes after this, it is determined that the 7th and subsequent bytes in the data expansion area are data that can not be discarded (YES in S209, YES in S211, NO in S213). ). Therefore, as shown in FIG. 15 as state (D) in step S215, the 7th-10th byte data is moved to the beginning of the data development area, and in step S219 the state in FIG. Subsequent data are expanded as indicated by (E).
[0151] ステップ S203において、データブロック抽出部 105は、データ展開領域の先頭か ら 7バイトをデータブロックとして抽出し、ステップ S207でデータ解析部 106に渡され る。ステップ S207で、データ解析部 106は、データブロック抽出部 105から渡された データブロックとから命令と付属データとを解析して、その内容を出力データとして構 築する。 In step S203, the data block extraction unit 105 extracts 7 bytes from the top of the data development area as a data block, and is passed to the data analysis unit 106 in step S207. In step S207, the data analysis unit 106 receives the data from the data block extraction unit 105. The instruction and attached data are analyzed from the data block, and the contents are constructed as output data.
[0152] 次に、展開すると図 13および図 14の形式であるバイナリとなるデータを解析する場 合について、図 15を用いて説明する。  Next, the case of analyzing data which is expanded into the form of FIGS. 13 and 14 will be described with reference to FIG.
[0153] 同様に、図 15には、状態 (A)として、上述のステップ S201で、データ展開部 104 によって、データの最初力も 5バイト分が展開された状態を示されている。状態 (A)で は、データの最初が「0 X 12」であることから、データブロック抽出部 105によって、図 14に示される規則に基づいて、この後に 5バイトのデータが付属することが判断され る。そこで、データブロック抽出部 105は、現在データ展開領域に展開されている「0 X 12」に続くデータ力 バイトしかないので、ステップ S203— S207において、データ 展開部 104に対してさらにデータを展開するように要求する。  Similarly, FIG. 15 shows, as state (A), a state in which the initial power of the data is also expanded by 5 bytes by the data expansion unit 104 in the above-mentioned step S201. In state (A), since the beginning of the data is “0 × 12”, it is determined by the data block extraction unit 105 that 5 bytes of data are to be attached based on the rules shown in FIG. It is done. Therefore, the data block extraction unit 105 further expands the data in the data expansion unit 104 in steps S203 to S207 because there is only a data strength byte following “0 × 12” expanded in the data expansion area at present. To request.
[0154] なお、現在データブロック抽出部 105が抽出しようとしているデータブロックは、デ ータの最初の 1バイトからであるため、データ展開領域にある最初の 1バイトから破棄 できないデータであることが判断される(S209— S213で YES)。そこで、ステップ S2 17において、同様に、図 15に状態 (B)として示されるように、データ展開領域が 5バ イト分拡張される。  It should be noted that, since the data block currently being extracted by data block extraction section 105 is from the first 1 byte of data, it can not be discarded from the first 1 byte in the data expansion area. It is judged (S209--YES in S213). Therefore, in step S217, the data development area is expanded by 5 bytes as shown as state (B) in FIG.
[0155] ステップ S219でデータ展開部 104によって、図 15に状態(C)として示されるように 、拡張されたデータ展開領域に、すでに展開されているデータの後ろに続きのデー タが展開される。そして、ステップ S205で、データブロック抽出部 105は先頭力も 6バ イトをデータブロックとして抽出に成功して、ステップ S207でデータ解析部 106に渡 される。  [0155] In step S219, as shown as state (C) in FIG. 15, the data expanding unit 104 expands the subsequent data after the already expanded data in the expanded data expanding area. . Then, in step S205, the data block extraction unit 105 succeeds in extracting six bytes as a data block at the head force, and is passed to the data analysis unit 106 in step S207.
[0156] 次に、ステップ S203でデータブロック抽出部 105によって、 7バイト目以降からデー タブロックが抽出される。データの最初から 7バイト目は「0 X 23」であることから、図 1 4に示される規則に基づいて、この後に 6バイトのデータが付属することが判断される 。し力し、この後 3バイトのみでデータが切れているため、データ展開領域にある 7バ イト目以降が破棄できないデータであることが判断される(S209で YES、 S211で Y ES、力つ S213で NO)。そこで、ステップ S215において、図 15に状態(D)に示され るように、 7— 10バイト目のデータがデータ展開領域の先頭に移動され、ステップ S2 19において、図 15に状態 (E)として示されるように、その後に続くデータが展開され る。 Next, in step S203, the data block extraction unit 105 extracts data blocks from the seventh byte onwards. Since the first byte of the data is “0 × 23”, it is determined that 6 bytes of data are to be added, based on the rules shown in FIG. After that, since the data is cut off with only 3 bytes, it is judged that the 7th and subsequent bytes in the data development area are data that can not be discarded (YES in S209, Y ES in S211). No in S213). Therefore, in step S215, as shown in state (D) in FIG. 15, the 7th to 10th bytes of data are moved to the top of the data development area, and step S2 At 19, the following data is expanded, as shown as state (E) in FIG.
[0157] ステップ S203において、データブロック抽出部 105は、データ展開領域の先頭か ら 7バイトをデータブロックとして抽出し、ステップ S207でデータ解析部 106に渡され る。  In step S203, the data block extraction unit 105 extracts 7 bytes from the top of the data development area as a data block, and is passed to the data analysis unit 106 in step S207.
[0158] 本実施の形態に力かるデータ解析装置 1において主に図 15を参照して説明したデ ータ解析処理が実行されることで、解析対象のデータが、データブロックの長さが明 示されていないようなデータ構造のデータであった場合でも、解析対象のデータ、ま たは該データが展開されて得られる中間データが記憶されている領域のうち、解析 が終了した部分が解放されて作業領域として使用できる。そのため、解析対象のデ ータが、データブロックの長さが明示されて 、な 、データ構造のデータを圧縮な!/、し 符号化されたデータであっても、データ展開領域として展開後のデータ容量に比して 少ない大きさで解析でき、データ解析時の記憶装置の使用量を削減することができ る。  By executing the data analysis process described mainly with reference to FIG. 15 in the data analysis apparatus 1 according to the present embodiment, the data to be analyzed has a clear data block length. Even in the case of data having a data structure that is not shown, in the area where the data to be analyzed or the intermediate data obtained by expanding the data is stored, the portion for which analysis is completed is released. Can be used as a work area. Therefore, even if the data to be analyzed is data in which the length of the data block is explicitly specified, the data of the data structure is compressed! /, The data after coding is expanded as a data expansion area. Analysis can be performed in a smaller size than the data capacity, and the amount of storage used at the time of data analysis can be reduced.
[0159] [第 2の実施の形態]  Second Embodiment
本実施の形態のデータ解析装置の基本的な構成は、第 1の実施の形態において 図 1等を参照して説明したデータ解析装置の構成と同様のものとすることができる。し たがって、以下、図 1に記載のデータ解析装置 1を、本実施の形態のデータ解析装 置として説明する。  The basic configuration of the data analysis device of the present embodiment can be the same as the configuration of the data analysis device described with reference to FIG. 1 and the like in the first embodiment. Therefore, hereinafter, data analysis device 1 shown in FIG. 1 will be described as a data analysis device of the present embodiment.
[0160] 本実施の形態のデータ解析装置は、圧縮されたマークアップ言語のデータ(たとえ ば、圧縮された SVGデータ(SVGZデータ))を展開し、そして、展開後のデータの内 部データ構造を解析するための処理 (データ解析処理)の態様に特徴を有する。  [0160] The data analysis device of the present embodiment decompresses compressed markup language data (for example, compressed SVG data (SVGZ data)), and internal data structure of the decompressed data. It is characterized by the aspect of processing (data analysis processing) for analyzing
[0161] 図 18は、本実施の形態のデータ解析装置において実行されるデータ解析処理の フローチャートである。以下、図 18を参照して、本実施の形態のデータ解析装置の 動作を説明する。なお、図 18のフローチャートに示される処理は、たとえば、制御部 1 01が記憶部 103に記憶されているプログラムを読出して実行し、図 1に示される各部 を制御することにより、実現される。 FIG. 18 is a flowchart of data analysis processing performed in the data analysis device of the present embodiment. Referring to FIG. 18, the operation of the data analysis device of the present embodiment. The process shown in the flowchart of FIG. 18 is realized, for example, by the control unit 101 reading and executing a program stored in the storage unit 103 and controlling each unit shown in FIG.
[0162] 本実施の形態におけるデータ解析処理では、まず、入力部 102を介して入力され る SVGZデータ力 データ展開部 104によって、記憶部 103内の連続するバッファと して確保されたデータ展開領域 (後述する、図 23の展開用バッファ領域 103A)に展 開される(S2001)。なお、 S2001の処理では、データ展開部 104は、上記した展開 用のバッファ領域の大きさに応じた容量の SVGZデータを展開する。具体的には、た とえば、 10Kバイトの SVGZデータをすベて展開すると 100Kバイトの SVGデータと なる場合、展開用のノ ッファ領域の容量が 100Kバイトと確保されていることを条件と して、 10Kバイトの SVGZデータを一度に展開する。同様の場合であって、展開用の ノ ッファ領域の容量が 50Kバイトし力確保されていないときには、データ展開部 104 は、一度に展開する SVGZデータの容量を 5Kバイトとする。 In the data analysis process according to the present embodiment, first, data is input via input unit 102. The data is expanded in the data expansion area (the expansion buffer area 103A in FIG. 23, which will be described later) secured as a continuous buffer in the storage unit 103 by the SVGZ data force data expansion unit 104 (S2001). Note that in the process of S2001, the data decompression unit 104 decompresses SVGZ data of a capacity according to the size of the above-mentioned buffer area for decompression. Specifically, for example, in the case where 100 K bytes of SVG data can be obtained by completely expanding 10 K bytes of SVGZ data, it is conditional that 100 K bytes of capacity of the expansion knock area is secured. Extract 10K bytes of SVGZ data at once. In the same case, if the capacity of the development knocker area is 50 Kbytes and the force is not secured, the data expansion unit 104 sets the capacity of SVGZ data to be expanded at one time to 5 Kbytes.
[0163] 次に、データブロック抽出部 105は、展開されたデータを字句解析し、 XML文法に 従って決定されるデータブロックを検出する(S2003)。 SVG言語は、 XML言語のサ ブセットであるので、 XML文法に従っている。そして、 S2003における「XML文法に 従ったデータブロックの検出」とは、 1つ以上のスペース文字、キャリッジリターン(car riage return)、ラインフィード(line feed)、タブで構成される「空白(white spac e)」またはマークアップ区切り記号(markup delimiter)の出現により、データブロッ クの始まりないし終わりを検出する方法を含む。また、さらに、等号や一重引用符、二 重引用符の出現によってブロックの始まりまたは終わりを検出するようにしてもよい。  Next, the data block extraction unit 105 performs lexical analysis of the expanded data, and detects a data block determined according to the XML grammar (S2003). The SVG language follows the XML grammar because it is a subset of the XML language. And, “detection of data block according to XML grammar” in S2003 means “white space (white space) consisting of one or more space characters, carriage return, line feed, and tab. e) ”or a method of detecting the beginning or end of a data block by the appearance of a markup delimiter. Furthermore, the beginning or the end of the block may be detected by the occurrence of an equal sign, a single quotation mark, or a double quotation mark.
[0164] なお、 S2003における処理によって、データブロックの途中でデータ展開領域の最 後まで字句解析が進んだ場合は、データブロック抽出部 105は、フラグをセットする 等して、そのデータブロックの最後がその時点で展開領域内には存在しないことを表 す。そして、当該データブロックにおける続きのデータ力 次回の S2001での処理に おいてデータ展開部 104によって展開用のバッファ領域に展開され、そして、次回の S2003での処理において、データブロック抽出部 105により、前回、展開用のバッフ ァ領域の最後で途切れたデータブロックの終わり(最後尾)を構成するデータの有無 が検出される。  If the lexical analysis proceeds to the end of the data development area in the middle of the data block by the processing in S2003, the data block extraction unit 105 sets a flag or the like, and the end of the data block. Indicates that does not exist in the deployment area at that time. Then, the subsequent data processing in the data block is expanded in the expansion buffer area by the data expansion unit 104 in the processing of the next S2001, and the data block extraction unit 105 is expanded in the processing of the next S2003. The presence or absence of data constituting the end (last) of the last disconnected data block in the buffer area for expansion is detected last time.
[0165] また、データブロック抽出部 105は、 XML Schemaや Relaxなどの、スキーマ言 語で記述された文法ルールに従ってデータブロックの解析を行なうように構成されて もよい。たとえば、要素 Aで囲まれる部分には 2つの要素 Bを含むことができるという制 限があった場合、データ解析部 106からの解析結果により要素 Aで囲まれる部分に 存在する要素 Bの数をフィードバックすることで 3つ目の要素 Bの属性名や属性値や コンテンツに関してはデータブロック抽出を行わな 、ようにしてもょ 、。 Also, the data block extraction unit 105 may be configured to analyze data blocks in accordance with grammar rules described in a schema language such as XML Schema and Relax. For example, a part surrounded by element A can contain two elements B. If there is a limit, the number of element B present in the part surrounded by element A is fed back based on the analysis result from data analysis unit 106, and the third element B attribute name, attribute value, and content are data Do not perform block extraction.
[0166] また、データブロック抽出部 105は、複数のスキーマ言語に従って、データブロック の解析を行なうことができ、データブロックの種類やユーザの設定等に基づいて、デ 一タブロックの解析に利用するスキーマ言語を変更することもできる。 Further, the data block extraction unit 105 can analyze the data block according to a plurality of schema languages, and is used for analysis of the data block based on the type of the data block, the setting of the user, etc. You can also change the schema language.
[0167] そして、データブロック抽出部 105は、データブロックの種類をデータ解析部 106に 通知する(S2004)。例えば、検出したデータブロックの内容が開始タグ名や属性名 であるなど XML解析で得られる情報を通知する。この場合の通知として実際になさ れる処理としては、具体的には、たとえば、データ解析部 106における意味解析のた めの処理の開始の起因となるフラグをセットすること等が挙げられる。また、ここでの 通知では、第 1の実施の形態において図 4を用いて説明したように、ステータス情報 が利用される。  Then, the data block extraction unit 105 notifies the data analysis unit 106 of the type of data block (S2004). For example, the information obtained by XML analysis is notified, such as the content of the detected data block is the start tag name or attribute name. Specific examples of the process actually performed as the notification in this case include setting a flag that causes the start of the process for semantic analysis in the data analysis unit 106, and the like. Further, in the notification here, the status information is used as described in the first embodiment using FIG.
[0168] 次に、データブロック抽出部 105は、抽出したデータブロックが最初から最後まで、 上記した展開用のバッファ領域にあるかを制御部 101に通知する(S2005)。  Next, the data block extraction unit 105 notifies the control unit 101 whether the extracted data block is in the above-described expansion buffer area from the beginning to the end (S2005).
[0169] そして、データ解析部 106は、 S2005で検出したデータブロックの最初力も最後ま で展開用のバッファ領域にある場合、当該展開領域上のデータブロックについて、デ ータの意味解析を行なう(S2007)。なお、 S2007の意味解析により、たとえば、デー タブロックに対して、 SVGとしての意味解析がなされることにより、 DOMツリーの生成 と現在の解析状態の遷移とが行なわれる。  Then, when the first force of the data block detected in S2005 is also in the buffer area for expansion until the end, the data analysis unit 106 performs semantic analysis of the data with respect to the data block in the expansion area (see FIG. S2007). Note that the semantic analysis of S 2007 is performed on the data block as SVG, for example, whereby the generation of the DOM tree and the transition of the current analysis state are performed.
[0170] 次に、 S2007でのデータ解析結果を元に、データ解析部 106は、データブロック抽 出部 105による次のデータブロックの検出の際のデータブロックの種類や単位(大き さ)を決定する(S2008)。たとえば、コメントはデータブロックとして抽出しないとすれ ば、コメントの開始である「< !——」が出現した場合はコメントの終了である「—— >」が 出現するまで、データを読み捨てるということは可能である。逆に、コメントをデータブ ロックとして抽出する場合は、「く !——」と「—— >」で囲まれる文字列を 1つのデータ ブロックとしてもよ 、が、 1文字単位でデータブロックとして扱ってもよ!、。  Next, based on the data analysis result in S2007, the data analysis unit 106 determines the type and unit (size) of the data block at the time of detection of the next data block by the data block extraction unit 105. To do (S2008). For example, if a comment is not extracted as a data block, data will be read and discarded until the end of the comment "->" appears if the comment start "<!-" Appears. Is possible. Conversely, when extracting a comment as a data block, you may treat the character string enclosed by "!--" And "-->" as one data block, but treat it as a data block in one-character units. Well! ,.
[0171] S2008でのデータブロックの種類や単位の処理では、例えば、コメントの開始であ る「く !——」が出現した場合は、コメントの終了である「——>」というデータブロックを 検出するまでは、データは読み捨てられる。また、 textの開始タグと終了タグに囲ま れた内容は、テキスト情報として表示されるべき文字が入っているので、 1文字単位を 、データブロックとすることが望ましい。なお、前回のデータブロック抽出部 105にお けるデータ解析の結果力 image要素の xlink: hrefと 、う属性名を含む場合には、 解析の対象となったデータブロックには、当該属性名に対応した属性値の開始であ るに'」と終わりを表す「"」との間に、属性値として、ファイル名の場合と base64などで エンコードされたデータがテキストとして埋め込まれて 、る場合とがある。このような場 合には、データ解析部 106は、ファイル名かデータのどちらのデータであるかを判定 するのに十分な大きさだけのデータを対象として意味解析を行なう。具体的には、ま ず、例えば 100バイト分だけを意味解析し、 base64でエンコードされている場合にの み、 1文字単位で解析してデコードするようにしてもよ!、。 [0171] In the processing of data block type and unit in S2008, for example, the start of a comment If a "!" Appears, the data will be read out until the data block "->" which is the end of the comment is detected. In addition, since the contents enclosed by the start tag and the end tag of text contain characters to be displayed as text information, it is desirable to use one character unit as a data block. If the result of data analysis in the previous data block extraction unit 105 includes the xlink: href of the image element and the attribute name, the data block corresponding to the analysis corresponds to the attribute name. Between the '' at the beginning of the attribute value and the '' representing the end, the case of the file name and data encoded with base 64 etc. are embedded as the text as the attribute value. is there. In such a case, the data analysis unit 106 performs semantic analysis on data of a size sufficient to determine whether it is a file name or data. Specifically, first, for example, only 100 bytes may be analyzed semantically, and only when encoded in base 64, it may be analyzed and decoded in units of one character.
[0172] 次に、データブロック抽出部 105が、データブロックを検出するために展開用のバッ ファ領域の最後まで字句解析をしたかを調べ (S2009)、まだ最後まで字句解析をし ていない場合は、 S2003に処理が戻される。一方、最後まで字句解析がなされてい た場合には、入力部 102から入力されたデ一たの中で未展開のデータがあるかが調 ベられ (S2017)、未展開のデータがあれば、 S2001に処理力戻される。未展開の データが無ければ、データ解析処理が終了する。  Next, it is checked whether the data block extraction unit 105 has performed lexical analysis to the end of the buffer area for expansion in order to detect data blocks (S2009), and the lexical analysis has not been performed to the end yet. The processing is returned to S2003. On the other hand, if the lexical analysis has been performed to the end, it is checked whether there is unexpanded data among the data input from the input unit 102 (S2017), and if there is unexpanded data, Processing power is returned to S2001. If there are no unexpanded data, the data analysis process ends.
[0173] 一方、 S2005で、検出したデータブロックの一部のみが展開用のバッファ領域に存 在するとされた場合には、データブロック抽出部 105は、現在展開用のノ¾ファ領域 に展開されているデータを、結合用の連続バッファ領域 (後述する、図 23の結合用 の連続バッファ領域 103B)へコピーする(S2011)。なお、結合用の連続バッファ領 域とは、記憶部 103内に定義された記憶領域であって、上記した展開用のバッファ 領域とは別に定義される、連続した、記憶領域である。  On the other hand, if it is determined in S2005 that only a part of the detected data block is present in the buffer area for expansion, data block extraction unit 105 is expanded in the current area for expansion. The copied data is copied to the continuous buffer area for connection (the continuous buffer area 103B for connection shown in FIG. 23, which will be described later) (S2011). The coupling continuous buffer area is a storage area defined in the storage unit 103, and is a continuous storage area defined separately from the above-mentioned expansion buffer area.
[0174] 前記記憶された残りのデータの開始位置から、前記データブロックの次のデータブ ロックを抽出する結合用の連続バッファ領域の容量は、たとえば、データブロック抽出 部 105の文字解析の態様に応じて、決定される。つまり、たとえば、データブロック抽 出部 105が XML文法に従って文字解析を行なっている場合には、 XML文法に従 つて、決定される。たとえば、 XML文法では、「く text 」「く text>」「く textZ >」 というように、要素名は、必ず、「く」の直後から空白(改行も含む)か「 >」「Z」が出現 すると 、う決まり事があり、これらが出現するまでを要素名と 、うように決まって 、る。 結合用の連続バッファ領域の容量は、データブロックが要素名の場合は 50バイト、属 性名の場合は 100バイトと 、うようにあら力じめ決めてぉ 、てもよ 、し、足りなくなれば 、随時、必要な大きさだけ、結合用の連続バッファ領域の容量を増やすようにしてもよ い。 The capacity of the continuous buffer area for combination for extracting the next data block of the data block from the start position of the stored remaining data is, for example, according to the character analysis mode of the data block extraction unit 105. Be determined. That is, for example, when the data block extraction unit 105 performs character analysis according to the XML grammar, Will be decided. For example, in XML grammar, element names must always be blank (including line feed) or ">" or "Z" immediately after "ku", such as "ku text""kutext>""ku text Z>" When it appears, there is a rule, and until it appears, it is decided to be an element name, and so on. If the data block is an element name, the capacity of the contiguous buffer area is 50 bytes, and if the attribute name is 100 bytes, the capacity of the contiguous buffer area can not be sufficient. For example, the capacity of the continuous buffer area for coupling may be increased as needed at any time.
[0175] なお、検出したデータブロックの一部のみが展開用のノ ッファ領域にある場合とは 、データブロック力 展開用のバッファ領域の最初部分で途切れている状態 (状態 1) 力 最後の部分で途切れている状態 (状態 2)力、または、最初と最後の両方で途切 れて 、る状態 (状態 3)にある場合である。  When only a part of the detected data block is in the deployment buffer area, it is interrupted at the first part of the data block expansion buffer area (state 1) force last part If it is in the interrupted state (state 2), or if it is in the broken state (state 3) at both the first and the last.
[0176] 状態 2の場合、つまり、展開用のバッファ領域において、データブロックの最初の部 分が存在しても最後の部分が途切れている場合は、データブロック抽出部 105は、そ のデータブロックのうち、展開用のバッファ領域に存在する部分を、結合用の連続バ ッファ領域へコピーするだけでょ 、。  [0176] In the case of state 2, that is, if the first part of the data block exists but the last part is interrupted in the buffer area for expansion, the data block extraction unit 105 Of the above, just copy the part that exists in the buffer area for expansion to the continuous buffer area for connection.
[0177] 状態 3の場合、つまり、データブロックの最初で途切れている場合と最後で途切れ ている場合は、途切れた部分より前に存在するデータが、それまでの処理で既に結 合用の連続バッファ領域にコピーされているので、データブロック抽出部 105は、当 該すでにコピーされているデータの後ろに現在展開用のバッファ領域にあるデータ をコピーすることにより、途切れた部分同士を接合させる。  [0177] In the case of state 3, that is, in the case of interruption at the beginning and end of the data block, data existing before the interruption portion is a continuous buffer for coupling that has already been processed so far. Since the data is copied to the area, the data block extraction unit 105 joins the interrupted portions by copying the data currently in the buffer area for expansion after the data already copied.
[0178] なお、データブロック抽出部 105は、結合用の連続バッファ領域について、その容 量力 上記のようにデータを接合させるのに足りる力否かを判断し、小さいと判断した 場合、十分な大きさの結合用の連続バッファ領域を、図 24に連続バッファ領域 103C として示すように、記憶部 103内で別途確保するよう構成されてもよい。この場合、デ 一タブロック抽出部 105は、当該新たに確保した結合用の連続バッファ領域 103Cで 、データを接合させる。この場合の、新たに確保された連続バッファ領域 103Cにより 、本発明の第 3のノ ッファが構成される。  [0178] The data block extraction unit 105 determines whether or not the capacity of the continuous buffer area for coupling is sufficient for joining data as described above, and if it is determined that it is small, the size is sufficiently large. A continuous buffer area for combining data may be separately secured in the storage unit 103 as shown as a continuous buffer area 103C in FIG. In this case, the data block extraction unit 105 joins data in the newly secured connection continuous buffer area 103C. In this case, the newly reserved continuous buffer area 103C constitutes the third buffer of the present invention.
[0179] また、 S2011におけるデータのコピーは、 S2003において、データブロック抽出部 105によってデータブロックの終わりまたは展開用のバッファ領域の終わりが検出さ れたときに、ブロック単位で行なわれてもよいし、 1文字単位や 1バイト単位のように、 さらに小さな単位で、データブロックの終わりが検出できるまで逐次行なわれてもよい [0179] Further, the copy of the data in S2011 is the data block extraction unit in S2003. When the end of the data block or the end of the buffer area for expansion is detected by 105, it may be performed in block units, or data block in smaller units, such as 1-character units or 1-byte units. May be performed sequentially until the end of the can be detected
[0180] そして、 S2011の処理の後、データブロック抽出部 105は、データブロックの最初 から最後までのデータが、結合用の連続バッファ領域に存在するか否かを調べ(S2 013)、データブロックの一部しか存在しなければ S2009に処理を進める。一方、全 てが存在すれば、データ解析部 106が、結合用の連続バッファ領域に存在するデー タブロックを、意味解析し(S2015)、処理を S2008に進める。 Then, after the process of S2011, the data block extraction unit 105 checks whether the data from the beginning to the end of the data block exist in the continuous buffer area for connection (S2 013), and the data block If there is only a part of, proceed to S2009. On the other hand, if all exist, the data analysis unit 106 semantically analyzes the data block present in the continuous buffer area for coupling (S2015), and advances the process to S2008.
[0181] なお、結合用の連続バッファ領域にデータブロックの一部のデータしか存在しない と判断された場合、 S2009に処理が進められてデータブロックの検出が展開用のバ ッファ領域の最後まで行なわれているため、 S 2009から S 2017に処理が進められた 際には、必ず、未展開データが存在すると判断されるはずである。このことから、デー タ解析装置では、結合用の連続バッファ領域にデータブロックの一部のデータしか存 在しないと判断されたとき(S2013で NO判断時)に、 S2017で未展開データが存在 しないと判断された場合(S2017で NO判断時)には、エラー処理がなされる。エラー 処理とは、たとえば、データの解析に関する処理が停止され、エラーが発生した旨の 報知等がなされる処理を言う。  If it is determined that only part of the data block data is present in the continuous buffer area for coupling, the process proceeds to S2009, and detection of the data block is performed until the end of the expansion buffer area. Therefore, when processing proceeds from S 2009 to S 2017, it should always be judged that there is unexpanded data. From this, in the data analysis device, when it is determined that only part of the data of the data block is present in the continuous buffer area for coupling (when NO in S2013), unexpanded data is not present in S2017. If it is determined that (S2017 NO), error processing is performed. The error process is, for example, a process in which a process related to analysis of data is stopped and a notification that an error has occurred is issued.
[0182] 図 19を用いて、展開用のバッファ領域における、展開されるデータと、それに含ま れるデータブロックとの関係を説明する。  The relationship between the data to be expanded and the data block contained in the buffer area for expansion will be described with reference to FIG.
[0183] 図 19では、展開用のバッファ領域力 領域 2104, 2105, 2106, 2107として示さ れている。これらは、それぞれ異なるバッファ領域に展開されてもよいが、それぞれ異 なるタイミングで展開用のノッファ領域とされた同じ記憶領域に展開してもよい。つま り、たとえば、領域 2104においてデータが展開され、当該領域 2104に展開された データに対する解析等の処理が終わった後、次に、同じ領域にデータが展開された 場合、当該同じ領域力 領域 2105とされる。また、領域 2106についても、たとえば、 領域 2105と同じ領域であって、領域 2105とされた領域にデータが上書きされた場 合、上書きされた後の同じ領域が領域 2106とされる。また、領域 2107についても、 たとえば、領域 2106と同じ領域であって、領域 2106とされた領域にデータが上書き された場合、上書きされた後の同じ領域が領域 2107とされる。 In FIG. 19, the buffer area force areas 2104 2105 2106 2107 for expansion are shown. These may be expanded into different buffer areas, but may be expanded into the same storage area as an expansion noffer area at different timings. That is, for example, after data is expanded in area 2104 and processing such as analysis of the data expanded in area 2104 is completed, if data is expanded next in the same area, the same area strength area 2105 is generated. It is assumed. Also, in the case of the area 2106, for example, if the same area as the area 2105 and data is overwritten to the area designated as the area 2105, the same area after being overwritten is regarded as the area 2106. Also for area 2107, For example, if data is overwritten in the same area as the area 2106 and the area 2106, the same area after being overwritten is made the area 2107.
[0184] また、図 19では、展開されたデータ 2100は、データブロック 2101, 2102, 2103と いう 3つのデータブロックを含むものとする。各データブロックを構成するデータは、便 宜上、それぞれ異なる種類のハッチングを施されている。そして、図 19は、データ 21 00力 上記した S 2001にお!/ヽて、 1回目の S2001で領域 2104に展開され、 2回目 の S2001で領域 2105に展開され、 3回目の S2001で領域 2106に展開され、そし て、 4回目の S2001で領域 2107に展開されることを示している。  Further, in FIG. 19, the expanded data 2100 is assumed to include three data blocks such as data blocks 2101, 2102, and 2103. The data that make up each data block is hatched differently for convenience. Then, FIG. 19 is expanded to the area 2104 in the first S2001, and is expanded to the area 2105 in the second S2001, and the area 2106 in the third S2001. It is shown that it is expanded to the area 2107 in the fourth S2001.
[0185] 図 19を参照して、 1回目の S2001では、展開用のバッファ領域である領域 2104に 、データブロック 2101の全部と、データブロック 2102の一部分が展開されている。領 域 2104には、データブロック 2102の先頭部分が含まれている。  Referring to FIG. 19, in the first S 2001, the entire data block 2101 and a part of the data block 2102 are expanded in the area 2104 which is a buffer area for expansion. Region 2104 contains the beginning of data block 2102.
[0186] 2回目の S2001では、展開用のバッファ領域である領域 2105に、データブロック 2 102の一部分が展開されている。なお、領域 2105には、データブロック 2102の中間 部分が含まれる。  In the second S2001, a part of the data block 2 102 is expanded in the area 2105 which is a buffer area for expansion. Region 2105 includes the middle portion of data block 2102.
[0187] 3回目の S2001では、展開用のバッファ領域である領域 2106に、データブロック 2 102の終端部分とデータブロック 2103の前半部分が展開されている。  At the third S2001, the end portion of the data block 2 102 and the first half of the data block 2103 are expanded in the area 2106 which is a buffer area for expansion.
[0188] そして、 4回目の S2001では、展開用のバッファ領域である領域 2107に、データブ ロック 2103の後半部分が展開されている。  Then, in the fourth S2001, the second half of the data block 2103 is expanded in the area 2107 which is a buffer area for expansion.
[0189] データブロック 2101は、一回の展開処理によって、展開用のバッファ領域に、その 最初力も最後のデータが展開されている。このため、データブロック 2101については 、 S2005の処理の後、 S2007、 S2008、 S2009と! /、うように処理力進められる。なお 、領域 2104 (展開用のバッファ領域)において、データブロック 2101の最後まで字 句解析が行なわれたとしても、領域 2104の最後までは字句解析が行なわれたことに はならないので、処理は、 S2003に戻される。  Data block 2101 has its first and last data expanded in its buffer area for expansion by one expansion process. For this reason, with respect to the data block 2101, after the processing of S2005, processing power is advanced as in S2007, S2008, S2009! In the area 2104 (buffer area for expansion), even if the lexical analysis is performed to the end of the data block 2101, the lexical analysis is not performed to the end of the area 2104. It is returned to S2003.
[0190] データブロック 2102については、領域 2104として示されるように、 1回目のデータ の展開によっては、データブロックの先頭部しか展開されていない。このことから、デ 一タブロック 2102につ!/ヽて ίま、 S2005力ら S2011に処理力進められ、そして、領域 2104に展開されたその一部分が、結合用の連続バッファ領域にコピーされる。 [0191] 図 20—図 22は、結合用の連続バッファ領域におけるデータの記憶状態を模式的 に示す図である。図 20—図 22では、それぞれ、結合用の連続バッファ領域力 領域 2300として示され、また、領域 2300, 2301, 2302にお!/ヽて、データブロック 2102 の一部または全部をコピーされた部分力 ノ、ツチングを施されて示されている。なお、 図 20—図 22では、少なくともその時点で確保されているバッファ領域力 実線で表 現されている。また、領域 2300, 2301, 2302はバッファ領域の位置や容量が同じ であっても良いし、それぞれ位置や容量の異なる別々のバッファ領域であっても良い [0190] As to data block 2102, only the head of the data block is expanded by the first expansion of data, as shown as area 2104. From this, data block 2102! /! S ブ ロ ッ ク S2005 ら et al. Processing proceeds to S2011, and the portion developed in area 2104 is copied to the continuous buffer area for coupling. . FIG. 20 to FIG. 22 schematically show the storage state of data in the continuous buffer area for coupling. In FIG. 20-FIG. 22, each is shown as a continuous buffer area force area 2300 for coupling, and part or all of the data block 2102 is copied to / from areas 2300, 2301 and 2302. Forced, shown to be applied. In FIGS. 20 to 22, the buffer area force secured at least at that time is represented by a solid line. The areas 2300, 2301 and 2302 may have the same position and capacity of the buffer area, or may be different buffer areas having different positions and capacities.
[0192] 展開用のバッファ領域である領域 2104に、その先頭部のみを展開されたデータブ ロック 2102は、 S2011の処理により、当該先頭部を、図 20に示されるように、結合用 の連続バッファ領域にコピーされる。なお、データブロック 2101の全部のデータにつ いての S2007における解析と、データブロック 2102の領域 2104に展開された部分 のデータにつ 、ての S2011における領域 2300へのコピーとが終わると、領域 2104 は、領域 2105として、データを上書きされても良い。なお、領域 2105は、記憶部 10 3内の、領域 2104とされた領域とは異なる領域に定義されることも可能である。ただ し、同じ記憶部 103がデータ解析結果の DOMツリーの構築やデータ解析にも使用 される場合、記憶部 103内で連続するノ ッファを確保することが難しくなる場合もある と考えられるため、データ展開部 104は、入力部 102を介して入力されるすべてのデ ータの解析が終わるまで、記憶部 103内の同じ連続バッファを展開用のバッファ領域 として使用することが望ま 、。 The data block 2102 in which only the top portion is expanded in the area 2104 which is a buffer area for expansion is, as shown in FIG. It is copied to the area. When analysis of all the data of the data block 2101 in S2007 and copying of the data of the portion expanded in the area 2104 of the data block 2102 to the area 2300 in S2011 are completed, the area 2104 is performed. The data may be overwritten as the area 2105. Note that the area 2105 can also be defined in an area in the storage unit 103 that is different from the area set as the area 2104. However, if the same storage unit 103 is also used for the construction of a DOM tree of data analysis results and data analysis, it may be difficult in some cases to secure a continuous knocker in the storage unit 103. It is desirable that the data expansion unit 104 use the same continuous buffer in the storage unit 103 as an expansion buffer area until analysis of all data input through the input unit 102 is completed.
[0193] そして、展開用のバッファ領域である領域 2105に、その一部を展開されたデータ ブロック 2102は、再度実行される S2011の処理により、領域 2105に展開された部 分のデータを、図 21に示されるように、領域 2300にコピーされる。このとき、領域 23 00では、先にコピーされていた、データブロック 2102の先頭部のデータと、領域 210 5に展開された部分とが、接合される。  Then, the data block 2102 partially expanded in the expansion buffer area 2105 is the data of the portion expanded in the area 2105 by the processing of S2011 executed again. As shown at 21, the data is copied to the area 2300. At this time, in the area 2300, the data at the beginning of the data block 2102, which has been copied first, and the area developed in the area 2105 are joined.
[0194] そして、展開用のバッファ領域である領域 2106に、その後端部を展開されたデー タブロック 2102は、再度実行される S2011の処理により、領域 2106に展開された部 分のデータを、図 22に示されるように、領域 2300にコピーされる。このとき、領域 23 00では、先にコピーされていた、データブロック 2102の先頭部および中間部のデー タと、領域 2106に展開された後端部とが、接合される。 Then, the data block 2102 whose rear end is expanded in the area 2106 which is a buffer area for expansion is the data of the part expanded in the area 2106 by the processing of S2011 executed again. It is copied to area 2300 as shown in FIG. At this time, area 23 At 00, the data at the head and middle of the data block 2102, which was previously copied, and the rear end developed in the area 2106 are joined.
[0195] 以上説明した本実施の形態では、データブロック抽出部 105は、 S2004で、データ 解析部 106に、データブロックの種類等を通知する。  In the present embodiment described above, the data block extraction unit 105 notifies the data analysis unit 106 of the type and the like of the data block in S2004.
[0196] なお、ここでの通知のための処理として、データブロック抽出部 105は、データブロ ックに対して、 XML文法に従って、開始タグ、終了タグ、空タグや属性名、属性値、 コンテンツ (タグに挟まれる内容)、コメントなどを字句解析により検出することができる 。そして、データブロック抽出部 105は、字句解析の結果として、要素名、属性名、属 性値であるというデータブロックの種類とデータブロックを、データ解析部 106に通知 する。  Note that, as processing for notification here, the data block extraction unit 105 transmits a start tag, an end tag, an empty tag, an attribute name, an attribute value, and a content to the data block according to the XML grammar. (Contents sandwiched by tags), comments, etc. can be detected by lexical analysis. Then, the data block extraction unit 105 notifies the data analysis unit 106 of the data block type and the data block that are the element name, the attribute name, and the attribute value as a result of the lexical analysis.
[0197] 例えば、  For example,
く text xml: space =〃 preserve" x = 10 a< tspan tex t— decoration = " underline ^ > b< / tspan> c def < / text > と!、う、「textの開始」タグから「textの終了」タグまでのデータブロックにつ!/、ての通 知のための処理では、データブロック抽出部 105は、要素名である「text」、属性名 である「x」、 Xの属性値である「10」、コンテンツの「abc (空白)(空白)(空白) def」の 検出が可能であり、そして、データ解析部 106に対して、検出したデータブロックが要 素であるのか属性値であるのかなどの情報を伝えることができる。  Text xml: space = 〃 preserve "x = 10 a <tspan tex t — decoration =" underline ^> b </ tspan> c def </ text> and!, U, from the "start of text" tag "text In processing for notification of data blocks up to the end tag, the data block extraction unit 105 uses attribute values “text” as element names, “x” as attribute names, and attribute values of X. It is possible to detect a certain “10”, “abc (blank) (blank) (blank) def” of the content, and for the data analysis unit 106, whether the detected data block is an element or not Can communicate information such as whether there is.
[0198] データ解析部 106は、データブロック抽出部 105が字句解析によって検出したデー タブロックの内容を意味解析することにより、その意味解析の結果として、データプロ ック抽出部 105に、字句解析の結果としてデータ解析部 106に通知されるデータブロ ックの単位であって、意味解析に適したデータブロックの単位を、通知することができ る。 The data analysis unit 106 semantically analyzes the contents of the data block detected by the data block extraction unit 105 by the lexical analysis, and as a result of the semantic analysis, the data block extraction unit 105 performs the lexical analysis. As a result of the above, it is possible to notify a data block unit that is notified to the data analysis unit 106 that is a unit of data block suitable for semantic analysis.
[0199] 例えば、データ解析部 106が、要素名「text」の意味を解析し、コンテンツの中身は 文字列が入るので 1文字単位で意味解析が可能であることをデータブロック抽出部 1 05に通知する。なお、「xml: space」という属性の属性値は 6561^6」か「(16£&1111;」 のいずれかであって、属性値が「preserve」である場合は、コンテンツ内の空白を維 持するという意味で、上記の例に適用すると、 abcと defの間に 3つの空白があると解 釈される。一方、属性値が「default」である場合は、コンテンツ内の連続する空白は 1つと解釈される。このように、属性が「xml : space」である場合等のように、属性値と して持ちうるものが必ず有限の種類である場合は、データブロック抽出部 105によつ て 1つのデータブロックであると判断されるデータの大きさ力 変更されてもよい。 [0199] For example, the data analysis unit 106 analyzes the meaning of the element name "text", and the content of the content contains a character string. Notice. Note that if the attribute value of the attribute "xml: space" is either 6561 ^ 6 or "(16 £ &1111;" and the attribute value is "preserve", keep the space in the content. Applied to the above example in the sense that there are three spaces between abc and def Be explained. On the other hand, when the attribute value is "default", consecutive blanks in the content are interpreted as one. As described above, as in the case where the attribute is "xml: space", etc., if the types of attributes that can be possessed are always finite types, one data block is extracted by the data block extraction unit 105. The size and strength of the data determined to be
[0200] また、例えば、下記のようにデータが、ファイル名を表すデータであるのか、画像を 表すデータであって base64でエンコードされる等の処理を施されたデータであるの かを判定できるのは、データブロック抽出部 105ではなぐデータ解析部 106である。  [0200] Further, for example, it can be determined whether the data is data representing a file name or data representing an image and subjected to processing such as encoding with base 64 as described below. In the data block extraction unit 105, the data analysis unit 106 is present.
[0201] なお、そのようなデータの一例を、以下に示す。  [0201] An example of such data is shown below.
[0202] ファイル名の場合:  [0202] For file name:
< image xlink : nref = filename, jpeg x= 10 y= 20 widtn= 100 height = "200" / >  <image xlink: nref = filename, jpeg x = 10 y = 20 widtn = 100 height = "200" />
base64でエンコードされたデータの場合:  For base64 encoded data:
< image xlink: href = "data: image/ jpeg; base64, /9j/ 4AAQSkZJRgAB AQEAYABgAAD/  <image xlink: href = "data: image / jpeg; base64, / 9j / 4AAQSkZJRgAB AQEAYABgAAD /
< <中略 > >  <Omitted>
rkFR/UOUDP//Z" x= " 10" y= "20" width= " 100" height = "2 00" / >  rkFR / UOUDP // Z "x =" 10 "y =" 20 "width =" 100 "height =" 2 00 "/>
データ解析部 106は、要素名「image」とその属性名「xlink : href」から、属性値が ファイル名であるかどうかを判定する。このため、データ解析部 106は、データブロッ ク抽出部 105に対して、最初の数十力も数百バイトを渡すように(一度に、結合用の 連続バッファ領域に保存するように)、情報の通知を行なう。そして、データ解析部 10 6が解析の対象としているデータ中に、上記の base64でエンコードされたデータに 含まれるような「data : imageZjpeg ;base64,」という部分が出現することにより、解 祈の対象となっているデータを、 base64でエンコードされたデータであると判定し、 その後の属性値が 1文字単位で意味解析をすることができることを、データブロック抽 出部 105に通知する。このような通知に基づいて、データブロック抽出部 105は、抽 出するデータブロックの大きさを変更する。  The data analysis unit 106 determines whether the attribute value is a file name from the element name “image” and its attribute name “xlink: href”. For this reason, the data analysis unit 106 passes the first several dozens of hundreds of bytes to the data block extraction unit 105 (as it stores the data in the continuous buffer area for coupling at one time). Give notice. Then, the portion “data: imageZjpeg; base64,” included in the data encoded by the above base64 appears in the data to be analyzed by the data analysis unit 106, so that the object of interpretation is generated. The data in question is determined to be base64 encoded data, and the data block extraction unit 105 is notified that the attribute value thereafter can be subjected to semantic analysis in units of one character. Based on such notification, the data block extraction unit 105 changes the size of the data block to be extracted.
[0203] 図 23に、以上説明した本発明の第 2の実施の形態のデータ解析装置におけるデ ータ解析の内容を全体的に説明するための図を示す。図 23では、記憶部 103にお いて、上述した展開用バッファ領域 103Aと結合用の連続バッファ領域 103Bが定義 されて ヽる状態が示されて!/ヽる。 [0203] FIG. 23 is a block diagram of the data analysis apparatus according to the second embodiment of the present invention described above. The figure for demonstrating the content of data analysis entirely is shown. FIG. 23 shows a state in which the above-mentioned expansion buffer area 103A and coupling continuous buffer area 103B are defined and stored in the storage unit 103! / ヽ.
[0204] 図 23を参照して、本実施の形態のデータ解析処理では、入力部 102を介して入力 される SVGZデータ力 データ展開部 104によって、展開用のバッファ領域 103Aの 大きさに応じた容量ごとに、当該展開用のバッファ領域 103Aに SVGデータにされて 展開される。そして、展開されたデータに対して、データブロック抽出部 105は、 XM L文法に従って字句解析を行ない、その結果を、データ解析部 106に通知する。デ ータ解析部 106は、このような通知に応じて、順次、展開用のバッファ領域 103Aに 展開された SVGデータに基づいた DOMツリーを生成する。なお、字句解析の際、 データブロック抽出部 105は、展開用のバッファ領域 103Aに展開されたデータブロ ックがデータブロックの途中で途切れている場合には、当該途切れている部分を、結 合用の連続バッファ領域 103Bにコピーする。このような作業が順次行なわれていくこ とにより、結合用の連続バッファ領域 103Bで、途切れたデータブロックが結合されて 、データ解析部 106によって、 DOMツリーの生成に利用される。  Referring to FIG. 23, in the data analysis process of the present embodiment, SVGZ data force input via input unit 102 causes data expansion unit 104 to respond to the size of expansion buffer area 103 A. For each capacity, SVG data is expanded in the expansion buffer area 103A. Then, the data block extraction unit 105 performs lexical analysis according to the XML grammar for the expanded data, and notifies the data analysis unit 106 of the result. The data analysis unit 106 sequentially generates a DOM tree based on the SVG data expanded in the expansion buffer area 103A in response to such notification. When lexical analysis is performed, if the data block expanded in the expansion buffer area 103A is interrupted in the middle of the data block, the data block extraction unit 105 uses the interrupted portion as the coupling block. Copy to the continuous buffer area 103B of Such work is sequentially performed, and the interrupted data blocks are combined in the combining continuous buffer area 103 B and used by the data analysis unit 106 to generate a DOM tree.
[0205] 本実施の形態では、一定容量の展開用のバッファ領域 103Aと、必要に応じて容 量を変更される連続したバッファである結合用の連続バッファ領域 103Bとが利用さ れることにより、データの解析が可能となる。なお、データの展開は、データブロックが 抽出されるごとに、当該データブロック力ステータス情報と関連付けられてデータ解 析部 106に通知されるため、入力部 102から入力されるデータの全量が一度に展開 されなくとも、順次、行なうことができる。これにより、展開用のバッファ領域 103Aの容 量を、従来と比較して小さいものとすることができる。また、展開用のバッファ領域 103 Aにおいて容量的に入りきらな力つたデータブロックが出てきたときにのみ、結合用の 連続バッファ領域 103Bが利用されるため、記憶部 103の記憶領域を効率良く利用 できる。  [0205] In the present embodiment, by using a buffer area 103A for expansion of a fixed capacity and a continuous buffer area 103B for connection which is a continuous buffer whose capacity is changed as necessary, Analysis of data is possible. In addition, since expansion of data is notified to the data analysis unit 106 in association with the data block power status information each time a data block is extracted, the entire amount of data input from the input unit 102 is one at a time. Even if it is not expanded, it can be done sequentially. As a result, the capacity of the buffer area 103A for expansion can be made smaller than that of the prior art. In addition, since the continuous buffer area 103B for coupling is used only when the data block having no capacity is extracted in the buffer area 103A for expansion, the storage area of the storage unit 103 can be efficiently used. Available.
[0206] なお、本実施の形態において生成される DOMツリーは、 SVGデータについての 抽象構文木の一例であって、本発明における抽象構文木は、これに限定されない。  Note that the DOM tree generated in the present embodiment is an example of an abstract syntax tree for SVG data, and the abstract syntax tree in the present invention is not limited to this.
[0207] 以上説明した第 1および第 2の実施の形態では、データ解析装置において実行さ れるデータ解析方法を、プログラムとして提供することもできる。このようなプログラム は、コンピュータに付属するフレキシブルディスク、 CD— ROM、 ROM, RAMおよび メモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製 品として提供することもできるし、コンピュータに内蔵するハードディスクなどの記録媒 体において記録させて、当該プログラムを提供することもできる。また、ネットワークを 介したダウンロードによって、当該プログラムを提供することもできる。 In the first and second embodiments described above, the data analysis device Data analysis methods can also be provided as a program. Such a program may be recorded as a computer readable recording medium such as a flexible disk, a CD-ROM, a ROM, a RAM and a memory card attached to the computer, and may be provided as a program product. The program can also be provided by recording on a recording medium such as a built-in hard disk. The program can also be provided by downloading via a network.
[0208] 提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストール されて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録され た記録媒体とを含む。 The provided program product is installed in a program storage unit such as a hard disk and executed. The program product includes the program itself and a recording medium in which the program is recorded.
[0209] この発明を詳細に説明し示してきた力 これは例示のためのみであって、限定ととつ てはならず、発明の精神と範囲は添付の請求の範囲によってのみ限定されることが 明らかに理解されるであろう。  [0209] The force which has described and illustrated the present invention in detail This is for illustration only and should not be taken as a limitation, the spirit and scope of the invention being limited only by the appended claims. Will be clearly understood.

Claims

請求の範囲 The scope of the claims
[1] 解析対象データの中間データを生成して、所定のデータ展開領域に展開するデー タ展開部(104)と、  [1] A data expansion unit (104) that generates intermediate data of analysis target data and expands it in a predetermined data expansion area;
前記中間データを解析するデータ解析部(106)とを備え、  A data analysis unit (106) for analyzing the intermediate data;
前記データ展開部(104)は、前記解析対象データの一部ずつを利用して順次中 間データを生成し、  The data developing unit (104) sequentially generates intermediate data using a part of the analysis target data.
前記データ解析部(106)は、前記生成された中間データを順次解析することを特 徴とする、データ解析装置(1)。  The data analysis unit (1) is characterized in that the data analysis unit (106) sequentially analyzes the generated intermediate data.
[2] 前記データ展開部(104)は、符合化された前記解析対象データを復号化して前記 中間データを生成する、請求項 1に記載のデータ解析装置( 1)。 [2] The data analysis device (1) according to claim 1, wherein the data expansion unit (104) decodes the encoded analysis target data to generate the intermediate data.
[3] 前記符合化された前記解析対象データは、圧縮されたデータである、請求項 2に 記載のデータ解析装置(1)。 [3] The data analysis device (1) according to claim 2, wherein the encoded data to be analyzed is compressed data.
[4] 前記データ展開部(104)は、記憶部上に大きさを指定して前記データ展開領域を 確保し、前記データ展開領域の大きさに応じて、前記解析対象データの一部を復号 化して前記中間データを生成する、請求項 1に記載のデータ解析装置(1)。 [4] The data expansion unit (104) designates a size on a storage unit to secure the data expansion area, and decodes a part of the analysis target data according to the size of the data expansion area. The data analysis device (1) according to claim 1, wherein the intermediate data is generated to generate the intermediate data.
[5] 前記データ展開部(104)は、前記解析対象データのうちの展開が完了したデータ 位置を記憶し、前記解析対象データのうちの前記記憶されたデータ位置力ゝら復号ィ匕 して前記中間データを生成する、請求項 4に記載のデータ解析装置(1)。 [5] The data developing unit (104) stores the data position of the analysis target data that has been expanded, and decodes the stored data position data of the analysis target data. The data analysis device (1) according to claim 4, wherein the intermediate data is generated.
[6] 前記データ展開部(104)は、前記データ展開領域の拡張の要否を判定し、必要で あると判定しときに、前記データ展開領域を拡張する、請求項 4に記載のデータ解析 装置 (1)。 [6] The data analysis according to claim 4, wherein the data expansion unit (104) determines whether or not the data expansion area needs to be expanded, and when it is determined that the data expansion area is necessary, the data expansion area is expanded. Equipment (1).
[7] 前記データ展開部(104)は、前記データ展開領域に隣接した領域を、他の領域よ りも優先して、拡張する前記データ展開領域とする、請求項 6に記載のデータ解析装 置 (1)。  [7] The data analysis device according to claim 6, wherein the data development unit (104) sets the area adjacent to the data development area as the data development area to be expanded prior to other areas. Position (1).
[8] 前記データ展開部(104)は、前記データ展開領域の後方に隣接した領域を、他の 領域よりも優先して、拡張する前記データ展開領域とする、請求項 6に記載のデータ 解析装置(1)。  [8] The data analysis according to claim 6, wherein the data development unit (104) sets the area adjacent to the rear of the data development area as the data development area to be expanded prior to other areas. Device (1).
[9] 前記中間データ力もデータブロックを抽出するデータブロック抽出部(105)をさら に備え、 [9] The above-mentioned intermediate data strength is also added to the data block extraction unit (105) for extracting In preparation for
前記データ解析部(106)は、前記データブロック抽出部(105)によって抽出された データブロックを解析することを特徴とする、請求項 1に記載のデータ解析装置(1)。  The data analysis device (1) according to claim 1, wherein the data analysis unit (106) analyzes the data block extracted by the data block extraction unit (105).
[10] 前記データブロック抽出部(105)は、前記中間データのうち前記データブロックが 抽出された残りのデータの位置を記憶する、請求項 9に記載のデータ解析装置(1)。  10. The data analysis device (1) according to claim 9, wherein said data block extraction unit (105) stores the position of the remaining data from which said data block is extracted among said intermediate data.
[11] 前記データ展開部(104)は、前記記憶された残りのデータの位置に応じて、前記 残りのデータを前記データ展開領域の先頭に移動させる、請求項 10に記載のデー タ解析装置(1)。  11. The data analysis apparatus according to claim 10, wherein said data development unit (104) moves the remaining data to the top of said data development area according to the position of said stored remaining data. (1).
[12] 前記データ展開部(104)は、前記データ展開領域の、前記残りのデータの後ろに 、前記中間データに続く次の中間データを生成して展開する、請求項 10に記載のデ ータ解析装置(1)。  [12] The data according to claim 10, wherein the data expanding unit (104) generates and expands next intermediate data following the intermediate data, after the remaining data in the data expanding area. Data analyzer (1).
[13] 前記データブロック抽出部(105)は、前記記憶された残りのデータの開始位置から 、前記データブロックの次のデータブロックを抽出する、請求項 10に記載のデータ解 析装置 (1)。  [13] The data analysis device according to claim 10, wherein the data block extraction unit (105) extracts the next data block of the data block from the start position of the stored remaining data. .
[14] データブロック抽出部(105)は、前記データブロックの抽出状況を記憶する、請求 項 9に記載のデータ解析装置( 1 )。  [14] The data analysis device (1) according to claim 9, wherein the data block extraction unit (105) stores the extraction status of the data block.
[15] データ解析部(106)は、前記記憶されたデータブロックの抽出状況に応じて、前記 データブロックの解析方法を決定する、請求項 14に記載のデータ解析装置(1)。 [15] The data analysis device (1) according to claim 14, wherein the data analysis unit (106) determines an analysis method of the data block according to an extraction condition of the stored data block.
[16] データ解析部(106)は、前記データブロックの解析状況を記憶する、請求項 9に記 載のデータ解析装置(1)。 [16] The data analysis device (1) according to claim 9, wherein the data analysis unit (106) stores an analysis status of the data block.
[17] データブロック抽出部(105)は、前記記憶されたデータブロックの解析状況に応じ て、前記データブロックの抽出方法を決定する、請求項 16に記載のデータ解析装置[17] The data analysis device according to claim 16, wherein the data block extraction unit (105) determines an extraction method of the data block according to an analysis situation of the stored data block.
(D o (D o
[18] 前記解析対象データは、文字コードの文字列データが符号化されたデータであつ て、  [18] The analysis target data is data obtained by encoding character string data of a character code.
前記データ展開部(104)は、前記中間データから前記文字コードを検出し、前記 検出された文字コードを前記文字列データに変換し、前記変換された文字列データ を前記データ展開領域に展開する、請求項 1に記載のデータ解析装置(1)。 The data development unit (104) detects the character code from the intermediate data, converts the detected character code into the character string data, and develops the converted character string data into the data development area. The data analysis device (1) according to claim 1.
[19] 前記解析対象データは、固定長の文字コードの文字列データが符号化されたデー タであって、 [19] The analysis target data is data obtained by encoding character string data of a fixed-length character code,
前記データ展開部(104)は、前記検出された文字コードの固定長を、最小単位と して記憶部上に大きさを指定して前記データ展開領域を確保する、請求項 18に記 載のデータ解析装置(1)。  The data expansion unit according to claim 18, wherein said data expansion unit (104) secures said data expansion area by designating a size on a storage unit as a fixed unit of said detected character code as a minimum unit. Data analysis device (1).
[20] 前記解析対象データは、可変長の文字コードの文字列データが符号化されたデー タであって、 [20] The analysis target data is data obtained by encoding character string data of a variable-length character code,
前記データ展開部(104)は、前記検出された文字コードを、固定長の文字コード の文字列データに変換する、請求項 18に記載のデータ解析装置(1)。  The data analysis device (1) according to claim 18, wherein the data developing unit (104) converts the detected character code into character string data of a fixed length character code.
[21] 前記データ展開部(104)によって変換される固定長の文字コードは、固定長の Un icodeである、請求項 20に記載のデータ解析装置( 1 )。 21. The data analysis device (1) according to claim 20, wherein the fixed length character code converted by the data development unit (104) is a fixed length Un icode.
[22] 解析対象データの中間データを生成して、所定のデータ展開領域に展開するデー タ展開ステップと、 [22] a data expansion step of generating intermediate data of analysis target data and expanding the data into a predetermined data expansion area;
前記中間データを解析するデータ解析ステップとを備え、  Data analysis step of analyzing the intermediate data;
前記データ展開ステップは、解析対象データの一部ずつを利用して順次中間デー タを生成し、  The data expanding step sequentially generates intermediate data using a part of analysis target data.
前記データ解析ステップは、前記生成された中間データを順次解析することを特徴 とする、データ解析方法。  The data analysis step is characterized in that the generated intermediate data is sequentially analyzed.
[23] コンピュータにデータの解析を実行させるプログラムであって、 [23] A program that causes a computer to analyze data,
前記コンピュータに、  On the computer
前記解析対象データの中間データを生成して、所定のデータ展開領域に展開する データ展開ステップと、  A data expansion step of generating intermediate data of the analysis target data and expanding the intermediate data into a predetermined data expansion area;
前記中間データを解析するデータ解析ステップとを実行させ、  Performing a data analysis step of analyzing the intermediate data;
前記データ展開ステップは、解析対象データの一部ずつを利用して順次中間デー タを生成し、  The data expanding step sequentially generates intermediate data using a part of analysis target data.
前記データ解析ステップは、前記生成された中間データを順次解析することを特徴 とする、データ解析プログラム。  The data analysis program, wherein the data analysis step analyzes the generated intermediate data sequentially.
[24] 請求項 23に記載のデータ解析プログラムを記録した、コンピュータ読取可能な記 録媒体。 [24] A computer readable recording of the data analysis program according to claim 23 Recording media.
[25] 圧縮されたマークアップ言語で記述されたデータを処理するデータ解析装置(1)で あって、  [25] A data analysis device (1) for processing data described in compressed markup language, which is
記憶部(103)を備え、  A storage unit (103);
前記記憶部(103)は、バッファメモリとして利用される第 1のバッファ(103A)と第 2 のバッファ(103B)とを含み、  The storage unit (103) includes a first buffer (103A) and a second buffer (103B) used as a buffer memory,
圧縮されたマークアップ言語で記述されたデータを、前記第 1のバッファ(103A)に 展開するデータ展開部(104)と、  A data expanding unit (104) which expands data described in compressed markup language into the first buffer (103A);
前記第 1のバッファ(103A)に展開されたデータ力もデータブロックを抽出する第 1 のデータ解析部(105)と、  A first data analysis unit (105) for extracting data blocks from the data developed in the first buffer (103A);
前記第 1のデータ解析部(105)が抽出したデータブロックから、抽象構文木を生成 する、第 2のデータ解析部(106)とを備え、  A second data analysis unit (106) for generating an abstract syntax tree from the data block extracted by the first data analysis unit (105);
前記第 1のデータ解析部(105)は、前記抽出したデータブロックを、前記第 2のバ ッファ(103B)の連続する 1つの記憶領域に格納し、  The first data analysis unit (105) stores the extracted data block in one continuous storage area of the second buffer (103B).
前記第 2のデータ解析部(106)は、前記第 1のバッファ(103A)または前記第 2の バッファ(103B)に記憶されたデータを利用して、抽象構文木を生成することを特徴 とする、データ解析装置(1)。  The second data analysis unit (106) generates an abstract syntax tree using data stored in the first buffer (103A) or the second buffer (103B). , Data analysis device (1).
[26] 前記第 2のデータ解析部(106)は、前記抽出されたデータブロックの前記第 1のデ ータ解析部(105)による解析結果を利用して、抽象構文木を生成することを特徴と する、請求項 25のデータ解析装置(1)。 [26] The second data analysis unit (106) generates an abstract syntax tree using an analysis result by the first data analysis unit (105) of the extracted data block. 26. Data analysis apparatus (1) according to claim 25, characterized in that.
[27] 前記データ展開部(104)は、圧縮されたマークアップ言語で記述されたデータを、 前記第 1のバッファ(103A)に、前記第 1のバッファ(103A)の容量以下の容量ごと に展開することを特徴とする、請求項 25に記載のデータ解析装置(1)。 [27] The data expanding unit (104) transmits the data described in the compressed markup language to the first buffer (103A) for each capacity equal to or less than the capacity of the first buffer (103A). 26. Data analysis apparatus (1) according to claim 25, characterized in that it is deployed.
[28] 前記第 1のデータ解析部(106)は、前記第 1のバッファ(103A)に展開されたデー タに対して、字句解析を行なうことにより、前記第 1のバッファ(103A)に展開された データからデータブロックを抽出することを特徴とする、請求項 25に記載のデータ解 析装置 (1)。 [28] The first data analysis unit (106) performs lexical analysis on the data developed in the first buffer (103A) to develop the data in the first buffer (103A). 26. A data analysis device (1) according to claim 25, characterized in that data blocks are extracted from the collected data.
[29] 前記第 1のデータ解析部(105)は、 XML文法に従って、字句解析を行なうことを 特徴とする、請求項 28に記載のデータ解析装置(1)。 [29] The first data analysis unit (105) performs lexical analysis in accordance with the XML grammar. The data analysis device (1) according to claim 28, characterized in that:
[30] 前記第 1のデータ解析部(106)は、前記第 2のバッファ(103B)の容量を、 XML文 法に従って決定することを特徴とする、請求項 29に記載のデータ解析装置(1)。 30. The data analysis device (1 according to claim 29, characterized in that the first data analysis unit (106) determines the capacity of the second buffer (103B) according to an XML syntax. ).
[31] 前記第 2のデータ解析部(106)は、 SVG文法に従って、データの解析を行なうこと を特徴とする、請求項 25に記載のデータ解析装置(1)。 31. The data analysis device (1) according to claim 25, wherein the second data analysis unit (106) analyzes data in accordance with SVG grammar.
[32] 前記第 2のデータ解析部(106)は、前記第 1のバッファ(103A)に展開されたデー タを、前記第 1のバッファ(103A)に展開された状態で、解析することを特徴とする、 請求項 25に記載のデータ解析装置( 1)。 [32] The second data analysis unit (106) analyzes the data expanded in the first buffer (103A) in a state expanded in the first buffer (103A). 26. Data analysis apparatus (1) according to claim 25, characterized in that.
[33] 前記第 1のデータ解析部(105)は、文字解析に利用するスキーマ言語を変更する スキーマ言語変更部を含むことを特徴とする、請求項 25に記載のデータ解析装置(33. The data analysis device according to claim 25, wherein the first data analysis unit (105) includes a schema language change unit that changes a schema language used for character analysis.
D o Do
[34] 前記第 2のデータ解析部(106)は、前記第 1のバッファ(103A)に展開されたデー タを、意味的に解析することを特徴とする、請求項 25に記載のデータ解析装置(1)。  [34] The data analysis according to claim 25, characterized in that the second data analysis unit (106) analyzes the data expanded in the first buffer (103A) semantically. Device (1).
[35] 前記第 2のデータ解析部(106)は、前記第 1のデータ解析部(105)に、前記第 1の データ解析部(105)の解析結果に基づいて、ブロックデータの抽出態様を変更させ ることを特徴とする、請求項 25に記載のデータ解析装置(1)。 [35] The second data analysis unit (106) causes the first data analysis unit (105) to extract block data based on the analysis result of the first data analysis unit (105). The data analysis device (1) according to claim 25, characterized in that it is changed.
[36] 前記第 1のデータ解析部(106)は、前記或る時点で前記第 1のバッファ(103A)に 展開されたデータの中の前記或るデータブロックの一部のデータの容量に基づいて[36] The first data analysis unit (106) is based on a capacity of a part of data of the certain data block in the data expanded in the first buffer (103A) at the certain time. The
、前記記憶部(103)において前記第 2のバッファ(103B)を確保することを特徴とす る、請求項 25に記載のデータ解析装置(1)。 The data analysis device (1) according to claim 25, characterized in that the second buffer (103B) is secured in the storage unit (103).
[37] 前記第 1のデータ解析部(105)は、前記第 1のバッファ(103A)にあるデータブロッ クの一部を前記第 2のバッファ(103B)に格納することを特徴とする、請求項 25のデ ータ解析装置(1)。 [37] The first data analysis unit (105) is characterized in that a part of the data block in the first buffer (103A) is stored in the second buffer (103B). Item 25. Data analysis device (1).
[38] 前記第 1のデータ解析部(106)は、前記第 1のバッファ(103A)にあるデータブロッ クの一部と前記第 2のバッファ(103B)にある同じデータブロックの一部とを結合させ て、前記第 2のバッファ(103B)に格納することを特徴とする、請求項 37のデータ解 析装置 (1)。  [38] The first data analysis unit (106) combines a portion of a data block in the first buffer (103A) and a portion of the same data block in the second buffer (103B). The data analysis device (1) according to claim 37, characterized in that they are combined and stored in the second buffer (103B).
[39] 前記第 1のデータ解析部(106)は、前記第 1のバッファ(103A)にあるデータブロッ クの一部と前記第 2のバッファ(103B)にある同じデータブロックの一部とを結合させ て、第 3のバッファ(103C)に格納することを特徴とする、請求項 37のデータ解析装 置 (1)。 [39] The first data analysis unit (106) generates a data block in the first buffer (103A). The data analysis device according to claim 37, characterized in that part of the data block and part of the same data block in said second buffer (103B) are combined and stored in a third buffer (103C). Position (1).
[40] 前記第 1のデータ解析部(106)は、前記或る時点で前記第 1のバッファ(103A)に 展開されたデータの中の前記或るデータブロックの一部のデータの容量と、前記第 2 のバッファ(103B)の容量とに基づいて、前記記憶部において、第 3のバッファ(103 C)を確保することを特徴とする、請求項 39に記載のデータ解析装置(1)。  [40] The first data analysis unit (106) is a capacity of part of data of the certain data block in the data expanded in the first buffer (103A) at the certain time, 40. The data analysis device (1) according to claim 39, wherein a third buffer (103C) is secured in the storage unit based on the capacity of the second buffer (103B).
[41] 圧縮されたマークアップ言語で記述されたデータを処理する装置における、データ 解析方法であって、  [41] A data analysis method in an apparatus for processing data described in compressed markup language,
圧縮されたマークアップ言語で記述されたデータを、第 1のバッファに展開するステ ップと、  Expanding the data described in the compressed markup language to the first buffer, and
前記第 1のバッファに展開されたデータ力 データブロックを抽出するステップと、 前記抽出したデータブロックを、第 2のバッファの連続する 1つの記憶領域に格納 するステップと、  Extracting the data block expanded in the first buffer; storing the extracted data block in one continuous storage area of the second buffer;
前記第 1または第 2のバッファのデータを利用して、抽出構文木を生成するステップ とを備えることを特徴とする、データ解析方法。  Generating an extraction syntax tree using data of the first or second buffer.
[42] 圧縮されたマークアップ言語で記述されたデータを処理する装置に、データ解析さ せるための、データ解析プログラムであって、 [42] A data analysis program for causing a device for processing data described in compressed markup language to analyze data,
コンピュータに、  On the computer
圧縮されたマークアップ言語で記述されたデータを、第 1のバッファに展開するステ ップと、  Expanding the data described in the compressed markup language to the first buffer, and
前記第 1のバッファに展開されたデータ力 データブロックを抽出するステップと、 前記抽出したデータブロックを、第 2のバッファの連続する 1つの記憶領域に格納 するステップと、  Extracting the data block expanded in the first buffer; storing the extracted data block in one continuous storage area of the second buffer;
前記第 1または第 2のバッファのデータを利用して、抽出構文木を生成するステップ とを実行させることを特徴とする、データ解析プログラム。  Generating a extraction syntax tree using the data of the first or second buffer.
[43] 請求項 42に記載のデータ解析プログラムを記録した、コンピュータ読取可能な記 録媒体。 [43] A computer readable recording medium recording the data analysis program according to claim 42.
PCT/JP2005/002201 2004-04-09 2005-02-15 Data analysis device, data analysis method, data analysis program, and recording medium containing the data analysis program WO2005101210A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006512276A JPWO2005101210A1 (en) 2004-04-09 2005-02-15 Data analysis apparatus and data analysis program

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004-115241 2004-04-09
JP2004115241 2004-04-09
JP2004-303374 2004-10-18
JP2004303374 2004-10-18

Publications (1)

Publication Number Publication Date
WO2005101210A1 true WO2005101210A1 (en) 2005-10-27

Family

ID=35150174

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/002201 WO2005101210A1 (en) 2004-04-09 2005-02-15 Data analysis device, data analysis method, data analysis program, and recording medium containing the data analysis program

Country Status (2)

Country Link
JP (1) JPWO2005101210A1 (en)
WO (1) WO2005101210A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7793207B2 (en) 2005-03-28 2010-09-07 Canon Kabushiki Kaisha Converting text data into binary data using external link information
JP2010250434A (en) * 2009-04-13 2010-11-04 Canon Inc Apparatus and method for processing information, program, and storage medium
JP2016139294A (en) * 2015-01-28 2016-08-04 株式会社日立公共システム Information processor, and information processing method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002318696A (en) * 2001-04-23 2002-10-31 Mitsubishi Electric Corp Device and method for executing program
JP2003178049A (en) * 2001-09-10 2003-06-27 Fujitsu Ltd Structured document processing system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6966027B1 (en) * 1999-10-04 2005-11-15 Koninklijke Philips Electronics N.V. Method and apparatus for streaming XML content
JP3368883B2 (en) * 2000-02-04 2003-01-20 インターナショナル・ビジネス・マシーンズ・コーポレーション Data compression device, database system, data communication system, data compression method, storage medium, and program transmission device
JP4774145B2 (en) * 2000-11-24 2011-09-14 富士通株式会社 Structured document compression apparatus, structured document restoration apparatus, and structured document processing system
US20020099734A1 (en) * 2000-11-29 2002-07-25 Philips Electronics North America Corp. Scalable parser for extensible mark-up language
JP4122759B2 (en) * 2000-12-27 2008-07-23 Kddi株式会社 Document data code processing method and system
JP2002297568A (en) * 2001-03-29 2002-10-11 Fujitsu Ltd Coding apparatus for structured document and recording medium
JP3832807B2 (en) * 2001-06-28 2006-10-11 インターナショナル・ビジネス・マシーンズ・コーポレーション Data processing method and encoder, decoder and XML parser using the method
JP4163870B2 (en) * 2001-12-28 2008-10-08 富士通株式会社 Structured document converter

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002318696A (en) * 2001-04-23 2002-10-31 Mitsubishi Electric Corp Device and method for executing program
JP2003178049A (en) * 2001-09-10 2003-06-27 Fujitsu Ltd Structured document processing system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7793207B2 (en) 2005-03-28 2010-09-07 Canon Kabushiki Kaisha Converting text data into binary data using external link information
JP2010250434A (en) * 2009-04-13 2010-11-04 Canon Inc Apparatus and method for processing information, program, and storage medium
JP2016139294A (en) * 2015-01-28 2016-08-04 株式会社日立公共システム Information processor, and information processing method
WO2016121509A1 (en) * 2015-01-28 2016-08-04 株式会社日立公共システム Information processing device and information processing method

Also Published As

Publication number Publication date
JPWO2005101210A1 (en) 2008-03-06

Similar Documents

Publication Publication Date Title
US7013425B2 (en) Data processing method, and encoder, decoder and XML parser for encoding and decoding an XML document
US5854597A (en) Document managing apparatus, data compressing method, and data decompressing method
US7519903B2 (en) Converting a structured document using a hash value, and generating a new text element for a tree structure
JP5377818B2 (en) Method and system for sequentially accessing a compiled schema
JPH08255155A (en) Device and method for full-text registered word retrieval
US8117217B2 (en) Information processing apparatus and encoding method
US7747942B2 (en) System and method for obtaining a markup language template through reversing engineering
JP2006221654A (en) Method and system for reducing delimiter
EP1519279B1 (en) Document transformation system
JP2006221653A (en) System and method for determining acceptance state in document analysis
JP5044943B2 (en) Method and system for high-speed encoding of data documents
JP2001067348A (en) Method and device for compressing structured documents and computer-readable recording medium recording structured document compressing program
US20060271850A1 (en) Method and apparatus for transforming a printer into an XML printer
US7814408B1 (en) Pre-computing and encoding techniques for an electronic document to improve run-time processing
JP5789236B2 (en) Structured document analysis method, structured document analysis program, and structured document analysis system
WO2005101210A1 (en) Data analysis device, data analysis method, data analysis program, and recording medium containing the data analysis program
JP4776389B2 (en) Encoded document decoding method and system
US20080175268A1 (en) method and system for providing interoperability of different version protocols without access to protocol specific code
JP2008084341A (en) Structured document compressing method, compressing device, and computer-readable recording medium recording structured document compressing program
JPWO2004079586A1 (en) Data conversion method capable of optimal processing of markup language
JP4872285B2 (en) Document management apparatus, document management system, and document management method
JP5674974B2 (en) Compressed data processing program, compressed data editing program
JP3886962B2 (en) DATA GENERATION METHOD, DATA GENERATION DEVICE, DATA GENERATION PROGRAM, AND RECORDING MEDIUM CONTAINING DATA GENERATION PROGRAM
JP2005215950A (en) Retrieval method for encoded document data, and program therefor
JP2005011215A (en) Information processor, information processing method, and program

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006512276

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

122 Ep: pct application non-entry in european phase