The present disclosure relates generally to panoptic visualization of documents and, in particular, to panoptic visualization of documents or their document components in a manner that reflects logical relationships between the documents/components.
Information printed about a topic is often printed on multiple pages because the information does not fit on a single page and/or is more effectively presented using multiple pages. The multiple pages may be in the same source or in multiple sources. For example, technical drawings of an aircraft may be printed such that different portions of the same diagram may be printed on different pages. Drawings of one assembly on the aircraft may be contained in one library or source, while drawings of another assembly may be contained in a second library or source.
Printed information may also be printed such that one document contains one level of detail about an object, while a second document contains a second level of detail about the same object. For example, a diagram of an aircraft may be printed such that the exterior of the aircraft is visible in the diagram. Another diagram of the same aircraft may be printed such that the exterior of the aircraft is obscured, but the interior of the aircraft is presented. Thus, a reader may use different diagrams to learn different information about the same object.
As another example, wiring diagrams of wiring systems are often printed across multiple pages because the graphical and textual information presented in the wiring diagram is too great to fit on a single page. Thus, a reader may change documents multiple times to learn information about an entire wiring system.
Documents such as engineering diagrams, technical drawings, wiring diagrams, and other suitable document types may be used in the maintenance of an aircraft. The documents are created to be viewed in printed form. However, such documents are commonly stored in electronic form and viewed on a display device of a data processing system. As a result, the reader looks through different documents that may be on different types of media. This type of review may be more time-consuming than desired to find information about an aircraft.
Documents regarding a complex system of systems such as an aircraft may therefore contain large amounts of information regarding the complex system and its components, subsystems and parts, and the connections and relationships among the respective elements of the complex system. The complexity of the system and the large amount of information often required to describe the system may increase not only the time required to study the documents, but the difficulty in comprehending the complex system and its elements. A user may not only require the time to review documents containing large amounts of information, but may also require the time and endure the difficulty of studying the information to understand the ways in which the complex system and its elements relate to each other.
Therefore, may would be desirable to have a method and apparatus that takes into account at least some of the issues discussed above, as well as possibly other issues.
Example embodiments of the present disclosure are generally directed to a panoptic visualization document differencing system, and corresponding method and computer-readable storage medium. In accordance with example embodiments, media content of a document collection may be panoptically arranged in a manner that reflects logical relationships between the content, which may in turn reflect relationships between the subjects or their objects depicted by the content. Even more particularly, for example, media content may be differenced or otherwise compared and their difference (or comparison) may be panoptically visualized in a layout that allows relationships, differences or the like between the media content to be quickly seen and isolated. The layout may enable a user to see the comparison in a single view, and in a manner that facilitates a better understanding of the content, which may be otherwise difficult to comprehend. In the context of a complex system such as an aircraft including a number of components, subsystems and parts, the arrangement may not only lessen the time required to review documents containing large amounts of information, but may also lessen the time required and ease the difficulty studying the information to understand the ways in which the complex system and its elements relate to each other. This may even be more pronounced in the context of engineering blueprints for a complex system, which may otherwise require or suffer from an undesirable amount of time and difficulty studying the blueprints to understand the depicted system elements. Example embodiments may therefore ease the time required and difficulty to study even the most massive amounts of information contained in some documents.
According to one aspect of example embodiments, the system includes a differencing engine and a layout engine of the differencing engine or coupled to the differencing engine. The differencing engine is configured to direct comparison of two or more document components (source pages) each of which includes respective media content, and each of which has associated metadata providing information about the respective document component. The layout engine is configured to generate a layout of a panoptically-arranged visual representation of the document components or a comparison thereof (comparison page) according to a layout model, and according to the associated metadata. And the differencing engine is configured to communicate the layout.
In one example, the differencing engine may be configured to direct comparison of a first document component and one or more second document components, and the layout engine may be configured to generate the layout including the first document component side-by-side with the one or more second document components. In a further example, the differencing engine may be configured to direct comparison of a plurality of first document components and a plurality of second document components. In this further example, the layout engine may be configured to generate a first layout of the first document components, a second layout of the second document components, and a layout including the first layout side-by-side with the second layout.
In another example, the differencing engine may be configured to direct comparison of a first document component and one or more second document components. In this example, the document differencing engine may be further configured to generate a comparison document component from the first document component and one or more second document components. The comparison document component may include an overlay of media content of the first document component over media content of the one or more second document components. And the layout engine may be configured to generate the layout including the comparison document component.
In a further example, the differencing engine may be configured to direct comparison of a plurality of first document components and a plurality of second document components. In this further example, the document differencing engine may be configured to generate a plurality of comparisons from the first document components and respective one or more second document components, and the layout engine may be configured to generate the layout including the comparison document components.
In one example, each of the document components or the comparison thereof may be in a state including visual representations at respective resolutions of the respective document component or comparison, and the associated metadata may provide information specifying at least the size of the visual representation of the comparison in the layout. In this example, the layout engine may be configured to retrieve each document component or comparison for the visual representation at a resolution that matches the size specified by the information provided in the associated metadata.
Even further, for example, the visual representations for each of the document components or comparison may include visual representations at respective resolutions for zoom levels of the document component or comparison, with the visual representations being divided across the zoom levels into progressively larger numbers of tiles each of which covers a spatial area of the visual representation at a respective zoom level. In this even further example, for each of the document components or comparison, the layout engine may be configured to retrieve tiles of the visual representation at the resolution that matches the size specified by the information provided in the associated metadata.
In other aspects of example embodiments, a method and computer-readable storage medium are provided for differencing documents for panoptic visualization. The features, functions and advantages discussed herein may be achieved independently in various example embodiments or may be combined in yet other example embodiments further details of which may be seen with reference to the following description and drawings.
Having thus described example embodiments of the present disclosure in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Some example embodiments of the present disclosure will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments are shown. Indeed, various example embodiments may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these example embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the present disclosure to those skilled in the art. For example, unless otherwise indicated, reference something as being a first, second or the like should not be construed to imply a particular order. Also, something may be described as being above something else (unless otherwise indicated) may instead be below, and vice versa; and similarly, something described as being to the left of something else may instead be to the right, and vice versa. Like reference numerals refer to like elements throughout.
Example embodiments of the present disclosure relate generally to panoptic visualization of documents and, in particular, to panoptic visualization of documents or their document components in a manner that reflects logical relationships between the documents/components. Example embodiments will be primarily described in conjunction with aerospace applications. It should be understood, however, that example embodiments may be utilized in conjunction with a variety of other applications, both in the aerospace industry and outside of the aerospace industry.
Referring now to
As described herein, an electronic document (or simply document) may be any electronic media content capable of being visualized in an electronic and/or printed (or printable) form. The media content of a document may include one or more of textual, graphical or other visual content such as still images, video or the like. The document may be of a number of different types of documents in which the type of document may be defined by one or more characteristics of the document such as its format, media content or the like. Examples of suitable types of documents include computer-aided design documents (e.g., CAD, CATDrawing, CATPart, CATProduct, CATProcess, cgr, DWG, DXF, DWF, etc.), text-based documents (e.g., ANS, ASC, DOC, DOCX, HTML, PDF, RTF, TXT, WPD, etc.), presentation documents (e.g., PDP, PPT, etc.), graphics documents (e.g., BMP, GIF, JPEG, JP2, PNG, PSD, PSP, RAW, TIFF, etc.), video documents (e.g., AVI, MPEG, QuickTime, WMV, etc.) or the like. Other examples of suitable types of documents include single or collections of legal documents (e.g., court decisions, briefs, patents, etc.), books, articles, web pages, screenshots, service bulletins, engineering diagrams, warranties, technical drawings, wiring diagrams or the like. And still further examples of suitable types of documents include data sets such as engineering design data, wiring data, troubleshooting data, business data or the like.
A document may be composed of one or more constituent document components that may be groupings of its media content such as between basic breaking points. The document components may depend on the type of document and may include, for example, electronic pages, slides, diagrams, drawings, still images, videos or the like. The document component may at times be generally referred to as a “page,” although the document component need not necessarily be an electronic page as it may include other types of components. In instances in which a document includes only one component, the document and its component may be one and the same.
As described herein, reference may be made to a document composed of constituent pages. It should be understood, however, that example embodiments may be equally applicable to a group (collection) of documents composed of constituent documents, which may or may not be further composed of constituent pages. Thus, functions performed with respect to a document may be equally performed with respect to a group of documents, and functions performed with respect to a page may be equally performed with respect to a constituent document.
Each page may be formed of data from which a visual representation of it (or rather its media content) may be generated in an electronic and/or printed (or printable) form. The visual representation of a page may at times be generally referred to as simply the page or as an “image,” although the page need not necessarily include a still image as it may include other types of media content.
A page may include media content that has one or more subjects and includes one or more objects reflecting or otherwise forming the subject(s). At times, a page may therefore be said to depict its subject(s) and/or object(s) of its subject(s). As an example, a page may have an aircraft as its subject and include an exterior or interior view or sections of the exterior/interior view of the aircraft as object(s), or the page may have the exterior/interior view as its subject and include the sections of the exterior view as objects. As another example, a page may have an aircraft instrument panel as its subject and include gauges of the instrument panel as subjects.
Generally, documents and/or their pages according to example embodiments may have one or more logical relationships between one another. As explained in greater detail below, then, the document collection system 102 of the panoptic visualization system 100 may be generally configured to receive documents and collect pages according to these logical relationships, with the pages being collected as a document collection for panoptic visualization (a panoptic visualization document collection). The document layout system 104 may be generally configured to generate a layout of panoptically-arranged, logically-related pages of a panoptic visualization document collection, such as the collection from the document collection system. The document navigation system 106 may be generally configured to select and provide navigation option(s) for navigating a visual presentation of a layout of panoptically-arranged, logically-related pages of a panoptic visualization document collection, such as the layout generated by the document layout system. The visual presentation of a layout may at times be generally referred to as simply the layout.
The document differencing system 108 may be generally configured to direct comparison of two or more pages of one or more documents (the compared pages at times referred to as “source pages”), which pages have been or may be collected as a panoptic visualization document collection. More particularly, the document differencing system may direct comparison of at least one first source page and at least one second source page, and may direct the comparison in a number of different manners. In one example, the document differencing system may be configured to direct presentation of the first source page(s) side-by-side with the second source page(s). In another example, the document differencing system may be configured to generate and direct presentation of comparison(s) of first source page(s) and respective second source page(s).
Example embodiments of the present disclosure may therefore collect pages of document(s) according to logical relationships between the pages, which in one example in the context of a complex system such as an aircraft, may reflect structural relationships between its elements. The pages may be panoptically arranged in a manner that reflects the logical relationships, and in various examples, structural relationships. The arrangement may enable a user to see the pages in a single view, and in a manner that facilitates a better understanding of relationships that may be otherwise difficult to comprehend. In the context of a complex system for example, the arrangement may not only lessen the time required to review documents containing large amounts of information, but may also lessen the time required and ease the difficulty studying the information to understand the ways in which the complex system and its elements relate to each other.
Reference will now be made to
The document parser 202 may be configured to disassemble documents in any of a number of different manners. In one example, the document parser may be may be configured to disassemble documents according to the type of the documents (e.g., computer-aided design documents, presentation documents, graphics documents, video documents, legal documents, books, articles, web pages, engineering diagrams, technical drawings, wiring diagrams, etc.). The document parser may therefore also be configured to identify the type of the documents, such as based on the format of the documents, business rules or by user input.
The document collection system 200 may also include a colligater 204 coupled to the document parser 202 and configured to colligate the pages. In this regard, the colligation of the pages may include, for each of one or more pages of the plurality, the colligater being configured to identify one or more links between the page and one or more other pages of the plurality. The link(s) of one example may be identified according to the documents, type of documents, and/or media content of the page and other page(s). And in one example, the link(s) may be defined according to one or more business rules, logic or the like. These link(s) may establish one or more logical relationships between the page and other page(s).
In one example, a link may be identified between pages sharing a common document (constituents of the same document). In one example, a link may be identified between pages adjacent one another in a predetermined sequence, such as a time sequence, spatial sequence or an order sequence in a common document or collection of documents. In some instances, a link may be identified according to the subject(s) or object(s) of the pages. For example, a link may be identified between pages sharing a common subject or common object. In one example, a link may be identified between pages in which an object of one is a subject of the other (object-subject), or in which a subject of one is an object of the other (subject-object).
In one example, a link may be identified between pages related by a parent-child relationship. In one example, a link may be identified between pages in instances in which one of the pages includes a reference or link to the other page in its media content. In this regard, a court decision may include a citation to another court decision (e.g., in the body of the court decision, or in a footnote, endnote or the like), or a page may include a hyperlink to another page. And in yet another example, a link may be identified between pages by user input specifying a link between pages.
In addition to identifying link(s) between pages, the colligator 204 may also be configured to extract, generate or otherwise provide, for each of one or more pages, metadata associated with the page. For a page, its associated metadata may provide any of a number of different pieces of information about the page. For example, the metadata may provide information identifying the link(s) between the page and other page(s) in metadata associated with the page. This information may include the names or other identifiers of the other page(s) linked to the page, and may also include an indication of the logical relationship(s) established by the link(s) therebetween (e.g., share common document, subject and/or object, adjacency, object-subject subject-object, parent-child, reference/link, user specified, etc.).
In addition to the link(s), the associated metadata for a page may include one or more other pieces of information about the page. For example, the metadata may provide information regarding the document for which the page is a constituent, such as the name or other identifier of the document, and/or an author, size, and/or time of creation or last revision of the document. Also for example, the metadata may provide information about one or more content restrictions applied or to be applied to the page, such as access restrictions, editing or modification restrictions, and/or encryption of the page.
The metadata may also provide information about the media content of the page. This information may include, for example, identification of the page's subject(s) and/or object(s), the portion of the page including one or more of the object(s), and/or a level of detail of one or more of the object(s) in the page. In various instances, a link between pages sharing a common subject, object or having an object-subject or subject-object relationship may be inferred from the metadata identifying the respective documents' subject(s) and/or object(s). In these instances, specification of a page's subject(s) and/or object(s) may suffice as information identifying the appropriate link(s) between pages.
In one example, the colligation of pages may further include the colligater 204 being configured to identify one or more layout models for at least some of the pages. In this example, the associated metadata extracted, generated or otherwise provided by the colligater for a page may further include information specifying an arrangement of the respective page in each of one or more of the layout models. For a respective layout model, this may include, for example, specifying a size, location and/or depth (z-order) of the page (or more particularly its visual representation). The layout model(s) may be identified and size, location and/or depth may be specified in any of a number of different manners, such as according to one or more business rules, logic or the like.
Examples of suitable layout models (sometimes referred to as styles of presentation) include brickwall, partial brickwall, hierarchy, shape, center out, top-down/triangulated, center-out triangulated, size dominance, overlap through detail, master-detail through depth, load shape, facet, mixed-media/static-and-dynamic or the like. Other examples may include combinations of one or more of the foregoing layout models. Each of a number of example layout models will be further described below.
In one example, the size of a page in a layout model may be specified as an absolute size or a relative size, either of which may be given in a number of different manners. In various instances, the size of the page may relate to a size in pixels and therefore give a pixel count or pixel resolution of the page. In one example, the absolute size of a page may be given in height and width dimensions (e.g., N×M pixels). In another example, the size of the page may be specified as a relative size based on the size of one or more other pages to which the page is logically related. For example, the relative size may be given in a number of different manners, such as in a percentage, fraction or multiple of other page(s); or the relative size may be given simply by an indication of smaller than, larger than or equal in size to other page(s). In pages related by a parent-child relationship, for example, the size of the child page may be specified as being half the size of its parent. In any event in which the size is relative, the size of the respective other page(s) may be given in their associated metadata, and may be given as an absolute size or relative size based on the size of even further other pages.
Similar to size, in one example, the location (sometimes referred to as position) of a page in a layout model may be specified as an absolute location or relative location, but in either event, may be given in a number of different manners. Likewise, the depth of a page in a layout model may be specified as an absolute depth or relative depth, either of which may be given in a number of different manners. For example, the absolute location of the page may be given in x, y coordinates of a coordinate system that spans the layout model, and/or the absolute depth may be given in a z coordinate of the coordinate system. In another example, the relative location of the page may be given in x, y coordinates relative to a point or other page(s) in the layout model. In yet another example, the relative location may be given simply by an indication of above, below, left or right of a point or other page(s) in the layout model. Similarly, in one example, the relative depth may be given simply by an indication of a page being in-front or behind other page(s) in the layout model. In any event in which the location and/or depth is relative, the location and/or depth of the respective other page(s) may be given in their associated metadata, and may be given as an absolute or relative location and/or depth.
The colligater 204 may be configured to communicate the pages and metadata as a panoptic visualization document collection, and communicate the collection to any of a number of different destinations. In one example, the colligater may be configured to communicate the pages and metadata to respective storage 206, 208 for later retrieval. The storage may be resident with the document collection system 200, or may be separate from and in communication with the document collection system. The pages and metadata may be formatted and stored in any of a number of different manners, and hence, their storage may be of any of a number of different types. Examples of suitable types of storage include file storage, database storage, cloud storage or the like.
In various examples, before pages are stored in respective storage 206, the pages may be compressed or otherwise processed for easier storage and retrieval. As shown, for example, the system may include a tiler 210 coupled to the colligater, and to which the colligater is configured to communicate the pages. The tiler may be configured to generate, for each of one or more pages, visual representations of the page at respective resolutions for zoom levels of the page. As described herein, the page (or rather its visual representation) at each zoom level may be generally referred to as a “sub-image,” and may at times be considered a separate version or copy of the page. As suggested above, however, a sub-image of a page need not necessarily include a still image as the page may include other types of media content.
In addition to or in lieu of generating sub-images of a page, the tiler 210 may be configured to divide the sub-images across the zoom levels into progressively larger numbers of tiles each of which covers a spatial area of a sub-image at a respective zoom level. This may facilitate retrieval, panning and/or zooming of the page, as explained further below. The tiler may then be further configured to communicate the tiles of the sub-images of the pages, such as to the page storage. Before communicating the tiles, however, the tiler may be further configured to compress the tiles, if so desired.
In one more particular example, the tiler 210 may be configured to generate multiple resolutions of a page at respective zoom levels arranged hierarchically from a top zoom level through one or more intermediate zoom levels to a base zoom level. Each zoom level includes a sub-image of the entire page but at a different resolution; and the sub-images of the page across zoom levels may have the same native aspect ratio (ratio of the width of the image to its height). In one example, the top zoom level (level 0) may include a sub-image of the entire page at its lowest resolution, the one or more intermediate zoom levels may include a sub-image of the entire page at progressively higher resolutions (level 1 immediately below level 0, level 2 immediately below level 1, etc.), and the base zoom level (level L) may include a sub-image of the entire page at its highest (or full) resolution.
Each sub-image of a page may be generated in any of a number of different manners. In one example, one of the sub-images may be received by the tiler 210, such as the full-resolution sub-image. The tiler may then be configured to generate the other sub-images at lower resolutions, such as by downsampling the full-resolution sub-image.
As indicated, the tiler 210 may be configured to divide sub-images across zoom levels into progressively larger numbers of tiles each of which covers a spatial area of a sub-image at a respective zoom level. The tiles may have a fixed size (resolution) within and across the zoom levels, and accordingly, a sub-image composed of a larger number of tiles may generally have a higher resolution than a sub-image composed of a smaller number of tiles. Each zoom level may therefore be considered a higher zoom level relative to any zoom level above it (the sub-image at the zoom level being at a higher resolution than the sub-image at any zoom level above it). Similarly, each zoom level may be considered a lower zoom level relative to any zoom level below it (the sub-image at the zoom level being at a lower resolution than the sub-image at any zoom level below it).
In one example, the sub-image at each zoom level may be half the resolution of the zoom level immediately below it, and twice the resolution of the zoom level immediately above it (the resolutions increase or decrease by a factor of two). In this example, the number of tiles in a zoom level/may be given by t1=t0×4l, in which l=0, 1, 2, . . . L, and t0 represents the number of tiles in the top zoom level (level 0). In a more particular example including four zoom levels 0, 1, 2 and 3 (L=3), and in which the top zoom-level sub-image is composed of 1 tile (t0=1), the first intermediate zoom-level (level 1) sub-image may be composed of 4 tiles, the second intermediate zoom-level (level 2) sub-image may be composed of 16 tiles, and the base zoom-level (level 3) sub-image may be composed of 64 tiles.
In one example, a page covered by a number of tiles in one zoom level may be covered by an increased or decreased number of tiles in higher or lower zoom levels, respectively, thereby leading to an increase or decrease in resolution of the page. Similarly, an area of a page covered by one tile in one zoom level may be covered by multiple (e.g., four) tiles in an adjacent higher zoom level, thereby leading to an increase in resolution of the respective area of the page. And an area of a page covered by multiple tiles in one zoom level may be covered by one tile in an adjacent lower zoom level, thereby leading to a decrease in resolution of the respective area of the page.
In one example, a page (or area thereof) at a particular resolution may be displayed by the tile(s) covering the page at the zoom level commensurate with the particular resolution. A zoom-in of the page may be effectuated by replacing the displayed tile(s) with the increased number of tiles covering the page at a higher zoom level. And a zoom-out of the page may be effectuated by replacing the displayed tiles with the decreased number of tile(s) covering the page at a lower zoom level. And because the page may be divided into tiles, in instances in which a portion but not all of a page is viewable in a graphical user interface (GUI) in which the page is displayed, only those tiles covering the viewable portion of the page may be retrieved and displayed.
In various examples described more fully below, the page and metadata respective storage 206, 208 and one or more of the document parser 202, colligater 204 or tiler 210 may be included within or otherwise coupled to a document differencing system such as document differencing system 108. The document differencing system may receive a request for comparison of source pages of one or more documents. The request may relate to document(s), pages and/or metadata not yet having been processed by any one or more of the document parser, colligater or tiler. In such instances, as appropriate, the document differencing system may respond to the request at least in part by causing the respective document parser, colligater and/or tiler to process the document(s), pages and metadata such as in a manner described above. In one example, the document differencing system may also generate comparison(s) of first source page(s) and respective second source page(s), with each resulting comparison in various examples being a page (comparison page) similar to the respective source pages. The document differencing system may cause the respective document parser, colligater and/or tiler to process the comparison page(s), such as in a manner described above. The document differencing system may then store the resulting panoptic visualization document collection and included or separate comparison page(s) and associated metadata in respective storage.
Reference is now made to
As shown in
The search engine 302 may be configured to identify page(s) in a number of different manners, such as based on the associated metadata of the pages of the collection. For example, the request may include a keyword matching or otherwise having relevance to a subject or object of page(s) of the collection. In response to the request, then, the search engine may be configured to search the metadata storage 306 for the associated metadata of one or more page(s) including media content matching or relevant to the request.
The document layout system 300 may also include a layout engine 308, layout generator or the like coupled to the search engine 302 and configured to select a layout model (style of presentation) from a plurality of layout models for panoptically-arranged pages of the plurality, including the identified page. The layout models may be maintained in a respective storage such as file storage, database storage, cloud storage or the like, and formatted and stored in any of a number of different manners according to the respective storage.
The layout models may include any of a number of different types of layouts for panoptically arranging pages. As indicated above and explained further below, examples of suitable layout models include brickwall, partial brickwall, hierarchy, shape, center out, top-down/triangulated, center-out triangulated, size dominance, overlap through detail, master-detail through depth, load shape, facet, mixed-media/static-and-dynamic or the like. Other examples may include combinations of one or more of the foregoing layout models.
The layout engine 308 may be configured to select the layout model in any of a number of different manners. In one example, the layout engine may be configured to select the layout model according to the associated metadata for the identified page. The search engine 302 may therefore be configured to communicate the associated metadata for the identified page to the layout engine, which in turn, may be configured to select a layout model according to the respective associated metadata.
As explained above, the associated metadata for a page may provide information about the type of document of which the page is a constituent, and/or information about media content of the page. In one example, then, the layout engine 308 may be configured to select the layout model according to the type of the document of which the identified page is a constituent (e.g., computer-aided design document, presentation document, graphics document, video document, legal document, book, article, web page, engineering diagram(s), technical drawing(s), wiring diagram(s), etc.). In another example, the layout engine may be configured to select the layout model according to the media content of the identified page, such as one or more of its subject(s) and/or object(s).
As also explained above, the associated metadata for a page may include information identifying link(s) between the page and other page(s) of the collection. The layout engine 308 may therefore also be configured to retrieve the identified page and other page(s) identified according to the associated metadata for the identified page. These pages may be retrieved from respective storage 304.
The layout engine 308 may be configured to generate a layout of the retrieved pages, panoptically-arranged according to the selected layout model, and the retrieved pages and their associated metadata. In addition to retrieving the pages, then, the layout engine of one example may also be configured to receive the associated metadata, such as from respective storage 306. The layout engine may then be configured to communicate the layout, such as to a GUI in which a layout may be displayed, or a printer for generating a printout of the layout.
As suggested, the layout may define a panoptic arrangement of the retrieved pages according to the selected layout model. In the arrangement of the layout, the pages may each have a particular size, location and/or depth (z-order). The size, location and/or depth of each page of the layout may be absolute or relative to other page(s) of the layout, and may be specified or otherwise determinable in a number of different manners. In one example, the sizes, locations and/or depths may be specified or otherwise determinable from a definition of the selected layout model of the layout models. Additionally or alternatively, for example, the associated metadata for each page of the layout may provide information specifying the size, location and/or depth (z-order) of it in the layout, as explained above. In these examples, the layout engine 308 may be configured to generate the layout according to the sizes, locations and/or depths specified by the selected layout model and/or associated metadata of the pages of the layout.
The aspect ratios of the pages may be their native aspect ratios. In various instances, however, a layout model may specify or otherwise define, for each of one or more pages, an aspect ratio that is different from the native aspect ratio of the respective page. In these instances, the layout engine 308 may be further configured to generate the layout according to the different, non-native aspect ratio(s) for the page(s).
In one further example, one or more of the pages of the layout may be in a state including visual representations (e.g., sub-images) at respective resolutions. For each of these pages, the layout engine 308 may be configured to retrieve the page for the visual representation at the resolution that matches or most closely matches the size specified by the selected layout model and/or associated metadata. This may include, for example, retrieving the sub-image of the page at or closest to the respective resolution.
The layout generated by the layout engine 308 may be dynamically generated according to a selected layout model such that a different layout of the pages may be realized by changing the selected layout model. A different layout may also be realized in a number of other manners, such as based on associated metadata of the pages of the layout or one or more time-based factors. In one example, the layout engine may therefore be further configured to receive a request for a different panoptic arrangement of the retrieved pages. In this example, the layout engine may be configured to select a different layout model from the plurality of layout models in response to the request. The layout engine may then be configured to generate a different layout of the retrieved pages. This may include the layout engine being configured to panoptically rearrange the retrieved pages according to the selected different layout model, and the retrieved pages and associated metadata for the retrieved pages.
In various examples described more fully below, the page and metadata respective storage 304, 306 and layout engine 308 may be included within or otherwise coupled to a document differencing system such as document differencing system 108. In these examples, the document differencing system may cause the layout engine to select a layout model and generate a layout of first source page(s) and second source page(s) for comparison, such as in a manner the same as or similar to that explained above or otherwise herein. In one example, the document differencing system may cause the layout engine to generate a layout including first source page(s) side-by-side with second source page(s). In another example, the document differencing system may cause the layout engine to generate a layout of comparison page(s) generated by the document differencing system, with each comparison page being for a first source page and respective second source page.
As indicated above, the layout models may include any of a number of different types of layouts for panoptically arranging pages. In the layout models, logical relationship(s) established by link(s) between pages may be expressed by the arrangement of pages, in either or both of location or depth (z-order). In one example, logical relationships may be expressed by the proximity of pages to one another in their locations, and/or in their relative depths. Additionally, one or more of the layout models may define or imply a navigation path between documents related to one another, and/or a load shape for loading pages of a layout generated according to the respective layout models. Reference will now be made to
Although not separately shown, a partial brickwall layout model may be considered a superset of the brickwall layout model 600. The partial brickwall layout model may be characterized by clusters of pages that may similarly be consistent in size and/or aspect ratio at least within respective clusters. In this layout model, the clusters may be related by associated metadata of the respective pages, such as by their media content, author, time of creation, last revision or the like.
In one example of the hierarchy layout model 700, pages higher in a hierarchy may be located above those lower in the hierarchy (top-down), and/or may be larger in size than those lower in the hierarchy. The pages in this layout model may not be consistent in size or aspect ratio. Those pages higher in the hierarchy may dominate those lower in the hierarchy, and in which pages lower in the hierarchy may be constrained in the x-direction by the width of pages higher in the hierarchy.
More particularly, for example, the highest page 702 in the hierarchy may be located at the top, and may be sized according to the page's full resolution with its native aspect ratio. The next-highest page(s) 704 in the hierarchy may be located immediately below the highest page at a size smaller than the highest page, and with an aspect ratio that constrains the next-highest page(s) collectively to the width of the highest page. This pattern may repeat for the third-highest page(s) 706 in the hierarchy below respective ones of the next-highest pages, for the fourth-highest page(s) 708 in the hierarchy, and so forth. This layout model may in one example provide a single page with related pages cited in the respective page below it.
In the shape layout model 800, in various instances, one or more subsets of the pages may be arranged in clusters 806 at respective areas of the visual representation of the physical structure. In these instances, the clusters may each be arranged according to another of the layout models, both in terms of location and size of the pages of the cluster.
Navigating a layout (or more particularly its visual presentation) may include zooming into or out of the presentation. Zooming into the layout according to the overlap-through-detail layout model 1300 may include increasing the size and, in various instances of one example, resolution of its pages. In this layout model, however, zooming into the layout may also include obscuring an overlaying page so that one or more overlaid pages (or rather the overlaid portions thereof) underneath it may come into view. Conversely, zooming out of a layout may also include showing an obscured overlaying page so that the respective page comes into view, and one or more overlaid pages (or rather the overlaid portions thereof) go out of view. In one example, obscuring a page may include increasing a transparency of the page (or decreasing its opacity) during a zoom-in, and showing a page may include increasing an opacity of the page (or decreasing its transparency) during a zoom-out.
In one example, as shown in
Continuing the example of
Similar to the overlap-through-detail layout model 1300, navigation in the master-detail through depth layout model 1400 may include zooming into or out of the layout, which may further include obscuring or showing an overlaying page relative to an overlaid page. In the example shown in
An example of the load-shape layout model 1500 may be pages of media content related in time where pages of older media content may be loaded before the primary page of the most-current media content. The timing of media content in this context may relate to a time-aspect of the subject(s) or object(s) of the media content. For example, pages (e.g., pages 1504) for the preceding history of a court decision may be loaded before the court decision (e.g., page 1502) itself. In another example, the timing of media content may relate to the time of creation of the content, such as in the case of loading a first draft and one or more changes or revisions to a document (e.g., pages 1504) before the final or current version of the document (e.g., page 1502).
Now turning back to
As shown in
The navigation engine 402 may also be configured to select one or more navigation options from a plurality of navigation options for navigating the layout, in which the navigation options may be selected according to the associated metadata for the pages of the layout. The navigation options may be maintained in a respective storage such as file storage, database storage, cloud storage or the like, and formatted and stored in any of a number of different manners according to the respective storage. Similarly, the metadata for the pages of the layout may be stored in a respective storage 404, which in one example may correspond to either or both of storage 208, 306. The navigation engine may also be configured to communicate the selected navigation options, such as to a GUI in which the selected navigation options may be presented along with the layout.
In one example, the navigation engine 402 may be configured to select navigation options according to the type(s) of document(s) of which the pages of the layout are constituents, which may be indicated in the associated metadata for the pages. In one example, the navigation engine may be configured to select navigation options according to the media content of the pages of the layout, such as their subject(s) and/or object(s), which may also be indicated in the associated metadata. Examples of suitable navigation options for a layout include command tools (e.g., pan, rotate, zoom, obscure/show, home, etc.), annotation tools (e.g., timeline/milestone, callout, etc.), linking tools (hyperlink, hotlink, hotspot, etc.), navigation path tools (e.g., tracking, recording, etc.), metadata tools (e.g., search, filter, insertion, etc.), page tools (e.g., search, filter, cue, activation, size, location, dominance, logical relationship(s), etc.), layout-model change, co-navigation, hyper-hypo navigation, printing or the like.
The associated metadata for the pages of the layout may directly or indirectly affect the selected navigation options. In one example, the associated metadata may be retrieved to directly affect the navigation options selected by the navigation engine 402. Additionally or alternatively, for example, the associated metadata for the pages may affect their layout, such as by affecting a selected layout model according to which the layout may be generated. More particularly, for example, the layout of pages may be generated according to a layout model selected according to the type of document(s) of the pages, and/or media content of the pages. The layout may then affect the navigation options selected by the navigation engine. In either event of the associated metadata directly or indirectly affecting the selected navigation options, the navigation engine may be said to select navigation options according to the associated metadata for pages of the layout.
The document navigation system 400 may also include a request interface 404 coupled to the navigation engine 402 and configured to receive a request according to one or more of the selected navigation options. The request interface may be configured to communicate the request to the navigation engine. The navigation engine may in turn be further configured to effect an adjustment of the visual representation of the layout in response to the request and according to the request, and communicate the adjustment such as to the aforementioned GUI. In one example, the navigation engine may be configured to effect the adjustment of the visual presentation without adjustment of the layout itself. In another example, the navigation engine may be configured to effect the adjustment of the visual presentation including adjustment of the layout.
As suggested above, the selected navigation options may be affected by a layout and/or its pages, or in one more particular example, the associated metadata for the pages of a layout. In various instances, then, layouts of different pages may result in the selection of one or more different navigation options. For example, consider that the navigation engine 402 may at different times receive a layout of first pages and a separate layout of second pages, with each layout including a panoptic arrangement of respective pages. In this example, the navigation engine may select first navigation options for the first layout, and second navigation options for the second layout. The first and second pages may include one or more common pages, but in one example, may also include one or more different pages. In this example, the first and second layouts may be different at least in that the first and second pages include one or more different pages. And in turn, the first and second navigation options selected by the navigation engine may include one or more different navigation options—although similar to the first and second pages, the first and second navigation options may include one or more common navigation options.
In various examples described more fully below, the navigation engine 402 and metadata storage 404 may be included within or otherwise coupled to a document differencing system such as document differencing system 108. In these examples, the document differencing system may cause the navigation engine to select navigation option(s), and/or receive a request to and effect an adjustment of the layout, and communicate the adjustment, such as in a manner the same as or similar to that explained above or otherwise herein.
The navigation engine 402 may be configured to select any of a number of different navigation options for a layout of pages. Many layouts generated according to many different layout models, and including pages of many different types of documents, may include command tools such as pan, rotate, zoom, obscure/show, home or the like. In various instances, a portion but not all of a layout may be viewable in a GUI in which the layout is displayed. This may be the case, for example, in instances in which the size of the layout is greater than the viewable area of the GUI (sometimes referred to as a “view”), or in instances in which the layout is of pages in a 3D environment (e.g., facet layout model). In these instances, the navigation options may include panning and/or rotating to move the layout. This may include one or more pages of the layout coming into view, and may additionally or alternatively include one or more pages going out of view. Pages of the layout in view or coming into view may be retrieved and displayed, while pages out of view or going out of view may be removed from display. Further, in instances in which only a portion of a page is in view or comes into view, and in which pages are divided into tiles, only those tiles covering the viewable portion of the page may be retrieved and displayed.
The command tools may also include zooming into or out of a layout and thus its pages, which may include increasing or decreasing the size of the layout. This increasing or decreasing the size of the layout may in turn include increasing or decreasing the size(s) and, in various instances of one example, the resolution(s) of its pages.
In one example, pages of a layout may include sub-images at respective resolutions for zoom levels of the pages. In this example, the layout may include for each respective page, the sub-image of the page at the resolution that matches or most closely matches the page's size specified by a selected layout model and/or associated metadata. A zoom-in of the layout, then, may be effectuated by replacing the sub-images of its pages with respective sub-images at increased zoom levels, and hence increased resolutions. Conversely, a zoom-out of the layout may be effectuated by replacing the sub-images of its pages with respective sub-images at decreased zoom levels, and hence decreased resolutions.
In various examples, the zoom (in or out) of a page or layout may be capable at a finer increment than provided by zoom levels of the page or one or more pages of the layout. The zoom of a page (alone or as part of a layout) may be to an increment that relative to a sub-image of the page being displayed, another sub-image of the page matches or most closely matches the page's increased/decreased size. In these instances, for example, the zoom may be effectuated by replacing a sub-image of the page with a corresponding sub-image of the page at a higher/lower resolution. In other instances, however, the zoom may be to an increment that relative to a sub-image of the page being displayed, the same sub-image still most closely matches the page's increased/decreased size. In these instances, for example, the zoom may be effectuated by increasing the size of the sub-image of the page without replacing the sub-image with another at a higher/lower resolution.
In a further example, a page may not only include respective sub-images, but the sub-images across zoom levels may be divided into progressively larger numbers of tiles each of which covers a spatial area of the sub-image at a respective zoom level. In this example, a zoom-in of the layout may be effectuated by replacing the displayed tile(s) of its pages with the increased numbers of tiles covering the pages at higher zoom level(s). Conversely, a zoom-out of the layout may be effectuated by replacing the displayed tiles with the decreased numbers of tile(s) covering the pages at lower zoom level(s). Similar to panning a layout, zooming into or out of a layout may include one or more pages of the layout coming into view, and may additionally or alternatively include one or more pages going out of view. These pages may be handled in a manner similar to panning the layout, but at higher or lower zoom level(s).
In addition to increase or decrease in size/resolution of pages of a layout, for one or more layouts, the zoom option may implicate one or more other navigation options to further affect one or more of the pages. For example, the overlap-through-detail layout model 1300 and master-detail through depth layout model 1400 may implicate obscure/show options in which overlaying pages may be obscured or shown relative to overlaid pages during zoom-in and zoom-out, such as in the manner explained above with reference to
A number of navigation options including those command tools described above may effect an adjustment of the visual presentation of a layout. A home option may therefore permit a user to return to the visual presentation from the adjusted visual presentation.
The navigation options may include annotation tools such as timeline/milestone, callout or the like. These tools may permit a user to add annotations to a layout, and may be selected for a number of different layouts to different layout models, and including pages of many different types of documents. The timeline/milestone option in various examples may be more particularly applicable to pages logically related to one another in a time sequence. In one example, timeline/milestone may effect a visualization added to the layout that may relate pages of the layout as milestones in a timeline.
The navigation options may include linking tools such as hyperlink, hotlink, hotspot or the like. In accordance with the hyperlink option, one or more pages (each a source) may include reference(s) or link(s) to other page(s) or media content of other page(s) (the page(s) or media content being a target). The target page(s) or media content may be in the same layout, or in the same panoptic visualization document collection but perhaps not in the same layout. The target may even include page(s) or media content not in the same panoptic visualization document collection.
The hyperlink option may permit a source page to include inline in its media content, content linked from one or more other pages. This is sometimes more particularly referred to as a hot link. The hyperlink option may also permit a user to navigate from a source page to one or more target pages linked to the respective source page. In this regard, a hyperlink may be represented in any of a number of different manners, such as by text, graphic or the like. For example, media content of one page may be formatted as a hyperlink to another page or media content of another page. More particularly, for example, an object depicted in one page may be formatted as a hyperlink to another page that also depicts the object, or more directly to the object depicted in the other page. This type of hyperlink is sometimes referred to as a hotspot.
In addition to or in lieu of the foregoing, for example, the navigation options may include navigation path tools such as tracking, recording or the like. A navigation path according to example embodiments may be defined in any of a number of different manners. In one example, a navigation path may be defined by a sequence of a user panning, rotating, zooming and/or repositioning a layout or one or more of its pages, navigating from one page to another page or media content (hyperlink), or otherwise effecting an adjustment of the layout (or rather its visual presentation). The navigation path tools may permit tracking and/or recording a navigation path followed by a user, thereby creating a navigation history.
The navigation options of one example may include metadata tools such as search, filter, insertion or the like, which may operate with respect to the associated metadata for pages of the layout. The search and filter options may permit a user to search the associated layout for particular metadata, or filter the associated metadata to include or exclude particular metadata. The insertion option may permit the insertion of particular metadata to the visual presentation of the layout, such as in the form of a callout including the particular metadata referenced to page(s) for which the associated metadata includes the particular metadata.
The navigation options may include page tools such as search, filter, cue, activation, size, location, dominance, logical relationship(s) or the like. Similar to the metadata tools, the search and filter options may permit a user to search the pages of the layout for particular page(s) or particular media content. In this regard, the search and filter options may implicate the associated metadata for pages of the layout.
The cue option may permit the application of one or more visual effects to one or more pages to draw the user's attention to those page(s) in the layout. The visual effect may be any of a number of different effects. Examples of suitable visual effects include an opaque or translucent border of a noticeable color (e.g., yellow) around the page(s), an opaque or translucent visual object or shape smaller than and overlaying the page(s) or a translucent visual object or shape the same or greater in size than and overlaying the page(s), or the like. Examples of other suitable visual effects include an increase in a size of the page(s), an animation applied to the page(s), or the like.
The visual effect(s) may be triggered in any of a number of different manners, as may the page(s) to which the effect(s) are applied. For example, visual effect(s) may be triggered to indicate selection of one or more page(s). In this example, the visual effect(s) may be applied to the selected page(s). Additionally or alternatively in this example, visual effect(s) may be applied to page(s) having a particular logical relationship with the selected page(s) (e.g., share common document, subject and/or object, adjacency, object-subject subject-object, parent-child, reference/link, user specified, etc.). In another example, visual effect(s) may be applied to page(s) to indicate a navigation path followed by the user.
The activation option may be more particularly applicable to dynamic pages and may permit a user to trigger activity of one or more pages, such as by playing or otherwise controlling (e.g., rewind, fast forward, volume, mute, etc.) video content that may be included in such page(s).
Size, location and dominance options may permit a user to resize or otherwise rearrange one or more page(s) of a layout, which may in effect create a different layout. These options may be applicable to a number of different layouts to different layout models, and including pages of many different types of documents. In one example, however, the dominance option may be more particularly applicable to layouts according to a layout model including a dominating page, such as hierarchy, center out, center-out triangulated, size dominance, load shape, mixed-media/static-and-dynamic or the like.
The logical relationship(s) option may permit a user to add, delete or otherwise change one or more logical relationships between pages, which may in turn effect a change in the layout of pages. These changes may or may not carry from navigation of a layout of pages to the associated metadata of those pages and any other similarly related pages. Thus, in one example, the changes may be temporary in that they are only applied to the layout of pages currently being visually presented. In another example, the changes may be more permanent in that they result in corresponding changes to the associated metadata for pages, which may not only result in a change in the currently presented layout but other layouts generated including the affected pages.
Further examples of navigation options may include layout-model change, co-navigation, hyper-hypo navigation, printing or the like. The layout-model change option may permit the user to change the layout model according to which the visually presented layout has been generated. This option may result in a rearrangement of the pages of the layout according to another layout model, thereby generating another layout. The co-navigation option may permit users of different instances of the same system to collaboratively navigate a layout of pages that may have been generated by one of the systems, but may be concurrently visually presented by both systems. The hyper-hypo navigation option may permit navigation between unique layout states or other pages that may not be part of the same panoptic visualization document collection as pages of the layout (hyper navigation), and/or navigation with a single layout state that may change as a result of that navigation (hypo navigation). And the printing option may permit the user to direct the visually-presented layout to a printer for generating a printout of it.
Turning to
As shown in
The differencing engine 506 may be configured to receive a request for comparison of one or more first source pages and one or more second source pages of one or more documents. For example, the document differencing system may receive a request for comparison of one first source page and one or more second source pages. In another example, the document differencing system may receive a request for comparison of two or more first source pages and a respective two or more second source pages. In this other example, the first source pages may be arranged as a first source layout, and similarly, the second source pages may be arranged as a second source layout. The document differencing system in this example may therefore receive a request for comparison of first and second source layouts of pages of one or more documents.
In one example, the differencing engine may receive this comparison request from the document collection system 102 (e.g., document collection system 200). The request in this example may include first source page(s), second source page(s) and their associated metadata, with at least the first and second source pages possibly having been compressed or otherwise processed by the document collection system, such as explained above.
In other examples, the differencing engine 506 may include or otherwise be coupled to one or more of a document parser, colligater or tiler, such as the document parser 202, colligater 204 or tiler 210 of the document collection system 200. In one example, a comparison request may include document(s) received by the document parser, or in another example, may include pages from the document parser to the colligater. In another example, a comparison request may include the pages and metadata from the colligater to the tiler. The differencing engine in these examples may cause the respective document parser, colligater and/or tiler to process the document(s), pages and metadata to a resulting panoptic visualization document collection.
The differencing engine 506 may be configured to determine a manner for the comparison, such as based on the number of source pages, user input or the like. In this regard, the differencing engine may direct the comparison in a number of different manners. For example, the differencing engine may be configured to direct presentation of the first source page(s) side-by-side with the second source page(s). In another example, the differencing engine may be configured to generate and direct presentation of comparison(s) of first source page(s) and respective second source page(s).
In the example including comparison page(s), the differencing engine 506 may cause the respective document parser 202, colligater 204 and/or tiler 210 to process each comparison page, which page and its resulting associated metadata may be included in or separate from the panoptic visualization document collection including its respective first and second source pages. The differencing engine may store the pages (including source pages) and metadata of the panoptic visualization document collection, and included or separate comparison page(s) and metadata, in respective storage 502, 504. In one example, then, the comparison page(s) may be stored in respective page storage, and its/their metadata may be stored in respective metadata storage.
The differencing engine 506 may be configured to generate the comparison of first and second source pages in any of a number of different manners. In various examples, the differencing engine may be configured to generate a comparison of the media content of pages in accordance with any of a number of different, known data differencing or file comparison algorithms, which may result in a comparison page. For example, the differencing engine may be configured to compare multiple software code source files where related software implementations in multiple differing modules may be shown side by side. Examples of the selection of modules to compare may be accomplished in a number of different manners, such as using techniques based on code calling relations, text difference and comparisons algorithms, function point analysis or the like.
In a more particular example, the differencing engine 506 may be configured to overlay the image of a first source page (first source image) on top of the image of a respective second source page (second source image). The comparison page may therefore include first and second source images, with the first source image being on top of the second source image. In this example, the differencing engine may be configured to modify the first source image to assign the respective image or a portion of it (e.g., the background behind visible media content) a certain level of transparency so that the second source image may be visible from underneath. In addition, the differencing engine may be configured to modify the media content of either or both the first or second source image so that their media content may be more easily distinguishable. For example, the differencing engine may be configured to change the color, line weight, line pattern or the like of the media content of either or both images so that the respective media content have different, distinguishable colors, line weights, line patterns or the like.
For source pages in which the colligater 204 has identified links and extracted, generated or otherwise provided associated metadata, generation of the comparison page may also include the differencing engine 506 also being configured to generate a comparison of the metadata for the first and second source pages, which may result in metadata associated with the respective comparison page. For source pages in which the colligator has not yet identified links and extracted, generated or otherwise provided associated metadata, the differencing engine may cause the colligater to identify the links and extract, generate or otherwise provide metadata for the comparison page. In one example, the links and metadata may be identified and extracted, generated or otherwise provided, respectively, based on the source pages. More particularly, the colligater may be configured to identify links for the comparison page according to the document(s), type of document(s), and/or media content of the source pages and any other pages that may be linked thereto, such as in a manner similar to that described above. Likewise, the colligater may be configured to extract, generate or otherwise provide metadata for the comparison page that includes the identified links, information about the source pages or their media content and the like, such as described above. Additionally or alternatively, the metadata may include information about the comparison. Information about the comparison may include, for example, a name or other identifier of the comparison page, and/or an author, size, and/or time of creation of the comparison, information about one or more content restrictions applied or to be applied to the comparison, and the like.
For source pages in which the tiler 210 has generated sub-images and/or divided the sub-images into tiles (and/or compressed the tiles), the differencing engine 506 may be configured to generate the comparison page from the sub-images or their tiles, with the resulting comparison page including corresponding sub-images and tiles (and may be compressed). For source pages in which the tiler has not yet generated sub-images or divided the sub-images into tiles (or compressed the tiles), the differencing engine may be configured to generate the comparison page from the source pages. The differencing engine may then cause the tiler to generate sub-images for the comparison page, and divide the sub-images into tiles (and may be compress the tiles), such as in a manner described above.
As part of or separate from the comparison request, the differencing engine 506 of the document differencing system 500 may receive a request for presentation of a comparison of first source page(s) and second source page(s). The differencing engine may include a layout engine, or may be otherwise coupled to a layout engine such as the layout engine 308 of the document layout subsystem 300. The layout engine may be configured to select a layout model and generate a layout of the first source page(s), second source page(s) and/or their comparison page(s) with or without any other logically-related pages, panoptically-arranged, such as in a manner the same as or similar to that explained above. In one example, the layout engine may be configured to generate a layout including first source page(s) side-by-side with second source page(s). In another example, the layout engine may be configured to generate a layout of comparison page(s) for first source page(s) and second source page(s).
The layout engine may be configured to generate the layout of comparison page(s) according to the selected layout model. Likewise, the layout engine may be configured to generate the layout of side-by-side first and second source page(s) according to the selected layout model. In a more particular example, the layout engine may be configured to generate a first source layout of the first source pages according to the selected layout model. Similarly, the layout engine may be configured to generate a second source layout of the second source pages according to the selected layout model. The layout engine may then generate a layout including the first source layout side-by-side with the second source layout.
In one example in which comparison and/or source page(s) include sub-images, the differencing engine 506 may communicate the associated metadata from metadata storage 504 to the layout engine before requesting the page(s) from the page storage 502. The layout engine may then be configured to identify sub-image(s) of page(s) that matches or most closely matches size(s) specified by the selected layout model and/or associated metadata, and may direct or otherwise cause the differencing engine to request the identified sub-image(s) from the page storage for generation of the layout.
The differencing engine 506 may be configured to communicate the layout of first source page(s), second source page(s) and/or their comparison page(s), and possibly any other logically-related pages. For example, the differencing engine may be configured to communicate the layout to a GUI in which the layout may be displayed (e.g., simultaneously displayed). Additionally or alternatively, for example, the differencing engine may be configured to communicate the layout to a printer for generating a printout including the layout.
In one example, the differencing engine 506 may further include a navigation engine, or may be otherwise coupled to a navigation engine such as the navigation engine 402 of the document navigation system 400. In this example, the respective navigation engine may be configured to select one or more navigation options from a plurality of navigation options for navigating the layout generated by the layout engine of or coupled to the differencing engine. The navigation engine may also be configured to receive a request according to one or more of the selected navigation options, effect adjustment of the layout (and/or metadata records) in response and according to the request, and communicate the adjustment. In this example, the differencing engine or navigation engine may receive the request directly or via a suitable request interface (e.g., request interface 404).
The navigation options may be selected in a number of different manners, such as in a manner the same as or similar to that explained above. The differencing engine 506 may then be configured to communicate the selected navigation options, such as to a GUI in which the selected navigation options may be presented along with the layout. The selected navigation options may include any one or more of those described above.
To further illustrate example embodiments of the present disclosure, reference will now be made to
The pages may be located and/or sized in the layout according to logical relationship(s) between the pages. In the example shown, the pages 1802 are engineering drawings of an aircraft, and may have object-subject relationships. More particularly, for example, object(s) of a page on a level of the hierarchy may be subject(s) of pages below it in the hierarchy, the subject(s) in one example being additional detail regarding the object(s).
More particularly, for example, page 1804 may depict an exterior view of the entire aircraft. Pages 1806 may depict a nose section, a landing gear assembly, a window, an engine assembly and a tail assembly. Pages 1808 may depict additional detail about the content of respective ones of pages 1806, and pages 1810 may depict additional detail about the content of respective ones of pages 1808. In the viewable area 1800, however, pages 1808, 1810 may be presented at a resolution that causes their media content to be only partially understood or not understood at all by a user. Of course, in other example embodiments, pages 1808 and/or pages 1810 may be presented at a sufficient resolution to interpret substantially all of their media content.
The GUI may present one or more selected navigation options for navigating the layout of pages 1802. In this illustrative example, pan and zoom navigation options may be presented in the form of controls 1812 to move and/or increase the size of the pages in the viewable area 1800 to focus on a portion 1814 of the layout. In other words, the user may activate the aforementioned controls to move and/or zoom the layout to fill a greater portion of the viewable area of the GUI with a portion of the layout.
As shown in
One example of the result of navigating the layout to focus on portion 1902 is shown in
Pages of the layout entirely within the viewable area 2100 of the GUI may form or otherwise define an area or region of interest 2112. In one example, pages within the region of interest may be presented with an increased resolution relative to any pages outside the region of interest. As shown, the region of interest may include pages 2102-2108, but because only a portion of page 2110 is within the viewable area of the GUI, page 2110 may be considered outside the region of interest (although it may still be considered within the viewable area). In this instance, page 2110 may be presented at a lower resolution than the resolution(s) of pages 2102-2108.
More particularly in the context of the comparison between two or more source pages,
According to example embodiments of the present disclosure, the panoptic visualization system 100 and its subsystems including the document collection system 102, document layout system 104, document navigation system 106 and document differencing system 108 may be implemented by various means. Similarly, the examples of a document collection system 200, document layout system 300, document navigation system 400 and document differencing system 500, including each of their respective elements, may be implemented by various means according to example embodiments. Means for implementing the systems, subsystems and their respective elements may include hardware, alone or under direction of one or more computer program code instructions, program instructions or executable computer-readable program code instructions from a computer-readable storage medium.
In one example, one or more apparatuses may be provided that are configured to function as or otherwise implement the systems, subsystems and respective elements shown and described herein. In examples involving more than one apparatus, the respective apparatuses may be connected to or otherwise in communication with one another in a number of different manners, such as directly or indirectly via a wireline or wireless network or the like.
Generally, an apparatus of exemplary embodiments of the present disclosure may comprise, include or be embodied in one or more fixed or portable electronic devices. Examples of suitable electronic devices include a smartphone, tablet computer, laptop computer, desktop computer, workstation computer, server computer or the like. The apparatus may include one or more of each of a number of components such as, for example, a processor (e.g., processor unit) connected to a memory (e.g., storage device).
The processor is generally any piece of hardware that is capable of processing information such as, for example, data, computer-readable program code, instructions or the like (generally “computer programs,” e.g., software, firmware, etc.), and/or other suitable electronic information. More particularly, for example, the processor may be configured to execute computer programs, which may be stored onboard the processor or otherwise stored in the memory (of the same or another apparatus). The processor may be a number of processors, a multi-processor core or some other type of processor, depending on the particular implementation. Further, the processor may be implemented using a number of heterogeneous processor systems in which a main processor is present with one or more secondary processors on a single chip. As another illustrative example, the processor may be a symmetric multi-processor system containing multiple processors of the same type. In yet another example, the processor may be embodied as or otherwise include one or more application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs) or the like. Thus, although the processor may be capable of executing a computer program to perform one or more functions, the processor of various examples may be capable of performing one or more functions without the aid of a computer program.
The memory is generally any piece of hardware that is capable of storing information such as, for example, data, computer programs and/or other suitable information either on a temporary basis and/or a permanent basis. The memory may include volatile and/or non-volatile memory, and may be fixed or removable. Examples of suitable memory include random access memory (RAM), read-only memory (ROM), a hard drive, a flash memory, a thumb drive, a removable computer diskette, an optical disk, a magnetic tape or some combination of the above. Optical disks may include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W), DVD or the like. In various instances, the memory may be referred to as a computer-readable storage medium which, as a non-transitory device capable of storing information, may be distinguishable from computer-readable transmission media such as electronic transitory signals capable of carrying information from one location to another. Computer-readable medium as described herein may generally refer to a computer-readable storage medium or computer-readable transmission medium.
In addition to the memory, the processor may also be connected to one or more interfaces for displaying, transmitting and/or receiving information. The interfaces may include a communications interface (e.g., communications unit) and/or one or more user interfaces. The communications interface may be configured to transmit and/or receive information, such as to and/or from other apparatus(es), network(s) or the like. The communications interface may be configured to transmit and/or receive information by physical (wireline) and/or wireless communications links. Examples of suitable communication interfaces include a network interface controller (NIC), wireless NIC (WNIC) or the like.
The user interfaces may include a display and/or one or more user input interfaces (e.g., input/output unit). The display may be configured to present or otherwise display information to a user, suitable examples of which include a liquid crystal display (LCD), light-emitting diode display (LED), plasma display panel (PDP) or the like. The user input interfaces may be wireline or wireless, and may be configured to receive information from a user into the apparatus, such as for processing, storage and/or display. Suitable examples of user input interfaces include a microphone, image or video capture device, keyboard or keypad, joystick, touch-sensitive surface (separate from or integrated into a touchscreen), biometric sensor or the like. The user interfaces may further include one or more interfaces for communicating with peripherals such as printers, scanners or the like.
As indicated above, program code instructions may be stored in memory, and executed by a processor, to implement functions of the systems, subsystems and their respective elements described herein. As will be appreciated, any suitable program code instructions may be loaded onto a computer or other programmable apparatus from a computer-readable storage medium to produce a particular machine, such that the particular machine becomes a means for implementing the functions specified herein. These program code instructions may also be stored in a computer-readable storage medium that can direct a computer, a processor or other programmable apparatus to function in a particular manner to thereby generate a particular machine or particular article of manufacture. The instructions stored in the computer-readable storage medium may produce an article of manufacture, where the article of manufacture becomes a means for implementing functions described herein. The program code instructions may be retrieved from a computer-readable storage medium and loaded into a computer, processor or other programmable apparatus to configure the computer, processor or other programmable apparatus to execute operations to be performed on or by the computer, processor or other programmable apparatus.
Retrieval, loading and execution of the program code instructions may be performed sequentially such that one instruction is retrieved, loaded and executed at a time. In some example embodiments, retrieval, loading and/or execution may be performed in parallel such that multiple instructions are retrieved, loaded, and/or executed together. Execution of the program code instructions may produce a computer-implemented process such that the instructions executed by the computer, processor or other programmable apparatus provide operations for implementing functions described herein.
Execution of instructions by a processor, or storage of instructions in a computer-readable storage medium, supports combinations of operations for performing the specified functions. It will also be understood that one or more functions, and combinations of functions, may be implemented by special purpose hardware-based computer systems and/or processors which perform the specified functions, or combinations of special purpose hardware and program code instructions.
As explained above, example embodiments of the present disclosure permit the collection, layout and/or navigation of a large number of pages (or documents). Example embodiments may allow a user to simultaneously and quickly view and visually search a large number of pages while using less bandwidth than retrieving all of the pages. In instances in which a user may generally have an idea of the appearance of page(s) of interest, or have an idea of a logical relationship between the respective page(s) and other pages, a layout of pages may be generated and/or navigated to allow the user to locate and use page(s) of interest. The user may view and navigate pages as though they were laid out in the physical world without the physical space requirement involved with large collections of pages.
Many modifications and other embodiments of the disclosure set forth herein will come to mind to one skilled in the art to which this disclosure pertains having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the disclosure is not to be limited to the specific example embodiments provided herein, and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although the foregoing descriptions and the associated drawings describe example embodiments in the context of certain example combinations of elements and/or functions, it should be appreciated that different combinations of elements and/or functions may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and/or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
The present application is related to U.S. patent application Ser. No. 13/414,987, entitled: Panoptic Visualization Document Layout, U.S. patent application Ser. No. 13/414,964, entitled: Panoptic Visualization Document Navigation, and U.S. patent application Ser. No. 13/414,940, entitled: Panoptic Visualization Document Collection, all of which filed on Mar. 8, 2012; and which claim priority to respective ones of U.S. Provisional Patent Application No. 61/578,349, entitled: Panoptic Visualization Document Layout, U.S. Provisional Patent Application No. 61/578,357, entitled: Panoptic Visualization Document Navigation, and U.S. Provisional Patent Application No. 61/578,361, entitled: Panoptic Visualization Document Collection, all of which filed on Dec. 21, 2011. The present application is also related to U.S. patent application Ser. No. 13/072,217, entitled: Image Management and Presentation, filed on Mar. 25, 2011, which claims priority to U.S. Provisional Patent Application No. 61/436,585, entitled: Navigation to Aircraft Maintenance Information Using Tiled 2D Illustrations, filed on Jan. 26, 2011. The contents of all of the aforementioned are incorporated herein by reference in their entireties.