EP1880312A2 - System and method for providing data formatting - Google Patents

System and method for providing data formatting

Info

Publication number
EP1880312A2
EP1880312A2 EP06765418A EP06765418A EP1880312A2 EP 1880312 A2 EP1880312 A2 EP 1880312A2 EP 06765418 A EP06765418 A EP 06765418A EP 06765418 A EP06765418 A EP 06765418A EP 1880312 A2 EP1880312 A2 EP 1880312A2
Authority
EP
European Patent Office
Prior art keywords
formatting
document
schema
elements
instance
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
EP06765418A
Other languages
German (de)
French (fr)
Inventor
Raymond Lam
Harmer Steven
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JustSystems Canada Inc
Original Assignee
JustSystems Canada Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by JustSystems Canada Inc filed Critical JustSystems Canada Inc
Publication of EP1880312A2 publication Critical patent/EP1880312A2/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/117Tagging; Marking up; Designating a block; Setting of attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Definitions

  • the present invention is generally directed to apparatuses, methods and systems for rendering Extensible Markup Language (XML) data.
  • XML Extensible Markup Language
  • the disclosure describes the implementation of a formatting linkbase for Extensible Business Reporting Language (XBRL).
  • XBRL Extensible Business Reporting Language
  • XML is an open ended markup language that enables the creation of more specific languages to represent any kind of data in a manner parseable by computer systems. This is accomplished by defining tags that are attached to underlying data to identify the meaning of the data. For example, a computer program reading the text string "101 Main Street, Springfield, Ma 01101" would generally not recognize that this is an address. This information, however, could be tagged using XML to specifically identify that this data represents an address and to identify each of the addresses' constituent elements as follows:
  • tags could then be used by XML based software to identify the significance of each element of the data and use it appropriately.
  • the meaning of each tag in a particular XML instance document is identified by the instance document's associated schema.
  • XBRL is designed to be a general purpose mark up language for business reporting and is specifically tailored for that usage.
  • XBRL implements the additional concept of a taxonomy.
  • An XBRL taxonomy is comprised of a schema to define the concepts used by the particular XBRL implementation and a series of linkbases that define relationships between the concepts defined by the schema.
  • XBRL provides for five types of linkbases: (1) label linkbases attach various labels to the concepts in the schema; (2) reference linkbases attach external information sources to the concepts in the schema; (3) presentation linkbases define how concepts in the schema are nested and ordered; (4) calculation linkbases define how concepts in the schema should relate to one another mathematically; and (5) definition linkbases define inter-concept relationships and semantics.
  • a problem with XML is that it focuses on defining data without necessarily defining any rendering or formatting of the associated with the data. This is a particular problem for XBRL because the data represented by XBRL instance documents ATTORNEY DOCKET NO.: 15167.002 are often intended to ultimately be rendered in financial reporting documents, such as share holder reports, governmental agency filings, etc.
  • XML is rendered using Extensible Stylesheet Language
  • XSLT Transformations to add formatting data to the XML content and to output a document in a format that supports rendering tags, such as, for example, HTML.
  • XSLT is an adequate solution because XML is usually highly structured and predictable within the particular problem-domain defined by a particular schema. XSLT can rely on that structure to implement general rules to define formatting for that structure leading to advantageous generation and reuse of code.
  • XML address example the relationship between the constituent elements of the address element are fairly rigidly structured, in other words an address will always have those same elements with the same relationship.
  • An XSLT transform that defines the rendering format for the address element would therefore be fairly straightforward to implement and would be broadly applicable to most address elements.
  • XSLT does not provide an optimal solution for the rendering of less structured XML implementations, such as XBRL, which is used herein as an example of the problems that arise when XSLT is used with less structured XML-based languages.
  • XBRL The concepts defined by XBRL exist as loosely-coupled granules of data and do not necessarily follow the rigid conceptual relationships inherent in typical XML concepts, like the address example above. Moreover, XBRL's use of taxonomies to store meta-data further removes the predictable structure that is present in more structured typical XML data. For example, the linkbases associated with an XBRL taxonomy can ATTORNEY DOCKET NO.: 15167.002 be extended and overridden for particular uses thereby making structural assumptions about the underlying data unpredictable. XSLT based software is unaware of these associated linkbases and their relationship to the underlying data.
  • formatting could be applied to instance data by receiving an instance document describing at least one ATTORNEY DOCKET NO.: 15167.002 instance fact structured as prescribed by an element of an associated schema; receiving the associated schema setting forth the context of the one or more elements; receiving a formatting definition document having a set of associated formatting properties for at least one of the one or more elements; and rendering a representation of the at least one instance fact based upon the formatting properties associated with element prescribing the structure of the at least one instance fact.
  • an XBRL based schema is provided formatting data by linking a formatting document with the XBRL schema to describe formatting characteristics for one or more of the elements; linking the formatting document with one or more linkbases associated with the XBRL schema to identify metadata associated with the elements for the purpose of applying formatting; and including in the formatting document report definitions grouping elements from the schema into an object model.
  • the present invention also provides for rendering a document in a mark-up language by parsing the document to retrieve elements containing data; parsing a schema associated with the document to process the elements containing data; parsing a formatting linkbase associated with the schema to define the formatting of elements of the document; parsing a report generation document to determine the layout of a report containing one or more of the elements of the document; and rendering the layout determined by the report generation document and containing the data from the elements of the document.
  • Figure 1 shows an XBRL taxonomy in accordance with an embodiment of the disclosed invention.
  • Figure 2 show the relationship of data and formatting files in accordance with an embodiment of the disclosed invention.
  • Figures 3 A-3 C show various embodiments of taxonomies and renderers in accordance with the disclosed invention.
  • Figure 4 shows a computer systemization in accordance with an embodiment of the present invention.
  • Appendices 1-5 provide code examples demonstrating various benefits of the formatting linkbase.
  • Figure 1 discloses the constituent elements of an XBRL taxonomy 100 in accordance with an embodiment of the present invention.
  • the taxonomy includes the associated schema 101.
  • the schema 101 links to the linkbases typically found in an XBRL taxonomy, including: label linkbase 102, reference linkbase 103, presentation linkbase 104, calculation linkbase 105, definition linkbase 106.
  • the taxonomy links to an associated formatting linkbase 107.
  • the formatting linkbase 107 is embodied by an XML document that defines the formatting for one or more elements defined by associated schema 101. ATTORNEY DOCKET NO.: 15167.002
  • Figure 2 shows an the relationship of schema 201, formatting linkbase
  • schema 201 defines a number of elements describing various business concepts including: Assets, Cash, Liquid Investments, Accounts Receivable, Property, Goodwill, and Total Assets. Although not shown in the figure, these concepts would be set forth in the schema document using formal XML/XBRL syntax detailing the relevant aspects of the various elements.
  • the formatting linkbase 207 references the elements defined by the schema 201 and sets forth the appropriate render formatting for each of those elements. As shown in Figure 2, the element “Assets” is formatted to be rendered in a bold 18 point font. In this particular example, the "Assets" element may have been defined to have this formatting because it represents an overarching category in the report. The remaining elements have various other formatting specifications. As with the schema, the formatting described by the formatting linkbase would be set forth using XML-based tagging, as further discussed below.
  • the available formatting tags used to implement the formatting linkbase are defined by one or more XML namespaces.
  • one or more namespaces will be provided to define tags to implement the concepts of the formatting linkbase.
  • the formatting linkbase might also include namespaces adapted from another XML language.
  • Renderers in accordance with the disclosed system can then interpret the defined tags to either directly render the content, e.g. on a display or printer, or to translate them into ATTORNEY DOCKET No.: 15167.002 corresponding formatting tags in another data format, such as for example, ASCII, comma-separated values (CSV), HTML, Microsoft .doc, Microsoft .ppt, or Adobe PDF.
  • formatting tags it may be particularly advantageous to adopt formatting tags compatible with other known formatting schemes such as a extensible stylesheet language (XSL). This would build upon the existing XSLT software and the skill set of XSLT developers and provide an easier migration path to formatting linkbase implementations.
  • XSL extensible stylesheet language
  • the ⁇ linkbase> tag is the standard XBRL root tag for defining linkbases.
  • the ⁇ folink:formatLink> tag is a formatting linkbase derived tag that establishes an object to be formatted.
  • the object is defined to have the id "currentAssets.” Accordingly, this ⁇ folink:formatLink> will create an object model for the current assets business concept and define its formatting.
  • the objects created by ⁇ folink:formatLink> create a node set of facts imposes a structure onto the XBRL elements. This node set can then be parsed and traversed during formatting.
  • the contents of the current assets object are identified through the use of the ⁇ loc> tag.
  • the ⁇ loc> tag is used to identify the "schema.xsd#Assets" element from the schema 207 as an element included in the object "currentAssets” and is set with the xlink:label "Assets" for later reference. It should be understood that the example above is only a partial implementation, in a complete ATTORNEY DOCKET No.: 15167.002 implementation all the constituent elements of the "currentAssets" object would be identified and labeled with an associated ⁇ loc> tag.
  • the ⁇ folink:formatArc> is an implementation of an xlink arc.
  • the role of the arc, as defined by the ⁇ xlink:arcrole> attribute, is to provide an XBRL format.
  • the ⁇ formatArc> in this example links from schema.xsd# Assets to formatting_linkbase.xsd#Assets_forrnat, thereby associating the formatting for the "Assets" element with its definition in the formatting linkbase.
  • the ⁇ folmk:format> tag sets the formatting associated with the assets element, which is identified with the "Assets_format" label defined by the previously discussed ⁇ folink:formatArc> tag.
  • the specific format is identified by the ⁇ folink:properties> tag, which defines properties for the ⁇ folink:format>.
  • the actual formatting tags are XSL based, which has the benefit of compatibility with existing XSL compliant software.
  • Other formatting identifiers could alternatively be employed. This particular example defines the font weight and size for the "Assets" element. Any other formatting styles, however, could be defined by tags and applied.
  • the instance document 208 contains specific XBRL instance data for one or more of the elements defined by the schema 207.
  • the data indicates that the assets include cash worth 12 units, liquid investments worth 14 units, accounts ATTORNEY DOCKET NO.: 15167.002 receivable worth 8 units, real property worth 32 units and goodwill worth 20 units. This results in total assets of 86 units.
  • the figure does not show the data using actual XBRL syntax it is to be understood that the instance document would be implemented in appropriate XBRL.
  • the present embodiment also includes a report definition document 209, which specifically describes the formatting layout for the complete document, in this case a chart 210 which displays the assets of the organization as described in the instance document.
  • the report document links to the instance document 208 and the formatting linkbase 207 to determine the particulars of the described report and its constituent elements.
  • a " ⁇ report>" tag is provided to act as a framework to define the contents and formatting of a document.
  • the report definition document 209 could employ such a report tag to define the rendered output 210.
  • the ⁇ report> tag encloses an XSL Stylesheet that defines the layout of the chart, such as the setup of the columns and the placement of the headings.
  • the formatting of the individual elements is displayed as defined by the formatting linkbase.
  • the formatting definition for a particular element may be defined differently in the report definition, or another document, than it is defined in the formatting linkbase.
  • the definition in the later document could optionally override the definition defined in the formatting linkbase. This would allow an authorcustomize and reformat the rendering of the output as needed.
  • the ⁇ repor£> tag could also be used to define styles in the formatting linkbase itself.
  • the formatting linkbase might have multiple ⁇ report> definitions for different items of information, such as a balance sheet, earnings chart, expense chart, etc. These could then be individually rendered or incorporated in to other documents.
  • Figure 3 A shows an exemplary rendering system in accordance with one embodiment of the present invention.
  • Tenderer 311 which is a piece of software that reads the supplied data as input and generates a fully or partially rendered document.
  • Tenderer 311 takes schema 301, formatting linkbase 307, report format 309 and instance document 308 as inputs to generate rendered report 310.
  • the Tenderer uses the schema to define the elements used by the instance document, as is known in the art, and uses the formatting linkbase to define the rendering properties for the various elements of the schema.
  • the formatting linkbase 307 may also include ⁇ report> definitions for certain standard element layouts, such as assets and liabilities charts.
  • the report format 309 could then further describe the layout of the entire report required.
  • the renderer 311 itself could be embodied in various types of application programs.
  • the Tenderer could be embodied by a batch processor that generates reports in a prescribed way with little user input or in a document viewer, such as a web browser.
  • the renderer 311 could also be embodied in a document layout program, such as, for example, a word processor, presentation software, page layout program, web publishing software, etc.
  • a document layout program such as, for example, a word processor, presentation software, page layout program, web publishing software, etc.
  • the renderer is part of, or cooperates with, a document layout program the basic or initial rendering could be defined by the formatting linkbase, but the overall structure of the report could be manipulated by the document layout program.
  • the formatting linkbase might define an organization's accepted data layout of the organization's corporate structure.
  • a document layout program employing the renderer could then import that data already formatted in the organization's accepted style and use it in whatever document is being prepared, such as a press release or stockholder report.
  • the report format 309 would not necessarily need to be provided as input because the document layout program would be used by the report's author to create the report format or the report format could be provided to, and modified by, the document layout program.
  • the rendering software that interprets the meaning of the formatting linkbase and its associated tags could also be defined in a programming library, application programming interface, or as a piece of middleware that interacts with other applications.
  • the code could be accessed by any type of program needing to render formatted XBRL data.
  • Figure 3B shows an alternate embodiment where the renderer is designed to take the whole taxonomy 300 as input data along with instance document 308 and report format 309. The renderer could then use the individual linkbases as needed.
  • This embodiment would have the advantage of having direct access to the underlying meta- ATTORNEY DOCKET No.: 15167.002 data for the various elements described by the schema 301. For example, if a particular taxonomy had labels in various languages defined by the label linkbase 302, the renderer would be able to directly access those labels to display labels for the requested language. Similarly, the other meta-data in the other languages could also be used to enhance the document rendering.
  • Figure 3 C discloses an embodiment in which all the meta-data from the taxonomy 300 is linked into the formatting linkbase 307.
  • the renderer need only access the formatting linkbase 307, instance document 308 and report format 309 as input to render the final output.
  • the formatting linkbase would in essence be hard- coded to provide the metadata present in the schema and associated linkbases.
  • XBRL XBRL's content model does not allow for the implementation of mixed content, which in turn makes it difficult express the inline formatting of the prose content. This is particularly problematic because many rendered XBRL documents, e.g. stockholder reports, often contain significant amounts of prose content.
  • the formatting linkbase provides a mechanism to extend XBRL to readily deal with prose content.
  • the formatting linkbase embraces and extends that mechanism by linking formatting information to tuples so that prose-oriented content can be formatted in a manner that is much richer than just the plain text format currently supported by XBRL.
  • the formatting linkbase will enable prose-oriented content to be composed and formatted in a manner that is equivalent with the capabilities of modern office processing software such as Word and Excel.
  • the formatting linkbase can provide basic word processing capabilities such as paragraphs, lists, headings, tables, and italicized text can be captured in XBRL format when used in conjunction with the formatting linkbase.
  • a tag called ⁇ para> is provided to represent paragraph.
  • the ⁇ para> tag can include a ⁇ run> tag representing an XBRL tuple that can link together the text of a paragraph into format tag delimited contiguous sections.
  • a ⁇ run> tag representing an XBRL tuple that can link together the text of a paragraph into format tag delimited contiguous sections.
  • Appendices 1 -5 provide code examples of demonstrating various implementations of data formatting using formatting linkbases.
  • Appendix 1 demonstrates the binding of formatting properties with concepts in a taxonomy.
  • Appendix 2 shows formatting linkbase used for the selection of data to be included in a report.
  • Appendix 3 shows how to generate alternate layouts for a given report.
  • Appendix 4 shows the ATTORNEY DOCKET No.: 15167.002 formatting of inline content, such as prose.
  • Appendix 5 shows the use of aspects of the disclosed invention to generate a 1OQ report.
  • Figure 4 of the present disclosure illustrates inventive aspects of an formatting controller 401 in a block diagram.
  • the formatting controller 401 may serve to process XBRL formatting requests as a renderer either alone or in combination with other software.
  • processors to process information; such processors are often referred to as central processing units (CPU).
  • CPU central processing units
  • a common form of processor is referred to as a microprocessor.
  • a computer operating system which, typically, is software executed by CPU on a computer, enables and facilitates users to access and operate computer information technology and resources.
  • Common resources employed in information technology systems include: input and output mechanisms through which data may pass into and out of a computer; memory storage into which data may be saved; and processors by which information may be processed.
  • information technology systems are used to collect data for later retrieval, analysis, and manipulation, commonly, which is facilitated through database software.
  • Information technology systems provide interfaces that allow users to access and operate various system components. ATTORNEY DOCKET No.: 15167.002
  • the formatting controller 401 may be connected to and/or communicate with entities such as, but not limited to: one or more users from user input devices 411; peripheral devices 411; and/or a communications network 401.
  • Networks are commonly thought to comprise the interconnection and interoperation of clients, servers, and intermediary nodes in a graph topology.
  • server refers generally to a computer, other device, software, or combination thereof that processes and responds to the requests of remote users across a communications network. Servers serve their information to requesting "clients.”
  • client refers generally to a computer, other device, software, or combination thereof that is capable of processing and making requests and obtaining and processing any responses from servers across a communications network.
  • a computer, other device, software, or combination thereof that facilitates, processes information and requests, and/or furthers the passage of information from a source user to a destination user is commonly referred to as a "node.”
  • Networks are generally thought to facilitate the transfer of information from source points to destinations.
  • a node specifically tasked with furthering the passage of information from a source to a destination is commonly called a "router.”
  • There are many forms of networks such as Local Area Networks (LANs), Pico networks, Wide Area Networks (WANs), Wireless Networks (WLANs), etc.
  • LANs Local Area Networks
  • WANs Wide Area Networks
  • WLANs Wireless Networks
  • the Internet is generally accepted as being an interconnection of a multitude of networks whereby remote clients and servers may access and interoperate with one another.
  • the formatting controller 401 may be based on common computer systems that may comprise, but are not limited to, components such as: a computer systemization 402 connected to memory 429.
  • a computer systemization 402 may comprise a clock 430, central processing unit (CPU) 403, a read only memory (ROM) 406, a random access memory (RAM) 405, and/or an interface bus 407, and most frequently, although not necessarily, are all interconnected and/or communicating through a system bus 404.
  • the computer systemization may be connected to an internal power source 486.
  • a cryptographic processor 426 may be connected to the system bus.
  • the system clock typically has a crystal oscillator and provides a base signal.
  • the clock is typically coupled to the system bus and various clock multipliers that will increase or decrease the base operating frequency for other components interconnected in the computer systemization.
  • the clock and various components in a computer systemization drive signals embodying information throughout the system.
  • Such transmission and reception of signals embodying information throughout a computer systemization may be commonly referred to as communications. These communicative signals may further be transmitted, received, and the cause of return and/or reply signal communications beyond the instant computer systemization to: communications networks, input devices, other computer systemizations, peripheral devices, and/or the like.
  • communications networks may be connected directly to one another, connected to the CPU, and/or organized in numerous variations employed as exemplified by various computer systems.
  • the CPU comprises at least one high-speed data processor adequate to execute program modules for executing user and/or system-generated requests.
  • the CPU may be a microprocessor such as AMD's Athlon, Duron and/or Opteron; IBM and/or Motorola's PowerPC; Intel's Celeron, Itanium, Pentium, Xeon, and/or XScale; and/or the like processor(s).
  • the CPU interacts with memory through signal passing through conductive conduits to execute stored program code according to conventional data processing techniques. Such signal passing facilitates communication within the formatting controller and beyond through various interfaces. Should processing requirements dictate a greater amount speed, parallel, mainframe and/or super-computer architectures may similarly be employedAlternatively, should deployment requirements dictate greater portability, smaller Personal Digital Assistants (PDAs) may be employed.
  • PDAs Personal Digital Assistants
  • the power source 486 may be of any standard form for powering small electronic circuit board devices such as the following power cells: alkaline, lithium hydride, lithium ion, nickel cadmium, solar cells, and/or the like. Other types of AC or DC power sources may be used as well. In the case of solar cells, in one embodiment, the case provides an aperture through which the solar cell may capture photonic energy.
  • the power cell 486 is connected to at least one of the interconnected subsequent components of the formatting controller thereby providing an electric current to all subsequent components.
  • the power source 486 is connected to the system bus component 404.
  • an outside power source 486 is provided through a connection across the I/O 408 interface. For example, a USB and/or IEEE 1394 ATTORNEY DOCKET No.: 15167.002 connection carries both data and power across the connection and is therefore a suitable source of power.
  • Interface bus(ses) 407 may accept, connect, and/or communicate to a number of interface adapters, conventionally although not necessarily in the form of adapter cards, such as but not limited to: input output interfaces (I/O) 408, storage interfaces 409, network interfaces 410, and/or the like.
  • cryptographic processor interfaces 427 similarly may be connected to the interface bus.
  • the interface bus provides for the communications of interface adapters with one another as well as with other components of the computer systemization.
  • Interface adapters are adapted for a compatible interface bus.
  • Interface adapters conventionally connect to the interface bus via a slot architecture.
  • Conventional slot architectures may be employed, such as, but not limited to: Accelerated Graphics Port (AGP), Card Bus, (Extended) Industry Standard Architecture ((E)ISA), Micro Channel Architecture (MCA), NuBus, Peripheral Component Interconnect (Extended) (PCI(X)), PCI Express, Personal Computer Memory Card International Association (PCMCIA), and/or the like.
  • AGP Accelerated Graphics Port
  • Card Bus Card Bus
  • E Industry Standard Architecture
  • MCA Micro Channel Architecture
  • NuBus NuBus
  • PCI(X) Peripheral Component Interconnect Express
  • PCMCIA Personal Computer Memory Card International Association
  • Storage interfaces 409 may accept, communicate, and/or connect to a number of storage devices such as, but not limited to: storage devices 414, removable disc devices, and/or the like.
  • Storage interfaces may employ connection protocols such as, but not limited to: (Ultra) (Serial) Advanced Technology Attachment (Packet Interface) ((Ultra) (Serial) ATA(PI)), (Enhanced) Integrated Drive Electronics ((E)IDE), Institute of ATTORNEY DOCKET No.: 15167.002
  • SCSI Serial Systems Interface
  • USB Universal Serial Bus
  • Network interfaces 410 may accept, communicate, and/or connect to a communications network 413. Through a communications network 413, the formatting controller is accessible through remote clients 433b (e.g., computers with web browsers) by users 433a.
  • Network interfaces may employ connection protocols such as, but not limited to: direct connect, Ethernet (thick, thin, twisted pair 10/100/1000 Base T, and/or the like), Token Ring, wireless connection such as IEEE 802.1 la-x, and/or the like.
  • a communications network may be any one and/or the combination of the following: a direct interconnection; the Internet; a Local Area Network (LAN); a Metropolitan Area Network (MAN); an Operating Missions as Nodes on the Internet (OMNI); a secured custom connection; a Wide Area Network (WAN); a wireless network (e.g., employing protocols such as, but not limited to a Wireless Application Protocol (WAP), I-mode, and/or the like); and/or the like.
  • a network interface may be regarded as a specialized form of an input output interface.
  • multiple network interfaces 410 may be used to engage with various communications network types 413. For example, multiple network interfaces may be employed to allow for the communication over broadcast, multicast, and/or unicast networks.
  • I/O 408 may accept, communicate, and/or connect to user input devices 411, peripheral devices 412, cryptographic processor devices 428, and/or the like.
  • I/O may employ connection protocols such as, but not limited to: Apple Desktop Bus (ADB); Apple Desktop Connector (ADC); audio: analog, ATTORNEY DOCKET No.: 15167.002 digital, monaural, RCA, stereo, and/or the like; IEEE 1394a-b; infrared; joystick; keyboard; midi; optical; PC AT; PS/2; parallel; radio; serial; USB; video interface: BNC, coaxial, composite, digital, Digital Visual Interface (DVI), RCA, RF antennae, S-Video, VGA, and/or the like; wireless; and/or the like.
  • ADB Apple Desktop Bus
  • ADC Apple Desktop Connector
  • audio analog, ATTORNEY DOCKET No.: 15167.002 digital, monaural, RCA, stereo, and/or the like
  • IEEE 1394a-b infrared;
  • a common output device is a television set, which accepts signals from a video interface.
  • a video display which typically comprises a Cathode Ray Tube (CRT) or Liquid Crystal Display (LCD) based monitor with an interface (e.g., DVI circuitry and cable) that accepts signals from a video interface, may be used.
  • the video interface composites information generated by a computer systemization and generates video signals based on the composited information in a video memory frame.
  • the video interface provides the composited video information through a video connection interface that accepts a video display interface (e.g., an RCA composite video connector accepting an RCA composite video cable; a DVI connector accepting a DVI display cable, etc.).
  • User input devices 411 may be card readers, dongles, finger print readers, gloves, graphics tablets, joysticks, keyboards, mouse (mice), remote controls, retina readers, trackballs, trackpads, and/or the like.
  • Peripheral devices 412 may be connected and/or communicate to I/O and/or other facilities of the like such as network interfaces, storage interfaces, and/or the like.
  • Peripheral devices may be audio devices, cameras, dongles (e.g., for copy protection, ensuring secure transactions with a digital signature, and/or the like), external processors (for added functionality), goggles, microphones, monitors, network interfaces, printers, scanners, storage devices, video devices, video sources, visors, and/or the like.
  • the formatting controller may be embodied as an embedded, dedicated, and/or monitor-less (i.e., headless) device, wherein access would be provided over a network interface connection.
  • any mechanization and/or embodiment allowing a processor to affect the storage and/or retrieval of information is regarded as memory 429.
  • memory is a fungible technology and resource, thus, any number of memory embodiments may be employed in lieu of or in concert with one another.
  • the formatting controller and/or a computer systemization may employ various forms of memory 429.
  • a computer systemization may be configured wherein the functionality of on-chip CPU memory (e.g., registers), RAM, ROM, and any other storage devices are provided by a paper punch tape or paper punch card mechanism; of course such an embodiment would result in an extremely slow rate of operation.
  • memory 429 will include ROM 406, RAM 405, and a storage device 414.
  • a storage device 414 may be any conventional computer system storage. Storage devices may include a drum; a (fixed and/or removable) magnetic disk drive; a magneto-optical drive; an optical drive (i.e., CD ROM/RAM/Recordable (R), Rewritable (RW), DVD R/RW, etc.); and/or other devices of the like.
  • a computer systemization generally requires and makes use of memory.
  • the memory 429 may contain a collection of program and/or database modules and/or data such as, but not limited to: operating system module(s) 415 (operating system); information server module(s) 416 (information server); user interface module(s) 417 (user interface); Web browser module(s) 418 (Web browser); database(s) 419; cryptographic server module(s) 420 (cryptographic server); the asset index tracking module(s) 435; and/or the like (i.e., collectively a module collection). These modules may be stored and accessed from the storage devices and/or from storage devices accessible through an interface bus.
  • non-conventional software modules such as those in the module collection, typically, are stored in a local storage device 414, they may also be loaded and/or stored in memory such as: peripheral devices, RAM, remote storage facilities through a communications network, ROM, various forms of memory, and/or the like.
  • the operating system module 415 is executable program code facilitating the operation of the formatting controller. Typically, the operating system facilitates access of I/O, network interfaces, peripheral devices, storage devices, and/or the like.
  • the operating system may be a highly fault tolerant, scalable, and secure system such as Apple Macintosh OS X (Server), AT&T Plan 9, Be OS, Linux, Unix, and/or the like operating systems. However, more limited and/or less secure operating systems also may be employed such as Apple Macintosh OS, Microsoft DOS, Palm OS, Windows 2000/2003/3.1/95/98/CE/Millenium/NT/XP (Server), and/or the like.
  • An operating system may communicate to and/or with other modules in a module collection, including ATTORNEY DOCKET No.: 15167.002 itself, and/or the like. Most frequently, the operating system communicates with other program modules, user interfaces, and/or the like. For example, the operating system may contain, communicate, generate, obtain, and/or provide program module, system, user, and/or data communications, requests, and/or responses. The operating system, once executed by the CPU, may enable the interaction with communications networks, data, I/O, peripheral devices, program modules, memory, user input devices, and/or the like. The operating system may provide communications protocols that allow the asset index tracking controller to communicate with other entities through a communications network 413. Various communication protocols may be used by the asset index tracking controller as a subcarrier transport mechanism for interaction, such as, but not limited to: multicast, TCP/IP, UDP, unicast, and/or the like.
  • An information server module 416 is stored program code that is executed by the CPU.
  • the information server may be a conventional Internet information server such as, but not limited to Apache Software Foundation's Apache, Microsoft's Internet Information Server, and/or the.
  • the information server may allow for the execution of program modules through facilities such as Active Server Page (ASP), ActiveX, (ANSI) (Objective-) C (++), C#, Common Gateway Interface (CGI) scripts, Java, JavaScript, Practical Extraction Report Language (PERL), Python, WebObjects, and/or the like.
  • the information server may support secure communications protocols such as, but not limited to, File Transfer Protocol (FTP); HyperText Transfer Protocol (HTTP); Secure Hypertext Transfer Protocol (HTTPS), Secure Socket Layer (SSL), and/or the like.
  • FTP File Transfer Protocol
  • HTTP HyperText Transfer Protocol
  • HTTPS Secure Hypertext Transfer Protocol
  • SSL Secure Socket Layer
  • the information server provides results in the form of Web pages to Web browsers, and allows for the ATTORNEY DOCKET No.: 15167.002 manipulated generation of the Web pages through interaction with other program modules.
  • DNS Domain Name System
  • a request such as http://123.124.125.126/mylnformation.html might have the IP portion of the request "123.124.125.126” resolved by a DNS server to an information server at that IP address; that information server might in turn further parse the http request for the '7mylnformation.html” portion of the request and resolve it to a location in memory containing the infonnation "mylnformation.html.”
  • other information serving protocols may be employed across various ports, e.g., FTP communications across port 21, and/or the like.
  • An information server may communicate to and/or with other modules in a module collection, including itself, and/or facilities of the like. Most frequently, the information server communicates with the formatting controller, operating systems, other program modules, user interfaces, Web browsers, and/or the like.
  • an information server may contain, communicate, generate, obtain, and/or provide program module, system, user, and/or data communications, requests, and/or responses.
  • a user interface module 417 is stored program code that is executed by the user
  • the user interface may be a conventional graphic user interface as provided by, with, and/or atop operating systems and/or operating environments such as Apple Macintosh OS, e.g., Aqua, Microsoft Windows (NT/XP), Unix X Windows (KDE, Gnome, and/or the like), mythTV, and/or the like.
  • the user interface may allow for the display, execution, interaction, manipulation, and/or operation of program modules and/or system facilities through textual and/or graphical facilities.
  • the user interface provides a facility through which users may affect, interact, and/or operate a computer system.
  • a user interface may communicate to and/or with other modules in a module collection, including itself, and/or facilities of the like.
  • the user interface communicates with operating systems, other program modules, and/or the like.
  • the user interface may contain, communicate, generate, obtain, and/or provide program module, system, user, and/or data communications, requests, and/or responses.
  • a Web browser module 418 is stored program code that is executed by the
  • the Web browser may be a conventional hypertext viewing application such as Microsoft Internet Explorer or Netscape Navigator. Secure Web browsing may be supplied with 128bit (or greater) encryption by way of HTTPS, SSL, and/or the like. Some Web browsers allow for the execution of program modules through facilities such as Java, JavaScript, ActiveX, and/or the like. Web browsers and like information access tools may be integrated into PDAs, cellular telephones, and/or other mobile devices. A Web browser may communicate to and/or with other modules in a module collection, including itself, and/or facilities of the like.
  • the Web browser communicates with information servers, operating systems, integrated program modules (e.g., plug-ins), and/or the like; e.g., it may contain, communicate, generate, obtain, and/or provide program module, system, user, and/or data communications, requests, and/or responses.
  • information servers operating systems, integrated program modules (e.g., plug-ins), and/or the like; e.g., it may contain, communicate, generate, obtain, and/or provide program module, system, user, and/or data communications, requests, and/or responses.
  • a combined application may be developed to perform similar functions of both.
  • the combined application would similarly affect the obtaining and the provision of information to users, user agents, and/or the like from the asset index tracking enabled nodes.
  • the combined application may be nugatory on systems employing standard Web browsers.
  • the formatting controller module 435 is stored program code that is executed by the CPU.
  • the formatting controller module affects accessing, obtaining and ATTORNEY DOCKET No.: 15167.002 the provision of formatting services, and/or the like across various communications networks.
  • the formatting controller module enabling access of information between nodes may be developed by employing standard development tools such as, but not limited to: (ANSI) (Objective-) C (++), Apache modules, binary executables, database adapters, Java, JavaScript, mapping tools, procedural and object oriented development tools, PERL, Python, shell scripts, SQL commands, web application server extensions, WebObjects, and/or the like.
  • the formatting controller module may communicate to and/or with other modules in a module collection, including itself, and/or facilities of the like. Most frequently, the formatting controller module communicates with the a formatting library, operating systems, other program modules, and/or the like.
  • the formatting controller module may contain, communicate, generate, obtain, and/or provide program module, system, user, and/or data communications, requests, and/or responses.
  • any of the formatting controller components may be combined, consolidated, and/or distributed in any number of ways to facilitate development and/or deployment.
  • the module collection may be combined in any number of ways to facilitate deployment and/or development. To accomplish this, one may integrate the components into a common code base or in a facility that can dynamically load the components on demand in an integrated fashion.
  • the module collection may be consolidated and/or distributed in countless variations through standard data processing and/or development techniques.
  • Multiple ATTORNEY DOCKET No.: 15167.002 instances of any one of the program modules in the program module collection may be instantiated on a single node, and/or across numerous nodes to improve performance through load-balancing and/or data-processing techniques.
  • single instances may also be distributed across multiple controllers and/or storage devices; e.g., databases. All program module instances and controllers working in concert may do so through standard data processing communication techniques.
  • the configuration of the formatting controller will depend on the context of system deployment. Factors such as, but not limited to, the budget, capacity, location, and/or use of the underlying hardware resources may affect deployment requirements and configuration. Regardless of if the configuration results in more consolidated and/or integrated program modules, results in a more distributed series of program modules, and/or results in some combination between a consolidated and distributed configuration, data may be communicated, obtained, and/or provided. Instances of modules consolidated into a common code base from the program module collection may communicate, obtain, and/or provide data. This may be accomplished through intra-application data processing communication techniques such as, but not limited to: data referencing (e.g., pointers), internal messaging, object instance variable communication, shared memory space, variable passing, and/or the like.
  • data referencing e.g., pointers
  • module collection components are discrete, separate, and/or external to one another, then communicating, obtaining, and/or providing data with and/or to other module components may be accomplished through inter-application data processing communication techniques such as, but not limited to: Application Program Interfaces ATTORNEY DOCKET No.: 15167.002
  • API Information passage
  • DCOM Component Object Model
  • D Distributed
  • CORBA Common Object Request Broker Architecture
  • process pipes shared files, and/or the like.
  • a grammar may be developed by using standard development tools such as lex, yacc, XML, and/or the like, which allow for grammar generation and parsing functionality, which in turn may form the basis of communication messages within and between modules. Again, the configuration will depend upon the context of system deployment.
  • ATTORNEY DOCKET No.: 15167.002 embodiments may be utilized and functional, logical, organizational, structural and/or topological modifications may be made without departing from the scope and/or spirit of the disclosure.
  • all examples and/or embodiments are deemed to be non-limiting throughout this disclosure.

