Clipping services may permit one to save content of a clippable section of a network document, such as, for example, a web page, or any document that is available over a network. Some clipping services may permit a portion of content of a network document to be copied and saved via, for example, a cut, copy and paste type metaphor. In other clipping services, custom scripts may be written and downloaded to be run in a context of the network document. The custom scripts may search the network document for items that may be clipped or copied to the clipping service. However, the custom scripts may not be suitable for all varieties of network documents that may exist.
Use of custom scripts may create security, privacy, and trust issues. For example, if a custom script is shared among a set of users, an unscrupulous user may create a custom script, which may be used by unsuspecting users. The custom script may copy passwords, or other information, which may be sent to a network service where the unscrupulous user may access the passwords.
This Summary is provided to introduce a selection of concepts in a simplified form that is further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
In embodiments consistent with the subject matter of this disclosure, a system and a method may be provided for defining clippable sections of a network document. A network document may be displayed on a processing device executing an application, such as, for example, a network browser, or other application. Via the application, a user may indicate a desire to define clippable sections which may be applicable to the network document. The clippable sections may be defined by walking through a document object model of the network document to find a repeating pattern. A visual indication may be provided to illustrate a current definition of the clippable sections. The clippable sections may be defined without executing any scripts.
In some embodiments, a selection of a portion of a network document corresponding to a defined clippable section may cause content of the clippable section to be saved to a list. The list may be stored on a processing device executing the above-mentioned application or the list may be saved on a remote processing device, such as, for example, a server. The list may be made accessible to other users.
In other embodiments, defined clippable sections may be stored on a remote processing device, such as a server. Ones of the defined clippable sections may be made shareable with other users. Users' processing devices may provide, to the remote processing device, usage information with respect to usage of ones of the defined clippable sections on the users' processing devices. The remote processing device may determine most popular similar ones of the defined clippable sections and may automatically download the most popular similar ones of the defined clippable sections to the users' processing devices.
In order to describe the manner in which the above-recited and other advantages and features can be obtained, a more particular description is described below and will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments and are not therefore to be considered to be limiting of its scope, implementations will be described and explained with additional specificity and detail through the use of the accompanying drawings.
Embodiments are discussed in detail below. While specific implementations are discussed, it is to be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the subject matter of this disclosure.
Embodiments consistent with the subject matter of this disclosure may provide a method and a system for defining clippable sections of a network document and for saving content corresponding to a selected defined clippable section. In some embodiments, clippable sections of a network document may be defined without executing any scripts. For example, a user may access and view a network document on a display of a processing device by executing an application, such as, for example, a network browser or other application. The user may define clippable sections of the network document by selecting a portion of the network document including an element, thereby causing the processing device to walk through a Document Object Model (DOM) of the network document. The selected element, along with similar elements, may then be set as clippable sections of the network document. Each time an element is selected, all elements similar to the selected element may be displayed with a visual indication, such as, for example, a dashed border, or other visual indication. In some embodiments, additional controls may be displayed. For example, text may be displayed identifying clipping elements. The text may be XPath text, or other text. A user may edit the XPath text, to more finely control which of the elements are clippable. In some embodiments, text representing different network document elements may be displayed. Selection of any one of the network document elements may revise the defined clippable sections.
A user may save content corresponding to a defined clippable section of a network document by selecting the defined clippable section. The content may be saved to a list, which may be stored locally, with respect to the processing device, or may be sent to a remote processing device, such as, for example, a server, which may store the content to a list. In embodiments in which the list is saved to a remote processing device, the list may be shareable, such that other users may access the list.
In some embodiments, a definition of clippable sections of one or more network documents may be saved, either locally, on a processing device of a user, or remotely, on a remote processing device. When the definition of the clippable sections is saved to the remote processing device, the definition of the clippable sections may be shared, such that other users may access the definition of the clippable sections and may load the definition of the clippable sections to another processing device.
In addition to saving content corresponding to a defined clippable section, information with respect to a complete network document, or a selected section of a network document, not necessarily corresponding to a defined clippable section, may be stored to a list on a local processing device or a remote processing device. When saving content corresponding to a complete network document, an address of the network document and a title of the network document may be stored to the list. When saving a selected section of a network document, a portion of the network document may be selected by using a pointing device, such as, for example, a computer mouse, or other pointing device, and clicking and dragging an area surrounding the portion of the network document. In other embodiments, other methods may be used to select a portion of a network document.
In an embodiment in which definitions of clippable sections may be stored on a remote processing device, such as a server or other processing device, the remote processing device may receive usage information from users' processing devices. The remote processing device may determine which clipping definitions are most popular and may automatically download, to the users' processing devices, up to a predetermined number of most popular ones of the clipping definitions.
Processing devices 104 and 105 may be users' processing devices, such as, for example, desktop personal computers (PC), laptop PCs, handheld processing devices, or other processing devices.
Network 102 may be a single network or a combination of networks, such as, for example, the Internet or other networks. Network 102 may include a wireless network, a wired network, a packet-switching network, a public switched telecommunications network, a fiber-optic network, other types of networks, or any combination of the above.
Server 106 may be a single server or a group of servers configured to work together. In embodiments in which server 106 includes a group of servers, the servers may be configured as a server farm.
Although
Processor 260 may include at least one conventional processor or microprocessor that interprets and executes instructions. Memory 230 may be a random access memory (RAM) or another type of dynamic storage device that stores information and instructions for execution by processor 260. Memory 230 may also store temporary variables or other intermediate information used during execution of instructions by processor 260. ROM 240 may include a conventional ROM device or another type of static storage device that stores static information and instructions for processor 260. Storage device 270 may include a compact disc (CD), digital video disc (DVD), a magnetic medium, or other type of storage device for storing data and/or instructions for processor 260. Communication interface 280 may include a wired or wireless interface for communicating to other devices via network 102.
Input device 220 may include a keyboard, a pointing device or other input device. Output device 250 may include one or more conventional mechanisms that output information, including one or more display screens, or other output devices.
Processing device 200 may perform such functions in response to processor 260 executing sequences of instructions contained in a tangible machine-readable medium, such as, for example, memory 230, ROM 240, storage device 270 or other medium. Such instructions may be read into memory 230 from another machine-readable medium or from a separate device via communication interface 280.
Upon selecting control 302, menu 314 may be displayed. Menu 314 may include one or more names of clippable section definitions, which may be applicable to a currently displayed network document (in this example, “DEFN-A” and “CLIPPNG-B”), respective sources of the one or more clippable section definitions (in this example, “Service” may indicate a predefined clipping definition defined by a clipping service, and “Personal” may indicate a clipping definition defined by the user), and a status of the clipping definition (for example, “Enabled” may indicate that the clipping definition is active for one or more network documents, and “Disabled” may indicate that the clipping definition is inactive for the one or more network documents).
The user may select one of the clippable section definitions from menu 314 and may further select Edit 318 to edit the selected one of the clippable section definitions, may select Del 320 to delete the selected one of the clippable section definitions, or may select Dis/En 322 to enable a selected disabled clippable section definition or to disable a selected enabled clippable section definition. The user may select Add 316 to add a new clippable section definition.
Upon selecting Add 316 or Edit 318, menu 402 (
The clippable section definition name, to be provided in window 404, may be a name of to the clippable section definition that the user is about to add or edit. The network document address pattern may define an address pattern, such that a clippable section definition named in window 404 may be defined for network documents having addresses which match the address pattern. For example, clippable section definitions with respect to network documents showing results of a search by a search engine may be associated with an address pattern of “http://www.searchengine.com/search*”. That is, search results from a search engine called “searchengine” may be provided in a form of a network document having an address which matches the above-mentioned address pattern, where “*” in the above example may indicate that a portion of the address pattern after “http://www.searchengine.com/search” is to be ignored. That is, a clippable sections definition may apply to network documents matching at least a partial address. The default list name, to be provided in window 408, may be a name of a default list to which content of selected clippable sections defined by a clippable section definition, as named in window 404, may be saved. Clipping path, which may be shown in window 410, may show a path defining clippable sections of a network document. In one embodiment, the path may be displayed as XPath text. Network document elements may be displayed in window 412. In one embodiment, the network document elements may include eXtensible Markup Language (XML) tags or HyperText Markup Language (HTML) tags.
In addition to menu 402 being displayed, upon selecting Add 316 or Edit 318, a DOM of the network document may be walked to determine a repeating pattern within the DOM. After finding a first repeating pattern, a visual indicator may be displayed to indicate clippable sections of the network document, as are currently defined. As an example, dashed line 312 (
Referring back to
In the above example, the user may continue to drill down to other repeating patterns by continuing to select content of the network document. Similarly, the user may change the current definition of the clippable sections to find a repeating pattern upward, or outside of a current defined clippable section by, for example, holding a particular key down while selecting a clippable section, or by other means.
To save a definition of the current clippable sections, the user may select OK 416. To cancel the defining of the clippable sections, the user may select CANCEL 418.
The user may request to view lists including saved clippable content. For example, in an embodiment including a network browser, the user may select a control for viewing the lists. In some embodiments, the lists may be stored on a server, such as server 106.
Display 500 is only exemplary. In other embodiments, other information pertaining to the list may be displayed, and the lists may include different or other rights.
The processing device may then receive a selection indicating an intent to add or edit a definition (act 706). In one embodiment, the user may select Add 316 (
Returning to
The processing device may then define clippable sections of the network document in response to receiving one or more inputs or commands to define the clippable sections (act 610).
If, during act 802, the processing device determines that the portion of the network document was not selected, then the processing device may determine whether the user selected a network document element, as previously described with respect to
Returning to
If, during act 1020, the processing device determines that the selection does not correspond to defined clippable section, then a processing device may determine whether the selection corresponds to an entire network document (act 1040). If the user's processing device determines that the selection does not correspond to an entire network document, then the user's processing device may assume that a portion of the network document was selected for saving, as previously discussed with respect to
In some embodiments, definitions of clippable sections may be saved on a remote processing device, such as a server. In such embodiments, when the user's processing device receives an indication of a desire to define clippable sections for a network document, menu 1102 may be displayed, instead of menu 314. Menu 1102 may include names of definitions of clippable sections, sources of the definitions definitions, and statuses of the definitions. A source of a definition, in this embodiment, may be “service”, indicating a definition defined by a network document clipping service, “personal”, indicating a definition defined by the user, or “comm”, indicating a definition shared in common with other users. A status of a definition may be “enabled”, indicating that the definition is active for network documents matching a network document address pattern, “disabled” indicating that the definition is inactive, or “unloaded”, indicating that the definition is not loaded into the user's processing device.
Add 1104, Edit 1106, Del 1108, and Dis/En 1110 may function in a same manner as Add 316, Edit 318, Del 320, and Dis/En 322, with respect to
The processing device may then receive a selection of one of the clippable sections definitions for loading to the user's processing device (act 1206). As a result of receiving the selection of one of the clippable sections definition, the user's processing device may send a request to the server for the selected clippable sections definition (act 1208). The user's processing device may then receive and store the requested clipping definition (act 1210). The user's processing device may then enable or activate the stored clippable sections definition (act 1212) and may provide visual indications (act 1214), such as, for example, the visual indications discussed earlier, with respect to
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms for implementing the claims.
Although the above descriptions may contain specific details, they are not be construed as limiting the claims in any way. Other configurations of the described embodiments are part of the scope of this disclosure. Further, implementations consistent with the subject matter of this disclosure may have more or fewer acts than as described, or may implement acts in a different order than as shown. Accordingly, only the appended claims and their legal equivalents define the invention, rather than any specific examples given.