This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2009-57174, filed on Mar. 10, 2009, the entire contents of which are incorporated herein by reference.
Embodiments described herein relate to a retrieval device and a retrieval method for retrieving data from structured data or semi-structured data, and a storage medium storing a retrieval program.
In recent years, markup languages such as XML (Extensible Markup Language) have been used as document data processed by a computer. The XML can make it easy to share, via communication network, a structured document and structured data between different information systems, and thus has been increasingly used by computers. Hierarchically structured document data described on the basis of the XML will be hereinafter described as XML data.
Further, an XPath (XML Path Language) query is used to detect desired data from the XML data. The XPath query is a standard query language for the XML data, and is capable of describing a conditional expression for a complicated XML tree structure. In the following description, the XPath query will be simply described as the query.
As described in Japanese Unexamined Patent Application Publication No. 2003-196275, in the field of word processors or like, a user can input a retrieval condition in a natural language to retrieve data. However, to retrieve data from the XML data, it is necessary to specify a query by using a conditional expression. Without special knowledge about the query, the user is unable to easily retrieve data from the XML data.
To specify a query, XML editing software <oXygen/>® provided by SyncRO Soft Ltd. provides a technique of displaying, on a screen, an aggregate structure aggregating the hierarchical structure of the XML data, and automatically generating a query when the user specifies the query on the basis of the displayed aggregate structure.
A summary of the <oXygen/>® will be described. Firstly, <oXygen/>® generates an aggregate structure which aggregates the hierarchical structure of the XML data. For example,
Then, <oXygen/>® displays the path trie on a screen to allow a user to specify an output node. The output node is the node connected to the value (text node) which is to be retrieved. In
According to an aspect of the embodiments, a retrieval device includes a creating unit which creates aggregate structure information from the semi-structured data by aggregating the plurality of child item elements having the same name and directly associated with parent item elements having the same name, into one child item element. The retrieval device includes a receiving unit which receives a retrieval request with an output condition and a constraint condition specified on the aggregate structure information.
The retrieval device includes a determining unit which determines whether or not a plurality of query are created according to the retrieval request by checking a branch point at the common item elements between the output condition and the constraint condition in the aggregate structure information. And the retrieval device includes an outputting unit which outputs a re-aggregate structure information corresponded to the query showing the branch point which is not expressed in the aggregate structure information to the display device.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
As described above in the background section of this application, displaying the aggregate structure on the screen is an intuitive and easy way for the user to specify the retrieval condition of the query. However, with the method described in the background section, the user may not be able to specify a constraint condition.
Upon considering the art noted in the background section, the inventors pondered consequences associated with not permitting a user to easily identify a constraint condition. Accordingly, embodiments described herein provide a storage medium, a retrieval method, and a retrieval device supporting the creation of a complicated query containing a constraint condition, while maintaining an intuitive nature.
With reference to the accompanying drawings, embodiments of a storage medium, a retrieval method, and a retrieval device according to embodiments of the present invention will be described in detail below. The present invention is not limited by the embodiments.
Extensible Markup Language (XML) data used in the present embodiments will be first described.
In the following, an element node having a node ID “n” and an element name “elem” will be described as “elem n”. For example, “Syain1” represents an element node having a node ID “1” and an element name “Syain”. Further, description such as “ACT3, 12, and 21” represents three element nodes (each of which has an element name ACT) having node IDs 3, 12, and 21, respectively.
In the XML data, the respective element nodes and text nodes are connected to one another. In
In the following, for explaining the nodes included in a XML tree structure, terms such as root node, parent node, child node, preceding sibling node, following sibling node, ancestor node, and descendant node will be used.
A node located in the same layer as the reference node, connected to the same parent node as the reference node is connected, and present on the left side of the reference node is defined as the preceding sibling node of the reference node (hereinafter referred to as the preceding sibling node). A node located in the same layer as the reference node, connected to the same parent node as the reference node is connected, and present on the right side of the reference node is defined as the following sibling node of the reference node (hereinafter referred to as the following sibling node). Nodes present in the path from the root node to the parent node are collectively defined as the ancestor nodes. Nodes connected under the reference node are collectively defined as the descendant nodes.
For example, if the reference node is set to be chara15 in
If a query is specified to the XML data, the data located at the position referred to by the query can be detected from the XML data. Subsets of a query based on W3C (World Wide Web Consortium) is defined as follows.
Path::=“/”RPath
RPath::=Step(“/”Step)*
Step::=Axis“::”Ntest(“[”Pred“]”)*
Axis:: =“child”
Ntest::=tagname|“*”|“text( )”|“node( )”
Pred::=Expr|“not”Expr
Expr::=RPath|1_func“(“RPath”)”|n_func“(”RPath(“,”const)+“)”
Herein, the relationship tagnameeTag (Tag represents a set of tag names) is assumed. Further, 1_func represents a function with one variable from a data node V to {0, 1}. Similarly, n_func represents a function with n variable where n denotes a positive integer for returning {0, 1}, wherein only a constant is input except for the first argument. The constant “const” represents an arbitrary character string or numeric value.
In
In
With the specification of the conditional expression of the query, it is possible to retrieve desired data from the XML data. However, for specifying a conditional expression of the query, it is necessary to combine a set of tree structures, an output node, and a constraint condition. The inventors of the instant application have, upon considering the art noted in the background section, pondered consequences associated with not permitting a user to easily identify a constraint condition.
For example, <oXygen/>® described above in the background section of this application is capable of creating only the simplest type of query having no constraint condition. That is, <oXygen/> is incapable of creating the queries Q1 and Q2 which contain the constraint conditions as described in
Further,
However, both queries Q3 and Q4 have “/Syain/ACT/cast/name” as the path from the root node to the output node, and these queries have “/Syain/ACT/chara/name” as the path from the root node to the constraint node. Therefore, it is impossible to differentiate the queries on the path trie illustrated in
As described in
If the query “Q3=/Syain/ACT[chara/nanne=“SIGMA BLUE”]/cast/name” is specified to retrieve data from the XML data illustrated in
As described above, even if the respective queries indicate the same node on the path trie illustrated in
To solve the above issue, if the path trie is not generated, and if the XML data as illustrated in
In the case in which a plurality of queries are generated on the path trie, therefore, if the XML data is not directly displayed but the minimum aggregate structure enabling differentiation among the queries is displayed as the path trie, it is possible to generate an appropriate query while reducing the burden on the user.
Herein, when the queries Q3 and Q4 are compared with each other, the “branch point” in a branching structure is different between the queries. Specifically, in the query Q3, the constraint condition is inserted immediately after “ACT,” and thus the position of “ACT” corresponds to the branch point. In the query Q4, the constraint condition is inserted immediately after “Syain,” and thus the position of “Syain” corresponds to the branch point. Therefore, if the queries are differentiated on the path trie with the use of the branch point, it is also possible to generate an optimal query on the path trie.
Further, if there are an n number (n represents a natural number) of branch points on the path trie, it is important to determine whether or not the branch points are present in the actual XML data. The branch points (branch point candidates) on the path trie correspond to the nodes common to the path from the root node to the output node and the path from the root node to the constraint node. The common nodes are referred to common prefixes.
In the path trie of
A retrieval device according to the present embodiment will be described. The retrieval device registers the maximum sibling occurrence number of each of the nodes at the construction of the path trie.
According to the present embodiments, as in
When the output node and the constraint node are specified on the path trie, the retrieval device creates a query satisfying a specified condition. The retrieval device then determines, as the branch point candidates, the nodes included in the common prefixes of an output path and a constraint path. The output path refers to the path from the root node to the output node, and the constraint path refers to the path from the root node to the constraint node.
In
The retrieval device determines the branch point by applying branch point discrimination rules to the branch point candidates. There are two branch point discrimination rules. The first rule is that the lowest node of the branch point candidates is determined as a branch point. The second rule is that the branch point is the branch point candidates having a child node, the child node which has maximum sibling occurrence number of two or more. In
By determining branch points from branch point candidates, the retrieval device expands the path trie on the basis of the branch point of the query. the query “Q4=/Syain[ACT/chara/name=“SIGMA BLUE”]/ACT/cast/name.” branches at “Syain”. For example, to display the position specified by this query on the path trie, the retrieval device expands a subtree connected under “Syain,” as illustrated in
Further, the query “Q3=/Syain/ACT[chara/name=“SIGMA BLUE”]/cast/name” branches at “ACT”. To display, the position specified by the query Q3 on the path trie, the retrieval device expands a subtree connected under “ACT.” On the path trie, however, there are already a branch at “ACT” as the start point to “cast” and a branch to “chara,” i.e., the path to the output node and the path to the constraint node. In this case, the retrieval device displays the position specified by the query, without expanding the path trie.
If the path tries and queries illustrated in
As described above, if there is a plurality of conceivable queries, the retrieval device according to the present embodiment expands the path trie on the basis of the output node and the constraint node specified by the user, to thereby differentiate the queries and allow the user to select a desirable query. The retrieval device supports the creation of a complicated query containing a constraint condition, while maintaining the intuitive method for displaying a path trie.
The input unit 110 is configured to input various information such as the output node and/or the constraint node, for example. The input unit 110 may be a keyboard, a mouse, a microphone, and so forth. The output unit 120 is configured to output various information such as the query, the XML data, the path trie, and/or the retrieval result. The output unit 120 may be a monitor, a display, a touch panel, and so forth. The input-output control unit 130 controls the input and output of data by the input unit 110, the output unit 120, the storage unit 140, and the control unit 150.
The storage unit 140 stores data and programs for various processes performed by the control unit 150. The storage unit 140 includes XML data 140a, a path trie 140b, a query generation table 140c, and a query tree 140d.
The XML data 140a is document data having a hierarchical structure in which elements are divided by element identifiers such as “<” and “</,” as illustrated in
The path trie 140b in
For example, in the case of a path trie node structure corresponding to “ACT” of the path trie illustrated in
The path trie illustrated in
The query generation table 140c in
The query tree 140d in
For example, the query “/Syain/ACT[chara/name=“SIGMA BLUE”]/cast/name” is expressed in query tree structures illustrated in
Meanwhile, the query “/Syain[ACT/chara/name=“SIGMA BLUE”]/ACT/cast/name” is expressed in query tree structures illustrated in
The control unit 150 in
The path trie generation unit 150a aggregates, for example, the XML data 140a illustrated in
If there is a plurality of child nodes having the same tag name and directly connected to parent nodes having the same tag name, the path trie generation unit 150a aggregates the overlapping parent nodes having the same tag name into one parent node, and aggregates the overlapping child nodes having the same tag name into one child node. Thereby, the path trie 140b is generated.
For example, in the XML data illustrated in
Therefore, the path trie generation unit 150a aggregates ACT3, 12, and 21 into one “ACT,” id4, 13, and 22 into one “id,” chara6 and 15 into one “chara,” and cast9, 18, and 24 into one “cast.” Further, the path trie generation unit 150a aggregates name7 and 16 into one “name,” and name10, 19, and 25 into one “name.” As a result, the XML data 140a illustrated in
The sibling occurrence number counting unit 150b determines, on the basis of the element nodes included in the path trie 140b and the XML data 140a, the number of siblings of each of the element nodes of the XML data 140a corresponding to the element nodes of the path trie 140b.
In
The sibling occurrence number counting unit 150b determines the number of siblings of the element node “ACT.” With reference to
The sibling occurrence number counting unit 150b also determines the number of siblings of each element nodes “id,” “chara,” “cast,” and “name.” None of these element nodes has a sibling node which has the same tag name and is connected to the parent node having a specific node ID. Therefore, the sibling occurrence number counting unit 150b sets one as the maximum sibling number corresponding the tag names “id,” “chara,” “cast,” and “name” of the path trie node structures in the path trie 140b.
The data structure display unit 150c in
The query specification reception unit 150d in
The processing by the query specification reception unit 150d will be described below.
As illustrated in the upper part
Next, as illustrated in the lower part of
As illustrated in the upper part
As illustrated in the lower part of
If the output node and the constraint node are specified, the branch point determination processing unit 150e in
The branch point determination processing unit 150e first compares the absolute path of the output node with the absolute path of the constraint node to determine the common prefixes, and registers the determination result in the query generation table 140c. For example, if the absolute path of the output node (output path) is “/Syain/ACT/cast/name,” and if the absolute path of the constraint node (constraint path) is “/Syain/ACT/chara/name,” as illustrated in the upper part of
Then, on the basis of the branch point discrimination rules (first and second rules), the branch point determination processing unit 150e determines the node serving as the branch point among the common prefixes. Herein, a case will be described in which “Syain” and “ACT” have been determined as the common prefixes.
According to the first rule, among the common prefixes (branch point candidates), the lowest branch point candidate is determined to be the branch point. Between the nodes “Syain” and “ACT,” “ACT” is the lowest branch point candidate. Therefore, the branch point determination processing unit 150e determines “ACT” to be the branch point.
According to the second rule, among the common prefixes, the branch point candidate having a child node, the maximum sibling occurrence number of which is two or more, is determined to be the branch point. The child node “ACT” of “Syain” has a maximum sibling number of “3.” Therefore, the branch point determination processing unit 150e determines “Syain” to be the branch point.
The branch point determination processing unit 150e registers, in the query generation table 140c, the information of the node determined to be the branch point. The absolute path of “Syain” is “/Syain,” and the absolute path of “ACT” is “/Syain/ACT.” Therefore, as illustrated in the lower part of
The query generation processing unit 150f in
Then, the query generation processing unit 150f generates query tree structures corresponding to the respective elements of the extracted absolute path, and connects the query tree structures in accordance with the absolute path.
Further, the query generation processing unit 150f extracts, from the query generation table 140c, the absolute path corresponding to the type “CONSTRAINT” and the absolute path corresponding to the type “BRANCH.” Then, on the basis of the query tree illustrated in
If the absolute path of the constraint node is “/Syain/ACT/chara/name,” and if the absolute path of the branch point is “/Syain/ACT,” the query tree illustrated in
Meanwhile, if the absolute path of the constraint node is “/Syain/ACT/chara/name,” and if the absolute path of the branch point is “/Syain,” the query tree illustrated in
The query generation processing unit 150f registers the generated query tree in the storage unit 140. If the data registered in the query generation table 140c is the data illustrated in
The query display processing unit 150g in
The query display processing unit 150g expands the path trie 140b on the basis of the node at the branch point of the query generation table 140c. With the upper part of
On the path trie, however, there are already a branch to “cast” and a branch to “chara,” i.e., the path to the output node and the path to the constraint node, which branch at “ACT.” In this case, the query display processing unit 150g directly displays the path trie, and also displays the constraint node and the output node. Further, the query display processing unit 150g displays the operator “=” and the value “SIGMA BLUE,” which are stored in the row of the type “CONSTRAINT” in the query generation table 140c, in association with the constraint node. Further, the query display processing unit 150g displays the corresponding query “/Syain/ACT[chara/name=“SIGMA BLUE”]/cast/name”.
With the lower part of
Then, the query display processing unit 150g displays the constraint node by using one of the subtrees of the expanded path trie, and displays the output node by using the other subtree. Further, the query display processing unit 150g displays the operator “=” and the value “SIGMA BLUE,” which are stored in the row of the type “CONSTRAINT” in the query generation table 140c, in association with the constraint node. Further, the query display processing unit 150g displays the corresponding query “/Syain[ACT/chara/nanne=“SIGMA BLUE”]/ACT/cast/name”.
The query display processing unit 150g displays, on the monitor, the path tries and queries illustrated in
Upon acquisition of the query from the query display processing unit 150g, the retrieval processing unit 150h retrieves data corresponding to the query from the XML data and outputs the retrieval result to the output unit 120. Any method can be used for the data retrieval using the query.
If there is a XML data as illustrated in
A process procedure of the retrieval device 100 according to the present embodiment will be described.
Then, the sibling occurrence number counting unit 150b performs the sibling occurrence number counting process (S103), and the data structure display unit 150c displays the path trie before the path trie is subjected to the expansion process (S104). Then, the query specification reception unit 150d receives the output node (S105), and receives the constraint node (S106).
Then, the branch point determination unit 150e performs the branch point determination process (S107), and the query generation processing unit 150f performs the query generation process (S108). Then, the query display processing unit 150g performs the query display process (S109).
The query display processing unit 150g receives the selection of the query (S110), and the retrieval processing unit 150h performs the retrieval process on the basis of the selected query (S111), and outputs the retrieval result (S112).
The path trie generation process illustrated as S102 of
If the next tag is absent (NO at S203), the path trie generation unit 150a outputs the path trie T (S204). Meanwhile, if the next tag is present (YES at S203), the path trie generation unit 150a determines whether or not the tag type is the start tag (S205). Herein, the tag “<” represents the start tag, and the tag “</” represents the end tag.
If the tag type is the end tag (NO at S206), the path trie generation unit 150a removes the last tag of a path P from the path P (S207), and moves to S202. Meanwhile, if the tag type is the start tag (YES at S206), the path trie generation unit 150a adds the tag to the end of the path P (S208).
Then, the path trie generation unit 150a determines whether or not the path P has been registered in the path trie T (S209). If the path P has been registered (YES at S210), the path trie generation unit 150a moves to S202. Meanwhile, if the path P has not been registered (NO at S210), the path trie generation unit 150a performs a path registration process (S211).
Herein, the path registration process illustrated as S211 of
If the path trie T is an empty tree (YES at S302), the path trie generation unit 150a creates a path trie node structure N (S303). Then, the path trie generation unit 150a registers the path P as the absolute path name of the path trie node structure N (S304), and registers the tag included only in the path P as the tag name of the path trie node structure N (S305).
Meanwhile, if the path trie T is not an empty tree (NO at S302), the path trie generation unit 150a determines a path Q and a tail tag “tag” having the relationship P=Q/tag (S306), and traces the child pointers from the root node of the path trie T to acquire a node NQ having an absolute path name Q (S307).
Then, the path trie generation unit 150a creates a path trie node structure NP (S308). Further, the path trie generation unit 150a adds child pointers to the path trie node structure NQ to specify the path trie node structure NP, and specifies the path trie node structure NQ as the parent pointer of the path trie node structure NP (S309). Further, the path trie generation unit 150a registers the path P as the absolute path name of the path trie node structure NP, and registers “tag” as the tag name (S310).
The sibling occurrence number counting process illustrated as S103 of
The sibling occurrence number counting unit 150b determines whether or not the next tag is present in the XML data D (S403). If the next tag is absent (NO at S404), the sibling occurrence number counting unit 150b completes the sibling occurrence number counting process. Meanwhile, if the next tag is present in the XML data D (YES at S404), the sibling occurrence number counting unit 150b determines whether or not the next tag is the start tag “<” (S405).
If the next tag is the end tag “</” (NO at S406), the sibling occurrence number counting unit 150b replaces, for each of the child nodes of the current node CurT, the value of the maximum sibling number with the value of the sibling number counter, if the value of the sibling number counter exceeds the value of the maximum sibling number (S407).
The sibling occurrence number counting unit 150b updates the current tag CurD to the end tag (S408), and changes the current node CurT to the parent node of the current node CurT (S409). Then, the sibling occurrence number counting unit 150b moves to S403.
Meanwhile, if the next tag is the start tag at S406 (YES at S406), the sibling occurrence number counting unit 150b updates the current tag CurD to the next start tag (S410), and replaces the current node CurT with the child node of the current node CurT corresponding to the current tag CurD (S411). Further, the sibling occurrence number counting unit 150b increments the sibling number counter of the current node CurT by one (S412), and moves to S403.
The branch point determination process illustrated as S107 of
The branch point determination processing unit 150e determines whether or not an element is present in the node set P (S503). If an element is absent (NO at S504), the branch point determination processing unit 150e outputs the set R (S505), and completes the branch point determination process S107.
Meanwhile, if an element is present in the node set P (YES at S504), the branch point determination processing unit 150e extracts one arbitrary element w from the node set P (S506), and determines whether or not the maximum sibling number of the element w is two or more (S507).
If the maximum sibling number of the element w is less than two (NO at S508), the branch point determination processing unit 150e moves to S503. Meanwhile, if the maximum sibling number of the element w is two or more (YES at S508), the branch point determination processing unit 150e adds the element w to the set R (S509), and moves to S503.
The query generation process illustrated in S108 of
The query generation processing unit 150f determines whether or not any node of the type “CONSTRAINT” is present in the query generation table 140c (S603). If any node of the type “CONSTRAINT” is absent (NO at S604), the query generation processing unit 150f determines whether or not all queries have been processed (S605).
If all queries have not been processed (NO at S606), the query generation processing unit 150f selects the next query (S607), and moves to S602. Meanwhile, if all queries have been processed (YES at S606), the query generation processing unit 150f completes the query generation process.
Meanwhile, if any node of the type “CONSTRAINT” is present in the query generation table 140c at S604 (YES at S604), the query generation processing unit 150f selects one unselected branch point (S608). Then, the query generation processing unit 150f adds the absolute path in the row of the next node of the type “CONSTRAINT” to the query tree such that the common prefixes up to the branch point are unified and the branching starts at the branch point (S609).
Then, the query generation processing unit 150f determines whether or not all nodes of the type “CONSTRAINT” have been processed (S610). If all nodes of the type “CONSTRAINT” have not been processed (NO at S611), the query generation processing unit 150f moves to S609.
Meanwhile, if all nodes of the type “CONSTRAINT” have been processed (YES at S611), the query generation processing unit 150f determines whether or not all branch points have been selected (S612). If all branch points have not been selected (NO at S613), the query generation processing unit 150f moves to S608. Meanwhile, if all branch points have been selected (YES at S613), the query generation processing unit 150f traces the query tree to generate a query (S614), and moves to S605.
The query display process illustrated in S109 of
The query display processing unit 150g determines whether or not the output path O and the constraint path C branch at the branch point B (S703). If the output path O and the constraint path C branch at the branch point B (YES at S704), the query display processing unit 150g displays the output path O and the constraint path C on the path trie (S705), and moves to S711.
Meanwhile, if the output path O and the constraint path C do not branch at the branch point B (NO at S704), the query display processing unit 150g sets, as a node N1, the node immediately under the node NB among the common prefixes of the output path O and the constraint path C (S706).
Then, the query display processing unit 150g sets, as a subtree Sub1, a subtree having the node N1 as the root node, and duplicates the subtree Sub1 to create a subtree Sub2 (S707). Further, the query display processing unit 150g adds child pointers to the node NB, and specifies a root node N2 of the subtree Sub2 (S708).
The query display processing unit 150g specifies the node NB as the parent pointer of the node N2 (S709). Further, the query display processing unit 150g displays the path trie T including the subtree Sub2, displays the mark representing the output path O on the subtree Sub1, and displays the mark representing the constraint path C on the subtree Sub2 (5710).
Then, the query display processing unit 150g determines whether or not all branch points B have been selected (S711). If there is an unselected branch point B (NO at 5712), the query display processing unit 150g moves to S701. Meanwhile, if all branch points B have been selected (YES at 5712), the query display processing unit 150g completes the query display process.
As described above, when the retrieval device 100 according to the present embodiment displays the path trie and receives the specification of the output node and the constraint node, the retrieval device 100 determines the common prefixes from the absolute paths of the respective nodes, and determines the branch point of the query. Further, if a plurality of queries may be generated on the basis of the output node and the constraint node, the retrieval device 100 generates the path trie expanded on the basis of the branch point, and displays the generated path trie to show the user the difference between the queries and allow the user to select the desired and/or optimal query. Accordingly, it is possible to support the creation of a complicated query containing a constraint condition, while maintaining the intuitiveness of the method.
In the present embodiments, description has been made with reference to the XML data as the semi-structured data and the XPath query as the query. However, the semi-structured data type and the query type are not limited thereto. For example, the semi-structured data also includes an RDB (Relational Database) table and CSV (Comma Separated Values) data, as well as the XML data. Therefore, the invention claimed in the present application is also applicable to the RDB table and a CSV file, for example.
Further, in the retrieval device 100 according to the present embodiment, the sibling occurrence number counting unit 150b registers the maximum sibling number in the path trie node structure, and the branch point determination processing unit 150e refers to the maximum sibling number to determine whether or not the corresponding node corresponds to the branch point. However, the configuration is not limited thereto.
For example, if the corresponding node has two or more siblings, the sibling occurrence number counting unit 150b may register, in the path trie node structure, only identification information indicating the presence of two or more siblings. In this case, in the determination of the branch point, the branch point determination processing unit 150e can determine the branch point to be the node having the identification information among the branch point candidates.
In the processes described in the present embodiments, all or part of the processes described to be automatically performed can also be manually performed. Alternatively, all or part of the processes described to be manually performed can also be automatically performed. In addition, the process procedures, the control procedures, the specific names, and the information including various data and parameters described in the above text and drawings can be arbitrarily modified, unless otherwise specified.
Further, the constituent components of the devices illustrated in the drawings are not always required to be physically configured as illustrated in the drawings. That is, specific forms of distribution and integration of the devices are not limited to those illustrated in the drawings. Therefore, all or part of the devices can be configured to be functionally or physically distributed or integrated in arbitrary units in accordance with various loads, the usage state, and so forth. Further, all or part of the processing functions performed by the devices may be realized by a CPU and a program analyzed and executed by the CPU, or may be realized by hardware based on wired logic, for example.
For example, the HDD 18 stores a query generation display program 18b and a retrieval program 18c, which exert functions similar to the functions of the above-described retrieval device 100. As the CPU 17 reads and executes the query generation display program 18b and the retrieval program 18c, a query generation display process 17a and a retrieval process 17b are activated.
Herein, the query generation display process 17a corresponds to the path trie generation unit 150a, the sibling occurrence number counting unit 150b, the data structure display unit 150c, the query specification reception unit 150d, the branch point determination processing unit 150e, the query generation processing unit 150f, and the query display processing unit 150g illustrated in
The HDD 18 stores various data 18a corresponding to the data stored in the storage unit 140 illustrated in
All examples and conditional language recited herein are intended for pedagogical objects to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiment(s) of the present inventions have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2009-57174 | Mar 2009 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
20040073541 | Lindblad et al. | Apr 2004 | A1 |
20050203957 | Wang et al. | Sep 2005 | A1 |
20070198559 | Hattori | Aug 2007 | A1 |
Number | Date | Country |
---|---|---|
2003-196275 | Jul 2003 | JP |
Entry |
---|
<oXygen/>, “XML Editor for XML Development: The Complete XML Development Platform with Support for all Major XML Related Standards,”<oXygen/> XML Editor, http://www.oxvgenxml.com/xml—editor.html, accessed Oct. 21, 2009. |
Number | Date | Country | |
---|---|---|---|
20100235385 A1 | Sep 2010 | US |