Abstract

The present invention discloses systems and methods for providing formatting data to XML based syntaxes that do not provide consistent and structured data models. In particular, the disclosed systems and methods implement a formatting linkbase to provide formatting for XBRL content.

Description

SYSTEM AND METHOD FOR PROVIDING DATA FORMATTING
RELATED APPLICATIONS
[0001] This disclosure claims priority to U.S. Provisional Patent Application No.
60/675,256, which is hereby incorporated by reference.
FIELD OF THE INVENTION
[0002] The present invention is generally directed to apparatuses, methods and systems for rendering Extensible Markup Language (XML) data. In particular, the disclosure describes the implementation of a formatting linkbase for Extensible Business Reporting Language (XBRL).
BACKGROUND OF THE INVENTION
[0003] XML is an open ended markup language that enables the creation of more specific languages to represent any kind of data in a manner parseable by computer systems. This is accomplished by defining tags that are attached to underlying data to identify the meaning of the data. For example, a computer program reading the text string "101 Main Street, Springfield, Ma 01101" would generally not recognize that this is an address. This information, however, could be tagged using XML to specifically identify that this data represents an address and to identify each of the addresses' constituent elements as follows:
[0004] <address>
<street_number> 101 </street_number> <street_name>Main Street </street__name> <city>Springfield </city> <state>Ma </state> ATTORNEY DOCKET No.: 15167.002
<zip_code>01101 </zip_code> </address>
[0005] The tags could then be used by XML based software to identify the significance of each element of the data and use it appropriately. The meaning of each tag in a particular XML instance document is identified by the instance document's associated schema.
[0006] One example of a data definitional language based on XML is XBRL.
XBRL is designed to be a general purpose mark up language for business reporting and is specifically tailored for that usage. In addition to traditional XML schemas, XBRL implements the additional concept of a taxonomy. An XBRL taxonomy is comprised of a schema to define the concepts used by the particular XBRL implementation and a series of linkbases that define relationships between the concepts defined by the schema. XBRL provides for five types of linkbases: (1) label linkbases attach various labels to the concepts in the schema; (2) reference linkbases attach external information sources to the concepts in the schema; (3) presentation linkbases define how concepts in the schema are nested and ordered; (4) calculation linkbases define how concepts in the schema should relate to one another mathematically; and (5) definition linkbases define inter-concept relationships and semantics.
SUMMARY OF THE INVENTION
[0007] A problem with XML is that it focuses on defining data without necessarily defining any rendering or formatting of the associated with the data. This is a particular problem for XBRL because the data represented by XBRL instance documents ATTORNEY DOCKET NO.: 15167.002 are often intended to ultimately be rendered in financial reporting documents, such as share holder reports, governmental agency filings, etc.
[0008] Typically, XML is rendered using Extensible Stylesheet Language
Transformations (XSLT) to add formatting data to the XML content and to output a document in a format that supports rendering tags, such as, for example, HTML. For many XML implementations XSLT is an adequate solution because XML is usually highly structured and predictable within the particular problem-domain defined by a particular schema. XSLT can rely on that structure to implement general rules to define formatting for that structure leading to advantageous generation and reuse of code. For example, in the XML address example above, the relationship between the constituent elements of the address element are fairly rigidly structured, in other words an address will always have those same elements with the same relationship. An XSLT transform that defines the rendering format for the address element would therefore be fairly straightforward to implement and would be broadly applicable to most address elements. XSLT, however, does not provide an optimal solution for the rendering of less structured XML implementations, such as XBRL, which is used herein as an example of the problems that arise when XSLT is used with less structured XML-based languages.
[0009] The concepts defined by XBRL exist as loosely-coupled granules of data and do not necessarily follow the rigid conceptual relationships inherent in typical XML concepts, like the address example above. Moreover, XBRL's use of taxonomies to store meta-data further removes the predictable structure that is present in more structured typical XML data. For example, the linkbases associated with an XBRL taxonomy can ATTORNEY DOCKET NO.: 15167.002 be extended and overridden for particular uses thereby making structural assumptions about the underlying data unpredictable. XSLT based software is unaware of these associated linkbases and their relationship to the underlying data. Accordingly, when using XSLT to render XBRL, assumptions about the underlying data are often hard-coded into the XSLT transformations. For example, an XSLT transform might explicitly define the label for a particular element rather than pulling that data from its associated label linkbase. This results in significant customization for each transformation. This ad hoc approach results in brittle transformation code because, if the underlying taxonomy is changed the XSLT will likely need to be modified. For these reasons, it is difficult to write generic, multi-purpose XSLT transformations based on a family of taxonomies.
[0010] Solutions to these problems are described herein through the implementation of a formatting linkbase that defines the formatting for an XBRL schema. Formatting could then be applied by reading an XBRL instance document that describes at least one instance fact, wherein the description of the instance fact complies with an element description of an associated schema; reading the associated schema comprising the element description; reading a formatting linkbase comprising links between the element description of the associated schema and formatting properties for rendering facts complying with the element description; and rendering the at least one instance fact in accordance with the formatting properties linked to the element description that describes the at least one fact.
[0011] In an alternate embodiment of the present invention formatting could be applied to instance data by receiving an instance document describing at least one ATTORNEY DOCKET NO.: 15167.002 instance fact structured as prescribed by an element of an associated schema; receiving the associated schema setting forth the context of the one or more elements; receiving a formatting definition document having a set of associated formatting properties for at least one of the one or more elements; and rendering a representation of the at least one instance fact based upon the formatting properties associated with element prescribing the structure of the at least one instance fact.
[0012] In another embodiment of the present invention an XBRL based schema is provided formatting data by linking a formatting document with the XBRL schema to describe formatting characteristics for one or more of the elements; linking the formatting document with one or more linkbases associated with the XBRL schema to identify metadata associated with the elements for the purpose of applying formatting; and including in the formatting document report definitions grouping elements from the schema into an object model.
[0013] The present invention also provides for rendering a document in a mark-up language by parsing the document to retrieve elements containing data; parsing a schema associated with the document to process the elements containing data; parsing a formatting linkbase associated with the schema to define the formatting of elements of the document; parsing a report generation document to determine the layout of a report containing one or more of the elements of the document; and rendering the layout determined by the report generation document and containing the data from the elements of the document.
BRIEF DESCRIPTION QF THE DRAWINGS ATTORNEY DOCKET No.: 15167.002
[0014] The accompanying appendices and/or drawings illustrate various non- limiting, representative, inventive aspects in accordance with the present disclosure:
[0015] Figure 1 shows an XBRL taxonomy in accordance with an embodiment of the disclosed invention.
[0016] Figure 2 show the relationship of data and formatting files in accordance with an embodiment of the disclosed invention.
[0017] Figures 3 A-3 C show various embodiments of taxonomies and renderers in accordance with the disclosed invention.
[0018] Figure 4 shows a computer systemization in accordance with an embodiment of the present invention.
[0019] Appendices 1-5 provide code examples demonstrating various benefits of the formatting linkbase.
DETAILED DESCRIPTION
[0020] Figure 1 discloses the constituent elements of an XBRL taxonomy 100 in accordance with an embodiment of the present invention. The taxonomy includes the associated schema 101. The schema 101 links to the linkbases typically found in an XBRL taxonomy, including: label linkbase 102, reference linkbase 103, presentation linkbase 104, calculation linkbase 105, definition linkbase 106. In addition, the taxonomy links to an associated formatting linkbase 107. The formatting linkbase 107 is embodied by an XML document that defines the formatting for one or more elements defined by associated schema 101. ATTORNEY DOCKET NO.: 15167.002
[0021] Figure 2 shows an the relationship of schema 201, formatting linkbase
207, instance document 208, report definition 209, and rendered output 210 in accordance with an embodiment of the present invention. As can be seen, schema 201 defines a number of elements describing various business concepts including: Assets, Cash, Liquid Investments, Accounts Receivable, Property, Goodwill, and Total Assets. Although not shown in the figure, these concepts would be set forth in the schema document using formal XML/XBRL syntax detailing the relevant aspects of the various elements.
[0022] The formatting linkbase 207 references the elements defined by the schema 201 and sets forth the appropriate render formatting for each of those elements. As shown in Figure 2, the element "Assets" is formatted to be rendered in a bold 18 point font. In this particular example, the "Assets" element may have been defined to have this formatting because it represents an overarching category in the report. The remaining elements have various other formatting specifications. As with the schema, the formatting described by the formatting linkbase would be set forth using XML-based tagging, as further discussed below.
[0023] The available formatting tags used to implement the formatting linkbase are defined by one or more XML namespaces. In particular, one or more namespaces will be provided to define tags to implement the concepts of the formatting linkbase. The formatting linkbase might also include namespaces adapted from another XML language. Renderers in accordance with the disclosed system can then interpret the defined tags to either directly render the content, e.g. on a display or printer, or to translate them into ATTORNEY DOCKET No.: 15167.002 corresponding formatting tags in another data format, such as for example, ASCII, comma-separated values (CSV), HTML, Microsoft .doc, Microsoft .ppt, or Adobe PDF.
[0024] In defining the formatting tags, it may be particularly advantageous to adopt formatting tags compatible with other known formatting schemes such as a extensible stylesheet language (XSL). This would build upon the existing XSLT software and the skill set of XSLT developers and provide an easier migration path to formatting linkbase implementations.
[0025] The following is a sample portion of code used to illustrate the operation of formatting linkbase 207 in accordance with the disclosed system:
<linkbase xmlns = "http://www.xbrl.org/2003/linkbase" xmlns:xlink = "http://www.w3.org/1999/xlink" xmlns:fo = "http://www.w3.org/1999/XSL/Format" xmlns:folink = http://www.xmetal.com/2005/format-linkbase>
<folink:formatLinkxlink:type="extended" xlink:role = "http://www.xmetal.com/2005/role/format" id = "currentAssets">
<loc xlink:type locator" xlink:href = schema.xsd# Assets" xlinkdabel = "Assets"/>
<folink:formatArc xlink:type = "arc" xlink:arcrole = "http://www.xmetal.com/2005/arcrole/xbrl-format" xlink:from = "schema.xsd# Assets" xlink:to = "formatting_linkbase.xsd#Assets_format"/>
<folink:format xlink:type = "resource" xlink:role = "http://www.xmetal.com/2005/role/format" xlink-.label = "Assets_format">
<folink:properties fo:font-weight = "bold" fo:font-size = "18pt"/>
</folink:format> </folink:formatLink> </linkbase> ATTORNEY DOCKET No.: 15167.002
[0026] The <linkbase> tag is the standard XBRL root tag for defining linkbases.
It contains as properties the definition of the various namespaces used in the example and their associated prefixes. As can be seen, the default namespace is "http://www.xbrl.org/2003/linkbase." Also defined are standard namespaces for xlink (with the prefix "xlink") and XSL formatting (with the prefix "fo"), each of which would be implemented by standard XBRL/XML parsers. The linkbase also defines a namespace for the formatting linkbase (with the prefix "folink"). The terms defined by this namespace would be implemented in parsers designed in accordance with the present invention.
[0027] The <folink:formatLink> tag is a formatting linkbase derived tag that establishes an object to be formatted. In this instance the object is defined to have the id "currentAssets." Accordingly, this <folink:formatLink> will create an object model for the current assets business concept and define its formatting. The objects created by <folink:formatLink> create a node set of facts imposes a structure onto the XBRL elements. This node set can then be parsed and traversed during formatting.
[0028] The contents of the current assets object are identified through the use of the <loc> tag. In the example above, the <loc> tag is used to identify the "schema.xsd#Assets" element from the schema 207 as an element included in the object "currentAssets" and is set with the xlink:label "Assets" for later reference. It should be understood that the example above is only a partial implementation, in a complete ATTORNEY DOCKET No.: 15167.002 implementation all the constituent elements of the "currentAssets" object would be identified and labeled with an associated <loc> tag.
[0029] The <folink:formatArc> tag establishes the linked relationship between the
"Assets" element and "Assets_format" defined by the formatting linkbase. As can be seen, the <folink:formatArc> is an implementation of an xlink arc. The role of the arc, as defined by the <xlink:arcrole> attribute, is to provide an XBRL format. The <formatArc> in this example links from schema.xsd# Assets to formatting_linkbase.xsd#Assets_forrnat, thereby associating the formatting for the "Assets" element with its definition in the formatting linkbase.
[0030] The actual formatting applied to the element is defined by the
<folmk:format> tag. The <folink:format> tag sets the formatting associated with the assets element, which is identified with the "Assets_format" label defined by the previously discussed <folink:formatArc> tag. The specific format is identified by the <folink:properties> tag, which defines properties for the <folink:format>. In this particular embodiment the actual formatting tags are XSL based, which has the benefit of compatibility with existing XSL compliant software. Other formatting identifiers could alternatively be employed. This particular example defines the font weight and size for the "Assets" element. Any other formatting styles, however, could be defined by tags and applied.
[0031] The instance document 208 contains specific XBRL instance data for one or more of the elements defined by the schema 207. In this example, the data indicates that the assets include cash worth 12 units, liquid investments worth 14 units, accounts ATTORNEY DOCKET NO.: 15167.002 receivable worth 8 units, real property worth 32 units and goodwill worth 20 units. This results in total assets of 86 units. Although, the figure does not show the data using actual XBRL syntax it is to be understood that the instance document would be implemented in appropriate XBRL.
[0032] The present embodiment also includes a report definition document 209, which specifically describes the formatting layout for the complete document, in this case a chart 210 which displays the assets of the organization as described in the instance document. The report document links to the instance document 208 and the formatting linkbase 207 to determine the particulars of the described report and its constituent elements. In one embodiment of the present invention, a "<report>" tag is provided to act as a framework to define the contents and formatting of a document. The report definition document 209 could employ such a report tag to define the rendered output 210. Specifically, the <report> tag encloses an XSL Stylesheet that defines the layout of the chart, such as the setup of the columns and the placement of the headings. As can be seen, the formatting of the individual elements is displayed as defined by the formatting linkbase. In some embodiments it may be advantageous to allow overriding of the formatting defined in the formatting linkbase. In such an embodiment the formatting definition for a particular element may be defined differently in the report definition, or another document, than it is defined in the formatting linkbase. In such a case, the definition in the later document could optionally override the definition defined in the formatting linkbase. This would allow an authorcustomize and reformat the rendering of the output as needed. ATTORNEY DOCKET No.: 15167.002
[0033] The <repor£> tag could also be used to define styles in the formatting linkbase itself. In such an embodiment the formatting linkbase might have multiple <report> definitions for different items of information, such as a balance sheet, earnings chart, expense chart, etc. These could then be individually rendered or incorporated in to other documents.
[0034] Figure 3 A shows an exemplary rendering system in accordance with one embodiment of the present invention. In particular, Figure 3 A shows a Tenderer 311 which is a piece of software that reads the supplied data as input and generates a fully or partially rendered document. In the embodiment of Figure 3 A, Tenderer 311 takes schema 301, formatting linkbase 307, report format 309 and instance document 308 as inputs to generate rendered report 310. The Tenderer uses the schema to define the elements used by the instance document, as is known in the art, and uses the formatting linkbase to define the rendering properties for the various elements of the schema. In addition to formatting styles for individual elements, the formatting linkbase 307 may also include <report> definitions for certain standard element layouts, such as assets and liabilities charts. The report format 309 could then further describe the layout of the entire report required.
[0035] The renderer 311 itself could be embodied in various types of application programs. For example, the Tenderer could be embodied by a batch processor that generates reports in a prescribed way with little user input or in a document viewer, such as a web browser. ATTORNEY DOCKET No.: 15167.002
[0036] The renderer 311 could also be embodied in a document layout program, such as, for example, a word processor, presentation software, page layout program, web publishing software, etc. In an embodiment where the renderer is part of, or cooperates with, a document layout program the basic or initial rendering could be defined by the formatting linkbase, but the overall structure of the report could be manipulated by the document layout program. For example, the formatting linkbase might define an organization's accepted data layout of the organization's corporate structure. A document layout program employing the renderer could then import that data already formatted in the organization's accepted style and use it in whatever document is being prepared, such as a press release or stockholder report. In such an embodiment the report format 309 would not necessarily need to be provided as input because the document layout program would be used by the report's author to create the report format or the report format could be provided to, and modified by, the document layout program.
[0037] The rendering software that interprets the meaning of the formatting linkbase and its associated tags could also be defined in a programming library, application programming interface, or as a piece of middleware that interacts with other applications. In these embodiments the code could be accessed by any type of program needing to render formatted XBRL data.
[0038] Figure 3B shows an alternate embodiment where the renderer is designed to take the whole taxonomy 300 as input data along with instance document 308 and report format 309. The renderer could then use the individual linkbases as needed. This embodiment would have the advantage of having direct access to the underlying meta- ATTORNEY DOCKET No.: 15167.002 data for the various elements described by the schema 301. For example, if a particular taxonomy had labels in various languages defined by the label linkbase 302, the renderer would be able to directly access those labels to display labels for the requested language. Similarly, the other meta-data in the other languages could also be used to enhance the document rendering.
[0039] Figure 3 C discloses an embodiment in which all the meta-data from the taxonomy 300 is linked into the formatting linkbase 307. In this embodiment the renderer need only access the formatting linkbase 307, instance document 308 and report format 309 as input to render the final output. The formatting linkbase would in essence be hard- coded to provide the metadata present in the schema and associated linkbases.
[0040] The handling of prose content in XBRL also provides significant problems for defining formatting. Specifically, XBRL's content model does not allow for the implementation of mixed content, which in turn makes it difficult express the inline formatting of the prose content. This is particularly problematic because many rendered XBRL documents, e.g. stockholder reports, often contain significant amounts of prose content. The formatting linkbase, however, provides a mechanism to extend XBRL to readily deal with prose content.
[0041] Whereas XBRL has defined a mechanism for defining structured concepts through the use of tuples, the formatting linkbase embraces and extends that mechanism by linking formatting information to tuples so that prose-oriented content can be formatted in a manner that is much richer than just the plain text format currently supported by XBRL. ATTORNEY DOCKET No.: 15167.002
[0042] It is anticipated that the formatting linkbase will enable prose-oriented content to be composed and formatted in a manner that is equivalent with the capabilities of modern office processing software such as Word and Excel. For instance, the formatting linkbase can provide basic word processing capabilities such as paragraphs, lists, headings, tables, and italicized text can be captured in XBRL format when used in conjunction with the formatting linkbase.
[0043] In one example, a tag called <para> is provided to represent paragraph.
The <para> tag can include a <run> tag representing an XBRL tuple that can link together the text of a paragraph into format tag delimited contiguous sections. The following is an example of the use of such a tag:
<para>
<run contextRef ="prose_ex"> The quick brown</run><bold contextRef="prose_ex">fox</bold><run contextRef="prose_ex">jumps over the lazy</run><italic contextRef="prose_ex">dog.</italic>
</para>
[0044] Similar tags for other prose formatting structures, such as tables, lists, headings, etc. can also be provided.
[0045] Appendices 1 -5 provide code examples of demonstrating various implementations of data formatting using formatting linkbases. Appendix 1 demonstrates the binding of formatting properties with concepts in a taxonomy. Appendix 2 shows formatting linkbase used for the selection of data to be included in a report. Appendix 3 shows how to generate alternate layouts for a given report. Appendix 4 shows the ATTORNEY DOCKET No.: 15167.002 formatting of inline content, such as prose. Appendix 5 shows the use of aspects of the disclosed invention to generate a 1OQ report.
FORMATTING CONTROLLER
[0046] Figure 4 of the present disclosure illustrates inventive aspects of an formatting controller 401 in a block diagram. In this embodiment, the formatting controller 401 may serve to process XBRL formatting requests as a renderer either alone or in combination with other software.
[0047] Typically, users, which may be people and/or other systems, engage information technology systems (e.g., commonly computers) to facilitate information processing. In turn, computers employ processors to process information; such processors are often referred to as central processing units (CPU). A common form of processor is referred to as a microprocessor. A computer operating system, which, typically, is software executed by CPU on a computer, enables and facilitates users to access and operate computer information technology and resources. Common resources employed in information technology systems include: input and output mechanisms through which data may pass into and out of a computer; memory storage into which data may be saved; and processors by which information may be processed. Often information technology systems are used to collect data for later retrieval, analysis, and manipulation, commonly, which is facilitated through database software. Information technology systems provide interfaces that allow users to access and operate various system components. ATTORNEY DOCKET No.: 15167.002
[0048] In one embodiment, the formatting controller 401 may be connected to and/or communicate with entities such as, but not limited to: one or more users from user input devices 411; peripheral devices 411; and/or a communications network 401.
[0049] Networks are commonly thought to comprise the interconnection and interoperation of clients, servers, and intermediary nodes in a graph topology. It should be noted that the term "server" as used throughout this disclosure refers generally to a computer, other device, software, or combination thereof that processes and responds to the requests of remote users across a communications network. Servers serve their information to requesting "clients." The term "client" as used herein refers generally to a computer, other device, software, or combination thereof that is capable of processing and making requests and obtaining and processing any responses from servers across a communications network. A computer, other device, software, or combination thereof that facilitates, processes information and requests, and/or furthers the passage of information from a source user to a destination user is commonly referred to as a "node." Networks are generally thought to facilitate the transfer of information from source points to destinations. A node specifically tasked with furthering the passage of information from a source to a destination is commonly called a "router." There are many forms of networks such as Local Area Networks (LANs), Pico networks, Wide Area Networks (WANs), Wireless Networks (WLANs), etc. For example, the Internet is generally accepted as being an interconnection of a multitude of networks whereby remote clients and servers may access and interoperate with one another. ATTORNEY DOCKET No.: 15167.002
[0050] The formatting controller 401 may be based on common computer systems that may comprise, but are not limited to, components such as: a computer systemization 402 connected to memory 429.
Computer Systemization
[0051] A computer systemization 402 may comprise a clock 430, central processing unit (CPU) 403, a read only memory (ROM) 406, a random access memory (RAM) 405, and/or an interface bus 407, and most frequently, although not necessarily, are all interconnected and/or communicating through a system bus 404. Optionally, the computer systemization may be connected to an internal power source 486. Optionally, a cryptographic processor 426 may be connected to the system bus. The system clock typically has a crystal oscillator and provides a base signal. The clock is typically coupled to the system bus and various clock multipliers that will increase or decrease the base operating frequency for other components interconnected in the computer systemization. The clock and various components in a computer systemization drive signals embodying information throughout the system. Such transmission and reception of signals embodying information throughout a computer systemization may be commonly referred to as communications. These communicative signals may further be transmitted, received, and the cause of return and/or reply signal communications beyond the instant computer systemization to: communications networks, input devices, other computer systemizations, peripheral devices, and/or the like. Of course, any of the above components may be connected directly to one another, connected to the CPU, and/or organized in numerous variations employed as exemplified by various computer systems. ATTORNEY DOCKET No.: 15167.002
[0052] The CPU comprises at least one high-speed data processor adequate to execute program modules for executing user and/or system-generated requests. The CPU may be a microprocessor such as AMD's Athlon, Duron and/or Opteron; IBM and/or Motorola's PowerPC; Intel's Celeron, Itanium, Pentium, Xeon, and/or XScale; and/or the like processor(s). The CPU interacts with memory through signal passing through conductive conduits to execute stored program code according to conventional data processing techniques. Such signal passing facilitates communication within the formatting controller and beyond through various interfaces. Should processing requirements dictate a greater amount speed, parallel, mainframe and/or super-computer architectures may similarly be employedAlternatively, should deployment requirements dictate greater portability, smaller Personal Digital Assistants (PDAs) may be employed.
Power Source
[0053] The power source 486 may be of any standard form for powering small electronic circuit board devices such as the following power cells: alkaline, lithium hydride, lithium ion, nickel cadmium, solar cells, and/or the like. Other types of AC or DC power sources may be used as well. In the case of solar cells, in one embodiment, the case provides an aperture through which the solar cell may capture photonic energy. The power cell 486 is connected to at least one of the interconnected subsequent components of the formatting controller thereby providing an electric current to all subsequent components. In one example, the power source 486 is connected to the system bus component 404. In an alternative embodiment, an outside power source 486 is provided through a connection across the I/O 408 interface. For example, a USB and/or IEEE 1394 ATTORNEY DOCKET No.: 15167.002 connection carries both data and power across the connection and is therefore a suitable source of power.
Interface Adapters
[0054] Interface bus(ses) 407 may accept, connect, and/or communicate to a number of interface adapters, conventionally although not necessarily in the form of adapter cards, such as but not limited to: input output interfaces (I/O) 408, storage interfaces 409, network interfaces 410, and/or the like. Optionally, cryptographic processor interfaces 427 similarly may be connected to the interface bus. The interface bus provides for the communications of interface adapters with one another as well as with other components of the computer systemization. Interface adapters are adapted for a compatible interface bus. Interface adapters conventionally connect to the interface bus via a slot architecture. Conventional slot architectures may be employed, such as, but not limited to: Accelerated Graphics Port (AGP), Card Bus, (Extended) Industry Standard Architecture ((E)ISA), Micro Channel Architecture (MCA), NuBus, Peripheral Component Interconnect (Extended) (PCI(X)), PCI Express, Personal Computer Memory Card International Association (PCMCIA), and/or the like.
[0055] Storage interfaces 409 may accept, communicate, and/or connect to a number of storage devices such as, but not limited to: storage devices 414, removable disc devices, and/or the like. Storage interfaces may employ connection protocols such as, but not limited to: (Ultra) (Serial) Advanced Technology Attachment (Packet Interface) ((Ultra) (Serial) ATA(PI)), (Enhanced) Integrated Drive Electronics ((E)IDE), Institute of ATTORNEY DOCKET No.: 15167.002
Electrical and Electronics Engineers (IEEE) 1394, fiber channel, Small Computer
Systems Interface (SCSI), Universal Serial Bus (USB), and/or the like.
[0056] Network interfaces 410 may accept, communicate, and/or connect to a communications network 413. Through a communications network 413, the formatting controller is accessible through remote clients 433b (e.g., computers with web browsers) by users 433a. Network interfaces may employ connection protocols such as, but not limited to: direct connect, Ethernet (thick, thin, twisted pair 10/100/1000 Base T, and/or the like), Token Ring, wireless connection such as IEEE 802.1 la-x, and/or the like. A communications network may be any one and/or the combination of the following: a direct interconnection; the Internet; a Local Area Network (LAN); a Metropolitan Area Network (MAN); an Operating Missions as Nodes on the Internet (OMNI); a secured custom connection; a Wide Area Network (WAN); a wireless network (e.g., employing protocols such as, but not limited to a Wireless Application Protocol (WAP), I-mode, and/or the like); and/or the like. A network interface may be regarded as a specialized form of an input output interface. Further, multiple network interfaces 410 may be used to engage with various communications network types 413. For example, multiple network interfaces may be employed to allow for the communication over broadcast, multicast, and/or unicast networks.
[0057] Input Output interfaces (I/O) 408 may accept, communicate, and/or connect to user input devices 411, peripheral devices 412, cryptographic processor devices 428, and/or the like. I/O may employ connection protocols such as, but not limited to: Apple Desktop Bus (ADB); Apple Desktop Connector (ADC); audio: analog, ATTORNEY DOCKET No.: 15167.002 digital, monaural, RCA, stereo, and/or the like; IEEE 1394a-b; infrared; joystick; keyboard; midi; optical; PC AT; PS/2; parallel; radio; serial; USB; video interface: BNC, coaxial, composite, digital, Digital Visual Interface (DVI), RCA, RF antennae, S-Video, VGA, and/or the like; wireless; and/or the like. A common output device is a television set, which accepts signals from a video interface. Also, a video display, which typically comprises a Cathode Ray Tube (CRT) or Liquid Crystal Display (LCD) based monitor with an interface (e.g., DVI circuitry and cable) that accepts signals from a video interface, may be used. The video interface composites information generated by a computer systemization and generates video signals based on the composited information in a video memory frame. Typically, the video interface provides the composited video information through a video connection interface that accepts a video display interface (e.g., an RCA composite video connector accepting an RCA composite video cable; a DVI connector accepting a DVI display cable, etc.).
[0058] User input devices 411 may be card readers, dongles, finger print readers, gloves, graphics tablets, joysticks, keyboards, mouse (mice), remote controls, retina readers, trackballs, trackpads, and/or the like.
[0059] Peripheral devices 412 may be connected and/or communicate to I/O and/or other facilities of the like such as network interfaces, storage interfaces, and/or the like. Peripheral devices may be audio devices, cameras, dongles (e.g., for copy protection, ensuring secure transactions with a digital signature, and/or the like), external processors (for added functionality), goggles, microphones, monitors, network interfaces, printers, scanners, storage devices, video devices, video sources, visors, and/or the like. ATTORNEY DOCKET No.: 15167.002
[0060] It should be noted that although user input devices and peripheral devices may be employed, the formatting controller may be embodied as an embedded, dedicated, and/or monitor-less (i.e., headless) device, wherein access would be provided over a network interface connection.
Memory
[0061] Generally, any mechanization and/or embodiment allowing a processor to affect the storage and/or retrieval of information is regarded as memory 429. However, memory is a fungible technology and resource, thus, any number of memory embodiments may be employed in lieu of or in concert with one another. It is to be understood that the formatting controller and/or a computer systemization may employ various forms of memory 429. For example, a computer systemization may be configured wherein the functionality of on-chip CPU memory (e.g., registers), RAM, ROM, and any other storage devices are provided by a paper punch tape or paper punch card mechanism; of course such an embodiment would result in an extremely slow rate of operation. In a typical configuration, memory 429 will include ROM 406, RAM 405, and a storage device 414. A storage device 414 may be any conventional computer system storage. Storage devices may include a drum; a (fixed and/or removable) magnetic disk drive; a magneto-optical drive; an optical drive (i.e., CD ROM/RAM/Recordable (R), Rewritable (RW), DVD R/RW, etc.); and/or other devices of the like. Thus, a computer systemization generally requires and makes use of memory. ATTORNEY DOCKET No.: 15167.002
Module Collection
[0062] The memory 429 may contain a collection of program and/or database modules and/or data such as, but not limited to: operating system module(s) 415 (operating system); information server module(s) 416 (information server); user interface module(s) 417 (user interface); Web browser module(s) 418 (Web browser); database(s) 419; cryptographic server module(s) 420 (cryptographic server); the asset index tracking module(s) 435; and/or the like (i.e., collectively a module collection). These modules may be stored and accessed from the storage devices and/or from storage devices accessible through an interface bus. Although non-conventional software modules such as those in the module collection, typically, are stored in a local storage device 414, they may also be loaded and/or stored in memory such as: peripheral devices, RAM, remote storage facilities through a communications network, ROM, various forms of memory, and/or the like.
Operating System
[0063] The operating system module 415 is executable program code facilitating the operation of the formatting controller. Typically, the operating system facilitates access of I/O, network interfaces, peripheral devices, storage devices, and/or the like. The operating system may be a highly fault tolerant, scalable, and secure system such as Apple Macintosh OS X (Server), AT&T Plan 9, Be OS, Linux, Unix, and/or the like operating systems. However, more limited and/or less secure operating systems also may be employed such as Apple Macintosh OS, Microsoft DOS, Palm OS, Windows 2000/2003/3.1/95/98/CE/Millenium/NT/XP (Server), and/or the like. An operating system may communicate to and/or with other modules in a module collection, including ATTORNEY DOCKET No.: 15167.002 itself, and/or the like. Most frequently, the operating system communicates with other program modules, user interfaces, and/or the like. For example, the operating system may contain, communicate, generate, obtain, and/or provide program module, system, user, and/or data communications, requests, and/or responses. The operating system, once executed by the CPU, may enable the interaction with communications networks, data, I/O, peripheral devices, program modules, memory, user input devices, and/or the like. The operating system may provide communications protocols that allow the asset index tracking controller to communicate with other entities through a communications network 413. Various communication protocols may be used by the asset index tracking controller as a subcarrier transport mechanism for interaction, such as, but not limited to: multicast, TCP/IP, UDP, unicast, and/or the like.
Information Server
[0064] An information server module 416 is stored program code that is executed by the CPU. The information server may be a conventional Internet information server such as, but not limited to Apache Software Foundation's Apache, Microsoft's Internet Information Server, and/or the. The information server may allow for the execution of program modules through facilities such as Active Server Page (ASP), ActiveX, (ANSI) (Objective-) C (++), C#, Common Gateway Interface (CGI) scripts, Java, JavaScript, Practical Extraction Report Language (PERL), Python, WebObjects, and/or the like. The information server may support secure communications protocols such as, but not limited to, File Transfer Protocol (FTP); HyperText Transfer Protocol (HTTP); Secure Hypertext Transfer Protocol (HTTPS), Secure Socket Layer (SSL), and/or the like. The information server provides results in the form of Web pages to Web browsers, and allows for the ATTORNEY DOCKET No.: 15167.002 manipulated generation of the Web pages through interaction with other program modules. After a Domain Name System (DNS) resolution portion of an HTTP request is resolved to a particular information server, the information server resolves requests for information at specified locations on the formatting controller based on the remainder of the HTTP request. For example, a request such as http://123.124.125.126/mylnformation.html might have the IP portion of the request "123.124.125.126" resolved by a DNS server to an information server at that IP address; that information server might in turn further parse the http request for the '7mylnformation.html" portion of the request and resolve it to a location in memory containing the infonnation "mylnformation.html." Additionally, other information serving protocols may be employed across various ports, e.g., FTP communications across port 21, and/or the like. An information server may communicate to and/or with other modules in a module collection, including itself, and/or facilities of the like. Most frequently, the information server communicates with the formatting controller, operating systems, other program modules, user interfaces, Web browsers, and/or the like.
[0065] Also, an information server may contain, communicate, generate, obtain, and/or provide program module, system, user, and/or data communications, requests, and/or responses.
User Interface
[0066] The function of computer interfaces in some respects is similar to automobile operation interfaces. Automobile operation interface elements such as steering wheels, gearshifts, and speedometers facilitate the access, operation, and display of ATTORNEY DOCKET No.: 15167.002 automobile resources, functionality, and status. Computer interaction interface elements such as check boxes, cursors, menus, scrollers, and windows (collectively and commonly referred to as widgets) similarly facilitate the access, operation, and display of data and computer hardware and operating system resources, functionality, and status. Operation interfaces are commonly called user interfaces. Graphical user interfaces (GUIs) such as the Apple Macintosh Operating System's Aqua, Microsoft's Windows XP, or Unix's X- Windows provide a baseline and means of accessing and displaying information graphically to users.
[0067] A user interface module 417 is stored program code that is executed by the
CPU. The user interface may be a conventional graphic user interface as provided by, with, and/or atop operating systems and/or operating environments such as Apple Macintosh OS, e.g., Aqua, Microsoft Windows (NT/XP), Unix X Windows (KDE, Gnome, and/or the like), mythTV, and/or the like. The user interface may allow for the display, execution, interaction, manipulation, and/or operation of program modules and/or system facilities through textual and/or graphical facilities. The user interface provides a facility through which users may affect, interact, and/or operate a computer system. A user interface may communicate to and/or with other modules in a module collection, including itself, and/or facilities of the like. Most frequently, the user interface communicates with operating systems, other program modules, and/or the like. The user interface may contain, communicate, generate, obtain, and/or provide program module, system, user, and/or data communications, requests, and/or responses. ATTORNEY DOCKET No.: 15167.002 Web Browser
[0068] A Web browser module 418is stored program code that is executed by the
CPU. The Web browser may be a conventional hypertext viewing application such as Microsoft Internet Explorer or Netscape Navigator. Secure Web browsing may be supplied with 128bit (or greater) encryption by way of HTTPS, SSL, and/or the like. Some Web browsers allow for the execution of program modules through facilities such as Java, JavaScript, ActiveX, and/or the like. Web browsers and like information access tools may be integrated into PDAs, cellular telephones, and/or other mobile devices. A Web browser may communicate to and/or with other modules in a module collection, including itself, and/or facilities of the like. Most frequently, the Web browser communicates with information servers, operating systems, integrated program modules (e.g., plug-ins), and/or the like; e.g., it may contain, communicate, generate, obtain, and/or provide program module, system, user, and/or data communications, requests, and/or responses. Of course, in place of a Web browser and information server, a combined application may be developed to perform similar functions of both. The combined application would similarly affect the obtaining and the provision of information to users, user agents, and/or the like from the asset index tracking enabled nodes. The combined application may be nugatory on systems employing standard Web browsers.
Formatting Controller Module
[0069] The formatting controller module 435 is stored program code that is executed by the CPU. The formatting controller module affects accessing, obtaining and ATTORNEY DOCKET No.: 15167.002 the provision of formatting services, and/or the like across various communications networks.
[0070] The formatting controller module enabling access of information between nodes may be developed by employing standard development tools such as, but not limited to: (ANSI) (Objective-) C (++), Apache modules, binary executables, database adapters, Java, JavaScript, mapping tools, procedural and object oriented development tools, PERL, Python, shell scripts, SQL commands, web application server extensions, WebObjects, and/or the like. The formatting controller module may communicate to and/or with other modules in a module collection, including itself, and/or facilities of the like. Most frequently, the formatting controller module communicates with the a formatting library, operating systems, other program modules, and/or the like. The formatting controller module may contain, communicate, generate, obtain, and/or provide program module, system, user, and/or data communications, requests, and/or responses.
Distributed the formatting controller module
[0071] The structure and/or operation of any of the formatting controller components may be combined, consolidated, and/or distributed in any number of ways to facilitate development and/or deployment. Similarly, the module collection may be combined in any number of ways to facilitate deployment and/or development. To accomplish this, one may integrate the components into a common code base or in a facility that can dynamically load the components on demand in an integrated fashion.
[0072] The module collection may be consolidated and/or distributed in countless variations through standard data processing and/or development techniques. Multiple ATTORNEY DOCKET No.: 15167.002 instances of any one of the program modules in the program module collection may be instantiated on a single node, and/or across numerous nodes to improve performance through load-balancing and/or data-processing techniques. Furthermore, single instances may also be distributed across multiple controllers and/or storage devices; e.g., databases. All program module instances and controllers working in concert may do so through standard data processing communication techniques.
[0073] The configuration of the formatting controller will depend on the context of system deployment. Factors such as, but not limited to, the budget, capacity, location, and/or use of the underlying hardware resources may affect deployment requirements and configuration. Regardless of if the configuration results in more consolidated and/or integrated program modules, results in a more distributed series of program modules, and/or results in some combination between a consolidated and distributed configuration, data may be communicated, obtained, and/or provided. Instances of modules consolidated into a common code base from the program module collection may communicate, obtain, and/or provide data. This may be accomplished through intra-application data processing communication techniques such as, but not limited to: data referencing (e.g., pointers), internal messaging, object instance variable communication, shared memory space, variable passing, and/or the like.
[0074] If module collection components are discrete, separate, and/or external to one another, then communicating, obtaining, and/or providing data with and/or to other module components may be accomplished through inter-application data processing communication techniques such as, but not limited to: Application Program Interfaces ATTORNEY DOCKET No.: 15167.002
(API) information passage; (distributed) Component Object Model ((D)COM), (Distributed) Object Linking and Embedding ((D)OLE), and/or the like), Common Object Request Broker Architecture (CORBA), process pipes, shared files, and/or the like. Messages sent between discrete module components for inter-application communication or within memory spaces of a singular module for intra-application communication may be facilitated through the creation and parsing of a grammar. A grammar may be developed by using standard development tools such as lex, yacc, XML, and/or the like, which allow for grammar generation and parsing functionality, which in turn may form the basis of communication messages within and between modules. Again, the configuration will depend upon the context of system deployment.
[0075] The entirety of this disclosure (including the Cover Page, Title, Headings,
Field, Background, Summary, Brief Description of the Drawings, Detailed Description, Claims, Abstract, Figures, and otherwise) shows by way of illustration various embodiments in which the claimed inventions may be practiced. The advantages and features of the disclosure are of a representative sample of embodiments only, and are not exhaustive and/or exclusive. They are presented only to assist in understanding and teach the claimed principles. It should be understood that they are not representative of all claimed inventions. As such, certain aspects of the disclosure have not been discussed herein. That alternate embodiments may not have been presented for a specific portion of the invention or that further undescribed alternate embodiments may be available for a portion is not to be considered a disclaimer of those alternate embodiments. It will be appreciated that many of those undescribed embodiments incorporate the same principles of the invention and others are equivalent. Thus, it is to be understood that other ATTORNEY DOCKET No.: 15167.002 embodiments may be utilized and functional, logical, organizational, structural and/or topological modifications may be made without departing from the scope and/or spirit of the disclosure. As such, all examples and/or embodiments are deemed to be non-limiting throughout this disclosure. Also, no inference should be drawn regarding those embodiments discussed herein relative to those not discussed herein other than it is as such for purposes of reducing space and repetition. For instance, it is to be understood that the logical and/or topological structure of any combination of any program modules (a module collection), other components and/or any present feature sets as described in the figures and/or throughout are not limited to a fixed operating order and/or arrangement, but rather, any disclosed order is exemplary and all equivalents, regardless of order, are contemplated by the disclosure. Furthermore, it is to be understood that such features are not limited to serial execution, but rather, any number of threads, processes, services, servers, and/or the like that may execute asynchronously, concurrently, in parallel, simultaneously, synchronously, and/or the like are contemplated by the disclosure. As such, some of these features may be mutually contradictory, in that they cannot be simultaneously present in a single embodiment. Similarly, some features are applicable to one aspect of the invention, and inapplicable to others. In addition, the disclosure includes other inventions not presently claimed. Applicant reserves all rights in those presently unclaimed inventions including the right to claim such inventions, file additional applications, continuations, continuations in part, divisions, and/or the like thereof. As such, it should be understood that advantages, embodiments, examples, functional, features, logical, organizational, structural, topological, and/or other aspects of ATTORNEY DOCKET NO.: 15167.002 the disclosure are not to be considered limitations on the disclosure as defined by the claims or limitations on equivalents to the claims.

