The disclosed embodiments relate generally to the field of document processing. In particular, the disclosed embodiments relate to a system and method for presenting electronic notes and to performing local and online actions associated with notes.
Electronic notes have existed for several years. The APPLE NEWTON, manufactured by APPLE INC. was one of the earlier mobile devices to run a note application. Notes were presented end to end, based on user-inputted content through a stylus. Since then, note applications have progressed into other platforms. Currently, MICROSOFT OUTLOOK offers a Note application in which users can create notes, copy content into and out of notes, and color-code the notes. The PALM OS, manufactured by PALMONE INC. offers similar functionality for handheld devices. In those devices, users may set alarms for notes, so that notes provide timed notification functionality.
Note functionality has also been incorporated into other applications. Many core applications of personal information management systems carry note functionality. For example, the Contacts feature of OUTLOOK enables users to enter information about users as if the contact record were a note. The PALM OS enables users to call a note as an attachment to other records.
Electronic note programs are convenient for users to record information quickly. Many such programs do not require users to save content entered into the note, as the content is saved automatically. But most current note applications are cumbersome to use. In general, the current applications require users to open and close individual notes, and they list little information other than metadata about the note to enable the user to select a note to open. In order to locate a particular note, the user must scan through note titles, or additional metadata about the notes, and perhaps open and close several notes until they find the note sought. A search feature provided with some note applications is useful when search terms are readily known, but the search feature does not facilitate scrolling or browsing notes.
In applications such as OUTLOOK NOTES, the user can assign categories for notes. But the process of category assignment is always entirely manual, and requires right-clicking on a category, choosing the Categories command, checkmarking the category to be assigned and then clicking “OK”. When notes carry very limited information (such as a single password), this process becomes very inefficient.).
Notes are often extracted from local content, such as documents, web pages, transactional content, for instance, email and instant messaging, etc. Such content may suggest different types of actions. However, direct assignment and execution of local and online actions to individual notes and to groups of notes is absent from electronic notes systems.
According to the system described herein, managing electronic notes includes storing data for at least one of the electronic notes, determining at least one particular action to be performed based on the content of the at least one of the notes, and automatically performing the at least one particular action. The at least one particular action may be determined automatically based on data stored in the at least one of the notes. The at least one particular action may be determined by a user providing input to select an action. Storing data for at least one of the notes may include extracting key content from a Web page. Managing electronic notes may also include extracting significant terms from the key content using natural language processing. Extracted terms may include at least one of names of goods, names of services, travel destinations, and personal names. Managing electronic notes may also include conducting additional searches of online repositories using the extracted terms to retrieve additional online information. Actions may be recommended to a user based on at least one of: the extracted terms and the additional online information. Managing electronic notes may also include storing additional data and instructions to perform the at least one particular action. The at least one particular action may include at least one of: directing a Web page visitor to product, shopping, finance or other portals, recommending choices based on information obtained from an online price lists, putting a user in contact with a person whose name is found in a retrieved document, retrieving and storing information for a particular company and setting up a stock tracker for the particular company, reminding a user about payments due, making calculations based on note content, and providing concert and event locations and schedules by categories. The at least one particular action may be invoked using at least one of: preprogrammed scripts attached to individual notes and a system-wide action engine.
According further to the system described herein, computer software, provided in a non-transitory computer readable medium, manages electronic notes. The software includes executable code that stores data for at least one of the electronic notes, executable code that determines at least one particular action to be performed based on the content of the at least one of the notes, and executable code that automatically performs the at least one particular action. The at least one particular action may be determined automatically based on data stored in the at least one of the notes. The at least one particular action may be determined by a user providing input to select an action. Storing data for at least one of the notes may include extracting key content from a Web page. The software may also include executable code that extracts significant terms from the key content using natural language processing. The extracted terms may include at least one of names of goods, names of services, travel destinations, and personal names. The software may also include executable code that conducts additional searches of online repositories using the extracted terms to retrieve additional online information. Actions may be recommended to a user based on at least one of: the extracted terms and the additional online information. The software may also include executable code that stores additional data and instructions to perform the at least one particular action. The at least one particular action may include at least one of: directing a Web page visitor to product, shopping, finance or other portals, recommending choices based on information obtained from an online price lists, putting a user in contact with a person whose name is found in a retrieved document, retrieving and storing information for a particular company and setting up a stock tracker for the particular company, reminding a user about payments due, making calculations based on note content, and providing concert and event locations and schedules by categories. The at least one particular action may be invoked using at least one of: preprogrammed scripts attached to individual notes and a system-wide action engine.
An electronic note system is provided that enables users to readily view, organize and locate electronic notes. More specifically, embodiments of the invention provide numerous functions and interfaces in which users may categorize, filter, search and navigate electronic notes.
Overview
Embodiments of the invention include an electronic note management system comprising a storage component, a data manager and a user-interface component. The storage component maintains a plurality of records. The data manager and the user-interface component combine to render a plurality of electronic notes from the plurality of records. The data manager and the user-interface component combine to arrange a given group of two or more notes in the plurality of notes as a sequenced series while the two or more notes are in a rendered state. One or more navigation features may be provided with the user interface to enable a user to navigate (i) from a first note in the group to a next note in the group that is adjacent to the first note in the sequenced series (ii) while the first note and the next note are in the rendered state. Additionally, each of the plurality of records includes data for rendering a content body on one or more notes that are rendered from that record. The data for rendering the content body for each of the plurality of notes may be of one or more data types.
In one embodiment, the data for rendering the content body for each of the plurality of notes may be of a type for rendering an image, a text output (including a rich text output), a markup language content, electronic ink output, or even an audio output.
An output of an embodiment such as described may correspond to a presentation where multiple notes are sequenced on one panel or display area. A navigation feature enables a user to scroll from one note to another note in a seamless manner. It is also possible for the scrolling to enable one note to be more prominently displayed than another note, while both notes are concurrently displayed in the same panel or display area. Additionally, notes displayed in the panel or display area may include content of different types. For example, a user may scroll from one note in a sequence that displays an image to another note in the sequence that displays text, or a combination of text and image. The electronic note system then enables the presentation of notes to be a hub where user-selected content can be stored and retrieved for quick access. The ability of the user to seamlessly navigate from one note to another note on the same presentation further enhanced the user's ability to view the content and quickly retrieve selected content when desired.
Embodiments of the invention include features to enable users to organize and rapidly locate specific notes. Specifically, the user can organize and locate specific notes without knowing exactly where an individual note is provided in the presentation, or even what is contained in the note. Organization features include the ability to automatically categorize notes, or for users to manually categorize notes, and to render notes using category filters. The category filters may be simple or more complex. For example, the user may filter notes based on a single category or based on two categories. In the latter case, the filter may produce notes that are in both categories. Alternatively, based on user-preference or selection, the two category filter may yield all notes that are in one or both categories.
Furthermore, the ability to locate notes may be enhanced by a search feature. In one embodiment, the search feature compares a search criterion with the content bodies of notes to identify notes that match the criterion. Other examples of features that facilitate the location of notes include a time band (e.g. a calendar based time band) and a histogram that reflects how many notes were created and/or modified on a given date.
A note is an item having content that is rendered by an application. A note may be rendered from a record. When rendered, a note may automatically save any change (including creation, modification or deletion) to the note's content in response to any input event that causes such content changes to occur. Examples of input events include alphanumeric entry from a keyboard; a gesture made through use of a gesture input device (digital pen, stylus, WRITE ANYWHERE (manufactured by the MICROSOFT CORPORATION) pointer); electronic text and document selection, copying and pasting; a click and drag of a displayed object through an on-screen pointer; or automatic import of digital camera and camera phone snapshots. Other attributes or characteristics of a note may include (i) a limit as to its size, (ii) a medium to provide access or view of other content while maintaining a size that is small relative to those other sources of content.
The act of scrolling means that one or more given content items progressively move from one location to another location on a display area.
Ink data refers to image data that replicates a user's gesture or stroke, as made through a user-controlled object, such as a finger, stylus, electronic pen, and mouse/pointer continuous movements. For example, the finger or stylus may be moved over a detection pad, or a touch-sensitive display. As another example, a pointer can be moved to replicate a cursive handwriting stroke (e.g. as provided in the WRITE ANYWHERE application).
Embodiments described herein are not platform or device specific, and may be implemented through the use of executable instructions that can be stored and/or used in any computer-readable medium. One or more embodiments described herein may be implemented through the use of instructions that are executable by one or more processors. Methodologies, systems, and components described in this application provide examples of processing resources and computer-readable mediums on which instructions for implementing embodiments of the invention can be carried and/or executed. In particular, the numerous machines shown with embodiments of the invention include processor(s) and various forms of memory for holding data and instructions. Examples of computer-readable mediums include permanent memory storage devices, such as hard drives on personal computers or servers. Other examples of computer storage mediums include portable storage units, such as CD or DVD units, flash memory (such as carried on many cell phones and PDAs), and magnetic memory. A computer-readable medium as used herein may extend across multiple machines. For example, the medium may be distributed between client and server in order to perform a stated task or operation.
Electronic Note System
In one embodiment, the data store 114 is a relational data structure, such as a database in which one or more tables are maintained. In another embodiment, the data store 114 stores data items that emulate relational data structures. Additional description of such an embodiment is provided below. The data manager 116 may access records from the data store 114 and present the records through UI 118. Numerous actions, operations and uses for notes may be performed or implemented through the use of the data store 114 combined with the data manager 116. In addition, the UI 118 provides a mechanism by which a user may enter input and otherwise interface with the electronic note system 110. The UI 118 may include one or more skins to facilitate the graphic display of the presentation of notes.
In one embodiment, the API 112 includes one or more applications that are capable of interfacing with multiple types of applications and/or devices so that individual notes can include content of different types. In one embodiment, the API 112 includes a routine or program for every application or device that interfaces with the electronic note system 110. For example, one presentation of electronic notes may include individual notes that have the following content: image (e.g. JPEG, GIF or PDF), text, ink, web-based (e.g. HTML), audio and video. In an example provided by
In addition, the API 112 may be configured to import data from (or export data to) to other organization applications, including for example, MICROSOFT OUTLOOK (manufactured by the MICROSOFT CORPORATION). In addition, the electronic note system 110 may interface with numerous_other types of devices and applications in order to provide or access different kinds of data. As an example, an interface may be provided to an audio input device, such as a microphone, so that a note can be used to access recorded audio information. The interfaces may allow notes to be imported and exported amongst different machines and devices, including amongst devices having different operating systems and/or platforms (e.g. between desktop computer and smart phone).
Notes provided by the electronic note system 110 may display or otherwise render content of different data types from numerous different sources. However, embodiments of the invention also allow notes to carry locator links to content. For content such as image data, notes may carry thumbnail views of images. In either case, the locator links and thumbnails are selectable to access a specific document or file.
As will be described, the data manager 116 and UI 118 may combine to provide notes in a categorized manner. Multiple notes may be provided at one time. Furthermore, in an embodiment, notes are sequenced, and multiple notes may be rendered at once based on category and sequence. Each note may carry content of a particular type (e.g. image, text, web-based), regardless of what other adjacent and rendered notes are displaying in the presentation provided by the electronic note system 110. Each note may also carry a combination of data types, such as for example, a combination of text and image, ink and text, or audio and text.
An embodiment provides that an electronic note system 110 such as described may be extended to multiple devices, machines and resources of the user. For example, the user may share the electronic note system between one or more of the following: (i) desktop computer for work, (ii) desktop computer for home, (iii) smart phone (e.g. a cell phone with organizational applications and email capabilities), (iv) personal digital assistant (PDA), and (v) an Internet account. The Internet account may require the user to enter a user log in and password in order to view that user's collection of electronic notes, similar to many Internet email applications. In fact, the electronic note system 110 may be integrated with an Internet email account, as well as with a local email application on a desktop or other device. If more than one device or resource is used to carry records from the electronic note system 110, a synchronization feature may be provided using one of the many synchronization protocols available. For example, one embodiment may compare individual notes that correspond to one another in order to see which note was most recently updated, then overwrite the note that was older. Alternatively, notes from one system may overwrite all other notes on another system (e.g. desktop device overwrites cell phone records) with each synchronization. A synchronization operation may be performed over numerous connection mediums, including serial port or local connections, network connections, and wireless (e.g. Bluetooth and WIFI) connections.
Features and Functionality of Electronic Note System
Step 152, electronic note system 110 detects one or more designated actions that the user performs in order to initiate/cause content to be copied and/or moved from a source to a note. The source may include a document, such as a text document (e.g. WORD file), an image file, or HTML page. The source may be located locally, on a connected computer (such as through a direct connection, a local area network or other network connection) or on a website. The one or more actions may be designated actions that trigger the electronic note system 110 into performing a method of
Alternatively, an embodiment provides that the actions of the user may be performed with or through the UI 118. For example, UI 118 may include a feature that can be actuated in order to initiate performance of a method such as described in
In step 154, the source location of the copied content is recorded by the electronic note system. This may occur at time when the one or more actions are first initiated. In one embodiment, the source location of the content is identified using metadata that is generated by the operating system of the terminal on which the electronic note system 110 is provided, in response to a copy content operation. For example, with MICROSOFT WINDOWS operating system, the clipboard records the metadata. The electronic note system 110 may retrieve this metadata from the clipboard in this step. In an embodiment where the user actuates a feature on the UI 118 to record the source of content, a program or script of the electronic note system 110 may be executed to record the source location of the content that is subsequently copied.
In step 156, a resource locator for locating the source of the content is generated based on recorded data corresponding to the source of the copied content. For example, a uniform resource locator (URL) or similar form of link may be generated by data manager 116 to correspond to the location of the source content recorded in step 154. In one embodiment, the data corresponding to the source of the copied content is metadata provided on the clipboard of the operating system. Thus, a URL or other locator to the source of the content may be generated from metadata carried in the clipboard.
Step 158 provides that the URL or resource locator along with the copied content are copied into a content body of an electronic note. In one application, the URL or resource locator may be embedded in a designated portion of the note. Subsequently, the user may select the locator in order to access the document. For example, if the locator is for a WORD file stored locally, the WORD application and file may be opened. If the locator is for a content on a website, the browser may be launched with selection of the locator. The locator may then be signaled to the browser so that the browser can access and load a web page corresponding to the source of the content item. For example, the note can be displayed through UI 118, with a selectable URL to the source of the content.
In an embodiment, one or more steps recited in a method such as described in
Alternatively, an embodiment provides that features from UI 118 are made persistent or otherwise extended to other embodiments for purpose of invoking functionality and operations from the electronic note system 110. In one embodiment, an icon may be provided on a toolbar or other region of an open application, in combination with an open document or item. Selection of the icon by the user may trigger the electronic note system 110 to copy content from the open application document to a new note. In addition to importing data from the application into a new note (or alternatively causing the other application to export data into the new note), actuation of the icon may cause the electronic note system to record and/or generate a resource locator of that document in the same note.
Action Notes
According to an embodiment, the electronic note system 110 may schedule, manage and perform one or more actions automatically with individually designated notes or sets of notes. In one embodiment, individual actions are associated with select notes, and the actions are performed automatically as further illustrated on
Step 170 on
Step 172 provides that the desired action is associated with a specific note. For example, the user may select the action (email a note as an attachment) and then select a note. One embodiment provides that the selections for performing this step are performed by the user through the use of UI 118. For example, UI 118 may include features corresponding to pre-programmed scripts that can be executed on selected notes. Alternatively, an interface may be provided for the user to create his own script for performing a defined action. Still further, a wizard or programmatic assistant maybe provided to facilitate the user in creating and defining scripts for performing automated actions using specified notes.
Step 174 provides that timing information is received for when the desired action is to be performed using the specified time. The user may specify or indicate a time in which the desired action is to be performed on the specific note. For example, a calendar or other timing mechanism may be provided to the user through the UI 118 to enable the user to select one or more times for the action to occur. The calendar may be provided as part of a wizard or prompt when the user defines the desired action. To provide a specific example, the user may select that a note, or its content body, or even a link to the source of the content for the body, to be sent via email to a designated user at 8:00 AM of a particular business day.
In step 176, a time corresponding to the timing information is detected by the electronic note system. At that time, the action is triggered and the desired action is carried out using the specified note. It should be noted that triggering mechanisms invoking action notes may include a variety of criteria, such as time, location, changes in the note content or in associated notes, arrival of a new content to the system, as well as events outside the system, such as content changes on websites automatically visited by the system, web search results, direct user instructions, etc.
Specific desired actions contemplated under embodiments of the invention may include the following: sending emails based on information in note items; deleting notes at specified times, retrieving content from a desired network site at a desired time and then copying that content onto a note; password-protecting a note after a certain period of time has elapsed; and retrieving emails and copying the contents of the emails into selected notes. Once the user specifies the desired action, the timing information and the specified note, the subsequent action may be performed automatically. It is also possible to have the actions performed automatically through one of the interfaces, without applying a note. For example, in one embodiment, a user may configure the electronic note system 110 to interface with and send an electronic message through an email application.
In another embodiment, action notes are built as part of a content processing route, as illustrated in
Key (principal) content may be extracted from the visited Web page: the key content may be an article, a list of search results, news headlines or other repeating items, etc. During such content extraction, supplementary, ornamental, promotional elements, forms, scripts and other secondary portions of the Web page may be dropped and the principal content may be reformatted for better comprehension. This is illustrated by the “smart clipper” browser plugin 1115 at the step 11-1, such as the Clearly application developed by the Evernote Corporation of Redwood City, Calif.
Significant terms (keywords, expressions, proper names) may be retrieved from the document or the principal content of the Web page using natural language processing (NLP) software 1130 at the step 11-2; the resulting list of terms 1135 is illustrated at the step 11-3. Examples of terms are names of goods, services, travel destinations, personal names, etc. The step 11-3 may use Named Entity Recognition and other NLP methods; relevance of captured terms to the existing content of the electronic note system may also be taken into account.
The system may enhance retrieved terms by looking up related terms in online repositories 1145 depicted at the step 11-4, utilizing online lookup and analysis software 1140. For example, social networks, such as LinkedIn or Facebook, may contain contact info, bio and other information about a person when the system searches by a name found in a document/Web page. Product data integration sites, such as Retrevo, may be used for obtaining different information about products (in case of Retrevo, electronic products). Stock listings may provide ticker symbols for searching by company name and vice versa; etc. Enhanced and categorized content 1150 retrieved from online repositories may be offered to the user for approval and filing, as schematically illustrated by a checkbox for one of the categories of enhanced content.
As presented at the step 11-5, the system may subsequently store original documents and principal pieces of web pages, in the original or clipped format, side-by-side with the accompanying enhanced and categorized data and/or references obtained from online sources in a personal database 1155, such as an Evernote notebook. Examples of such notes are illustrated by items 1160 at the step 11-5 showing different combinations of the original web pages or documents or their clips with the retrieved portions of enhanced information.
Based on the extracted keywords and enhanced info obtained online, the system may recommend to the user certain actions related to the incoming content and, with user approval or automatically, store instructions and data to perform such actions in conjunction with newly created or existing notes. Alternatively, the system may enhance previously existing action notes and use the enhanced content to the extent presumed by the actions.
Actions may include: directing a Web page visitor to product, shopping, finance or other portals; recommending choices based on information obtained from online price lists; putting the user in contact with (or providing contact info and/or bio and/or social profile) of a person whose name was found in an incoming document; retrieving and storing company info and setting up stock tracker for that company; reminding about due payments, including those made via online banking; making calculations based on note content (for instance, summing up dollar amounts in stored data after interacting with an expense management portal); providing concert and event locations and schedules by categories; etc. Two examples of note actions are presented as items 1175 at the step 11-6: one is related to furniture shopping based on incoming article and on retrieved enhanced information; another action is messaging with people whose contact information has been retrieved as part of the enhanced information for social networking sites or other online repositories.
In some embodiments, the system may invoke action notes via preprogrammed scripts executed on such notes, as explained elsewhere herein and illustrated by the script 1165 at the step 11-5. In this example, script 1165 checks action triggering events and sends a message related to the note content, utilizing contact information that has been retrieved from the incoming content at steps 11-1 and/or 11-2 and enhanced by visiting online repositories 1145 at the step 11-4. Autonomous scripts may be attached to individual action notes and may perform actions based on triggering events that may depend on the note or system status, as well as on events external to the note-taking system (such as a special discount in an online store or a start of an art show to a nearby museum). The scripts may also depend on other actions. Autonomous scripts may be pre-programmed by the system without user participation or by the user interacting with the system via a wizard or a programmatic assistant, as explained elsewhere herein.
In other embodiments, note actions may be fulfilled via the system-wide action engine, illustrated by the item 1170 at the step 11-6. Such engine may scans notes in the personal database, extract action notes, check triggering events and execute the actions. Scheduling and triggering note actions are explained elsewhere herein and are illustrated on
In other embodiments, note scripts may be combined with the system-wide engine and provide hybrid execution of note actions. In one example, note scripts are responsible for checking triggering events in the asynchronous mode and are notifying the system-wide engine when triggering events are fulfilled, while the system-wide engine analyzes note parameters directly related to the action and executes the action. In another example, the roles of the two action engines are reversed and the system-wide engine scans notes and detects triggering events, while action scripts analyze note parameters and action type end execute actions. Other compositions of action engines are also possible. Thus, in the above example of a wake-up note, the note script may asynchronously check the triggering conditions and may notify the system-wide engine to invoke a buzz function at 7 am for 30 seconds. Then, the note script may check if the note has been opened before 7:30, and if not, the note script may notify the system-wide engine to repeat the buzz for one minute.
Note Presentation
The notes that appear in the panel 185 may be at least partially sequenced. For example, multiple notes in one category may be sequenced to appear in a particular order when that category is selected. In the example shown, the notes are sequenced in a top-down orientation to simulate an endless tape presentation, as described in later embodiments. Furthermore, if there is space on panel 185, notes from different categories may be displayed at the same time on the panel 185. One or more navigation features 183 may be provided with the presentation 180 in order to enable the user to scroll or otherwise navigate displayed notes 186, 188, 190 and/or category features 182.
In an embodiment, the note items each include a content body where content is displayed on the respective note. In addition, each note may include one or more of the following: a category identification (e.g. “Hobby” is identified for note items 186 and 188), and a time stamp 191 indicating either one or both of when the note was created and/or modified. The panel 185 may simultaneously display notes 186, 188, and 190, each carrying content of a different data type in the content body 193. The content body 193 for note 186 is shown as a markup language data type, including a live website link 195 that when selected, triggers the web browser to retrieve a corresponding web page. The note 188 includes image content (e.g. GIF) in its content body 193. Also included in its content body is a local link 196 to a source (e.g. hard drive file) where the full image may be found. The website link 195 and the local link 196 may be recorded in the respective notes 186, 188 through a method such as described in
While an embodiment shown by
Data Management System
Embodiments of the invention provide for the creation and use of self-contained data items that can be independently arranged or assimilated into traditional forms of data structures.
For example, self-contained and independent data items may be aggregated to emulate tables, flat files and directories. The data items are self-contained, because each data item is accessible and operable by itself, independent of other data items, data structures (e.g. tables), or rules that control access to data in such data structures. Data items may be individually aggregated and structured through implementation of links between data items. As will be described, a combination of linked data items, when considered as a whole, may define or represent a traditional data structure, such as a database. Moreover, because each data item is self-contained and independent, the same data item may form an element of another data structure, without a copy of the data item being used. Thus, it is possible for one single data item to be used for two separate representations of traditional data structures. For example, one data item may be a cell in two completely different “rows” of two different tables emulated from an aggregate of the data items.
Embodiments such as described compare favorably to the traditional database approach for numerous reasons. A traditional database employs a rigid data structure of tables having rows, and individual cells of a table cannot be accessed without reading an entire row. For example, an operation performed for one cell in a table is typically performed for an entire row of the table, and entire rows are copied to perform simple operations on data of individual cells. The result is that traditional databases require significant processing resources and memory, making such databases impractical for small computing devices, such as smart cell phones.
In contrast, embodiments described herein enable such traditional data structures to be simulated, so that the end user or application follows all the rules of the data structure in operating and using data items. At the same time, data items may be shared amongst multiple data structures without need for those data items to be copied, and the same data items may be individually accessed without need for the application or end user to access other data items (such as in the database example, where an entire row is accessed to retrieve one cell).
In an embodiment, the data items may be individually associated with each other so that the items can be queried or used in the exact same manner as a traditional database. But in fact, the items are not contained in designated rows or columns, but rather are individually associated with the equivalent of multiple rows and tables. Furthermore, the items may be used to simulate more than one type of data structure simultaneously, such as for example, multiple tables and/or directories.
According to an embodiment, a data item is defined to include the following: a global unique identification (GUID), a local unique identification (UID), and one or more attributes. Attributes correspond to named entities of one of the predefined types: link, text, integer, date and BLOB (Binary Large Object). There can be more than one attribute with the same name and type stored in a single item. Item attributes such as provided by embodiments of the application may be considered to be similar to table row fields in traditional databases; however, data items do not necessarily have the same set of attributes as have table rows
The GUID of a data item identifies that item from any other data item in the universe. Thus, the GUID may be used to identify a particular item when an item is exported from one computer to another computer. In one embodiment, the GUID corresponds to a 128-bit data value that is based on a time-stamp and a device/card identifier. The GUID may be a persistent feature of any data item. The UM may identify a data item locally. In one implementation, each UID is a persistent and sequential assignment that references an individual data item to a pointer in memory where the data item is located. At a minimum, one embodiment provides that the UIDs of all data items in a particular data store are valid between an opening and closing of the database. Furthermore, the UIDs may be persistent while the application of the data store being opened and closed, so that in most cases, the UIDs can be carried over from one session to the next.
In one embodiment, the text attribute is used to store text strings. One implementation provides that text strings are stored with a data item in UTF8 format as required for international character support.
Date attributes store one or more date values. Date value may be represented as an IEEE double format, where the integer part corresponds to the number of days since January 1st 0000 (may be negative) and the fractional part corresponds to the part of a day (that is 1/24 is an hour). This allows a wide range of dates to be stored, in a simple format that is universally compatible and compact.
A BLOB attribute corresponds to an array of bytes. A BLOB attribute may not be a database interpretable attribute, but data stored as a BLOB attribute can be interpreted through an application, such as a Word file or image.
Link attributes store one or more references to other items. Link attributes have direction. That is, if item1 is linked to item2, then item2 is also linked to item1 with a backward link of the same name, thus links are always double ended. Links may also have relation types: 1:1, 1:N, M:1, M:N; when N and M>1.
In
An embodiment provides that the reference made by each link attribute is bi-directional, so that when one note is referenced by the link attribute of another note, the other note makes reference back with its own link attribute. Thus, for example, the link attribute 219 of the first note item 220 makes reference to the: first category item 210. Likewise, second category item 216 makes reference back to the first category item 210, and the type of link attribute 215 indicates that the second category item is to be a subcategory of the first category.
An embodiment shown in
The formation of hierarchical structure 250 from data items shown in
In order to emulate databases, it is possible for the row items to carry cell values as separate attributes. Databases may be emulated based on different arrangements of rows that correspond to row items.
As an alternative, separate types of data items may exist for individual cells of the database. In an example provided, three cell items are shown: first cell item 340 having link attribute 339 and identification 341 (ID:006), second cell item 346 having link attribute 345 (ID:007) and identification 347 (ID:007), and third cell item 352 having link attribute 351 and identification 353 (ID:008).
The link attribute 309 of the first table item 310 makes reference to the first row item 320 and the second row item 326. The link attribute 315 of the second table item 316 makes reference to the second row item 326 and the third row item 332. The link attribute 319 of the first row item 320 makes reference to the first cell item 340 and second cell item 346. The link attribute 325 of the second row item 326 makes reference to the third cell item 352. The link attribute 331 of the third row item 332 makes reference to the second cell item 346. As mentioned above, each of the references in the link attribute may be bi-directional. Thus, for example, in the case of the link attribute of the first cell item 340, the link attribute 339 makes reference to the first row item 320 and to the third row item 332.
As with an embodiment described in
The transaction manager 526 implements parallel transaction support for atomic database updates. As part of its operations, the transaction manager 526 may create a transaction log that records operations performed on data items in the data store 510. This transaction log may be exported to other computers for purpose of performing synchronization operations. A synchronization operation may be carried out by, for example, (i) exporting data items from the data store 510 to another device at an initial time (t=0), and (ii) exporting the transaction log at a later time (t=1) so that another transaction manager implements transactions in the transaction log that were performed on the original data store between t=0 and t=1.
The query processor 526 implements a language compiler, optimizer and evaluator. In one embodiment, the query processor 526 is Structured Query Language (SQL) based, while in another embodiment, a specialized query language may be used. In one embodiment, the specialized query language is based on the use of predicates, including mathematical and Boolean predicates, for performing comparison operations on the data items.
In step 710, a data item is detected as being changed. For example, the user may edit, delete or create content from the content body of the note.
Step 720 provides that the data item is copied into a new note. This copy is a historical version of the note in use. When copied, what happens is that (i) a new note is created and assigned a UID, and (ii) the “CONTENT” attribute (see
In step 730, changes are recorded to the note in use as they happen. According to one embodiment, the changes may alter the “CONTENT’ attribute of the note in use, but the changes do not affect the historical note.
As an example, an embodiment such as shown in
Using data items as structured in the aforementioned embodiments for purpose of emulating different data structures and schemas provides several advantages. Among these advantages, data carried in the data store is more portable, and better suited for different platforms, because much less data is needed to perform various operations. In particular, a data store such as described in
Numerous applications are possible for using a data management system such as described in the above embodiments. For example, one application includes using the data management system 510 is to provide data for loading and rendering dynamic web pages. The data items stored in the data store 510 may include items carrying content and search criteria, either in the content or through category assignments. When a web page search is performed, an initial match of an item in the data store may rapidly yield additional matches, because the identified item includes links to other items. When a match is made to a category, for example, all data items under that category are instantly identifiable because the category item includes links to all the matching items. Thus, on an e-commerce site, an author search for a novel may locate a category for that author. Then, every item under that category is instantly identifiable because of link attributes in the category item. In contrast, a traditional database approach would require the advance preparation of a huge number of indexes or the real-time scanning of tables and rows to individually locate each matching item to the search criteria.
Categorization
Embodiments of the invention provide for organizing a collection of notes in categories. Categorization provides a mechanism by which users can (i) organize or file notes and (ii) filter what notes are rendered by the UI 118 of the electronic note system 110. A mechanism by which users can readily assign categories to notes and filter notes by category becomes increasingly useful as the number of notes stored by the electronic note system 110 grows.
Another visual aid to facilitate organizing and locating note is the note count feature 816 provided on each category feature 815. The note count feature 816 provides a value that corresponds to the number of notes that have been assigned a particular category of the corresponding feature 815. If a new note is created and assigned to a category, the note count feature will increase by 1.
Embodiments of the invention provide that multiple category assignments to be made to any one single note. For example, a password note containing passwords to financial sites of the user may be categorized under two categories: “Passwords” and “Financial”.
In an embodiment, notes may be assigned to categories in one or more of the following ways: (i) automated and by default, (ii) manually by the user and (iii) automated and by user-definition. In an embodiment, the electronic note system 110 includes numerous default categories, and each newly created note is assigned to one of the default categories automatically. In one implementation, the default categories are based on a data type of the content body of the note (e.g. types of text, image, web-based, ink). For example, notes that contain ink content are assigned to a category “Ink”, while notes that contain content copied from a website are assigned to a category “Web”. Furthermore, this categorization may be automatic, in response to detecting a type of the input. For example, the electronic note system 110 automatically detects “ink” input, and records the input as “ink”. Furthermore, the electronic note system 110 may automatically categorize the note as an “Ink Category”.
Selection of category features 815 corresponding to those categories will cause the electronic note system 110 to render all notes that were given those automatic assignments. Numerous other properties or characteristics about a note may determine an automatic default categorization of that note. For example, the type of device that created the note may cause the note to be associated with a category that is assigned to that device. To further the example, images provided by a camera device may be stored in a category “Pictures”. Furthermore, the user may use templates, and the templates may cause the electronic note system to store a given note in a particular category.
As an additional categorization tool, an embodiment permits a user to manually assign categories to rendered notes. The user may either assign an existing category to a specified note, or create a new category and then assign that note to the newly created category. The act of assigning a category to a note may be accomplished in any one of several ways.
In an embodiment, the user may create one or more filtering criteria. If a note is created or modified to include the criteria, the note is automatically categorized in that category.
In the example provided, the argument field may be typed in by the user and/or selected from a menu list. Once a subsequent note is created or modified to satisfy the criteria of the property field and/or argument field 866, the note is automatically assigned to the category named in field 862.
Another technique for creating user-defined categories for automatic categorization is to save search terms. The results of a saved search term may be used to define a category. A category name may also be provided that matches or corresponds to the saved search term. For example, if the user performs a note search (described below) for “Password”, the search is conducted using content in the body of individual notes. The search term may be used to name the user-defined category. Subsequently, any note that is created or modified and which satisfies the search criteria of including “password” in its content body is then automatically assigned to that category. In the example provided, a new category field 815 is created named “Password”, and each note that is created/modified to contain the term “password” is automatically assigned to that category.
As described, individual categories may be used to filter a set of notes from the whole. According to one embodiment, it is also possible to filter notes from the whole using two or more categories.
What the intersecting category feature 870 allows is for the user to use filtering to quickly locate and view a small set of notes. For example, the user may need his online banking password. The user may know that the password is contained in the category Password, but it may not be readily apparent to him that the password may also be stored under the category of Financial. When the user filters all of the notes with the Password category, the user is presented with not just notes in that category, but a list of all additional categories that the notes in the Password category belong to. He sees the “Password” Category has three notes, so he can assume that there are three notes that carry passwords for financial accounts/resources. He then can make a sub-selection of the “Financial” category on the assumption that the password for his online banking account will be categorized under both “Password” and “Financial”.
The use of the intersecting category feature 870 may be progressive past two selections of intersecting categories. In one embodiment, there may be a first category (“A) selection from the first panel 810, then a second category (“B”) selection from the intersecting category feature 870, which yields in second panel 812 a set of notes that are in both category “A” and category “B”. At this point, the intersecting category feature 870 may display additional categories, for notes that are in A, B and a third or more categories. Selection of a third category from the intersecting category feature 870 may yield in the second panel 812 the set of notes that are in A, B and C. In this way, when there are many notes in a particular category, the intersecting category feature 870 enables the user to quickly locate a desired note using a progressively narrowing set of intersecting categories.
Note Search
In addition to category filtering, embodiments of the invention may provide a search tool to quickly locate a desired note that contains in its content body a specific characteristic that is specified by the search criteria. In an embodiment, the search criteria specify a string of characters, such as a keyword, so that all notes that contain the particular keyword are returned as the search result. Other examples of search criteria include a data type of a note's content body, and a date or date range corresponding to when a note was created or modified.
To facilitate rapid searching and identification of notes, an embodiment such as described in
In the example provided, the user's search string is PASSWORD. When the user enters P, the return integer 906 is 50. When the user enters A, the return is 46. The return integer value decreases with subsequent character entries. However, as shown by the example, a point may be reached before the user has completed the string in which no reduction in the return integer is achieved with the addition of character strings to the search term. In the example provided, the integer value's minimum is reached with PASSW. At this point, there is no additional benefit in the user completing the search string.
Endless Tape Presentation of Notes
Embodiments of the invention provide for a presentation in which notes are arranged in a rendered state to be seamless and sequential. Referring back to
The endless tape presentation may be best viewable by the user when the user selects the “ALL NOTES” feature 855. This feature removes all filtering from the presentation of notes in the second panel 812. All notes are then presented in a sequence, end-to-end, in a scrollable or navigable manner. This allows the user to scroll and read notes, and since the notes are in a rendered state, the user does not have to open and close individual notes. The sequencing of the note provides the user with a sense of order in viewing the notes, so that the user can better locate a note or determine the context of a note while scrolling.
Time Band
Another feature that facilitates the user in locating individual notes is a time band feature 880. The time band feature 880 may display date, time and/or calendar information adjacent to the tape presentation of the notes. The time band feature 880 facilitates the user in locating a spot in the tape of notes where a particular note may be found. For example, the user may know that he created a new note to store a password in the month of March. In one embodiment, the time band feature 880 is implemented as a continuous bar from which the user may select points or regions using, for example, a pointer or mouse-click. When the region or point of the time band is selected, the presentation shifts to display notes that were either modified or created in the time range specified by the user's selection. Thus, in the example provided, the user may browse all notes created in March using the time band 880.
An embodiment provides that the time band feature 880 is calendar based, meaning it lists days, months or weeks. Furthermore, the time band feature 880 may extend lengthwise in a direction of the tape presentation. It can run alongside of the second panel 812, so that the user can view date/time information of notes that appear in the panel 812 at any given instant.
Activity Marker
In addition to time band 880,
Activity and Time Band Configurations
The time band feature 880 and the activity band 890 each provide a mechanism by which users can browse and locate notes, using visually presented date/time and calendar feature.
Accelerator
As a scroll or navigation feature, embodiments may employ a variable speed scroll feature. Referring to
In addition to varying speed in relation to the position of the scroll bar, an embodiment provides that the scroll speed of the notes in the panel 812 may accelerate, particularly when the scroll bar 895 is moved farther away from the centerline. Thus, for example, when the user knows he needs to move from the end of the tape to its beginning, the user can move the scroll bar 895 far from the centerline and effectuate an increasingly faster scroll speed until the beginning is reached. Such a function enables scrolling through notes rendered in an end-to-end fashion to be performed very rapidly.
Additional Features
Embodiments of the invention permit users to assign colors to individual notes. The assignment of colors may be automated, similar in manner to how notes may be automatically categorized. Thus, the user may configure the electronic note system 110 to assign a color for a particular category or data type or other distinguishing characteristic of the note.
Since notes may contain confidential information, a user may be able to individually password protect notes. Notes may be password protected individually, even if other notes in a similar category are not password protected. Furthermore, it is possible for only a portion of the overall content provided by a note to be encrypted or locked. For example, the user may make the introduction portion of a text in the content body unprotected, so he can see what is in the note when he is subsequently browsing the notes. But sensitive information in the same note may be blocked from view and password accessible.
While embodiments described herein incorporate user-interface features and functionality with a system that manages electronic notes, it should be apparent that many user-interface features and methodologies may be implemented with other file and record management systems, or just simply in other contexts. That is, many features (such as the accelerator bar or the histogram) may be used in other applications and file systems.
According to an embodiment, the electronic note system 110 is capable of interfacing with devices and sources from which media content may be provided. In one embodiment, when the electronic note system 110 is interfaced with a media source, the electronic note system takes some action to capture media in the content body of a note. The electronic note system 110 may also take some action to categorize or arrange the note in relation to other notes. In one embodiment, the electronic note system 110 may be used to receive images from a digital camera. The image may be captured and copied onto the content body of the note, either automatically or manually by the user. Once captured, the note may be arranged. For example, the image may be placed at the “end of the tape” as a new note. As an additional or alternative, the note may be categorized based on, for example, the type of device (e.g. digital camera) or the source that provides the image, or based on the type of data that is received (rich image data).
In some embodiments, additional components of the electronic note system 110 process unstructured content of documents or web pages, resulting in targeted actions derived from diverse elements of content. The process may involve social network sites (SNS), online product repositories and other sources of verified and enhanced information.
Although illustrative embodiments of the invention have been described in detail herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments. As such, many modifications and variations will be apparent to practitioners skilled in this art. Accordingly, it is intended that the scope of the invention be defined by the following claims and their equivalents. Furthermore, it is contemplated that a particular feature described either individually or as part of an embodiment can be combined with other individually described features, or parts of other embodiments, even if the other features and embodiments make no mentioned of the particular feature. This, the absence of describing combinations should not preclude the inventor from claiming rights to such combinations.
Various embodiments discussed herein may be combined with each other in appropriate combinations in connection with the system described herein. Additionally, in some instances, the order of steps in the flowcharts, flow diagrams and/or described flow processing may be modified, where appropriate. Subsequently, elements and areas of screen described in screen layouts may vary from the illustrations presented herein. Further, various aspects of the system described herein may be implemented using software, hardware, a combination of software and hardware and/or other computer-implemented modules or devices having the described features and performing the described functions.
Software implementations of the system described herein may include executable code that is stored in a computer readable medium and executed by one or more processors. The computer readable medium may be non-transitory and include a computer hard drive, ROM, RAM, flash memory, portable computer storage media such as a CD-ROM, a DVD-ROM, a flash drive, an SD card and/or other drive with, for example, a universal serial bus (USB) interface, and/or any other appropriate tangible or non-transitory computer readable medium or computer memory on which executable code may be stored and executed by a processor. The system described herein may be used in connection with any appropriate operating system.
Other embodiments of the invention will be apparent to those skilled in the art from a consideration of the specification or practice of the invention disclosed herein. It is intended that the specification and examples be considered as exemplary only, with the true scope and spirit of the invention being indicated by the following claims.
This application is a continuation-in-part of U.S. patent application Ser. No. 10/936,193 filed on Sep. 7, 2004 (pending), and claims priority to U.S. provisional patent application No. 61/621,203 filed on Apr. 6, 2012, both of which are incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
61621203 | Apr 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10936193 | Sep 2004 | US |
Child | 13664667 | US |