This invention relates generally to computer systems and more specifically to a method, a system and an interface that enhances the computing power of computer systems in respect to calculating the position of documents as they are displayed. More precisely, the present invention relates to a method of reducing or minimizing the computing power necessary to identify the position of documents as they are graphically displayed on a display.
Computers have become increasingly important to modern life, defining the way in which humans obtain, explore, create and share information with others. These tasks are primarily carried out via computer display screens, which come in various shapes and sizes in dependence of the type of computers used. Some are larger, such as desktop computers, and some are relatively small, such as mobile phone screens.
Since their inception, the quality and efficiency of computers have increased tremendously. Among other things, their computing power has improved significantly over time. Namely, the speed in which they are able carry out various tasks and the quantity and complexity of the tasks their processors can compute have improved a great deal. This makes possible for one to view a relatively large amount of content on display screens. These days, videos, emails, images, websites, to name a few, may be simultaneously displayed and navigated on a computer display.
The number, size and complexity of such documents to be viewed on computer display screens are expected to increase as a result of the demand for a greater amount and more complex information to be explored on computer screens and for better, more rapid and more functional ways to do so. Faster and more efficient computing abilities from the part of computer systems are therefore desirable to meet this very demand.
Moreover, more and more computers are displaying documents in a rectilinear fashion, on axes of documents which may run horizontally or vertically on screens. Documents may be added or removed on these axes at any moment, which addition or removal thereof may be visible on display screens. United States Patent Application Publication No.: US20070214169A1, published on Sep. 13, 2007, discloses a Multi-dimensional location system and method (title). The respective application provides ways for managing and displaying axes of documents and other computer-readable files. It describes an axis of documents that groups a plurality of documents and other computer-readable files in a predetermined intuitive fashion.
The number of documents displayed on an axis may increase significantly from a relatively small amount of documents to a relatively greater amount of documents in a matter of seconds or even less. Similarly, it may also decrease from a relatively greater number of documents to a relatively smaller number thereof. The increase or decrease of the number of documents displayed on an axis may be caused, for example, by the addition or removal of documents by the user, other users who share access rights to the axis, or by the system.
With the addition or removal of new documents on an axis, the positions of the remaining documents on the respective axis change. The computer system, as a result, must compute the respective new positions of the remaining documents in an expeditious manner so that it would identify the new coordinates these documents should occupy on the axis. This is so that the transition from a small to a greater number of documents displayed on a given axis and vice versa may be carried out smoothly for the viewer of the screen. The faster the system would compute the new positions of the respective documents, the faster they would move to their respective new locations and the smoother the actual transition from a small to a relatively larger number of documents and vice versa would appear to the viewer of the screen.
Every time the position of a document on a given axis of documents changes, the system must recalculate the position of the respective document on the axis. The re-calculation of the new coordinates of the document requires time for it to be carried out by the system. When the system must recalculate the position of a significant number of documents on a plurality of axes, however, the time needed to carry out the recalculations is even greater. As a consequence, the graphical display of documents as a result of the recalculation of their position would require a greater amount of time and may look to the user cumbersome, irregular, and far from continuous and fluid when carried out.
It is therefore desirable to have a mechanism based upon which the update of the position of documents on axes of documents as a result of the addition or removal of other documents on these respective axes would not require the recalculation of the positions thereof.
It is therefore desirable to have a system capable to carry out the necessary computation calculations of documents in an optimal and rapid manner without the need of recalculating the position of the documents thereof every time their position on the axes is updated.
The present invention relates to a method designed to optimize the computing power necessary from the part of the system to carry out graphically a smooth and rapid transition between a small number of documents to a relatively larger number of documents and vice versa displayed on screens, and to a system and a user interface adapted to carry out these methods. This is to ensure that the user experience is subject to little or no discomfort that may result from an abrupt change in the number of documents on the display screen.
Other deficiencies will become apparent to one skilled in the art to which the invention pertains in view of the following summary and detailed description with its appended figures.
It is one aspect of the present invention to alleviate one or more of the shortcomings of background art by addressing one or more of the existing needs in the art.
The following presents a simplified summary of the invention in order to provide a basic understanding of some aspects of the invention. This summary is not an extensive overview of the invention. It is not intended to identify key or critical elements of the invention or to delineate the scope of the invention. Its sole purpose is to present some concepts of the invention in a simplified form as a prelude to the more detailed description that is presented later.
In accordance with at least one embodiment of the invention, the present invention is generally described using a plurality of documents aligned in a linear or non-linear fashion, named an axis of documents. An axis of documents generally refers to, but is not limited to, a graphical layout of documents, embodied generally as a rectilinear arrangement of documents thereof. Moreover, an axis, although generally straight and horizontally aligned, may not be necessarily depicted as such. It preferably, however, may have a straight appearance exhibiting to the viewer a sense of continuity, wherein documents are displayed in a predetermined fashion based on a given collation unit, which may or may not be chronological in nature. Furthermore, an axis may embody a single, two or more than two axes, aligned adjacently to each other, referred herein as a group of axes. An axis may be straight, slightly or substantially curved, angled, designed based on a specific shape or shapes. An axis tends to have a consistent shape based upon which documents displayed herein may be exhibited to the viewer. The embodiments of the present invention display axes horizontally. Nevertheless, such axes may be displayed on display screens vertically, diagonally or in any other fashion.
This invention also refers to user-selectable elements that might represent computer-readable files like documents and multimedia assets. Information elements can alternatively be referred to as user-selectable elements, menu elements, icons or thumbnails that are associated to an attribute, a category or a tag and are arranged as explained below. In order to lighten the reading of the present specification, the term “document” is generally used without intending to limit the scope of the present patent application only to documents, unless expressly specified.
In accordance with at least one embodiment of the invention, the invention relates generally to computer systems and more specifically to a method, a system and an interface that enhances the computing power of computer systems in respect to calculating the position of documents as they are displayed on computer screens in reference to the beginning of the group of axes of documents upon which they are displayed. More precisely, the present invention relates to a method of reducing or minimizing the computing power necessary by computer systems to identify the position of documents as they are graphically displayed on computer screens, where the user may use at least one navigation function over the groups of axes. The goal of the present invention is to improve the performances of rendering and updating axes. Moreover, it tends to improve the user experience, either by having more fluid animations or by accepting a larger number of documents on axes, in relation to the display screen and the documents displayed herein.
In accordance with at least one embodiment of the invention, the present invention refers most of the time to a computing function or a plurality thereof adapted to calculate the position of documents on axes of documents when the position thereof on the axis requires to be changed as a result of the navigation over groups of axes.
In accordance with at least one embodiment of the invention referred to below, the invention provides a means for updating the position of documents on a display screen without the need to recalculate the position thereof on the axes.
In accordance with at least one embodiment of the invention referred to below, the invention provides at least a mechanism, a method, an apparatus, a system and or graphical user interface adapted to compute the position of at least one document on at least one axis of documents in respect to the beginning of the group of axes of documents upon which it is displayed.
At least one embodiment of the invention provides a mechanism adapted to graphically display the animated movement of at least one element within at least one axis of documents on the display screen as a result of its displacement caused the navigation over the groups of axes.
At least one embodiment of the invention provides a mechanism adapted to compute the position of at least one document on at least one axis of documents after the magnification of the at least one axis of documents.
At least one embodiment of the invention provides a mechanism adapted to graphically display the magnification in an animated fashion of at least one axis of elements and of the elements of which it consists.
At least one embodiment of the invention provides a mechanism adapted to compute the position of at least one document on at least one axis of documents after the contraction of the at least one axis of documents.
At least one embodiment of the invention provides a mechanism adapted to graphically display the contraction in an animated fashion of at least one axis of elements and of the elements of which it consists.
At least one embodiment of the invention provides a mechanism adapted to compute and graphically display the magnification of at least two axes with different document sizes on the display area.
At least one embodiment of the invention provides a mechanism adapted to compute and graphically display the contraction of at least two axes with different document sizes on the display area.
At least one embodiment of the invention provides a mechanism adapted to improve the system's performance in graphically changing the position of at least one document on at least one axis of documents that is animated to reflect an insertion and/or removal of documents.
At least one embodiment of the invention provides icons and any other user selectable elements adapted to graphically display axes of elements as being magnified.
At least one embodiment of the invention provides icons and any other user selectable elements adapted to graphically display axes of elements as being reduced in size.
An embodiment referred to below provides a product comprising a machine-readable medium; a machine-executable instructions for causing a computer to perform a method comprising calculating the position of at least one element on an axis by computing its position in respect to the beginning of the axis mentioned herein.
An embodiment referred to below provides a product comprising a machine-readable medium; a machine-executable instructions for causing a computer to perform a method comprising modifying the position of at least one element on an axis by computing its position in respect to the beginning of the axis mentioned herein.
Embodiments of the present invention each have at least one of the above-mentioned objects and/or aspects, but do not necessarily have all of them. It should be understood that some aspects of the present invention that have resulted from attempting to attain the above-mentioned objects may not satisfy these objects and/or may satisfy other objects not specifically recited herein.
It is one aspect of the invention to alleviate one or more of the drawbacks of the background art by addressing one or more of the existing needs in the art.
Additional and/or alternative features, aspects, and advantages of embodiments of the present invention will become apparent from the following description, the accompanying drawings, and the appended claims.
Our work is now described with reference to the figures. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention by way of embodiment(s). It may be evident, however, that the present invention may be practiced without these specific details. In other instances, when applicable, well-known structures and devices are shown in block diagram form in order to facilitate describing the present invention.
The features provided in this specification mainly but might not exclusively relate to principles of computer software and machine-readable code/instructions adapted to instruct a computer, many computers or other machines adapted to use the instructions to provide material effects on a display, or other means enabling human-computer interactions to manage documents, menus, user-selectable elements and other computer files. These code/instructions are preferably stored on a machine-readable medium to be read and acted upon with a computer or machine having the appropriate code/instructions reading capability.
The client devices 12 may include devices such as mainframes, minicomputers, personal computers, laptops, personal digital assistants, phones, or the like, capable of connecting to the network 20. The client devices 12 may transmit data over the network 20 or receive data from the network 20 via a wired, wireless, or optical connection.
The servers 14-18 may include one or more types of computer systems, such as a mainframe, minicomputer, or personal computer, capable of connecting to the network 20 to enable servers 14-18 to communicate with the client devices 12. In alternative implementations, the servers 14-18 may include mechanisms for directly connecting to one or more client devices 12. The servers 14-18 may transmit data over the network 20 or receive data from the network 20 via a wired, wireless, or optical connection.
In an implementation consistent with the present invention illustratively embodied herein, the servers 14-18 may include a search engine 22 usable by the client devices 12. The servers 14-18 may store documents 200, such as web pages, accessible by the client devices 12.
With reference to
The following discussion provides a brief, general description of an exemplary computer apparatus in which at least some aspects of the present invention may be implemented. The present invention will be described in the general context of computer-executable instructions, such as program modules 174 being executed by a computerized device. However, methods of the present invention may be affected by other apparatuses. Program modules may include routines, programs, objects, components, data structures, applets, WEB 2.0 type of evolved networked centered applications, etc. that perform a task(s) or implement particular abstract data types. Moreover, those skilled in the art will appreciate that at least some aspects of the present invention may be implemented with other configurations, including hand-held devices, multiprocessor system, microprocessor-based or programmable consumer electronics, network computers, minicomputers, set top boxes, mainframe computers, gaming consoles and the like. At least some aspects of the present invention may also be carried out in distributed computing environments where tasks are performed by remote processing devices linked through a communications network as exemplified in
With reference to
A number of program modules 174 may be stored on the hard disk 127, magnetic disk 129, (magneto) optical disk 131, ROM 124 or RAM 125, such as an operating system 135 (for example, Windows® NT® 4.0, sold by Microsoft® Corporation of Redmond, Wash.), one or more application programs 136, other program modules 137 (such as Alice™, which is a research system developed by the User Interface Group at Carnegie Mellon University available at www.Alice.org, OpenGL® from Silicon Graphics Inc. of Mountain View Calif., or Direct 3D from Microsoft Corp. of Bellevue Wash.), and/or program data 138 for example.
A user may enter commands and data into the computer 120 through input devices, such as a keyboard 140, a camera 141 and a pointing device 142 Other input devices (not shown) such as a microphone, joystick, game pad, satellite dish, scanner, a touch sensitive screen, accelerometers or a motion-sensor detector such as KINECT™ that are adapted to sense movements of the user or movements of a device, or the like, may also be included. These and other input devices are often connected to the processing unit 121 through a serial port interface 146 coupled to the system bus 123. However, input devices may be connected by other interfaces, such as a parallel port, a game port, blue tooth connection or a universal serial bus (USB). For example, since the bandwidth of the camera 141 may be too great for the serial port, the video camera 141 may be coupled with the system bus 123 via a video capture card (not shown). The video monitor 147 or other type of display device 150 may also be connected to the system bus 123 via an interface, such as a video adapter 148 for example. The video adapter 148 may include a graphics accelerator. One or more speakers 162 may be connected to the system bus 123 via a sound card 161 (e.g., a wave table synthesizer such as product number AWE64 Gold Card from Creative® Labs of Milpitas, Calif.). In addition to the monitor 147 and speaker(s) 162, the computer 120 may include other peripheral output devices (not shown), such as a printer, a hi-definition television and a scanner for example. As an alternative or an addition to the video monitor 147, a stereo video output device, such as a head mounted display or LCD shutter glasses for example, could be used.
The computer 120 may operate in a networked environment defining logical connections to one or more remote computers 120, such as a remote computer 149. The remote computer 149 may be another computer 120, a server 14-18, a router, a network PC, a peer device or other common network node, and may include many or all of the elements described above relative to the computer 120. The logical connections depicted in
When used in a LAN, the computer 120 may be connected to the LAN 151 through a network interface adapter (or “NIC”) 153. When used in a WAN, such as the Internet, the computer 120 may include a modem 154 or other means for establishing communications over the wide area network 152 (e.g. Wi-Fi, WinMax). The modem 154, which may be internal or external, may be connected to the system bus 123 via the serial port interface 146 or another type of port interface. In a networked environment, at least some of the program modules depicted relative to the computer 120 may be stored in the remote memory storage device 166. The network connections shown are exemplary and other means of establishing a communications link between the computers 120 may be used.
The exemplary network and the exemplary computer system described above are adapted to carry on the following embodiments:
A system 170 is depicted in
The software system 170 illustratively consists of a collection of at least twelve modules 174 independent from those of the server 14-18 that together carry out the method required for the functionalities to be visible on a graphical user interface and usable by the user. As illustrated, additional modules 226 may also be used in conjunction with the twelve base modules.
A computing module 178 provides a means to circulate data between users, the other modules 174 and the apparatus 100. The computing module 178 is adapted to convert queries 230, which may be system-based or user-based, into graphical rendering in accordance with at least one embodiment of the present invention. The other modules 174 are configured to send to and receive data from the computing module and to individually or collectively interact with other modules 174.
An application configuration module 182 provides software configuration to manage application settings and open connections to other servers 14-18. Other modules 174 may use the application configuration module 182 to manage their behavior to satisfy user-specific needs.
A data elements management module 186 may be used in conjunction with other modules to manage data elements such as documents 200 contained in a database 32 in response to a query 230. The data elements management module 186 may use any kind of database connection and may use a network communication module 190 in order to access a database 32 through a network 28, on a server computer 14-18. The network communication module 190 may use several protocols in order to communicate with a server computer 14-18, such as IPv4, IPv6, TCP, UDP, ODBC, HTTP, WebDAV, SSH, IMAP and even define its own specific communication protocol. The data elements management module 186 may also be used in conjunction with an email connectivity module 194 and network communication module 190 in order to treat and represent emails in the same way as the data elements of a database 32. The data elements management module 186 may also be used in conjunction with the permissions module 198 (on the client or server side) in order to control the user access to elements based by some sort of sharing rules. The data elements management module 186 may also work in conjunction with a caches module 202, providing client-side cached versions of the database 32 and files in order to respond to future requests faster. Modules 174 may be made to communicate information in a standardized way by the use of an Application Programming Interface (API) in order to simplify the data elements management module's 186 interactions with other modules 174.
The data elements management module 186 may sort through documents 200 stored in the database 32 and connected to each other via a variety of referencing modes, may apply a filter as specified in a query 230 and may subsequently direct the filtered documents 200 to other modules 174 (this will be shown in
The axis-ordering module 206 may manage the ordering of single documents 200 and/or several documents 200 assembled into document sets 220 onto one or more axes 292. In addition of managing the collation of documents 200 onto an axis 292, the axis-ordering module 206 may also manage the order of the documents 200 contained within secondary documents sets 232 (not illustrated). The positioning module 210 manages the positioning of documents 200 within axes 240 based on interactions with other modules 174 processing the various elements contained in a query 230. The positioning module 210 is adapted to and may interpret data contained in document sets 228 generated by the data elements management module 186 in relationship to the query 230 to identify a location for a given document set 228 within the collation of an axis 292. Likewise, a visually distinctive features management module 214 is adapted to interpret data contained in documents 200 or document sets 228 generated by the data elements management module 186 in relationship to the query 230 to selectively apply one or more visually distinctive features 284 (not illustrated in this figure) to single documents 200 or document sets 228. Finally, a display management module 218 may, inter alia, manage elements related to the user interface 234, possibly interacting with a graphics card and a monitor 147. The display management module 218 may use a document-rendering module 222 that provides instructions to render specific documents 200, like images, text files, word-processing files, spreadsheet files, presentation files, etc. The document-rendering module 222 may also provide an API to let developers add their own extensions to deliver to renderers other document types.
Multiple core functionalities could be integrated to provide core operating system 135 services. A graphical layer framework component 256 could be built over the graphics API component 254, and could be used to provide complex drawing capabilities. The layer-based graphics layer framework component 256 may also support widget rendering and handling (like buttons, text fields, dialogs, etc.) A network management component 260 could be based on pre-existing network management capabilities in the operating system core and kernel 250. It could serve as a tool to manage an Internet network connection through Ethernet, Bluetooth, Wi-Fi, Modem and other communication channels. A utility component 264 could handle all the other services needed to communicate with the operating system core and kernel 250, providing functionalities such as user login, user authentication, memory, disk-access management, etc. Using these modules, the axis-based user interface 238 would use core functionalities from the graphical layer framework component 256, the network management component 260 and the utility component 264 to provide workspaces 306 comprising multiple axes 292 that display documents 200 (not shown in
The Window Management System Emulation 272 could also offer functions to provide a more axis-based user interface 238 integration, such as, previews, player and editors for the documents 200 displayed in the axis-based user interface 238. For example, a rich text document 200 could use a third-party module 276 or third-party software environment 280 to provide a previewer or media player for the document 200, or a third-party application to integrate a live editor on the axis-based user interface 238.
This computer system 120 could be used, for instance, as a business solution to provide users with an axis-based user interface 238 operating system 135 directly on multiple kinds of devices 34-48 (computers, laptop, tablets, cell phones, etc.). The computer system 120 may also illustratively be used as a business solution to sell preconfigured devices 34-48 with the axis-based user interface 286. Since the operating system 135 has a built-in axis-based user interface 286, the device 34-48 is likely to have a display 150 and other input devices like a keyboard 140, a mouse 142 or a touch-screen interface. The devices 34-48 may not necessarily provide such parts and may be adapted to be used by communicating information about the user interface 240 and input methods with other devices 34-48 (television set, motion sensing input device, computer or tablet over network, cell phone, etc.)
The graphical user interface 234 may run through the operating system 135 and the hardware 246 of the computer system 120 or, alternatively, through a network-based system e.g. client-server, and/cloud computing system as exemplified in
An axis-based graphical interface 238 is adapted to graphically structure documents 200 in arrays 288 that arrange the documents 200 in rows and/or columns in a reasonably regular fashion and to allow navigation thereof by the user further to a query 230. The axis-based layout and ordering provide the user with information about the content of each document 200, its meaning and its relationships to the other documents 200 disposed on the axis 292. Navigation tools are provided with the axis-based user interface 238 to allow navigation through the documents 200 of a single axis 292 and of various axes 292 when a plurality of axes 292 is enabled. The display of documents 200 on an array 288, or axis 292, therefore allows contextual management of documents 200 as a flow, or an ongoing rational sequence of documents 200. An axis-based interface 238 thus helps to intuitively display a group of documents 200 and facilitate understanding and managing large sequences of documents 200 bearing a relation.
In a simplified exemplary form, an array 288 may be embodied as an axis of documents 292 (hereinbelow referred to as axis 292 to lighten the text), which groups documents 200 in a single row or column, as illustrated in
The axis 292 can be represented as a single axis 292, a double axis 292, or more axes 292. Axes 292 may be independent from one another (using distinct scales, or orderings, henceforth referred to as collation functions 300) or may form a group of axes 310 by sharing the same scale or collation function 300. Also, a document 200, attribute 296 or other property of an element contained in an axis 292 can be selected and used as a logical connector to create an additional axis 292 from an existing axis 292. This subsidiary axis 294 is meant to be temporary in some embodiments, serving as a way to view a specific set of additional documents 200 or highlight certain documents 200 from the original axis 292 without having to alter the entire workspace 306. It may originate from the logical connector document 200 or information element 200 and be disposed in non-parallel fashion thereto. The subsidiary axis's 294 position is preferably orthogonal to the original axis 292. However, the angle may vary. Like axes 292, logically connected axes 294 may be scrollable. More such logically connected axes 2924 can subsequently be created in the same fashion. Navigation among axes 292 and subsidiary axes 294 could be called “relational navigation”.
Axes 292 may be disposed horizontally and/or vertically. Groups of axes 310 may be presented using one of the layouts or combining both. The axes 292 presented in the embodiments below are generally illustrated in the horizontal layout configuration. However, they could, all or in majority, be disposed vertically without departing from the scope of the present disclosure. Other possible graphical layouts of documents 200 might become obvious to a skilled reader in light of the present application and would be considered within the scope of this application.
When only a portion of the axis 292 is visible, a play of zoom, pan and scrolling movements along the axis 292 allows a user to navigate the axis 292 and change the series of documents 200 that are displayed in the display area 314 of the display 150. Scrolling movements can be performed in a variety of ways including but not limited to click-and-drag, pressing on the keys of a keyboard, gesturing to a motion-sensor or on a touch-screen.
Documents 200 might overlap or decrease in size so as to fit or maximize the space available in the display area 314. Selected documents 200 on an axis 292 can be magnified to increase the level of detail shown. Similarly, a small display area 314 could display only one document 200 out of the entire axis 292. The remaining documents 200 would not be shown in the display area 314 but would yet remain at their respective “virtual” position on the axis 292, ready to be displayed upon scrolling the axis 292. In other words, if we consider a mobile platform like a mobile phone having a small display 150, the small display 150 might only allow to efficiently exhibit one document 200 at a time. However, given that the displayed document 200 is part of an axis 292, the other documents 200 on the axis 292 would remain displayable in accordance with their respective position on the axis 292 when the axis is scrolled, navigated, gestured.
The documents 200 are selected to be disposed on the axis 292 on the basis of one or more attributes 296, and are ordered thereon according to a collation function 300, namely an ordered arrangement made by comparison, (e.g. a chronological order adapted to use a time scale 318. The attribute(s) and collation function parameters are specified in a query 230 that may be run by a user or by an automated function of the system. Indeed, each axis 292 groups documents 200 in accordance with, for example, a selected tag, category, keyword, document creator, or other attribute 296 that expresses a characterization of one or more document(s) 200 and that are configurable to represent intrinsic or extrinsic characteristics. The term “attribute” 296 will generally be used throughout the instant specification to lighten the reading of the text and will encompass other document properties or means for establishing commonality or relationships as described above unless otherwise specified.
Attributes 296 may be user-specified or system-specified. Generally, documents 200 bear a plurality of attributes 296 assigned by one or more user(s) (e.g. keyword, subject, project, creator, category, etc.), and a plurality of attributes 296 that are assigned by the system, such as, illustratively, file type, time of creation, number of views, time of last modification, file size, etc. Given the broad range of applicability of the present invention, the attributes 296 that may be assigned by the system and user, as well as the attributes 296 that can be desirable to use in the management of axes 292 might substantially vary from one field or user to another and however remain within the scope of present specification.
The selection of one or more attributes 296 (using Boolean logic for instance) in a query 230 determines which documents 200 will be displayed on the axis 292. If no specific attribute 296 is selected, the axis 292 will display all documents 200 in a default order, like the date of creation thereof. Thus, all documents 200 on the same axis 292 are normally associated with the selected set or combination of attributes 296 that are used as parameters for the axis 292. Third-party data, like publicity or user-targeted information, could also be added to an axis 292, either arbitrarily or according to user information, filtering and/or existing collation of axes 292 without departing from the scope of the present invention.
The documents 200 illustrated in
The query 230 in
An axis 292 or a group of axes 310 may be embodied in a linear configuration 326 or a non-linear configuration 330. Both configurations are illustrated in
Documents are not the only items one could find on an axis-like array 288. Videos, menu options, emails and numerous other types of information elements can also be displayed on an axis-like array 288. However, for the purpose of explaining and describing this invention, the Figures presented herein will only reserve to axes 292 with documents 200 only.
In the axis-like array 288, documents 200 are laid out in a linear fashion, based on the framework set out by the collation units 304. By “linear,” we refer to the idea that documents 200 are arranged and extended along a straight horizontal line.
A collation unit 304 collects and combines certain elements on an axis 292. In the case of
The collation unit 304 is chronological in nature. That is, documents 200 are organized on the axis-like array 288 according to time units 322 (t27, t28, t29, t30 and t31) that are equally spaced. The time scale 318 specifies the division of time. For example, the time division may be structured by hour, day, month, or year.
The collation function 300 makes it possible for time units 322 to align accordingly on the axis 292 based on a certain time scale 318. Moreover, these time units 322 are moving progressively to the right. The time unit markers 334 identify the beginning and end of a time unit 322.
The collation units 304 do not have to be chronological per se. For example, they can be alphabetical as well or based on a certain feature or identity set out by the user.
Some collation units 304 contain more documents 200 than other ones. This is because on a linear axis 292, the collation units 304 are equally spaced from each other and, therefore, of the same length. As a result, it will often be the case that some collation units 304 will be empty and some—full or partially full of documents. This is illustrated in
Axes 292 that have non-equally spaced collation units 304 are called non-linear axes 292. Notably, the variation in length of the collation units is the one major distinctive feature that sets non-linear axes 292 apart from the linear ones 292.
Similar to
For the purpose of clarity, this invention only refers to horizontal axes 292. The invention is not limited to horizontal axes 292 only, as it may be applied to vertical or diagonal axes and/or to a mix of multiple of the possibilities mentioned thereof, located within the same axes group 310 environment. The methods described above could also be applied on axes 292 in a multi-dimensional environment.
Moving now to
Similarly to what is shown in
The actual movement of the axes groups 310 may be caused be the user, for example, or by the system. Other parties, such as a manager or managers, may be causing the movement of the display area 314, the discussion concerning this, however, will not be elaborated further as this is not comprised in the purpose of the invention.
The user may use multiple devices to communicate this movement information, such as keyboards keys, like arrows keys, home key, end key, page up key, page down key, etc. Also, the user may utilize a computer mouse, trackpad and touch-screen gestures to communicate this movement. Similarly, other devices like a remote with acceleromator-based devices, body motion sensors and voice recognition sensors may be applied.
In order to make a distinction between an axes group 310 movement and a display area 314 movement, the system may use alternative keys, a interface button for the user, or a configuration option that the user may change. Some special gestures can also be used for the mouse, trackpad, touchscreen, or body motions capture, to distinct the two different actions.
The user may use multiple devices to communicate this magnification and reduction information, such as keyboards keys, like arrows keys, home key, end key, page up key, page down key, etc. Moreover, the user may use a computer mouse and/or trackpad and touch-screen gestures to carry out this magnification and reduction. Other devices like a remote with acceleromator-based devices, body motion sensors and voice recognition sensors may be applied.
Similarly to what is illustrated in
The system may also adjust the position of the axes groups 310 in the same way as when it carries out the magnification of documents 200. The system may adjust the position of documents 200 by attempting to keep the original centered documents 200 as near as possible to the center of the display area 314. This may be attained by adjusting the vertical position of other axes groups 310 in order to avoid undesired empty space between axes 292 and to keep the axes 292 compact.
In order to make a distinction between an axes group 310 magnification/reduction and a display area 314 magnification/reduction, the system may use alternative keys, an interface button for the user, or a configuration option that the user may modify as needed. Some special gestures can also be used for the mouse, trackpad, touchscreen, body motion capture, to differentiate these two actions—the global magnification from the global contraction.
The first document 200 of the axis 292 presented in
Furthermore,
The positions of documents 200 presented on the display area 314 are identified by the xi marks respectively. For example, documents 200.1 and 200.2 are marked by the position x0. Document 200.3 is marked by position x1. Document 200.4 is marked by position x2 and so on. The position of these documents 200 and of any of the documents 200 on the axis 292 or any other axes of documents is defined by the following equation:
f(x)=x Equation 1
In Equation 1, x is the position (i.e. distance often expressed in pixels) of the any given document in respect to the beginning of the display area 314.
If the size of each of the documents 200 and their margins presented in
The movement of the display area 314, however, does not limit to the right direction only. For example, it may also move upwards, downwards, diagonally, on a trajectory defined by a linear or a parabolic function or a combination thereof, in a regular or non-regular form, or in any desired and possible manner and direction. The depiction of the movement of the display area 314 to the right is only for illustrative purposes and does not seek to delineate the purpose of the respective invention.
In
For the purpose of simplifying the explanation provided herein, we will consider the movement of the display area 314 as equivalent to the movement of the individual axes group 310, by enforcing the displacement of every axes group all at once.
In a static positioning system, where the user is unable to navigate content by moving axes groups 310 and/or the position of the display area 314, the method presented in Equation 1 may be an efficient one. However, when navigation is common and may be animated, this method necessitates a constant update of the position of the documents on axes 292. If the axes 292 have a significant number of documents 200, this method could cause the system to have a high Computer Processing Unit (CPU) usage. Moreover, the system may become slow overtime as a result of the need to constantly update the position of each of the documents 200 on the axes 292.
An alternate embodiment would be to consider the position of documents 200 as not relative to the position on the display area 314. This is to prevent the need for updating all the positions of documents 200 when a movement of the display area 314 occurs. This phenomenon is illustrated in
In
Notably,
To determinate the position of an element on the display area 314, we would use the following function:
f(x)=x+b Equation 2
When dealing with multiple axes groups 310, each axes group 310 must have its own b. When navigating, the user and/or the system may only move one axes group 310 at a time or the whole display area 314. When using Equation 2, the movement of the display area 314 would cause each value b (b1, b2, b3, as seen in
One alternate embodiment, illustrated in
f(x)=x+b+t Equation 3
Similar to the displacement of the display area 314 illustrated in
f(p)=∝p+b Equation 4
When adjusting the magnification factor or width of documents α, the b variable would need to be adjusted according to the variation of the magnification factor α.
Let a be the magnification factor and b—the position of the axes group 310. Moreover, let W be the width of the display area 314 in pixels and let α′ (not shown in the Figure) be the new magnification factor caused by the magnification or contraction caused by the user. For that, we would need to define the new position b′ of the axes group 310. If we would like to use the center of the display area 314 as a line of reference, then we could use the following equation to calculate the new position b′:
A second magnification factor may be applied independently on each axis 292 of an axes group 310. Such a case is illustrated in
Furthermore,
When calculating the sizes of the collation units 304, the system needs to take in consideration the relative magnification factors β1 and β2. In
To calculate the position of the document 200 over an axis 292, the system may use the formula described in Equation 3.
The position for each document 200 may alternatively be expressed by the width of the documents 200 of the axis 292. Let axis A (not shown in the Figure) have documents with widths equal to αβA. In that case, in
f
A(p)=∝βAp+b Equation 5
Similarly, as explained in
f(p)=λ∝p+b+t Equation 6
One alternate embodiment is shown in
f(p,q)=(p+q)+b Equation 7
When carrying out an operation that may alter the position information of multiple documents 200 (i.e.: the insertion of documents 200, the removal of documents 200 and the magnification of an axis 292 within a group 310), this method may greatly reduce the number of variables needed to be updated. Moreover, this method may be applicable when the system may need to update the position collation units 304 and of the documents 200, when the ratio of which may be defined in the following manner:
These above equations may be altered to include multiple techniques presented here at once, or adding custom personalization.
The description and the drawings that are presented above are meant to be illustrative of the present invention. They are not meant to be limiting of the scope of the present invention. Modifications to the embodiments described may be made without departing from the present invention, the scope of which is defined by the following claims:
The present application is a non-provisional of, and claims priority under 35 U.S.C. 119(e) to, U.S. provisional application No. 61/585,000, entitled AUTOMATIC ATTRIBUTE ASSOCIATION AND COMPUTING TIME REDUCTION, filed on Jan. 10, 2012, which is herein incorporated by reference in its entirety. Any publication of and any patent issuing from the foregoing U.S. patent applications are hereby incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61585000 | Jan 2012 | US |