Claims

CLAIMS What is claimed is:
1. A processor implemented method for rendering XBRL instance documents comprising: reading an XBRL instance document that describes at least one instance fact, wherein the description of the at least one instance fact complies with an element description of an associated schema; reading the associated schema comprising the element description; reading a formatting linkbase comprising links between the element description of the associated schema and formatting properties for rendering facts complying with the element description; and rendering the at least one instance fact in accordance with the formatting properties linked to the element description that describes the at least one fact.
2. A processor implemented method for applying formatting information to a structured data set comprising: receiving an instance document describing at least one instance fact structured as prescribed by an element of an associated schema; receiving the associated schema setting forth the context of the one or more elements; receiving a formatting definition document having a set of associated formatting properties for at least one of the one or more elements; rendering a representation of the at least one instance fact based upon the formatting properties associated with element prescribing the structure of the at least one instance fact.
3. The method of claim 2 wherein the rendering comprises creating an output document file with rendering information.
4. The method of claim 3 wherein the document file is in one of the following file formats: Adobe PDF, Microsoft .doc, ASCII, CSV, or .ppt. ATTORNEY DOCKET No.: 15167.002
5. The method of claim 2 wherein the rendering comprises outputting data to a display device.
6. The method of claim 2 wherein the rendering comprises outputting the data to a printer.
7. The method of claim 2 wherein instance document, associated schema, and formatting definition document are written in XML.
8. The method of claim 2 wherein instance document, associated schema, and formatting definition document are written in XBRL.
9. The method of claim 2 wherein the instance document describes the formatting of prose content in an XBRL tuple.
10. A processor implemented method for applying formatting information to an XBRL schema comprising: defining an XBRL based schema comprised of a plurality of elements; linking a formatting document with the XBRL schema to describe formatting characteristics for one or more of the elements; linking the formatting document with one or more linkbases associated with the XBRL schema to identify meta-data associated with the elements for the purpose of applying formatting; and wherein the formatting document contains report definitions grouping elements from the schema into an object model.
11. The method of claim 10 wherein the one or more linkbases includes the label linkbase.
12. The method of claim 10 wherein the one or more linkbases includes the presentation linkbase.
13. A processor implemented method for rendering a document in a mark-up language comprising: parsing the document to retrieve elements containing data; ATTORNEY DOCKET NO.: 15167.002 parsing a schema associated with the document to process the elements containing data; parsing a formatting linkbase associated with the schema to define the formatting of elements of the document; parsing a report generation document to determine the layout of a report containing one or more of the elements of the document; and rendering the layout determined by the report generation document and containing the data from the elements of the document.
14. The method of claim 13 wherein the report generation document is modified to change the layout of the report.
15. The method of claim 13 wherein the report generation document overrides some of the formatting of elements defined by the formatting linkbase.
16. A program product for rendering XBRL instance documents comprising: a computer readable medium containing program logic comprising: program logic for reading an XBRL instance document that describes at least one instance fact, wherein the description of the at least one instance fact complies with an element description of an associated schema; program logic for reading the associated schema comprising the element description; program logic for reading a formatting linkbase comprising links between the element description of the associated schema and formatting properties for rendering facts complying with the element description; and program logic for rendering the at least one instance fact in accordance with the formatting properties linked to the element description that describes the at least one fact.
17. A program product for applying formatting information to a structured data set comprising: ATTORNEY DOCKET No.: 15167.002 a computer readable medium containing program logic comprising: program logic for receiving an instance document describing at least one instance fact structured as prescribed by an element of an associated schema; program logic for receiving the associated schema setting forth the context of the one or more elements; program logic for receiving a formatting definition document having a set of associated formatting properties for at least one of the one or more elements; and program logic for rendering a representation of the at least one instance fact based upon the formatting properties associated with element prescribing the structure of the at least one instance fact.
18. The program product of claim 17 wherein the rendering comprises creating an output document file with rendering information.
19. The program product of claim 18 wherein the document file is in one of the following file formats: Adobe PDF, Microsoft .doc, ASCII, CSV, or .ppt.
20. The program product of claim 17 wherein the rendering comprises outputting data to a display device.
21. The program product of claim 17 wherein the rendering comprises outputting the data to a printer.
22. The program product of claim 17 wherein instance document, associated schema, and formatting definition document are written in XML.
23. The program product of claim 17 wherein instance document, associated schema, and formatting definition document are written in XBRL.
24. The program product of claim 17 wherein the instance document describes the formatting of prose content in an XBRL tuple.
25. A program product for applying formatting information to an XBRL schema comprising: a computer readable medium containing program logic comprising: ATTORNEY DOCKET NO. : 15167.002 program logic for defining an XBRL based schema comprised of a plurality of elements; program logic for linking a formatting document with the XBRL schema to describe formatting characteristics for one or more of the elements; program logic for linking the formatting document with one or more linkbases associated with the XBRL schema to identify meta-data associated with the elements for the purpose of applying formatting; and wherein the formatting document contains report definitions grouping elements from the schema into an object model.
26. The program product of claim 25 wherein the one or more linkbases includes the label linkbase.
27. The program product of claim 25 wherein the one or more linkbases includes the presentation linkbase.
28. A program product for rendering a document in a mark-up language comprising: a computer readable medium containing program logic comprising: program logic for parsing the document to retrieve elements containing data; program logic for parsing a schema associated with the document to process the elements containing data; program logic for parsing a formatting linkbase associated with the schema to define the formatting of elements of the document; program logic for parsing a report generation document to determine the layout of a report containing one or more of the elements of the document; and program logic for rendering the layout determined by the report generation document and containing the data from the elements of the document.
29. The program product of claim 28 wherein the report generation document is modified to change the layout of the report. ATTORNEY DOCKET No.: 15167.002
30. The program product of claim 28 wherein the report generation document overrides some of the formatting of elements defined by the formatting linkbase.
31. An apparatus for rendering XBRL instance documents comprising: a processor: a memory connected to and in communication with the processor and containing program instructions; a network interface connected to the processor to provide network access to the processor; wherein the processor executes program instructions contained in the memory and the program instruction comprise: reading an XBRL instance document that describes at least one instance fact, wherein the description of the at least one instance fact complies with an element description of an associated schema; reading the associated schema comprising the element description; reading a formatting linkbase comprising links between the element description of the associated schema and formatting properties for rendering facts complying with the element description; and rendering the at least one instance fact in accordance with the formatting properties linked to the element description that describes the at least one fact.
32. An apparatus for applying formatting information to a structured data set comprising: a processor: a memory connected to and in communication with the processor and containing program instructions; a network interface connected to the processor to provide network access to the processor; ATTORNEY DOCKET No.: 15167.002 wherein the processor executes program instructions contained in the memory and the program instruction comprise: receiving an instance document describing at least one instance fact structured as prescribed by an element of an associated schema; receiving the associated schema setting forth the context of the one or more elements; receiving a formatting definition document having a set of associated formatting properties for at least one of the one or more elements; and rendering a representation of the at least one instance fact based upon the formatting properties associated with element prescribing the structure of the at least one instance fact.
33. The apparatus of claim 32 wherein the rendering comprises creating an output document file with rendering information.
34. The apparatus of claim 33 wherein the document file is in one of the following file formats: Adobe PDF, Microsoft .doc, ASCII, CSV, or .ppt.
35. The apparatus of claim 32 wherein the rendering comprises outputting data to a display device.
36. The apparatus of claim 32 wherein the rendering comprises outputting the data to a printer.
37. The apparatus of claim 32 wherein instance document, associated schema, and formatting definition document are written in XML.
38. The apparatus of claim 32 wherein instance document, associated schema, and formatting definition document are written in XBRL.
39. The apparatus of claim 32 wherein the instance document describes the formatting of prose content in an XBRL tuple.
40. An apparatus for applying formatting information to an XBRL schema comprising: a processor: ATTORNEY DOCKET No.: 15167.002
a memory connected to and in communication with the processor and containing program instructions; a network interface connected to the processor to provide network access to the processor; wherein the processor executes program instructions contained in the memory and the program instruction comprise: defining an XBRL based schema comprised of a plurality of elements; linking a formatting document with the XBRL schema to describe formatting characteristics for one or more of the elements; linking the formatting document with one or more linkbases associated with the XBRL schema to identify meta-data associated with the elements for the purpose of applying formatting; and wherein the formatting document contains report definitions grouping elements from the schema into an object model.
41. The apparatus of claim 40 wherein the one or more linkbases includes the label linkbase.
42. The apparatus of claim 40 wherein the one or more linkbases includes the presentation linkbase.
43. An apparatus for rendering a document in a mark-up language comprising: a processor: a memory connected to and in communication with the processor and containing program instructions; a network interface connected to the processor to provide network access to the processor; wherein the processor executes program instructions contained in the memory and the program instruction comprise: ATTORNEY DOCKET No.: 15167.002
parsing the document to retrieve elements containing data; parsing a schema associated with the document to process the elements containing data; parsing a formatting linkbase associated with the schema to define the formatting of elements of the document; parsing a report generation document to determine the layout of a report containing one or more of the elements of the document; and rendering the layout determined by the report generation document and containing the data from the elements of the document.
44. The apparatus of claim 43 wherein the report generation document is modified to change the layout of the report.
45. The apparatus of claim 43 wherein the report generation document overrides some of the formatting of elements defined by the formatting linkbase.
EP06765418A 2005-04-27 2006-04-26 System and method for providing data formatting Withdrawn EP1880312A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US67525605P 2005-04-27 2005-04-27
PCT/IB2006/001035 WO2006117615A2 (en) 2005-04-27 2006-04-26 System and method for providing data formatting

