FIELD OF THE INVENTION 
       [0001]    The present invention is directed to the analysis and viewing of information contained in documents that conform to the eXtensible Markup Language (XML) standard. In one embodiment, the invention can be applied to the retrieval and viewing of information contained in an extension of XML, that is directed to the communication of business and financial data, known as the eXtensible Business Reporting Language (XBRL). 
       BACKGROUND OF THE INVENTION 
       [0002]    XML and various extensions thereof, such as XBRL, are becoming widely accepted as platforms for documents that are exchanged within groups. By conforming to the XML standard, a document is structured in a manner that enables the information therein to be readily identified and displayed in a desired format for viewing purposes. The XBRL standard provides a good example of this functionality in the context of business and financial data. The structure of the data is defined by metadata that is described in Taxonomies. The Taxonomies capture the definition of individual elements of financial data, as well as the relationship between them. Within a document, these elements are identified by tags. The extensible nature of the language permits users to define custom Taxonomies, allowing for potentially infinite kinds of metadata. 
         [0003]    Significant efforts are currently underway to adopt XBRL as a replacement for paper-based financial data collection, and various electronic mechanisms for financial data reporting. In the United States, for example, the Federal Deposit Insurance Corporation (FDIC) has instituted a project in which banks and similar types of financial institutions employ a form-based template to submit data in an XBRL format. The Securities and Exchange Commission (SEC) also has a project for the disclosure of company financial performance information, utilizing XBRL. This information can then be downloaded online, by authorized entities. Other users of XBRL-formatted information include companies that disseminate financial news. The XBRL format enables the various companies to distribute the financial information on a common platform. 
         [0004]    It can be appreciated that, as the XBRL format is adopted for these types of uses, large collections of business and financial performance information in this format will be amassed. There is a growing need for an efficient mechanism to process and retrieve stored information from such a large collection. 
         [0005]    In the past, the typical approach for information retrieval within a large repository of documents is to pre-parse each document in its entirety, and store the parsed information in another storage medium, such as a relational database. The database, rather than the documents themselves, then functions as the source of information that is searched to obtain data responsive to a request. Such an approach significantly increases storage requirements, since each item of information is stored twice, namely in the original document and in the parsed form. Furthermore, the information is not immediately available as soon as the document is loaded into the repository. Rather, the need to pre-process the document, to extract each item of information and store it in the database, results in a delay before the information contained in the document can be retrieved in response to a query. 
       SUMMARY OF THE INVENTION 
       [0006]    In accordance with the invention disclosed herein, data that is present in a tagged format, such as XML data and XBRL data, can be dynamically accessed on demand. The data is obtained directly from the original document, thereby avoiding the need to pre-parse entire documents before the information can be retrieved. The manner in which this functionality is achieved is explained hereinafter with reference to exemplary embodiments illustrated in the accompanying drawings. It should be appreciated that, while specific examples are described with respect to the retrieval of information in XBRL-formatted documents, the concepts described herein are not limited to that particular application. Rather, they can be employed in the context of any type of data that conforms to the XML specification and any of its extensions. 
     
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0007]      FIG. 1  is a schematic diagram of the architecture of a system for accessing XBRL-formatted documents; 
           [0008]      FIG. 2  is a schematic diagram illustrating the components of the dynamic processor; 
           [0009]      FIGS. 3A-3E  illustrate examples of the display of results returned from a query; and 
           [0010]      FIG. 4  is a schematic diagram of and exemplary architecture for a dynamic form generator. 
       
    
    
     DETAILED DESCRIPTION 
       [0011]    To facilitate an understanding of the concepts underlying the present invention, they are described hereinafter with reference to their implementation in the context of accessing information contained in XBRL-formatted documents. It will be appreciated, however, that this implementation is but one example of the practical applications of the invention. More generally, the invention is applicable to the retrieval of information that is presented in a format containing metadata that identifies each element of information. In particular, the invention is applicable to collections of XML-formatted documents, as well as each of the specific implementations of XML, such as XBRL. The following discussion should therefore be viewed as illustrative, without limiting the scope of the invention. 
         [0012]      FIG. 1  illustrates the basic architecture of a system for access to XBRL documents, which implements the present invention. The fundamental components of the system comprise a repository  10  containing the XBRL documents, an application programming interface (API)  12  via which a user enters requests for information contained in those documents, and receives responses to the requests, and a dynamic processor  14  that is responsive to a request received via the API, to retrieve information from the documents, and return it via the API  12 . 
         [0013]    XBRL is comprised of two fundamental components, namely an instance document  16 , which contains business and financial facts, and a collection of Taxomomies, which define metadata about these facts. Each business fact  18  comprises a single value. In addition to facts, an instance document might contain contexts, which define the entity to which the fact applies, the period of time to which it pertains, and/or whether the fact is actual, projected, budgeted, etc. The instance document might also contain units that define the unit of measurement for the numeric facts that are presented within the document, as well as footnotes providing additional information about the fact, and references to Taxonomies. 
         [0014]    The Taxonomies comprise a collection of XML Schema documents  20  and XLink linkbase documents  22 . A schema defines facts by means of elements  24 . For example, an element might indicate what type of data a fact contains, e.g., monetary, numeric, textual, etc. 
         [0015]    A linkbase is a collection of links. A link contains locators, that provide arbitrary labels for elements, and arcs  26 , which indicate that an element links to another element, by referencing the labels defined by the locators. 
         [0016]    A more detailed view of the dynamic processor is illustrated in  FIG. 2 . A request for information is presented to the API  12 . This request, in the form of query, can be of a variety of different types. For example, one type of query might request a particular item of data for a number of different companies, e.g., annual revenue for all companies in the beverage industry. Another type of query may request all data for a given company of interest, or data over a particular time span, such as the ten-year revenue growth for a particular company. The API presents these requests to the dynamic processor  14 , for example, in the form of a function call with parameters that identify the particular items of interest in the request. 
         [0017]    The dynamic processor contains a number of pre-fabricated algorithms that are executed by an algorithm manager  28 . Each algorithm is designed to retrieve information in response to a particular type of request. In essence, each algorithm implements a particular type of search strategy. For example, one algorithm can function to retrieve all items from a collection of documents, e.g., all data relating to a particular company. Another algorithm can function to retrieve the metadata associated with a particular fact. 
         [0018]    The algorithms perform multi-step processes to first examine the metadata to obtain information about the semantics and structure of the instance documents, and then retrieve the appropriate metadata and data items from the XBRL documents that are responsive to the request. An illustrative example of the process performed by the algorithms is set forth hereinafter in the context of a request to provide the balance sheet of a designated entity. 
         [0019]    1. In response to the request, the algorithm which corresponds to that type of request sends a query, for example using an XQuery language component  30 , to a presentation linkbase in the Taxonomies, to locate presentation links that correspond to the sections of a balance sheet. It should be noted that, due to the extensible nature of XBRL, the Taxonomies that are applicable to a given filing could comprise multiple sets of Taxonomy documents. There could be a standard Taxonomy that is associated with the entity to which filings are presented. For instance, the SEC might establish a standard Taxonomy containing presentation links for balance sheet data. The documents for this standard Taxonomy might be stored in a known location within the repository. In addition, the entity submitting a filing could include custom Taxonomy documents with the instance documents that it submits. The custom Taxonomy constitutes an extension of the standard Taxonomy established by the SEC. In operation, the algorithm first goes to the standard Taxonomy to locate the appropriate presentation links. 
         [0020]    2. Once the presentation links have been located, the algorithm then identifies concepts that are referenced by the presentation links, e.g. assets, current assets, non-current assets, etc. 
         [0021]    3. Using these concepts and entities, and any other qualifiers such as specific date or date range, the algorithm employs an XML document retriever  32  to locate corresponding items in the instance documents. 
         [0022]    4. As a result of these steps, the algorithm discovers instance documents that contain the relevant data. In some cases, these documents may point to links in custom Taxonomies. In such a situation, these custom links are merged with the standard links, to obtain additional concepts. 
         [0023]    5. Using the concepts, presentation links and preferred label attributes contained in the presentation links, the algorithm locates labels for the data in a label linkbase. 
         [0024]    6. The algorithm returns the labels, presentation structure and data, e.g. numbers, to the API, to be formatted and presented to the user. 
         [0025]    As an alternative to using XQuery, the dynamic processor can employ a different technology such as SAX (Simple API for XML) or XML Pull Parsing, or a combination of such technologies, to retrieve information from the XBRL instance documents and Taxonomy documents. 
         [0026]    The dynamic processor preferably includes a cache  33  for storing information that has been retrieved and returned via the API. This cached data can be used to reduce the time needed to respond to subsequent requests that seek some, or all, of the information that was returned in response to a previous request, and thereby eliminate duplicate processing. When a request is received, the algorithm manager  28  first checks the cache, to determine if a valid response to the request is present. If so, the response is retrieved from the cache, and immediately provided to the API in response to the request. 
         [0027]    Examples of responses that might be displayed to a user are illustrated in  FIGS. 3A-3E . In this particular example, the user has requested the latest filing of a 8-K Statement at the SEC for a particular company.  FIG. 3A  illustrates the initial screen that is presented to the user. This view presents a first-level listing of the sections of the statement. Each of these section headings are identified in the metadata for the filing, e.g. presentation links. 
         [0028]      FIGS. 3B-3D  illustrate views with progressively greater levels of detail in the first section “Statement of Financial Position”, under the heading for “Assets”, and numerical values corresponding to the various categories of assets. These numerical values, along with any dates to which they correspond and units of measurement, are retrieved from the instance documents themselves, whereas the displayed names for the asset categories are obtained from the metadata documents. Rather than select each successive level individually, the user can choose to expand and view all categories of data in the section at once, by selecting an appropriate button  34 , as shown in  FIG. 3E . 
         [0029]    In addition to retrieving data items that are contained in the instance documents and providing them in a view such as those shown in  FIGS. 3A-3E , the algorithms in the dynamic processor also have the ability to calculate additional data that does not explicitly appear in the instance documents. For instance, in the example of  FIGS. 3A-3E , the instance documents might contain items for each of the individual categories of assets, as shown in the view of  FIG. 3D . However, they may not contain an item corresponding to the sum of all of the individual categories of assets, which is shown in  FIG. 3B . In this case, the appropriate algorithm refers to the linkbase  22  to locate an equation which defines the items that make up the requested calculation. The algorithm then sends a query requesting each of those items, and sums them to obtain the desired total. 
         [0030]    The dynamic processor can be implemented within different software environments. In one implementation, the dynamic processor can reside as a stand alone desktop application, which communicates with one or more repositories of XBRL documents that are accessible via a desktop computer, for example through a network. In another implementation, the dynamic processor can be implemented as a client-server program. For instance, the components illustrated in  FIG. 2  might reside in a server that is associated with the information repository, and the API can communicate with a client executing on a computer at a user&#39;s site, via HTML. As a third implementation, the data processor might be a web-based application executing on a server that a user accesses through a suitable browser. In each case, the software components that constitute the API and the dynamic processor are encoded on a computer-readable medium that is accessed by the supporting server and/or desktop computer. 
         [0031]    In addition to the processing of XBRL documents to retrieve data that is responsive to a request, the technology that underlies the invention can also be employed to generate forms that can be used to create XBRL documents. An example of an architecture for a dynamic form generator is illustrated in  FIG. 4 . 
         [0032]    A form is generated on the basis of a particular taxonomy that is designated by the user. In generating a form, no assumptions are made about the structure of the taxonomy, other than the fact that it conforms to an XML-based specification, e.g. XBRL. Once the user has designated a particular taxonomy  36 , and a name for the form, a dynamic form generator  38  within the dynamic processor examines the schema in the taxonomy, using suitable algorithms, to obtain labels that are relevant to the form to be generated. The form  40  is generated with data entry fields  42  that correspond to each label that was obtained from the taxonomy. In addition, the form is provided with XML tags  44  that are associated with each input field, as described by the taxonomy  36 . 
         [0033]    Once the form is generated, it is resident as a live form, e.g. an XForm, on a network, such as the Internet. This form can then be accessed by a form-enabled application  46 , via which a user can enter input data into each field  42 , e.g. financial and business data in the case of an XBRL form. The completed form can then be submitted as a new XML instance document  48 , and stored at a location designated by the user. 
         [0034]    Thus it can be seen that the present invention provides dynamic evaluation of XML documents in response to a request, notwithstanding the diverse amount of metadata that can result with an extensible language. This is accomplished by analyzing the metadata to learn about the structure and semantics that are employed for any given set of XML documents. As a result, the need to pre-parse documents to derive data from them is avoided. Furthermore, forms for creating XML documents can be automatically generated without requiring manual input to designate fields or tags, or to publish the forms. 
         [0035]    It will be appreciated by those of ordinary skill in the art that the invention described herein can be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The disclosed implementations are considered in all respects to be illustrative, and not restrictive. The scope of the invention as indicated by the appended claims, rather than the foregoing description, and all changes that come within the meaning and range of equivalents thereof are intended to be embraced therein.
Data that is in a tagged format, such as XML, is dynamically accessed on demand, without the requirement for pre-parsing documents containing the data and storing it in a database. A dynamic processor discovers and processes taxonomy documents pertinent to a data request by traversing linked relationships between documents. Pre-stored algorithms in the dynamic processor are used to retrieve the relevant data items from the documents.