What is claimed is:
1. A method of creating a customized data table from a database containing collected answers to a survey questions, said method comprising the steps of:
selecting a first question from the survey questions;
selecting possible answers to said first question;
titling rows of a data table with said possible answers selected for said first question;
selecting a second question from the survey questions;
selecting possible answers to said second question;
titling columns of the data table with said possible answers;
cross-tabulating data from the database corresponding to said answers selected for said first question and answers selected for said second question to complete said data table.
2. The method according to claim 1, further including the step of filtering said answers to said first selected question, thereby creating filtered answer data that contains only some of said answers to said first selected answer.
3. The method according to claim 2, wherein said step of selecting possible answers to said first question includes selecting possible answers from said filtered answer data.
4. The method according to claim 2, wherein said step of filtering said answers to said first selected question includes the substeps of selecting an answer criteria and eliminating and answer not meeting said answer criteria when creating said filtered answer data.
5. The method according to claim 1, further including the step of grouping said answers to said first selected question, thereby creating grouped answer data that contains only some of said answers to said first selected answer.
6. The method according to claim 5, wherein said step of selecting possible answers to said first question includes selecting possible answers from said grouped answer data.
7. The method according to claim 5, wherein said step of grouping said answers to said first selected question includes the substeps of selecting an answer criteria and adding only answers meeting said answer criteria to said grouped answer data.
8. The method according to claim 1, further including the step of filtering said answers to said second selected question, thereby creating filtered answer data that contains only some of said answers to said second selected answer.
9. The method according to claim 8, wherein said step of selecting possible answers to said second question includes selecting possible answers from said filtered answer data.
10. The method according to claim 8, wherein said step of filtering said answers to said second selected question includes the substeps of selecting an answer criteria and eliminating and answer not meeting said answer criteria when creating said filtered answer data.
11. The method according to claim 1, further including the step of grouping said answers to said second selected question, thereby creating grouped answer data that contains only some of said answers to said second selected answer.
12. The method according to claim 11, wherein said step of selecting possible answers to said second question includes selecting possible answers from said grouped answer data.
13. The method according to claim 12, wherein said step of grouping said answers to said second selected question includes the substeps of selecting an answer criteria and adding only answers meeting said answer criteria to said grouped answer data.
14. A method of providing marketing data to customers, comprising the steps of:
preparing a marketing survey containing a plurality of survey questions;
distributing said survey to individuals over a computer network;
collecting answers to said survey questions over said computer network to create a database;
enabling customers to access said database through a computer network;
providing customers the ability to view a relationship between any two survey questions contained in said survey by providing a table that cross-tabulates answers to any first selected question of said survey with answers to any second selected question of said survey.
15. The method according to claim 14, wherein said step of providing customers the ability to view a relationship between any two survey questions includes displaying all of said survey questions to a customer and enabling the customer to select said first selected question and said second selected question from said survey questions.
16. The method according to claim 14, wherein said step of providing customers the ability to view a relationship between any two survey questions includes providing a data table where answers to said first selected question are cross tabulated with answers from said second selected question.
17. The method according to claim 15, wherein said computer network includes the Internet.
18. A method of maintaining accurate marketing data for a plurality of different industries, comprising the steps of:
producing a marketing survey for each of said plurality of industries;
periodically disseminating each said marketing survey to potential respondents during a predetermined period of time;
periodically collecting answers to each said marketing survey during said predetermined period of time;
producing a database of survey answers corresponding to each said marketing survey;
providing access to each said database to customers requiring marketing survey data in the industry corresponding to each said database;
enabling customers to customize data contained in a selected database by cross tabulating answers to any two selected question in said marketing survey.
19. The method according to claim 17, wherein said step of enabling customers to customize data includes providing customers the ability to filter data by eliminating data corresponding to specific survey questions.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method of applying, on a device having a processor, queries to a document set comprising at least one document, respective documents comprising at least one node located at a node path from a root node of the document and having a node identifier and a node value, the method comprising:
executing on the processor instructions configured to, upon receiving a query specifying a query node path comprising at least one pair of a query node identifier and a query node value for the node having the query node identifier:
identify at least one matching document having at least one matching node comprising, for respective pairs of query node identifiers and query node values, at least one path node in the node path of the matching node that matches the query node identifier and a node value of the path node that matches the query node value; and
present at least a portion of the at least one matching document in response to the query.
2. The method of claim 1, respective nodes specified in a JavaScript Object Notation format.
3. The method of claim 1:
the query node path specifying a first query node identifier followed by a second query node identifier; and
identifying the matching documents comprising: identifying at least one matching document having at least one matching node comprising, in the node path of the matching node:
a first path node matching the first query node identifier; and
a second path node following the first path node in the node path of the matching node and matching the second query node identifier.
4. The method of claim 1:
the query node path specifying at least query node identifier set comprising at least two alternative query node identifiers; and
identifying the matching documents comprising: identifying at least one matching document having at least one matching node comprising, for respective query node identifier sets, at least one path node in the node path of the matching node that matches at least one of the alternative query node identifiers.
5. The method of claim 1:
the query node path specifying a query node value range; and
identifying the matching documents comprising: identifying at least one matching document having at least one matching node comprising, for respective query node values of the query, at least one path node in the node path of the matching node that matches the query node identifier and a node value within the query node value range.
6. The method of claim 1:
the query specifying:
a first query node identifier, and a second query node identifier having a second node path having a relationship with a first node path of a matching node that matches the first query node identifier; and
identifying the matching documents comprising: identifying at least one matching document having at least one matching node comprising:
a first matching node that matches the first query node identifier; and
a second matching node that matches the second query node identifier and a second node path satisfying the relationship with the first node path of the first matching node.
7. The method of claim 1:
the query comprising: a query selection selecting a query node subset of respective documents; and
identifying the matching documents comprising:
selecting a node subset comprising the nodes of the document within the query node subset; and
applying a remainder of the query to only the node subset.
8. The method of claim 7, the query node subset specified as child nodes descending from a matching node.
9. The method of claim 1:
at least one node of at least one document further comprising a node value;
the query node path requesting at least one node value to be returned for matching nodes; and
presenting the at least one matching document comprising: for respective matching nodes of respective matching documents, presenting the node value of the matching node.
10. The method of claim 1:
the query requesting at least one child node that descends from a matching node; and
presenting the at least one matching document comprising: for respective matching nodes of respective matching documents, presenting at least one child node that descends from the matching node.
11. The method of claim 1:
the query requesting a set of query results; and
the instructions further comprising:
partitioning the query results into query result ranges;
returning the query results within a first query result range; and
upon receiving a request to return a second query result range, return the query results within the second query result range.
12. The method of claim 1:
the query further comprising at least one script to be applied to at least one matching document; and
the instructions further configured to, upon identifying a matching document, applying the script to the matching document.
13. The method of claim 1:
the instructions further configured to, upon receiving a document, index the document in a document index according to, for respective nodes, the node path; and
identifying the at least one matching document comprising: for respective query node identifiers, examine the document index to identify the matching documents having at least one matching node comprising, for respective query node identifiers, at least one query node in the node path of the matching node that matches the query node identifier.
14. The method of claim 13:
at least one node of at least one document further comprising a node value; and
indexing the documents further comprising: indexing the document in a document index according to, for respective nodes, the node path and the node value of the node.
15. The method of claim 13, the document index comprising a reverse index indicating, for respective query node paths, the at least one matching documents having at least one matching node comprising, for respective query node identifiers, at least one query node in the node path of the matching node that matches the query node identifier.
16. The method of claim 13, generating the document index further comprising: for at least two matching nodes matching a query node path through different node paths, consolidating the nodes in the document index.
17. The method of claim 16, consolidating the nodes further comprising:
identifying a similarity degree of the different node paths of the matching nodes; and
consolidating the matching nodes in the document index only if the similarity degree of the different node paths exceeds a similarity degree threshold.
18. A nonvolatile computer-readable storage device comprising instructions that, when executed on a processor of a device, apply queries to a document set comprising at least one document, respective documents comprising at least one node located at a node path from a root node of the document and comprising a node identifier and a node value, by:
upon receiving a query specifying a query node path comprising at least one pair of a query node identifier and a query node value:
identifying at least one matching document having at least one matching node comprising, for respective pairs of query node identifiers and query node values, at least one path node in the node path of the matching node that matches the query node identifier and a node value of the path node that matches the query node value; and
presenting at least a portion of the at least one matching document in response to the query.
19. A system of applying, on a device having a processor and a memory, queries to a document set comprising at least one document, respective documents comprising at least one node located at a node path from a root node of the document and comprising a node identifier and a node value, the system comprising:
a document index indicating, for respective query node paths, at least one matching document respectively having at least one matching node comprising, for respective pairs of query node identifiers and query node values, at least one path node in the node path of the matching node that matches the query node identifier and a node value that matches the query node value;
a document indexing component comprising instructions stored in the memory that, when executed on the processor, upon receiving a document, index the document in the document index according to, for respective nodes, the node path; and
a query processing component comprising instructions stored in the memory that, when executed on the processor, upon receiving a query specifying a query node path comprising at least one pair of a query node identifier and a query node value:
examine the document index to identify at least one matching document having at least one matching node comprising, for respective pairs of query node identifiers and query node values, at least one path node in the node path of the matching node that matches the query node identifier and a node value of the path node that matches the query node value; and
present at least a portion of the at least one matching document in response to the query.
20. The method of claim 1, wherein at least one path node in the node path having a node identifier matching a query node identifier and a node value matching a query node value further comprises an intermediate node of the node path that is between the root node and a child node of the path node.