Publications (1)

Publication Number Publication Date
EP1880312A2 true EP1880312A2 (en) 2008-01-23

Family

ID=37308352

Family Applications (1)

Application Number Title Priority Date Filing Date
EP06765418A Withdrawn EP1880312A2 (en) 2005-04-27 2006-04-26 System and method for providing data formatting

Country Status (5)

Country Link
EP (1) EP1880312A2 (en)
JP (1) JP2008539487A (en)
CN (1) CN101194251A (en)
CA (1) CA2606344A1 (en)
WO (1) WO2006117615A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102821133A (en) * 2011-12-12 2012-12-12 金蝶软件(中国)有限公司 Method and server for data analysis of extensible business reporting language (XBRL)
CN116701325A (en) * 2023-08-03 2023-09-05 吉贝克信息技术(北京)有限公司 Binary file cache-based XBRL classification standard loading method

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099370B2 (en) 2007-04-03 2012-01-17 Microsoft Corporation System for financial documentation conversion
US8818993B2 (en) * 2010-10-29 2014-08-26 Microsoft Corporation Providing consolidated project information service
US8612489B2 (en) 2011-07-14 2013-12-17 International Business Machines Corporation LossLess transformation of XBRL instance to XML data model instance
CN103020093B (en) * 2011-09-28 2015-11-25 上海证券交易所 The recording of XBRL information announcing report and methods of exhibiting and system thereof
CN102360367A (en) * 2011-09-29 2012-02-22 广州中浩控制技术有限公司 XBRL (Extensible Business Reporting Language) data search method and search engine
CN102819542B (en) * 2011-11-30 2016-06-15 金蝶软件(中国)有限公司 Represent method and the device of instance document
RU2536390C2 (en) * 2012-10-31 2014-12-20 Общество с ограниченной ответственностью "1С" Automated report generation method
CN104182382A (en) * 2013-05-21 2014-12-03 北大方正集团有限公司 Method and system for achieving table standardization
CN105338420B (en) * 2014-08-15 2019-02-26 中国电信股份有限公司 Media playing method and device and offer device and play system
CN104317907A (en) * 2014-10-27 2015-01-28 中国神华能源股份有限公司 Method for processing data used for assessing railway transport capacity
CN105224514A (en) * 2015-09-24 2016-01-06 四川长虹电器股份有限公司 The method of XBRL criteria for classification is expanded based on Flex
CN107145480B (en) * 2017-05-26 2020-07-07 上交所技术有限责任公司 Method for compiling XBRL report based on Word
CN108769122B (en) * 2018-04-26 2021-04-13 北京百分点科技集团股份有限公司 Data exchange method, device and storage medium
CN112446197B (en) * 2020-11-26 2024-02-02 宁波九寰适创科技有限公司 Automatic standardized report generation method for industrial application
CN113569528A (en) * 2021-07-19 2021-10-29 湖州度康科技有限公司 Automatic layout document label generation method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6920607B1 (en) * 1999-12-15 2005-07-19 Microsoft Corp. Methods and systems for dynamically creating user interfaces
US6908034B2 (en) * 2001-12-17 2005-06-21 Zih Corp. XML system
US7017112B2 (en) * 2003-02-28 2006-03-21 Microsoft Corporation Importing and exporting markup language data in a spreadsheet application document

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2006117615A2 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102821133A (en) * 2011-12-12 2012-12-12 金蝶软件(中国)有限公司 Method and server for data analysis of extensible business reporting language (XBRL)
CN102821133B (en) * 2011-12-12 2015-11-18 金蝶软件(中国)有限公司 The method of XBRL Data Analysis and server
CN116701325A (en) * 2023-08-03 2023-09-05 吉贝克信息技术(北京)有限公司 Binary file cache-based XBRL classification standard loading method
CN116701325B (en) * 2023-08-03 2023-10-31 吉贝克信息技术(北京)有限公司 Binary file cache-based XBRL classification standard loading method

Also Published As

Publication number Publication date
JP2008539487A (en) 2008-11-13
WO2006117615A2 (en) 2006-11-09
CN101194251A (en) 2008-06-04
WO2006117615A3 (en) 2007-04-26
CA2606344A1 (en) 2006-11-09

Similar Documents

Publication Publication Date Title
WO2006117615A2 (en) System and method for providing data formatting
US6868528B2 (en) Systems and methods for creating and displaying a user interface for displaying hierarchical data
JP6761112B2 (en) Methods and systems for server-side rendering of native content for presentation
US7870482B2 (en) Web browser extension for simplified utilization of web services
US7721195B2 (en) RTF template and XSL/FO conversion: a new way to create computer reports
CN104025068B (en) The Conflict solving of the CSS definition from multiple sources
JP4716612B2 (en) Method for redirecting the source of a data object displayed in an HTML document
JP2004334866A (en) Conversion of web site summary through tag rib
KR20090055584A (en) Persistent saving portal
TW201437826A (en) Method and device for combining webpage style address
King et al. WebbIE: a web browser for visually impaired people
CN112463152A (en) Webpage adaptation method and device based on AST
US20040237038A1 (en) Systems and methods for processing business schemas with predefined sequences and documents
CN105183453B (en) Web-based information acquisition method and device
US8131815B1 (en) Client-side modification of electronic documents in a client-server environment
Zinn The CLARIN language resource switchboard
Tsai et al. PubMed-EX: a web browser extension to enhance PubMed search with text mining features
Hannon XBRL for General Ledger, the Journal Taxonomy.
Arshad Privacy fox-A JavaScript-based P3P agent for Mozilla Firefox
KR100445452B1 (en) Manual providing server system and manual providing method thereof
Goldfarb Future directions in SGML/XML
Hannon XBRL fundamentals
Opara XML: Gateway for data mobility and universal connectivity
US20120005610A1 (en) Methods, apparatus, systems and computer readable mediums for use in transfering information to and/or from user devices
Rabby ScrapBook: The Web Application Based On Web Scraping

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20071109

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN

18W Application withdrawn

Effective date: 20090409